CP15 · Implemented

Audit

Trestle records append-oriented facts for administrative and security-relevant operations with action, target, outcome, request correlation and structurally redacted detail.

Inspect and export

GET /admin/v1/audit
GET /admin/v1/audit?action=record.update

The dashboard presents a bounded 200-row timeline and exports the same authorized JSON representation. Request IDs correlate a fact with structured server logs.

Redaction

Detail keys containing password, secret or token are replaced before persistence. Application code should still avoid placing unnecessary sensitive material in diagnostics.

Integrity boundary

Audit rows share the operator-owned SQLite database. They improve attribution and incident reconstruction but are not tamper-proof against a host administrator. Export them to independently controlled storage when that threat matters.

Provider storage

Audit facts, filtering, export and redaction behave identically on both providers. The operations summary reports provider facts on both engines: SQLite reports page-based size and PostgreSQL reports pg_database_size(current_database()).