Skip to content

Generate an Evidence Pack

A distributed topology is not the same as a large attack surface. During evaluation that distinction is easy to lose: reviewers see several services, Postgres, and Redis, and assume proportional risk. The evidence pack closes that gap by turning the architecture into demonstrated assurance — a single, reproducible bundle a security or compliance reviewer can run, read, and attach to an approval record.

The pack does not add new trust claims. It runs the verifiers Caracal already ships and captures their output in one place, mapped to the written assurance case in governance/THREAT_MODEL.md.

PillarCheckDemonstrates
Supply chainRelease provenanceEvery image you run was built by the Garudex-Labs/caracal release workflow and carries provenance and SBOM attestations.
Enforcement (data)Schema enforcementRow-level security is fail-closed, audit is append-only, and policy versions are immutable — enforced by the database independent of application code.
Enforcement (runtime)Runtime readinessEvery mediation point (API, STS, Gateway, Audit, Coordinator) is live and answering readiness.
Assurance caseThreat modelThe written threat model the checks above exercise, captured with the pack.

Run the generator against a deployment. Each check runs only when its inputs are present, so the pack is useful at any stage of evaluation and records which checks were skipped and why.

Terminal window
# Supply-chain provenance (release tag + gh CLI authenticated)
export CARACAL_VERSION=<release-tag>
# Schema enforcement (point at the running database)
export PGHOST=<host> PGPORT=5432 PGUSER=caracal PGDATABASE=caracal
export PGPASSWORD=<password>
# Runtime readiness (defaults to 127.0.0.1)
export CARACAL_SMOKE_HOST=<host>
bash infra/scripts/evidencePack.sh

The pack is written to evidence/caracal-evidence-<UTC>/:

  • REPORT.md — summary table and per-check narrative with status and links.
  • raw/ — the unmodified output of each verifier, including a copy of the threat model.

The generator exits non-zero if any executed check fails, so it can also gate CI or a release-readiness review. Skipped checks do not fail the run.

VariableUsed byEffect when unset
CARACAL_VERSIONRelease provenanceProvenance check is skipped.
CARACAL_REGISTRYRelease provenanceDefaults to ghcr.io/garudex-labs.
PGPASSWORD (+ PG*)Schema enforcementSchema check is skipped.
CARACAL_SMOKE_HOSTRuntime readinessDefaults to 127.0.0.1.
OUT_DIRAllDefaults to ./evidence.

Generated packs are ignored by Git. Treat a completed pack as evidence: store it with the change record or compliance artifact it supports.