Compliance
This is the procurement and audit answer set a platform lead forwards when compliance joins the buying motion.
If you need the CISO-facing control story first, start with Security. If you need the reviewer-facing evidence story rather than the questionnaire, go to AI Audit Trail.
The Procurement Questions This Page Answers
| Question | Current answer |
|---|---|
| Encryption | Customer traffic is served over HTTPS. Provider credentials, MCP secrets, and similar integration secrets use application-layer AES-256-GCM encryption before storage. Stored objects use provider-managed server-side encryption where applicable. Signed compliance exports and integrity checkpoints use Ed25519 signatures. BYOK / KMS / HSM-backed signing is roadmap, not the current SaaS default. |
| Residency | Current SaaS hosting is US-only: Fly.io primary application infrastructure in sjc (San Jose, California) and Supabase PostgreSQL in AWS us-west-1. EU SaaS residency is not currently claimed. Self-hosted, customer VPC, or on-prem deployment can be discussed when required. |
| Retention | Customer-controlled retention; minimum 18 months on SaaS and unlimited retention on self-hosted deployments. |
| SSO | Dashboard authentication is Clerk-backed today, with enterprise SSO available through Clerk when required. SCIM provisioning is not currently claimed. Keel runtime authorization remains policy-scoped by project, workload, and governed action. |
| SOC 2 status | On the roadmap and tentative. The report will be available under NDA on request once issued. |
Evidence Model
A reviewer receives a scoped export or query result keyed by `permit_id`, not screenshots from four systems. The same record can be queried by tenant, workload, policy version, exception path, or time window.
- Artifact shape - signed permit records plus NDJSON export for downstream review or archive.
- Queryable fields - `permit_id`, tenant, workload, provider, model, `policy_id`, `rule_matched`, and exception path.
- Signed fields - permit identifier, issuance time, subject, request metadata, and the decision block that records what rule allowed or denied execution.
Control Mapping
These mappings help a reviewer place Keel in the control stack. They do not claim that Keel alone satisfies a framework outcome.
| Review trigger | Relevant Keel control |
|---|---|
| SOC 2 or ISO review asks who approved a run under which rule | Permit records carry policy version, matched rule, and exception path before execution starts. |
| Identity review asks how access is provisioned and removed | Clerk-backed dashboard authentication, scoped RBAC, and revocable API tokens govern operator and runtime access. Enterprise SSO can be enabled when required; SCIM is not currently claimed. |
| HIPAA or PHI scoping review asks where payload data flows | SDK mode keeps prompt and response bodies in customer infrastructure by default; self-hosted deployment and BAA path exist for PHI workloads. |
| Residency or retention review asks where records live and how long they persist | Current SaaS records are hosted in US infrastructure. Self-hosted or customer-controlled deployment can be discussed for stricter residency requirements; signed export governs how evidence leaves the system. |
Fail-Closed Posture
For audit-evidence workloads, the meaningful default is fail-closed. If policy evaluation cannot complete, the request does not silently pass through and create an evidence gap that someone has to explain later.
That matters in review because a fail-open path turns evaluator failure into an unverifiable exception. Keel keeps policy evaluation errors fail-closed, and lets teams make any narrower operational tradeoff explicitly at the workload level rather than by accident.
NDA Artifact Request Path
Email security@keelapi.com with the customer name, requested artifact set, and deadline. Available artifacts may include the SOC 2 report once issued, security questionnaire responses, DPA, architecture summary, and BAA template when relevant.
Most requests return within one business day. If the reviewer needs the operating model alongside the answer set, forward How It Works with the artifact request instead of rewriting the system explanation in email.