Skip to main content
The provenance endpoint assembles a complete, tamper-evident record of how one decision was made: the (PII-redacted) decision trace, hashed model snapshots, the effective-rules cascade per selected offer, the hash-chained audit log, the build identity (git + container image + SBOM, optionally with a SLSA attestation), and the latest fairness slice. The whole bundle is canonicalized and hashed, and — when COSIGN_KEY is configured — signed with cosign.

GET /api/v1/decisions//provenance

Return the provenance bundle for a decision trace. Admin only.

Path parameters

Response 200

Notes on the bundle:
  • decisionTrace is PII-redacted before it leaves the server.
  • modelSnapshots carry a SHA-256 hash of each referenced model’s state, not the state itself.
  • auditLog rows are hash-chained (prevHashintegrityHash) so tampering is detectable.
  • buildIdentity fields come from deployment env vars (GIT_SHA, IMAGE_DIGEST, SBOM_DIGEST_SHA256, …); slsaAttestation is populated only when the git + image identity is fully present.
  • fairnessSlice is the latest fairness_evaluate / fairness_report audit row for the tenant, or null.

Response headers

The bundle is canonicalized (stable key order) and SHA-256 hashed before signing, so the digest is reproducible across pods.

Errors

A human-readable, LLM-generated explanation for the same decision is available at POST /api/v1/decisions/{id}/narrative (customer / agent / regulator modes). It is documented on the Decision Traces page.