Skip to content

grasp-labs/ds-vault-py-sdk

Repository files navigation

DS Vault Python SDK

Features

  • GetSecret
  • TTL + LRD Cache (KEK & records)
  • Psql and Memory repositories

Quickstart

Install

With postgres:

pip install "ds-vault-py-sdk[postgres]"

Memory only:

pip install ds-vault-py-sdk

Usage

Postgres - plain:

from vault import DSVaultClient
from vault.repositories.postgres import PostgresSecretRepository

repo = PostgresSecretRepository(
    dsn="postgresql://user:pass@host:5432/db",
    table="public.secrets",
)

client = DSVaultClient(repository=repo)

secret_bytes = client.get_secret(key=key)
print(secret_bytes.decode())

Managed KMS context:

client = DSVaultClient(
    repository=repo,
    encryption_context_defaults={"app": "payments-api", "env": "prod"},
)

Tests

Execute tests by setting environment variables to manage import paths, and call pytest.

export PYTHONPATH="src"
pipenv run pytest

Environment

Currently support dev and prod environment, defined by setting environment variable BUILDING_MODE, e.g.:

export BUILDING_MODE="dev"

About

SDK for DS Core Vault

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages