Skip to main content

**dworshak-access** is a light-weight library for local credential access. It exposes the **get_secret()** function, to allow a program to leverage credentials that have been established using the Drowshak CLI tool, which is a separate package.

Project description

dworshak-access is a light-weight library for local credential access. By adding dworshak-access as a dependency to your Python project, you enable your program or script to leverage credentials that have been established using the suster package, the Drowshak CLI tool.

Functions exposed in dworshak-access:

  • initialize_vault() -> VaultStatus – Create the vault directory, encryption key, and SQLite database. Safe to call multiple times.
  • check_vault() -> VaultStatus – Check the health of the vault.
  • store_secret(service: str, item: str, plaintext: str) – Encrypt and store a credential in the vault.
  • get_secret(service: str, item: str) -> str | None – Retrieve and decrypt a credential.
  • remove_secret(service: str, item: str) -> bool – Remove a credential from the vault.
  • list_credentials() -> list[tuple[str, str]] – List all stored service/item pairs.
  • export_vault(output_path: Path | str | None = None) -> str | None - Export vault to JSON file.

All secrets are stored Fernet-encrypted in the database under the secret column. No opaque blobs — every entry is meaningful and decryptable via the library.

Example

uv add dworshak-access
from dworshak_access import initialize_vault, store_secret, get_secret, list_credentials

# Initialize the vault (create key and DB if missing)
initialize_vault()

# Store credentials
store_secret("rjn_api", "username", "admin")
store_secret("rjn_api", "password", "s3cr3t")

# Retrieve credentials
username = get_secret("rjn_api", "username")
password = get_secret("rjn_api", "password")

# List stored items
for service, item in list_credentials():
    print(f"{service}/{item}")

Cryptography Library (When Building dworshak-access From Source or When Using It A Dependency in Your Project)

The only external Python library used is crytography, for the Fernet class.

On a Termux system, cryptography can (A) be built from source or (B) the precompiled python-crytography dedicated Termux package can be used.

A. Allow cryptography to build from source (uv is better at this compared to using pip)

pkg install rust binutils
uv sync

B. Use python-cryptography (This is faster but pollutes your local venv with other system site packages.)

pkg install python-cryptography
uv venv --system-site-packages
uv sync

uv venv --system-site-packages is a modern,faster alternative to python -m venv .venv --system-site-packages. Because uv manages the build-time dependencies (setuptools-rust and cffi) in an isolated environment and coordinates the hand-off to the Rust compiler more robustly than pip, it is the recommended way to install cryptography from source on Termux.


Sister Project:

CLI: Dworshak

GitHub: https://github.com/City-of-Memphis-Wastewater/dworshak

PyPI: https://pypi.org/project/dworshak/

pipx install dworshak

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

dworshak_access-0.1.23.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dworshak_access-0.1.23-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file dworshak_access-0.1.23.tar.gz.

File metadata

  • Download URL: dworshak_access-0.1.23.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dworshak_access-0.1.23.tar.gz
Algorithm Hash digest
SHA256 7f1d3ec75b22d8980a96ab2bf4c66521e28a06b3bfb988b1224ec1da672f7606
MD5 481894990c69261a126157499d4c802d
BLAKE2b-256 087deba67ffda6a0d6aa4331c47e1a120cd8677b1923a72fa9f2c44fcc152ae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for dworshak_access-0.1.23.tar.gz:

Publisher: publish.yml on City-of-Memphis-Wastewater/dworshak-access

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dworshak_access-0.1.23-py3-none-any.whl.

File metadata

File hashes

Hashes for dworshak_access-0.1.23-py3-none-any.whl
Algorithm Hash digest
SHA256 b0eba8e5f9455759b8d11070f4b04aeff7fbbbea733c83afa1dcc9362bc9693e
MD5 3171526bdcec8a8003d0ab0f5ed88c45
BLAKE2b-256 f63571ba5f4d635a8ecc066efd3a48d971f8ea2ee360c1484844a93d8ce690e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for dworshak_access-0.1.23-py3-none-any.whl:

Publisher: publish.yml on City-of-Memphis-Wastewater/dworshak-access

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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