Skip to content

SSHcom/privx-sdk-for-python

Repository files navigation

Build Status

PrivX SDK for Python 3

The PrivX Software Development Kit (SDK) facilitates you with an automation of lean access management for privileged users. It offers a high-level abstraction to programmatically configure your IAM policies.

Inspiration

Just-in-time access management is the challenging, find out more pain points from this video.

PrivX improves the process of granting and revoking access, ensures your admins and engineers always have one-click access to the right infrastructure resources, and gives you an audit trail - vital if you are handling sensitive data or working in IT outsourcing.

PrivX is an ultimate replacement for jump hosts and bastions. It adds traceability to shared accounts using shared passwords, and conveniently combines access management for your On-Prem, AWS, Azure and GCP infrastructure, all in one multi-cloud solution.

Learn more about PrivX or try Live Demo.

Key features

This projects implements a high level Python abstraction to PrivX REST API.

  • OAuth2 Client Authentication
  • Hosts Management
  • Roles Management
  • Users Management

Getting Started

The latest version of SDK is available at its master branch. All development, including new features and bug fixes, take place on the master branch using forking and pull requests as described in contribution guidelines.

The library is available using pip

pip install git+https://github.com/SSHcom/privx-sdk-for-python.git

Essentially, the library requires up-and-running PrivX instance.

Please see examples

How To Contribute

The SDK is Apache 2.0 licensed and accepts contributions via GitHub pull requests:

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

The development requires Python 3.6 and essential build tools.

commit message

The commit message helps us to write a good release note, speed-up review process. The message should address two question what changed and why. The project follows the template defined by chapter Contributing to a Project of Git book.

bugs

If you experience any issues with the library, please let us know via GitHub issues. We appreciate detailed and accurate reports that help us to identity and replicate the issue.

  • Specify the configuration of your environment. Include which operating system you use and the versions of runtime environments.

  • Attach logs, screenshots and exceptions, in possible.

  • Reveal the steps you took to reproduce the problem, include code snippet or links to your project.

Style

Imports: isort Code style: black Documentation Status

  • Line-width is 88 symbols
  • Use Type Annotation
  • Use double quotes
  • Use isort for sorting the imports order

isort path --settings linter_config.cfg

  • Format code using black

black path

  • Check PEP using flake8 flake8 path --config ./linter_config.cfg

OR use bash script ./run_linters.sh path

License

See LICENSE