Skip to main content
Version: 1.0.0

Audit Event Reference

Only an Administrator can open Audit. The event-type filter lists all 42 event types the platform can record, including the ones that have not happened yet on this device, so a filter never silently has nothing behind it.

Records can be filtered by time range (last 24 hours or last seven days), user, role, event type, and result. Every record names who performed an action, when, what it targeted, the result, and—when it failed or was refused—why.

Row format​

FieldMeaning
actorUSER means a signed-in account performed the action. SYSTEM means the platform recorded it itself—startup, scheduling, or service credential handling—with no account behind it.
resultSUCCESS: the action completed. FAIL: it was attempted and failed. DENY: permissions or device state stopped it before it was attempted. ALLOW: an observation, not a refusal.
reason_codeMeaningful only when the result is not SUCCESS. OBSERVED is the fixed value on observational rows.
target_idWhat the event acted on: an account ID, Agent name, Task ID, model name, or retention period.
producerThe component that recorded it, such as dashboard.auth or dashboard.retention. Task events leave it empty.

The actor's display name and role are read from the account table when the record is written, never carried in with the event, and an event type the platform does not recognise is discarded.

Sign-in and sessions​

EventTriggerresult / reason_code
Signed inA sign-in attemptSUCCESS; DENY = LOGIN_RATE_LIMITED for too many attempts from one source, INVALID_CREDENTIALS, or an account-specific blocking code. If the account cannot be identified, the actor is SYSTEM.
Signed outAn account signs outSUCCESS
Session endedA session is invalidatedSUCCESS = SUPERSEDED_BY_NEW_LOGIN when a new sign-in replaces the old session, or ADMIN_FORCED when an Administrator forces the sign-out; detail.sessions holds how many were ended. DENY = FIXED_ADMIN_REQUIRED when the actor is not the bootstrap admin.
Expired session reusedA reconnect with an expired session is blockedDENY only
Password changedAn account changes its own passwordSUCCESS; DENY = PASSWORD_CHANGE_RATE_LIMITED, or INVALID_CREDENTIALS when the old password is wrong.
Administrator password resetThe administrator password is reset locally on the deviceSUCCESS / LOCAL_BREAK_GLASS, actor SYSTEM
Default administrator createdThe bootstrap admin is created during first startupSUCCESS / DEFAULT_ADMIN_CREATED, actor SYSTEM

Accounts and preferences​

EventTriggerresult / reason_code
Account createdAn account is createdSUCCESS; FAIL = the username is taken, REQUEST_INVALID, ACCOUNT_INVALID, AGENT_NOT_FOUND when an assigned Agent does not exist, or an authorization code.
Account updatedA role, display name, or enabled state changesSUCCESS; DENY = FIXED_ADMIN_PROTECTED when the bootstrap admin cannot be changed, or SELF_DISABLE_FORBIDDEN. FAIL = REQUEST_INVALID or ACCOUNT_INVALID.
Account deletedAn account is deletedSUCCESS; detail records the username, role, and reassigned resources. FAIL carries an authorization code.
Preferences updatedNavigation, theme, or language is changedSUCCESS; FAIL = REQUEST_INVALID or PREFERENCE_INVALID.
Invitation email sentAn invitation email is sentSUCCESS; FAIL carries the delivery failure code.

Access control​

EventTriggerresult / reason_code
Agent access grantedAn Agent is assigned to an accountSUCCESS, with the account as the target; FAIL = AGENT_NOT_FOUND or AGENT_INVALID.
Agent access revokedAn assignment is removedSame as above.
Access deniedA signed-in account is refused a routeDENY / AUTHORIZATION_DENIED only, with the route as the target.

Agents and models​

EventTriggerresult / reason_code
Agent importedAn Agent package is importedSUCCESS; FAIL carries the package validation code, defaulting to PACKAGE_FAILED. When a scan result exists it is recorded in detail.risk.
Agent updatedA delta ZIP is merged into an existing AgentSame as above.
Agent removedAn Agent is deletedSame as above.
Agent model changedAn Agent is pointed at a different modelSUCCESS; DENY = MODEL_INVALID or another applicable code, with the model name as the target.

Tasks and materials​

EventTriggerresult / reason_code
Material uploadedA Material ZIP is extracted into the Agent's materials/SUCCESS; FAIL carries a workspace error code.
Task createdA Task Markdown file is addedSUCCESS; FAIL carries a format or path validation code, and detail.filename holds the rejected filename.
Task deletedA Task Markdown file is deletedSame as above.
Task startedA Task is started from the Dashboard or through a service credentialSUCCESS records the Task ID; DENY = PLAN_INPUT_INVALID, PLAN_NOT_FOUND, or a dispatch error code. A start made with a service credential is recorded under the Server actor.
Task stoppedA running Task Run is stoppedSUCCESS; FAIL = TASK_STOP_FAILED; DENY = TASK_STOP_INPUT_INVALID, TASK_NOT_FOUND, or TASK_NOT_RUNNING. Stopping a Task someone else started is recorded here too.
Task log not foundA Task log is requested that the account does not own, or that does not existDENY / TASK_LOG_NOT_FOUND only. Both cases share one code so the response cannot reveal whether the Task exists. Reading a log successfully writes nothing.

Main Agent Chat​

EventTriggerresult / reason_code
Chat session openedA chat session is openedSUCCESS, with the first 16 characters of the session key hash as the target.
Chat access deniedAccess to a chat is refusedFAIL = CHAT_SESSION_NOT_FOUND, CHAT_SESSION_NOT_OWNED when the session belongs to someone else, or an authorization code.
Chat request methodA disallowed method is blocked, or the method used is notedFAIL = METHOD_NOT_ALLOWED; ALLOW / OBSERVED is observational, with the method in detail.method.
Chat response fieldsThe first agents.list response of a session is inspectedALLOW / OBSERVED only—observational, with the field names in detail.fields.
Chat connection rejectedA WebSocket connection has an invalid OriginFAIL / ORIGIN_INVALID

Device settings​

EventTriggerresult / reason_code
Data retention changedThe Token & Task Run history period is changedSUCCESS, with DAY, WEEK, MONTH, or FOREVER as the target; FAIL = DATA_RETENTION_INVALID or DATA_RETENTION_UNAVAILABLE.
OverlayFS turned onWrite protection is enabledSUCCESS; FAIL = OVERLAYFS_TASKS_RUNNING when Tasks are still running, or an operation-specific code.
OverlayFS turned offWrite protection is disabledSame as above.
Device rebootedA reboot is triggered from that pageSUCCESS / FAIL
OverlayFS password rejectedThe operating-system password check on that page failsFAIL = OVERLAYFS_RATE_LIMITED after too many attempts, or a verification failure code.

Platform and service credentials​

EventTriggerresult / reason_code
System database backed upAn encrypted backup is created (ENCRYPTED_BACKUP_CREATED), or one is taken before a restore (PRE_RESTORE_BACKUP_CREATED)SUCCESS, actor SYSTEM
System database restoredThe control database is restored from a backupSUCCESS / ENCRYPTED_BACKUP_RESTORED
Old records clearedAudit events and notifications older than 90 days are removed automatically; recorded only when something was actually deletedSUCCESS / RETENTION_POLICY_90_DAYS, actor SYSTEM
Service credential issuedA service credential is issuedSUCCESS, actor SYSTEM
Service credential revokedAn active service credential is revokedSUCCESS
Service credential already revokedAn already-revoked credential is revoked againSUCCESS / ALREADY_REVOKED
Service credential authenticatedA service credential is rejectedDENY only, with the rejection reason. A successful authentication writes nothing: every REST call and every 30-second recheck passes through it, so the rows would be machine keepalive rather than anything a person did.

Two common misreadings​

Editing a Task appears as two rows. A Task definition cannot be changed in place, so an edit is a Task deleted row followed by a Task created row naming the same file.

Success is not always recorded. Reading a Task log you own writes nothing—only the refusal does. The same is true of service credential authentication.