Org-scoped data isolation
Every query — runs, datasets, costs, alerts — is scoped to the requesting org, derived from the verified Clerk JWT on every request. In production this is enforced twice: at the application layer, and again by Postgres Row-Level Security policies on every tenant-scoped table, so a bug in application code alone isn't enough to cross a tenant boundary.
Encrypted credentials at rest
Third-party adapter credentials (ad platforms, data warehouses) are encrypted at rest with Fernet symmetric encryption before they touch the database. The encryption key is held as a deployment secret in the hosting platform, never checked into the codebase.
Append-only audit trail
Every mutating request is recorded — actor, org, method, path, status, action, and target — to an append-only audit table. Middleware-level, so it can't be bypassed by adding a new route and forgetting to log it.
SIEM export
Audit events can stream to your existing security stack — Datadog, Splunk, or a generic webhook — so this platform's activity shows up next to everything else your SOC already monitors. The export is built in and stays off until a destination is configured, so ask for it during setup if you need it.
A signed compliance record for every run
Beyond infrastructure security, every decision-pack run exports a model card — inputs, specs, verification results, cost, and stated limitations — signed with an Ed25519 key whose public half is published, so anyone can verify a card offline. See how that works on the Platform page.
What we don't claim yet
We're not SOC 2 certified yet — that's a deliberate near-term priority, not an oversight. If that's a blocker for your evaluation, tell us — it changes our sequencing.
Security questionnaire on your desk?
Send it over — we'll answer directly rather than pointing you at a generic trust-center page.
Talk to us