Hot-path operational secrets
Service tokens, cache passwords and session keys that an app fetches right before each use and discards right after.
2.0.0PrototypeAGPLv3Rust 2024
A local, read-only secrets resolver that speaks Vault KV-v2.
Naughtian Kallisto runs beside your application on localhost. It answers Vault KV-v2 reads from one encrypted file that it pulls from an S3-compatible bucket. It cannot write. There is no cluster, no database, no replication and no admin API.
operator bucket each machine ──────── ────── ──────────── kallisto-ctl seal ──────► secrets.kal ──────► kallisto-server :8200 (AES-256-GCM, (encrypted, (polls, authenticates, version N) versioned) refuses rollbacks, serves KV-v2 reads) │ app ─────┘ VAULT_ADDR=127.0.0.1VAULT_ADDR=https://vault.internal:8200VAULT_ADDR=http://127.0.0.1:8200Removing it is the same line. If your application uses a Vault SDK, it should
not notice the difference. The project tests this with three real clients:
the official Go client, Python’s hvac, and PHP’s vault-php.
When an application keeps re-reading a handful of secrets, a central Vault adds a network round trip to every request, and an outage whenever it becomes unreachable. Kallisto holds the current values on the machine, refreshes them on a timer, and keeps serving from an encrypted copy on local disk when the bucket goes down.
At runtime your request path depends on a local process and a file. Vault, OpenBao or whatever produced the secrets can be sealed, failing over or mid-upgrade, and reads keep answering.
2.0.0 is the third architecture. The earlier secrets server, with its cuckoo cache, RocksDB storage, write path, gossip controlplane and admin port on 8202, has been deleted. What replaced it is much smaller:
127.0.0.1. The server refuses any other
address unless you pass --i-accept-the-risk.403 permission denied.See the architecture for how the pieces fit.
Kallisto has no auth methods, dynamic secrets, leases, PKI or transit engine. If you need those, run OpenBao or Vault. Kallisto holds the operational secrets your services read on every request, exported and sealed by an operator, and leaves the crown jewels where they are.
Hot-path operational secrets
Service tokens, cache passwords and session keys that an app fetches right before each use and discards right after.
Surviving an unreachable upstream
The bucket, Vault or the network link can be down. Each machine keeps serving the last authenticated file from its encrypted local copy.
Edge and mTLS material
Certificates and keys for gateways and service meshes on links that are not always up.
See use cases for what belongs in Kallisto and what stays in Vault.
This site carries the operator documentation. The Kallisto repository keeps
the engineering records under docs/: the ADRs (ADR-0015 and ADR-0016 define
the current design), the verification ledger and the benchmark archive. They
are plain markdown, read on GitHub.