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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nitor_vault-2.8.1.tar.gz | 70.5 kB | Without provenance | Details |
Built distributions (wheels)
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.