Skip to main content

Unofficial client library for accessing the BitWarden Vault Management API

Project description

py-bw-vault-api-unofficial

PyPI version GitLab License

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:

  1. Every path/method combo becomes a Python module with four functions:

    1. sync: Blocking request that returns parsed data (if successful) or None
    2. sync_detailed: Blocking request that always returns a Request, optionally with parsed set if the request was successful.
    3. asyncio: Like sync but async instead of blocking
    4. asyncio_detailed: Like sync_detailed but async instead of blocking
  2. All path/query params, and bodies become method arguments.

  3. If your endpoint had any tags on it, the first tag will be used as a module name for the function (my_tag above)

  4. 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:

  1. Update the metadata in pyproject.toml (e.g. authors, version)
  2. If you're using a private repository, configure it with Poetry
    1. poetry config repositories.<your-repository-name> <url-to-your-repository>
    2. poetry config http-basic.<your-repository-name> <username> <password>
  3. Publish the client with poetry publish --build -r <your-repository-name> or, if for public PyPI, just poetry publish --build

If you want to install this client into another project without publishing it (e.g. for development) then:

  1. If that project is using Poetry, you can simply do poetry add <path-to-this-client> from that project
  2. If that project is not using Poetry:
    1. Build a wheel with poetry build -f wheel
    2. Install that wheel from the other project pip install <path-to-wheel>

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

py_bw_vault_management_api_client-0.11.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file py_bw_vault_management_api_client-0.11.tar.gz.

File metadata

File hashes

Hashes for py_bw_vault_management_api_client-0.11.tar.gz
Algorithm Hash digest
SHA256 cf502f1c0c434ddd56053e2aff415760956ecf28992492dd7c1cf3c9fbbe7d78
MD5 9734dacd17e8770e96f2d525b95f1175
BLAKE2b-256 38e91ea1e6e32bf4919941f8e65fcfd5bc0538d58bd59a8bb8268f732b075351

See more details on using hashes here.

File details

Details for the file py_bw_vault_management_api_client-0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for py_bw_vault_management_api_client-0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 68ef4b6bfc74720a06412796fdf0a0b40fa3548b4381459fbf73d7f2a22f915a
MD5 10447e447bd296550cf3ff3b406de3b2
BLAKE2b-256 251313805203a902f9d042a4cee1ba9b89b1b25464e8d0bd330be734bf999f73

See more details on using hashes here.

Supported by

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