Skip to main content

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

Release files for passbolt-python-api 0.3.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for passbolt-python-api 0.3.9
File Size Uploaded
passbolt_python_api-0.3.9.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for passbolt-python-api 0.3.9
File Interpreter ABI Platform
passbolt_python_api-0.3.9-py3-none-any.whl Python 3 none any Details

Total release size: 21.4 kB

Release files / passbolt_python_api-0.3.9.tar.gz

Download URL passbolt_python_api-0.3.9.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fbee16f326840f6b2d9a2d7f2828ce1628ab81bca9283c8395cc2a01d2f64fdb
BLAKE2b-256 checksum
How to use checksums
29a665199ff16d1396f7768da887902447e63c62dd93bcff408adb0c48b9b0fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.7

Release files / passbolt_python_api-0.3.9-py3-none-any.whl

Download URL passbolt_python_api-0.3.9-py3-none-any.whl
Size 10.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93ce3f734e7abe5100d510525d81fc761cfba283be4960950314605bdf65cd82
BLAKE2b-256 checksum
How to use checksums
5bdfb6b31e8a2deb70001e3026011cd0f8d41418b577b9279fd8974211dd683b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.3.9 This release

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page