Home / Product / Security

Compliance is architecture.

Isolation, encryption, and access control live in the database and key-management layers, where a bug or a compromised service can't route around them.

Tenant & barrier isolation

The wall is below the app.

Namespace RLS

Row-level security restricts every query to the requesting namespace.

Information barriers

RESTRICTIVE policies deny cross-barrier reads even for the table owner, verified in CI against a non-superuser role.

Non-superuser posture

The app runs as a non-superuser, non-BYPASSRLS Postgres role, documented and tested.

Compromise-resistant

A compromised service with valid DB credentials still cannot read across a wall.

Encryption & key management

Per-subject keys, your KMS.

DataProtection
Memory content (PII/PHI/MNPI)AES-256-GCM at rest under a per-subject DEK; TLS in transit.
EmbeddingsStored in pgvector; a local embedding provider keeps text in-perimeter.
Audit eventsSHA-256 hash chain; append-only; optional Merkle anchoring.
API keysStored only as SHA-256 hashes; individually revocable.
Subject keys (DEKs)Wrapped by a master key from your KMS (env / AWS / Azure / Vault); destroyed on erasure.

Access control & operations

Scoped, audited, observable.

Scoped API keys

Namespace-scoped with read / write / admin scopes, checked on every request.

RBAC roles

Owner / analyst / compliance / readonly roles expand to scope sets at auth time.

SSO

OIDC / SAML via gateway forward-auth.

SIEM streaming

Stream audit events to Splunk, Datadog, or Elastic.

Reliability

Idempotent writes, liveness/readiness probes, and per-key rate limiting.

Air-gap mode

Hard-fails any config that would send data to an external service.

Audit it before you deploy it.

Read the source ↗