Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Audit Log

Every administrative change is recorded in an append-only log. Handlers do not opt in.

What an entry holds

FieldValue
WhenThe time of the change.
OperatorThe username, kept on the entry after the account is removed. A system change records the process name.
ActionA dot-keyed name: backend.role.update, backend.plugin.disable.
TargetA type, id and name, when the action has one.
ChangeRecorded
A role created or editedYes
A user’s permissions changedYes
A password changedYes, as backend.user.password_change, never the password
An operator created from setup or lat admin createYes, as backend.user.create, credited to the process
A plugin enabled or disabledYes
A settings model savedYes, without the contents
A record created or edited through a resource formYes
An operator’s own preferencesNo

View it

Settings → System → Audit Log, newest first, read-only. Gated by backend.view_audit_log; superusers hold it.

The access log

Settings → System → Access Log, newest first, read-only, gated by backend.view_access_log. Sign-in events, with the address and client they came from:

EventRecorded when
login_successA sign-in succeeded.
login_failureA password was wrong, or the username unknown.
locked_outAn attempt was refused by the lockout.
logoutAn operator signed out.
password_changedAn operator changed their own password.

Your own resources

A Resource with a form is audited as backend.<entity>.create and backend.<entity>.update, attributed to the signed-in operator, through a model listener.

A screen of your own records an entry with the builder:

use laterite_auth::AuditEntry;
use laterite_core::Actor;

let actor = Actor::user(operator.id, &operator.username);
auth.record_audit(
    AuditEntry::new(&actor, "acme.posts.publish").target("post", &post_id, Some(&post.title)),
)
.await?;

The audit write runs after the change commits. A failed audit write is logged; the operator’s action stands.