Security
Built for firms that can't take chances with client data
Every control on this page is implemented and tested in our codebase — not a claim on a slide. See our FAQ for plain-language answers to the questions your security team will ask.
AES-256 Encryption at Rest
Your contract text and every piece of derived analysis that can contain a quoted excerpt — findings, AI explanations, review notes — are encrypted with AES-256-GCM before they touch the database. A fresh random nonce is generated for every write, and the encryption is authenticated: any tampering with stored data is detected, not silently accepted. Keys support rotation without downtime.
Encrypted in Transit
Connections are secured with TLS end-to-end. We enforce HTTPS with HSTS, plus a strict Content-Security-Policy, clickjacking protection, and MIME-sniffing protection on every response — the standard security-header set security reviewers check for, all present by default.
Two-Factor Authentication
Every account can require a code from an authenticator app (Google Authenticator, Authy, 1Password) in addition to a password, with single-use recovery codes for backup access. Passwords themselves are salted and hashed with PBKDF2-HMAC-SHA256 — never stored or logged in plaintext.
Strict Access Control
Every contract and playbook lookup is scoped to your account — there is no code path where one customer's login can reach another customer's documents. Administrative access is role-based and individually granted, never a shared password, and every admin action is logged.
A Hard Boundary Around AI
Our deterministic rule engine detects every risk — the AI layer only explains findings the engine already found. It is architecturally incapable of receiving your full contract text: the function that talks to the AI provider will raise an error if anyone ever tries to pass it the whole document. Only short, pre-identified excerpts are sent, and those are screened for manipulation attempts before they go out.
Deterministic, Traceable Findings
Every finding is produced by a rule with a traceable ID, a matched excerpt, and a rationale — recorded exactly as computed, alongside the rule-engine version used. The same contract always produces the same findings. No probabilistic variance in what counts as a risk.
Hardened Uploads
Every upload is validated against its claimed file type at the byte level (not just the filename), checked for zip- and PDF-bomb characteristics, and sanitized before storage — regardless of what a browser or a malicious upload claims about itself.
Full Audit Trail
Logins, uploads, exports, deletions, sharing activity, playbook changes, and admin access — every one is recorded with who, what, and when in an append-only log, so unusual activity is investigable, not invisible.
You Control Deletion
Delete any single contract, permanently, at any time — the text, findings, and any share link created from it are removed in one action, not hidden behind a flag. Deleting your account removes everything associated with it. Every deletion is logged.
Protected Sharing
When you share a report link, you control it: optional password protection, an optional expiration date, an optional maximum number of views, and revocation at any time. Every access to a shared link is logged.
Have questions your security team needs answered?
We'd rather give your security or IT team a straight, technical answer than a marketing one. Reach out and we'll walk through our architecture directly.
Talk to Us