The audit log
What is recorded, what is deliberately never recorded, the platform-admin bypass trace, and how to read the log.
Organization → Audit.
The audit log is append-only. No route updates or deletes an entry, and in production the application's database role has no permission to do either.
It is not claimed to be immutable — true immutability is a database privilege question, not an application one. What is true is stated, and nothing more.
It is tamper-evident, and never silently incomplete: an event the database refuses is spooled and replayed, settled events are sealed into a hash chain, the chain can be streamed to your own systems, and a signed evidence package can be verified with nothing but the file. The Integrity, Streaming and Exports tabs on this page are described on The audit trail as evidence.
What every entry holds
| Field | Notes |
|---|---|
| Event | The event name. |
| Label | The human reading of it. |
| Entity | What it was about — the type and the id. |
| Organization and workspace | |
| Who | The person, by name, falling back to their email, falling back to system. |
| IP address | |
| User agent | |
| Metadata | A flat map of short values. |
| When |
The IP address uses the forwarded header only when the server is explicitly configured to trust its proxy; otherwise it uses the socket address, which cannot be forged.
What metadata never contains
Metadata is deliberately small. Nulls are dropped, any nested object is replaced with the literal [object], and every value is truncated to 200 characters.
Never a payload dump — a prompt, a diff or a file body must not land here, both for size and because this table has no retention policy.
Secrets are never recorded. The audit log records that a secret changed, not what it became. Turning off source retention records the count of excerpts purged, never their content. A Stripe key is audited as set, cleared or unchanged — not even its last four characters.
The platform-admin bypass
A Madebook platform administrator can reach every organization. That is a deliberate capability, and so is the trace of it.
The audit page says so at the top:
Append-only. A platform admin acting inside an organization they are not a member of is recorded here too — that bypass exists on purpose, and so does the trace of it.
Every write a platform admin makes outside their own memberships is recorded as "Platform admin acted inside an organization they are not a member of", with the capability used. Reads are not audited.
What is recorded
The declared events cover, broadly:
Access — sign-in, sign-out, session revocation, the platform-admin bypass.
Organizations and membership — created, updated, deleted; a member added, removed or re-roled; ownership transferred; an API token created or revoked.
Governance — a provider, model, client or compliance profile changed; a policy changed; a violation recipient set; telemetry changed; the record exported; a violation resolved.
Workspaces — created, updated, deleted; members added, removed, re-roled; ownership transferred.
Workspace context — updated.
Repositories — connected, disconnected, indexed, analysed.
Skills — created, a version published, archived, enablement changed, promoted, promotion blocked.
Architecture and decisions — a constitution derived, approved or amended; a deviation resolved; a decision created or updated.
Missions and supervision — a mission created, attested, shipped, approved or generated; a plan created; a session registered or paused; an attention item resolved; a capsule reviewed.
AI — a run started, completed or failed; feedback recorded.
Platform — an integration created or removed; retained prompts purged. Provider keys and models are no longer Madebook's, so changes to them are recorded at the Bookbag account service rather than here.
Reading it
The organization's audit page carries a search across the label, the actor, the entity and the metadata, plus filters by workspace and event type. The event-type list is only the types that have actually occurred there — a dropdown full of options that always return nothing is worse than a short one.
The workspace is named on every row.
Clicking a row opens the full record behind it: the rule, the change, the session, the brief, the runs, the timeline — downloadable.
A second, deployment-wide view lives at Admin → Audit for platform administrators, with a single event-type filter.
A note on the filters. The audit read looks at a large window of recent events and filters within it. A filter that matches nothing recent can return empty even where older matching rows exist. For a complete record, use the organization's Export the record under Governance → Settings.