Built to fail closed.
Seal is fail-closed by design: an unknown, missing, or malformed input always resolves to the safe verdict, and every decision is written to an append-only, hash-chained audit trail in the same transaction as the state change.
Fail closed, always
Atomic state + audit
Append-only by construction
Tenant isolation
Hostile-input handling
Verifiable on demand
Reconstruct any decision, end to end.
Every request carries its full history: created, escalated, and resolved — each event stamped, hash-linked, and attributable to an agent, a policy, and a human reviewer. Nothing is edited after the fact because nothing can be.
Security FAQ
What does fail-closed mean in practice?+
If Seal cannot confidently produce a permissive verdict — because input is unknown, missing, malformed, or the request expired — it returns the safe verdict and the gated action does not run. The permissive path is never the default.
How is the audit log tamper-evident?+
Each audit event is hash-chained to the previous one and committed in the same transaction as the state change it records. There is no update or delete path on the log. Altering any past event breaks the hash chain, which verification detects.
How is tenant data isolated?+
Every row — approvals, keys, audit events — carries an org id, and every query is org-scoped. Access is never granted on an id alone, and API keys are scoped to least privilege.