Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Audit actions

The audit log records who did what, to what, from where, and how it ended: on the Audit page of the web UI (with the audit permission), through GET /api/v1/audit, and with ductus audit export on the server. Each row has one of these actions. Rows are kept audit.keep (six years unless ductus.yaml says otherwise).

ActionWhat happened
session.sign_inSomeone signed in to the web UI, with a password or a token.
session.failedA sign-in was refused: a wrong password, a locked or disabled account, or a name nobody has (recorded as anonymous: what was typed isn't kept, it may be a password).
session.sign_outSomeone signed out (or signed out their other sessions).
password.changeSomeone changed their own password.
password.resetAn admin set another person's password (they must change it at their next sign-in).
user.createAn account was made: by an admin, at the command line, at a directory person's first sign-in, or by the engine for a directory person who owns something ("reason": "owner").
user.updateAn admin changed an account's role, permissions, name or email.
user.disableAn admin disabled or enabled an account (a disabled account's sessions and tokens stop at once).
user.unlockAn admin unlocked an account locked by wrong passwords.
user.directory_changeThe directory changed an account: its role, permissions, name or email, a rename, a sign-in name moved aside for someone new, or let it back in.
user.directory_refusedThe directory said no to an account (removed from the groups, disabled or deleted): its sessions and tokens stopped.
token.createAn API token was made (by an admin, at the command line, or by a person for themselves).
token.revokeAn API token was revoked.
message.payload.readSomeone read a message's payload (what it contains), written before it was shown; one row per person and message per audit.payload_read_window.
message.releaseSomeone resent a message's quarantined deliveries.
message.replaySomeone sent a message again to a destination that had already had it (sent or filtered).
message.editSomeone corrected a message and sent the corrected copy in its place.
message.dismissSomeone closed a quarantined delivery without sending it, with a reason.
destination.pauseSomeone paused a destination (with a reason, or added one later).
destination.resumeSomeone resumed a paused destination.
engine.drainSomeone started a drain: the engine stopped taking messages to deliver what it has.
engine.resumeSomeone ended a drain: the engine takes messages again.
retention.changeThe engine started applying a new retention to an interface's stored messages.
retention.confirmSomeone confirmed a shorter retention, which deletes messages past the new window.
doctor.runSomeone ran the connection checks from the web UI or the API.
audit.exportSomeone exported the audit log.
alert.ackSomeone acknowledged an alert: they're on it, and reminders stop.
alert.silenceSomeone silenced an alert (or a destination before planned work), with a reason and an end.
alert.unsilenceSomeone ended an alert's silence early.
alert.testSomeone sent a test notification to a channel.
engine.startThe engine started, with its version and how the previous run on this host ended (a start without a stop before it is a crash).
engine.stopThe engine stopped cleanly (or handed over to a new engine).
engine.handoverA new engine took over from the running one (systemctl reload: an upgrade or a deploy), with both versions and how long sending paused.
engine.refusedA start was refused: another live engine runs some of its interfaces, its lanes would strand waiting messages, or a handover would lower lanes.
interface.stoppedAn interface's code was stopped (it ran away or ran out of memory): its messages wait.
interface.partitions_raisedAn interface started with more lanes while messages waited: a key's new messages may pass its older ones until those are sent.