Compliance

The compliance wedge, fail-closed evidence collection, an append-only WORM audit chain, per-tenant encryption, and a signed, OSCAL-exportable evidence pack mapped to named framework clauses.

The Compliance bundle turns the guarantees the other modules already enforce, fail-closed RLS, WORM storage, per-tenant encryption, into something you can hand an auditor: a deterministic, byte-stable evidence pack that maps each control to a cited clause, and a hard block if any control is unresolved rather than a silent guess.

What's in the bundle

  • compliance-core: the evidence engine: typed collectors that flag or resolve a control, a byte-stable evidence pack, and an OSCAL export. Never certifies, every summary line is readiness/posture language only.
  • frameworks-pack: own-authored, clean-room control catalogs for SOC 2, HIPAA Security, and the EU AI Act, crosswalked to each framework's requirement ids.
  • signing-primitive: detached Ed25519 signing over the evidence pack's canonical manifest, with an optional RFC-3161 trusted-timestamp countersignature, shared with the Provenance bundle.
  • audit-worm: the append-only SHA-256 audit chain plus S3/GCS/ R2 Object-Lock WORM storage the evidence cites, shared with the Provenance bundle.
  • retention-runner: the CCPA/GDPR right-to-erasure runner: fans one subject's erasure across every registered store and writes one reason-tagged audit row.
  • alerting: a five-stage alert pipeline (dedup, rate-cap-to- digest, quiet hours, multi-channel send, one audit row), the SOC 2 CC7.2 control.
  • field-crypto: per-tenant field encryption, shared with the AI-Production, Local-first, and Provenance bundles.
  • oscal-spine: the complete OSCAL surface — deterministic assessment-plan, assessment-results, POA&M, catalog, XML, and ISO 27001 SoA exports, plus the pinned NIST 800-53 catalog and OLIR relationship mapping.
  • access-review: audit-prep access-review campaigns — a WORM-logged, per-reviewee attested approve/revoke record over an imported membership snapshot, opened on a jobs-riding cadence and closed on completion or deadline, with any undecided reviewee flagged unresolved rather than auto-approved.
  • risk-register: a framework-agnostic risk register — likelihood × impact scoring with a computed (never freeform) residual, operator overrides recorded as a chained exception rather than an edit, crosswalk pointers into any shipped framework pack, and a risk-treatment-plan evidence artifact.
  • trust-page: the buyer trust-page generator — a self-contained static HTML + JSON page built from an evidence pack and its crosswalk rollup through allowlist-based redaction, hostable anywhere to show prospects a compliance posture.

The bundle also carries the free Apache-2.0 base it builds on (kernel, tenancy-rls, migrate).

Install

export CAISSON_LICENSE_TOKEN=<the token from /dashboard/license>
bunx @caisson-sh/cli@latest --name caisson-app --edition compliance
cd caisson-app
bun install

--edition compliance auto-selects the Compliance bundle's current modules, the command above scaffolds the whole bundle. Add or swap individual picks with --module <id@version>; see Getting started for the full flag reference.

How it composes

compliance-core's collectors run over facts gathered by the other modules, an RLS posture snapshot, an audit-worm chain anchor, a field-crypto key policy, and refuse to guess: a control the collectors can't evidence blocks the pack rather than passing silently. frameworks-pack supplies the clause catalog each control resolves against, and signing-primitive produces the detached signature over the pack's canonical bytes so a third party can verify it wasn't edited after generation. retention-runner and alerting are the two operating controls (erasure, incident notification) the pack cites as evidence of an active program, not just point-in-time posture.

Verifying an exported audit pack

The logical audit pack contains receipts.json, an auditor README, and a signed canonical manifest of every exported file name and SHA-256 digest. It deliberately contains no executable verifier: a program travelling inside the archive it judges cannot establish its own integrity. The seal covers the manifest, so adding, removing, renaming, or substituting any file in the pack breaks the signature.

Verification is out of band by design, and it needs one input the pack cannot supply: the issuer's Ed25519 key fingerprint, obtained through a separately trusted issuer channel. A check that reads the candidate key from the pack itself proves nothing, so verification refuses PASS when that fingerprint is absent or differs from the key inside the pack.

The format is inspectable rather than proprietary. The Apache-2.0 @caisson/kernel builds the canonical manifest and the exact bytes the seal signs (@caisson/kernel/evidence), and checks each row's link recompute, its per-length WORM anchor, and its anchor signature (@caisson/kernel/audit-verify).

The sanctioned runner for that flow is the commercial @caisson/verify-pack. Caisson does not distribute it through a package registry, and it is not part of any bundle or module purchase.

Composing with the base

Every collector reads facts gathered at the tenant boundary @caisson/tenancy-rls enforces: compliance-core never infers a passing RLS control it can't evidence from a live posture snapshot.

Not a compliance certification

The Compliance bundle ships the technical controls the frameworks point at. It does not make an organization compliant; that determination is your organization's and its auditor's to make.

Entitlement

Compliance is a commercial bundle (LicenseRef-Caisson-Commercial). Buy the bundle, or any member module à la carte, a purchase grants the module's entitlement id, checked offline against the license.