The Enterprise compliance dashboard aggregates the entire compliance posture in one place. GET /api/v1/compliance/overview returns six sections in a single read-only response — each section degrades gracefully to empty and never fails the whole request:
| Section | Contents |
|---|---|
integrity | Latest integrity checks and results |
legal_hold | Currently held accounts |
exports | Export jobs and their verification status |
approvals | Dual-control request history and pending items |
timestamps | Timestamp anchoring history |
audit | Audit log health and retention |
Evidence pack
Export evidence pack builds one ZIP for an inclusive time range:
audit.jsonl— the audit records in sequence order, with the exact stored payload textaudit-chain.json— the server's chain-verification result and the digest ruleholds.json— legal-hold cases, active and released, with case referencesaccounts.json— per-account retention policy (retention_days,min_retention_days) and hold flagintegrity.json— latest integrity run and total run counttimestamps.json— RFC 3161 anchors, including tokens when availablemanifest.json— SHA-256 and byte length of every other fileREADME.txt— offline verification instructions
API: POST /api/v1/compliance/evidence-pack with {"from_ms": …, "to_ms": …}. The range is capped at 50,000 audit records, and the download itself is recorded as an audit.log_queried event. Allowed for system:root and the read-only compliance:audit permission.
Runtime compliance configuration
Compliance settings can be changed at runtime from the WebUI — no restart required — via GET/POST /api/v1/compliance/config:
- Audit retention (
BICHON_AUDIT_RETENTION_DAYSdefault) - Integrity check schedule and report retention
- Timestamp anchoring interval
Runtime overrides take precedence over environment variables and CLI flags (precedence: compliance.* keys in memdb → env/CLI).
Compliance Officer role
Enterprise seeds a built-in compliance_officer role — the separation-of-duties anchor. It carries exactly three permissions:
system:access— log incompliance:audit— read the compliance dashboard and audit logapproval:decide— approve dual-control requests
It is read-only over data and can never place holds or act unilaterally: a compliance officer can audit the administrators, but cannot become one.