Per-tenant isolation · Engine-enforced
Your records aren't separated by a
Your records aren't separated by a WHERE clause. They're separated by the database engine.
Most "private" AI products mean logically separated — same database, same model,
a WHERE user_id = ? clause, and a vendor-trust assumption. We took the harder path.
Postgres row-level security gates every query at the engine layer. Per tenant you get a
Pinecone vector namespace, a GCS bucket, RLS-enforced
row isolation, and an entity graph in the same RLS-protected Postgres
as your records. A bug in our application code can't return another tenant's row — the engine refuses.
The privacy guarantee is in the architecture, not the policy.
Engine-enforced beats policy-enforced in any SOC 2 conversation. — What the technical evaluator is going to write in their report