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.