Security

Security is built into the platform's architecture, not bolted on. The controls below are implemented in the product today.

Tenant isolation (RLS)

Every tenant's data is isolated at the database layer by PostgreSQL row-level security. The application connects as a restricted, non-superuser role to which RLS policies actually apply — so one workspace can never read another's data.

Authentication & MFA

Passwords are hashed; optional multi-factor authentication uses encrypted secrets. Sessions use short-lived access tokens with refresh-token rotation.

Encryption in transit

Traffic is encrypted in transit. Uploaded files are stored in private object storage with no public URLs.

Access control & quotas

Role-based access control (RBAC) gates every endpoint; platform-operator functions are restricted to dedicated roles. Rate-limiting and per-tenant usage quotas are enforced server-side.

Upload safety

Uploaded documents are validated by MIME type, file signature (magic bytes), and size limits before processing — declared-as-text binaries and oversized files are rejected.

Audit logging

An append-only audit log records significant actions (auth, corpus changes, releases, billing) with actor and forensic metadata.

Monitoring & health

Prometheus metrics, liveness/readiness probes, Grafana dashboards, and alerting on error-rate, latency, and resource pressure keep the platform observable.

Backups & disaster recovery

Database backups with integrity checksums, plus a disaster-recovery drill that restores into a throwaway database and verifies recovery — an untested backup is not a backup.

Responsible disclosure

We welcome good-faith security research conducted with prior authorization and responsible disclosure. We do not claim any specific certification (e.g. ISO 27001 or SOC 2) unless and until independently audited. See our Acceptable Use Policy and DPA.