py-bw-vault-api-unofficial
An unofficial Python wrapper around the BitWarden Vault Management API (the one exposed by the BitWarden CLI - ie. when running bw serve). Licensed under the LGPL v2.1 license (see LICENSE). Auto-generated from the OpenAPI definition file provided by BitWarden using openapi-python-client.
Usage
First, create a client. localhost / 8087 are the default host / port used by bw serve, but it can be customized by the --hostname and --port arguments:
from vault_management_api_client import Client
client = Client(base_url="http://localhost:8087")
Now call your endpoint and use your models:
from vault_management_api_client.models import MyDataModel
from vault_management_api_client.api.my_tag import get_my_data_model
from vault_management_api_client.types import Response
with client as client:
my_data: MyDataModel = get_my_data_model.sync(client=client)
# or if you need more info (e.g. status_code)
response: Response[MyDataModel] = get_my_data_model.sync_detailed(client=client)
Or do the same thing with an async version:
from vault_management_api_client.models import MyDataModel
from vault_management_api_client.api.my_tag import get_my_data_model
from vault_management_api_client.types import Response
async with client as client:
my_data: MyDataModel = await get_my_data_model.asyncio(client=client)
response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client)
For a list of API calls, see the BitWarden Vault Management API documentation.
Things to know:
-
Every path/method combo becomes a Python module with four functions:
sync: Blocking request that returns parsed data (if successful) orNonesync_detailed: Blocking request that always returns aRequest, optionally withparsedset if the request was successful.asyncio: Likesyncbut async instead of blockingasyncio_detailed: Likesync_detailedbut async instead of blocking
-
All path/query params, and bodies become method arguments.
-
If your endpoint had any tags on it, the first tag will be used as a module name for the function (my_tag above)
-
Any endpoint which did not have a tag will be in
vault_management_api_client.api.default
Building / publishing this package
This project uses Poetry to manage dependencies and packaging. Here are the basics:
- Update the metadata in pyproject.toml (e.g. authors, version)
- If you're using a private repository, configure it with Poetry
poetry config repositories.<your-repository-name> <url-to-your-repository>poetry config http-basic.<your-repository-name> <username> <password>
- Publish the client with
poetry publish --build -r <your-repository-name>or, if for public PyPI, justpoetry publish --build
If you want to install this client into another project without publishing it (e.g. for development) then:
- If that project is using Poetry, you can simply do
poetry add <path-to-this-client>from that project - If that project is not using Poetry:
- Build a wheel with
poetry build -f wheel - Install that wheel from the other project
pip install <path-to-wheel>
- Build a wheel with
Release files for py-bw-vault-management-api-client 0.18
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py_bw_vault_management_api_client-0.18.tar.gz | 35.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_bw_vault_management_api_client-0.18-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 136.1 kB
Release files / py_bw_vault_management_api_client-0.18.tar.gz
| Download URL | py_bw_vault_management_api_client-0.18.tar.gz |
|---|---|
| Size | 35.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b08847810520801c67a2549483557f17bffac8c53fc653fb76645be95c5aba33
|
|
BLAKE2b-256 checksum How to use checksums |
ad7ee32b559935a5be2beddd983341ad9423d1d78519baf246c87f19d4c933cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.5 CPython/3.11.2 Linux/6.1.0-28-amd64
|
Release files / py_bw_vault_management_api_client-0.18-py3-none-any.whl
| Download URL | py_bw_vault_management_api_client-0.18-py3-none-any.whl |
|---|---|
| Size | 100.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d9ef6f626cc29d3cd20d4bfa49f7090c8e7e3c78a76a790847dcff45106b350
|
|
BLAKE2b-256 checksum How to use checksums |
2c045c812994d6496a47779872459c1aa4c86d5c1517099f187cf1964bb44877
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.5 CPython/3.11.2 Linux/6.1.0-28-amd64
|