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>
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)
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:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file passbolt_python_api-0.3.7.tar.gz
.
File metadata
- Download URL: passbolt_python_api-0.3.7.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 136f800de0539ab1688d027e21c5649571faf3fa72a7f69310a7b3d59200f97a |
|
MD5 | 40c47a4eb295c849ca3570754fbf8904 |
|
BLAKE2b-256 | 3075aaa0c634e02d776070e8fc44a908e2ffd970c9ff4734605e455d715daa9b |
File details
Details for the file passbolt_python_api-0.3.7-py3-none-any.whl
.
File metadata
- Download URL: passbolt_python_api-0.3.7-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c9ca08a6be49ffce2d776175292ff094daf7dbe8355cd38cc455ee730be263d |
|
MD5 | e57c95ef90f546e992ca5419c42ad8a4 |
|
BLAKE2b-256 | 62c55f19dd9ffb27301cad912487282aa7f701a08741795b59f203a152b6ca1a |