Skip to main content

nitor-vault

Python Vault CLI and library implementation using the Rust vault exposed as a Python extension module.

Encrypt data using client-side encryption with AWS KMS keys.

See the repo root readme for more general information.

Vault CLI

Encrypted AWS key-value storage utility

Usage: vault [OPTIONS] [COMMAND]

Commands:
  all, -a, --all            List available secrets [aliases: a, list, ls]
  completion, --completion  Generate shell completions
  delete, -d, --delete      Delete an existing key from the store [aliases: d]
  describe, --describe      Print CloudFormation stack parameters for current configuration
  decrypt, -y, --decrypt    Directly decrypt given value [aliases: y]
  encrypt, -e, --encrypt    Directly encrypt given value [aliases: e]
  exists, --exists          Check if a key exists
  info, --info              Print vault information
  id                        Print AWS user account information
  stack                     Commands for cloudformation stack
  init, -i, --init          Initialize a new KMS key and S3 bucket. [aliases: i]
  lookup, -l, --lookup      Output secret value for given key [aliases: l]
  store, -s, --store        Store a new key-value pair. [aliases: s]
  update, -u, --update      Update the vault CloudFormation stack. [aliases: u]
  help                      Print this message or the help of the given subcommand(s)

Options:
  -b, --bucket <BUCKET>    Override the bucket name [env: VAULT_BUCKET=]
  -k, --key-arn <ARN>      Override the KMS key ARN [env: VAULT_KEY=]
  -p, --prefix <PREFIX>    Optional prefix for key name [env: VAULT_PREFIX=]
  -r, --region <REGION>    Specify AWS region for the bucket [env: AWS_REGION=]
      --vaultstack <NAME>  Specify CloudFormation stack name to use [env: VAULT_STACK=]
      --id <ID>            Specify AWS IAM access key ID
      --secret <SECRET>    Specify AWS IAM secret access key
      --profile <PROFILE>  Specify AWS profile name to use [env: AWS_PROFILE=]
  -q, --quiet              Suppress additional output and error messages
  -h, --help               Print help (see more with '--help')
  -V, --version            Print version

Install

From PyPI

Use pipx or uv to install the Python vault package from PyPI globally in an isolated environment.

pipx install nitor-vault
# or
uv tool install nitor-vault

The command vault should now be available in path.

From source

Build and install locally from source code using pip. This requires a Rust toolchain to be able to build the Rust library. From the repo root:

cd python-pyo3
pip install .
# or with uv
uv pip install .

Check the command is found in path. If you ran the install command inside a virtual env, it will only be installed inside the venv, and will not be available in path globally.

which -a vault

Vault library

This Python package can also be used as a Python library to interact with the Vault directly from Python code.

Add the nitor-vault package to your project dependencies, or install directly with pip.

Example usage:

from n_vault import Vault

if not Vault().exists("key"):
    Vault().store("key", "value")

keys = Vault().list_all()

value = Vault().lookup("key")

if Vault().exists("key"):
    Vault().delete("key")

# specify vault parameters
vault = Vault(vault_stack="stack-name", profile="aws-credentials-name")
value = vault.lookup("key")

Development

Uses:

  • PyO3 for creating a native Python module from Rust code.
  • Maturin for building and packaging the Python module from Rust.

Workflow

You can use uv or the traditional Python and pip combo.

First, create a virtual env:

# uv
uv sync --all-extras
# pip
python3 -m venv .venv
source .venv/bin/activate
pip install '.[dev]'

After making changes to Rust code, build and install module:

# uv
uv run maturin develop
# venv
maturin develop

Run Python CLI:

# uv
uv run python/n_vault/cli.py -h
# venv
python3 python/n_vault/cli.py -h

Install and run vault inside virtual env:

# uv
uv pip install .
uv run vault -h
# venv
pip install .
vault -h

Code Formatting and Linting

This project uses Ruff for code formatting and linting.

Format code, apply lint fixes, and re-format:

uv run ruff format . && uv run ruff check --fix . && uv run ruff format .

Or run the commands separately:

# Format code
uv run ruff format .

# Run linter and apply auto-fixes
uv run ruff check --fix .

Type Checking

This project uses ty for type checking.

Run type checker:

uv run ty check

Updating dependencies

Update all Python dependencies to latest versions:

uv lock --upgrade
uv sync

To update a specific package:

uv lock --upgrade-package <package-name>
uv sync

Metadata

Release files for nitor-vault 2.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nitor-vault 2.8.1
File Size Uploaded Provenance
nitor_vault-2.8.1.tar.gz 70.5 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for nitor-vault 2.8.1
File
nitor_vault-2.8.1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
nitor_vault-2.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
nitor_vault-2.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
nitor_vault-2.8.1-cp314-cp314t-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ x86-64 Details
nitor_vault-2.8.1-cp314-cp314t-manylinux_2_34_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ ARM64 Details
nitor_vault-2.8.1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
nitor_vault-2.8.1-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
nitor_vault-2.8.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
nitor_vault-2.8.1-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
nitor_vault-2.8.1-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details
nitor_vault-2.8.1-cp39-abi3-manylinux_2_34_x86_64.whl CPython 3.9 abi3 Linux glibc 2.34+ x86-64 Details
nitor_vault-2.8.1-cp39-abi3-manylinux_2_34_aarch64.whl CPython 3.9 abi3 Linux glibc 2.34+ ARM64 Details
nitor_vault-2.8.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
nitor_vault-2.8.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 110.7 MB

Release files / nitor_vault-2.8.1.tar.gz

Download URL nitor_vault-2.8.1.tar.gz
Size 70.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a5a9b01a93fbda390ba46dafe436d9695ef4fa93ebf1bdf88bc98b85b278b4ca
BLAKE2b-256 checksum
How to use checksums
ce34f0cd1942844976943d951cf41b97dac2b88bc200cee0ebffea946c7f171d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp314-cp314t-win_amd64.whl

Download URL nitor_vault-2.8.1-cp314-cp314t-win_amd64.whl
Size 7.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
c34a5b80741506016da61e3293ab54027c6d771a945a95e65c6a77bf272ddd50
BLAKE2b-256 checksum
How to use checksums
a8af861f5b2f1bb550cecfe6ed03b5c5bdb33c67e71e5c6eba2af64113a658ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL nitor_vault-2.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 8.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
994879bef00b4e52e441eaf157c5ddaa422bb03bcc7bc592dbcb4284f72c21be
BLAKE2b-256 checksum
How to use checksums
470d62b2fce9673ad270684b4603eef943f7ba070890cbc70dcbab287793418f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL nitor_vault-2.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 8.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
adb651abf2157597a497de111d4b9c85a2280954258e078211622fe95f00f122
BLAKE2b-256 checksum
How to use checksums
f40c876a522b800436ac5261c51f8b4efb7d9c0bcd8b2f8fc2aaac8334b61cab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp314-cp314t-manylinux_2_34_x86_64.whl

Download URL nitor_vault-2.8.1-cp314-cp314t-manylinux_2_34_x86_64.whl
Size 8.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
ff14d6f1ae9f582285bd5dac47852f3c112a27257dec52d35dc8b7b482ea0760
BLAKE2b-256 checksum
How to use checksums
ebadf479ac6c19609de92a06e88837c1d5bd8683af5156588bc08b18e6dbbba8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp314-cp314t-manylinux_2_34_aarch64.whl

Download URL nitor_vault-2.8.1-cp314-cp314t-manylinux_2_34_aarch64.whl
Size 7.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
d4b215a20f24641a7c3c920ffb24e4e84e2b81210b2666db2dcb280019361938
BLAKE2b-256 checksum
How to use checksums
9a16826bbd40441e89cbd403ce0ec250f84c3df37de60074f06e8893c81ed566
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL nitor_vault-2.8.1-cp314-cp314t-macosx_11_0_arm64.whl
Size 7.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d93f3c647818404ebe8e81b2a53c134fddbcc09fab35a7fed6c691a77f8a0ea1
BLAKE2b-256 checksum
How to use checksums
231a6baa58b53eba6de881dcd98cf00adf8d3e07db18bced197d1cbf6851c0fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL nitor_vault-2.8.1-cp314-cp314t-macosx_10_12_x86_64.whl
Size 7.8 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6d8488a2c426d8c3bdd9e0dbd6530b1f816bb777de2b137a920574d719b830ba
BLAKE2b-256 checksum
How to use checksums
b47799c85ecb37e5e3a4594d8d58d06c98baa87babd0f1f4fff61b6260a858b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp39-abi3-win_amd64.whl

Download URL nitor_vault-2.8.1-cp39-abi3-win_amd64.whl
Size 7.7 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
ddcd5557bb65d8c26006011ece3367c292f34bfb9796dc542656300706442be2
BLAKE2b-256 checksum
How to use checksums
b5a48e057cd97b0d9066a415693334fb0481b6326b5459cb061c039fb89de4de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL nitor_vault-2.8.1-cp39-abi3-musllinux_1_2_x86_64.whl
Size 8.5 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
13c66c214573addcd238e53d0bee59940eed9a5fe23160f05a5808f51147c0d8
BLAKE2b-256 checksum
How to use checksums
5f2c952b547718127be63e8678a7f0af6e154cf9f18929c6a1a4d29551022ce0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL nitor_vault-2.8.1-cp39-abi3-musllinux_1_2_aarch64.whl
Size 8.1 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
3e832dee23f5a5ea420dfd06b3f5d4dbcc01a3cd441465098f31d45f5928b063
BLAKE2b-256 checksum
How to use checksums
d1151e0cd3823e2e248c803ab38f59d6f019dfccc385c0b22c9543a19959a081
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp39-abi3-manylinux_2_34_x86_64.whl

Download URL nitor_vault-2.8.1-cp39-abi3-manylinux_2_34_x86_64.whl
Size 8.5 MB
Tags CPython 3.9 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
d5e0c1ae8c16f5e99f293b126e19ac0b9d087f4032935e5960c35e3553a1d65b
BLAKE2b-256 checksum
How to use checksums
36db3e125ce3a665c91147d5c1c706e8f9fc5579c3a8b947e281b4602e7b80a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp39-abi3-manylinux_2_34_aarch64.whl

Download URL nitor_vault-2.8.1-cp39-abi3-manylinux_2_34_aarch64.whl
Size 7.9 MB
Tags CPython 3.9 Linux glibc 2.34+ ARM64 abi3
SHA-256 checksum
How to use checksums
74c1a4c84dea8fc823181fa99d18b685a30c2b21ad631421b9e4bc55cb50d1ff
BLAKE2b-256 checksum
How to use checksums
25cafd4dea5eef123c5f4d574101fd029486e6ba1f1195718d257e2c01b7fc93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL nitor_vault-2.8.1-cp39-abi3-macosx_11_0_arm64.whl
Size 7.0 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0f5a3bc40e1399224783cf2f86ecf0dc96c5606f3e1bfaaf3858f2d59948d186
BLAKE2b-256 checksum
How to use checksums
b7243d42c648ce5456b7a6bd943d8644ffac8d57dfe13cfd7c302a3ab8447fab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nitor_vault-2.8.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL nitor_vault-2.8.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 7.8 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d7d1c5f8580cfc3c53428df2fdf0d227888da22158e15889093c13b51348785e
BLAKE2b-256 checksum
How to use checksums
9c30865a1b0d8e46cb17c8fbd324a694a2f397eae0ebd9fe235cb15c55ea2321
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for nitor-vault 2.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.8.1 This release

15 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page