Skip to main content

Vault for storing locally encrypted data in S3 using KMS keys

Project description

nitor-vault

Python vault implementation using the Rust vault library.

See the repo root readme for more general information.

Usage

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 completion
  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
  status, --status          Print vault stack information
  init, -i, --init          Initialize a new KMS key and S3 bucket [aliases: i]
  update, -u, --update      Update the vault CloudFormation stack [aliases: u]
  lookup, -l, --lookup      Output secret value for given key [aliases: l]
  store, -s, --store        Store a new key-value pair [aliases: s]
  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=]
      --profile <PROFILE>  Specify AWS profile 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

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/p_vault/vault.py -h
# venv
python3 python/p_vault/vault.py -h

Install and run vault inside virtual env:

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

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

nitor_vault-2.1.2.tar.gz (72.0 kB view details)

Uploaded Source

Built Distributions

nitor_vault-2.1.2-cp39-abi3-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.9+ Windows x86-64

nitor_vault-2.1.2-cp39-abi3-win32.whl (4.3 MB view details)

Uploaded CPython 3.9+ Windows x86

nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.9+ musllinux: musl 1.2+ x86-64

nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_i686.whl (6.3 MB view details)

Uploaded CPython 3.9+ musllinux: musl 1.2+ i686

nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_aarch64.whl (6.6 MB view details)

Uploaded CPython 3.9+ musllinux: musl 1.2+ ARM64

nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ x86-64

nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (5.3 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ i686

nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ ARM64

nitor_vault-2.1.2-cp39-abi3-macosx_11_0_arm64.whl (5.6 MB view details)

Uploaded CPython 3.9+ macOS 11.0+ ARM64

nitor_vault-2.1.2-cp39-abi3-macosx_10_12_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9+ macOS 10.12+ x86-64

File details

Details for the file nitor_vault-2.1.2.tar.gz.

File metadata

  • Download URL: nitor_vault-2.1.2.tar.gz
  • Upload date:
  • Size: 72.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.4

File hashes

Hashes for nitor_vault-2.1.2.tar.gz
Algorithm Hash digest
SHA256 e2fedb8e8dcfdae4acceea33cd706d9fb70aa3d4b56b5b41e916bb4d9b26998b
MD5 03351e92196b6b81a03ca41dab01737c
BLAKE2b-256 c74323fce6ee460d2372b51bf8bd4abaeb98a0a23b3665eb507fe631cc7f3795

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c78f110b2d1c12aba34962cc5a50e2a66f0b79583eca12d904e37e2ac0023be1
MD5 7871748b558ba3b35e3ec153abdf2d47
BLAKE2b-256 db6b2530b2cd772ec24b1307f90acc160491409ac5f2caac147d76f7effcfbd3

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-win32.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 98b031e182a9524a8d3e40995af62fa1e054a7372ee739a051ce5c653b7dc227
MD5 4f7c7954ad88a9bd7ac2d5ec977d36c7
BLAKE2b-256 f479984c6a4484d6026cb96ade714cda2e8ee6dc020374ce33a79a41af489148

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c2e47806d24ff4dfc2930771c9377171c8d0031dc1c789e37ab2bcf0e1d0e663
MD5 ff65a8d9a52c71f96e26ba46d4032055
BLAKE2b-256 8c97e46234dd12535abcd3a86492de8dd079e4bf82f37c13f2d209b2469a1c1c

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8eb51c5ceb31c8202ce5cf5abe2b68b3ce3594bfef9cfa32db1564db07d1267f
MD5 be6de261bc13f6ee6e9a5842bdf58344
BLAKE2b-256 ee193541a108f7c7355fec602794f5bff866c5234afc195f6f8bcc5c8b9349cc

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7ce3892d87be59fcd75f4395400fb0d492b173c0d5dfd5ec56802f04aa6cabb3
MD5 fa70dd877ae41dac7fd77be57c91a574
BLAKE2b-256 33732b6471d86a58b453c67de3461422319e565bae6e175bd2ebcb386f6cad22

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ddc65928ba094b3d68b3d1f35f4dd67ae749052915c859260c5c39d1eb2d30e3
MD5 07cd7197261f33569137518e57ea6bb7
BLAKE2b-256 4265718ec60c8f69475bb6303158a35a44d5c00a8276d7eaced055aad5c3b612

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f6ee6b001d805cda760195ecacf05ba1646037752954292f9154d975cb970e9a
MD5 395b6873cc6f51f55af8dec15b01e863
BLAKE2b-256 6cd262720e8061a905c99fcc4953e3a1cc276055a1d8c1557348b491a060aa70

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c4a8e615e846840d62320386bb085a7a99b9dedd1ce27b317ea968ed7c85fd5e
MD5 d78fc3ae284e6dbfdf7c45169c2dd4c6
BLAKE2b-256 fbf64cd17a52bee2246a9bea342c72beb7b4d6715ff7e1c899870d38c74bdeb8

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afd764ecce118c516169bf47721bb229cb66c86a82966a0f633add2255f64052
MD5 4729fef9d890e45f3713b34f6cc6ee13
BLAKE2b-256 a9245ba2a9058aa2c441695ca887e51b42ded7dfef8793f9269b116798bda348

See more details on using hashes here.

File details

Details for the file nitor_vault-2.1.2-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nitor_vault-2.1.2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5f3ffff3ed8618546b890dba2a1c5c3cc2c5685b5a068f5f422ac7730a4077c2
MD5 18bca079273f54cd56e36c25ffd8f4dc
BLAKE2b-256 626bc7460eee4c0dd648d7a8cda25a20da96cfff7e4e58718e5d4e0bb82b633e

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