Skip to main content

galata-vault

End-to-end encrypted secrets with no account. Your machine encrypts every secret before it leaves; the server keeps ciphertext it cannot read, and every value you read carries a signature this package verifies.

galata-vault has not been independently audited. Its formats may change before 1.0. Use it at your own risk.

This package gives you:

  • galata_vault, a token client for applications, for secrets and config documents;
  • gv, the full command line: create projects and environments, set secrets, mint tokens, and gv run -- <cmd>.
pip install galata-vault

Quick start

Start a server on your machine (it needs the gv-server binary; see the project README), then create a project and an environment:

gv-server local &
gv init acme --server http://127.0.0.1:8750      # writes acme-recovery.gvkit: keep it safe
gv env add acme/prod
printf %s "postgres://..." | gv set DATABASE_URL --env acme/prod
gv token mint --scope read --env acme/prod       # prints a gvt1_ token once

In the application:

import galata_vault

vault = galata_vault.Vault.from_env()   # GV_SERVER, and GV_TOKEN or GV_TOKEN_FILE
url = vault.get("DATABASE_URL")

for secret in vault.list():
    print(secret.name, secret.version, secret.updated_at)

vault.load_env()                        # readable secrets into os.environ (existing ones kept)

app = vault.get_config("app")           # name, format, version, text, data (exact bytes)
settings = app.parse()                  # a dict, for toml and json
vault.set_config("app", new_text, "toml", expect_version=app.version)

head = vault.verify_audit(kept_head)    # keep it; a server that rewrote history is caught

set_config checks the body before any request. It must parse in its format, and a credential literal (a key, a token, a PEM block) is refused unless allow_literals=True. With expect_version, an edit made from a stale read raises ConflictError and overwrites nothing.

A token can also come from a file: Vault.from_token_file(path, server), or GV_TOKEN_FILE with from_env(). The file must have mode 0600 or 0400 (checked before it is read) and hold one token. Setting both GV_TOKEN and GV_TOKEN_FILE is refused.

What a token can do

Scope list get set get_config set_config
meta ✓
append ✓ ✓ ✓
read ✓ ✓ (optionally only listed names) ✓
admin ✓ ✓ ✓ ✓ ✓
config ✓ ✓
config-write ✓ ✓ ✓

A meta or append token cannot decrypt a value even in principle: it never receives the vault key. A config or config-write token receives the config key only, so it reads configs and never a secret; a config-write token cannot write a secret either, because it never receives the key that signs one.

Errors

Every error derives from galata_vault.GalataVaultError and has a stable code, the same string the Rust SDK reports:

  • AuthenticationError: invalid_token, unauthorized, token_expired;
  • NotFoundError;
  • ForbiddenError;
  • ConflictError: another writer changed the secret or config first;
  • TransportError: the server is unreachable;
  • IntegrityError: something the server served does not verify (bad_signature, key_mismatch, binding_mismatch, version_rollback, generation_rollback, audit_mismatch);
  • GalataVaultError itself for everything refused before a request, among them invalid_config, credential_literal, unsupported_format, invalid_token_file and invalid_environment.

No error message or repr contains a token, a key, a secret value or a config body.

A server may expire vaults after a period without use (local mode does not). When it announces an expiry less than 14 days away, galata_vault.ExpiryWarning is issued.

Notes

  • Python strings cannot be wiped from memory, so values you read live as long as your references to them.
  • The library never changes process limits or touches the OS keychain; the gv command does.
  • Supported: CPython 3.11 and later, on Linux and macOS.

Metadata

Release files for galata-vault 0.3.0

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

Source distribution (sdist)

Source distribution for galata-vault 0.3.0
File Size Uploaded
galata_vault-0.3.0.tar.gz 508.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for galata-vault 0.3.0
File
galata_vault-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details
galata_vault-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64 Details
galata_vault-0.3.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
galata_vault-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

Total release size: 18.1 MB

Release files / galata_vault-0.3.0.tar.gz

Download URL galata_vault-0.3.0.tar.gz
Size 508.2 kB
Tags Source
SHA-256 checksum
How to use checksums
08d474fe11a60b2a8723c8cac3e7a66cb744e0177418642afa66ee096ffab627
BLAKE2b-256 checksum
How to use checksums
857d6f0a16dbb82f4400ccd7deba40e999de5abbcba84b4471fca4de280aa5c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / galata_vault-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL galata_vault-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
c3c58ec63fd5c4f1d48ae044ce7a3130da4d49f4e3eb80e24268334b6674d023
BLAKE2b-256 checksum
How to use checksums
f9e6b770713b3d36523a0930378962e7c1973af5f139f01a9284538449d302ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / galata_vault-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL galata_vault-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.2 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
2a0dd741cf5003118d4aa7e7512cda73d189a4f9caea0d75f43f3ff5f8e95284
BLAKE2b-256 checksum
How to use checksums
841d63404c4174c510e8704ea2e5126bd769f3ff1ba7b1c4b9bbb9a368a7e84b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / galata_vault-0.3.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL galata_vault-0.3.0-cp311-abi3-macosx_11_0_arm64.whl
Size 3.5 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ce792e80f16638bed74fc4d58587343ae130bcc5b00fdf1285f887bfaf807b7b
BLAKE2b-256 checksum
How to use checksums
dac14bb3765dc64ef7d476a219700700ead258495c8211d35401536a6e0a596d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / galata_vault-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl

Download URL galata_vault-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl
Size 3.6 MB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7a01686e759d8c6553dbfd07422fcdfaa57baf847c3cc27a9e0c6dd6ca5b8703
BLAKE2b-256 checksum
How to use checksums
00fc96535dd1cb20da0f1217695c0ac8faa7911e0accbd24b3baad36b2487057
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

5 release files

This release

0.3.0 This release

5 release files

0.2.0

5 release files

0.1.0

5 release files

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