SECURITY
Your data should remain yours. Even when AI helps.
Security is part of the product: organisation boundaries on every owned row, personal connections, visible administration, and one controlled path to sensitive content.
01.
One boundary per organisation.
Every organisation-owned row carries org_id. PostgreSQL row-level security and explicit organisation predicates enforce the boundary.
02.
Encryption without cloud lock-in.
Sensitive text and originals can use one envelope data key per organisation, protected by an OpenBao/Vault-compatible KMS. Search metadata stays available.
03.
No shortcut to content.
Decryptions use one audited service path. Break-glass access is designed to be explicit, time-bound, and reviewable. Customer-held keys fit the same abstraction.
04.
Untrusted until validated.
Documents are delimited as data in model calls. Skills are declarative, MCP writes use strict server-side schemas, and every ingress has size and volume limits.
05.
AI with recorded provenance.
Internal AI flows use a replaceable provider layer. Provider, model, version, product part, and index version are recorded on results and vectors.
06.
Logs without customer content.
Logs contain identifiers, status, timing, and model metadata — never prompts, document text, or decrypted content.