Bichon Docs
Compliance Suite

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:

SectionContents
integrityLatest integrity checks and results
legal_holdCurrently held accounts
exportsExport jobs and their verification status
approvalsDual-control request history and pending items
timestampsTimestamp anchoring history
auditAudit 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 text
  • audit-chain.json — the server's chain-verification result and the digest rule
  • holds.json — legal-hold cases, active and released, with case references
  • accounts.json — per-account retention policy (retention_days, min_retention_days) and hold flag
  • integrity.json — latest integrity run and total run count
  • timestamps.json — RFC 3161 anchors, including tokens when available
  • manifest.json — SHA-256 and byte length of every other file
  • README.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_DAYS default)
  • 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 in
  • compliance:audit — read the compliance dashboard and audit log
  • approval: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.

On this page