CipherStashDocs

CipherStash Documentation

Data Level Access Control for Postgres. Searchable field-level encryption, identity-bound keys, cryptographic audit trails.

CipherStash is Data Level Access Control for Postgres. Encrypt fields, query ciphertext, bind keys to identities, and audit every access. Zero-knowledge by design.

npx stash init

One command. Device-based authentication, no environment variables for local dev. See the Getting started guide.

Choose your path

Two integration paths. Same key hierarchy, same encryption, same audit trail.

TypeScript SDKCipherStash Proxy
How it worksEncryption SDK and CLI available as an NPM packagePostgres Encryption - Postgres wire protocol Proxy built on top of the Encryption SDK to transparently encrypt data in Postgres
Best forTeams moving quickly and building TypeScript appsMore complex app architectures or non TypeScript applications using Postgres
LanguageTypeScript / JavaScript (Node.js, Deno, Bun)Any language (connects via PostgreSQL wire protocol)
Setupnpx stash initDocker container or binary

Most teams start with the SDK for the best developer experience.

Get started

Products

Operations

How it fits together

Everything builds on ZeroKMS and its core primitive, the Keyset. A keyset is the unit of isolation.

  • Encryption uses keysets for tenant isolation. One keyset per customer. Provable cryptographic separation.
  • Secrets (coming soon) uses keysets for environment isolation. Production, staging, and development secrets can never cross boundaries.
  • Proxy encrypts data transparently via PostgreSQL, backed by the same ZeroKMS key hierarchy.

Understand the architecture

On this page