Skip to main content

A python client for Passbolt.

Project description

Passbolt-python-API

It is a python api client for Passbolt.

Disclaimer

  • This project is a community driven project that is not associated with Passbolt S.A.
  • Passbolt and the Passbolt logo are registered trademarks of Passbolt S.A.

Installation

$pip install passbolt-python-api 

Dependencies

  • Python >= 3.6
  • GPG (also known as GnuPG) software

Configuration

Create a config file with the following contents.

[PASSBOLT]
SERVER = http://<server_ip or domain>
SERVER_PUBLIC_KEY_FILE = <optional: server_public.asc>
USER_FINGERPRINT = <user_fingerprint>
USER_PUBLIC_KEY_FILE = <optional: passbolt_public.asc>
USER_PRIVATE_KEY_FILE = <optional: passbolt_private.asc>
PASSPHRASE = <passbolt_password>
SERVER_CERT_AUTH_KEY= <optional: client.pem>
SERVER_CERT_AUTH_CRT= <optional: client.crt>

Or as a dictionary

config = {
    "PASSBOLT": {
        "SERVER": "http://<server_ip or domain>"
        ....(same as above)
    }
}

Usage

Import GPG keys from Passbolt

The first step will be to import the private and public keys using gpg for encryption.

Note: Do not keep private and public files. Rather just import them using gpg command one time and delete those files.

Using Python

To import new keys using Python:

>>>import passboltapi
>>>passbolt = passboltapi.PassboltAPI(config_path="config.ini", new_keys=True)

To delete old keys and import only the new ones.

>>>import passboltapi
>>>passbolt = passboltapi.PassboltAPI(config_path="config.ini", new_keys=True, delete_old_keys=True)

To use with client certificate authentication use SERVER_CERT_AUTH_CRT and SERVER_CERT_AUTH_KEY (pem) in config file and:

>>>import passboltapi
>>>passbolt = passboltapi.PassboltAPI(config_path="config.ini", cert_auth=True)

Using GPG

Import new keys:

$gpg --import public.asc
$gpg --batch --import private.asc

Deleting existing keys:

$gpg --delete-secret-keys <fingerprint>
$gpg --delete-key <fingerprint>

How to use PassboltAPI client

>>>import passboltapi
>>>passbolt = passboltapi.PassboltAPI(config_path="config.ini")
# Or pass the configuration settings as a dict
>>>passbolt = passboltapi.PassboltAPI(config=<dictionary as the given example config.ini>)

# Now you may do any get, post, put and delete request.
>>>r = passbolt.get(url="/resources.json?api-version=v2")
>>>r = passbolt.post(self.server_url + url, json=data)

# One can also use it as context manager
>>>with passboltapi.PassboltAPI(config_path="config.ini") as passbolt:

# One needs to periodically import the public keys from the passbolt server to their local gpg
>>>passbolt.import_public_keys("TRUST_FULLY")

To get all resources

resources = {record.username: record for record in passbolt.list_resources(folder_id=folder_id)}

To create new resource (optional: folder)

response = passbolt.create_resource(
    name=name,
    username=username,
    password=password,
    uri=uri, # optional
    description=description,  # optional
    folder_id=passbolt_folder_id  # optional
)
# Note: if you add folder_id, you need to have the public keys of all the users who have access to the foler.
# This can be easily achieved as follows:
passbolt.import_public_keys()

To move resource to folder

passbolt.move_resource_to_folder(resource_id, folder_id)

Sample test

Check test.py for an example.

If new keys needs to be imported, then USER_PUBLIC_KEY_FILE and USER_PRIVATE_KEY_FILE settings should be in the config ini having the path of the public and private keys file respectively.

Passbolt API

For more API related questions, visit Passbolt API documentation:

https://help.passbolt.com/api

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

passbolt-python-api-0.3.8.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

passbolt_python_api-0.3.8-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file passbolt-python-api-0.3.8.tar.gz.

File metadata

  • Download URL: passbolt-python-api-0.3.8.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.6

File hashes

Hashes for passbolt-python-api-0.3.8.tar.gz
Algorithm Hash digest
SHA256 5b50caf16dc280190123d28661af84dfa57dd9c3179225ceabc9a17ec7fb3664
MD5 bfefcae8c6c29cc46fc91504a4966e97
BLAKE2b-256 4c184358edeb5cc034c9e92ac235a7370cc6f6a4c877fffcd10626e7f211a9e0

See more details on using hashes here.

File details

Details for the file passbolt_python_api-0.3.8-py3-none-any.whl.

File metadata

File hashes

Hashes for passbolt_python_api-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b6baeb901cc8a46006cd4b818adedfbcfe1bf5f138fefaac82893c8b9ad1a8f0
MD5 c2dce42ab854bd99efc07cc4c046b38f
BLAKE2b-256 673fa39235d36a96428ce0388dd296dc22a1d476db38132d9d7a0dfcf90c503a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page