Skip to main content
The Audit log records every sensitive admin action. It’s append-only — you can read it but not edit or delete entries.

What’s logged

ActionWhen
users.createNew user created
users.updateUser edited
users.enable / users.disableActivation toggled
roles.saveRole created or edited
timebank.updateTime-bank balance adjusted
rules.updateCustomer rule changed
smtp.updateSMTP settings saved
password.reset_requestedUser requested password reset
Plus more added over time.

The table

Path: /app/admin/audit. Shows the most recent 200 entries with:
  • When — timestamp, local time
  • Actor — user who performed the action (or “System” for automated)
  • Action — the action code
  • Resource — type + ID of the object affected
  • Data — JSON snapshot of what changed

When to check the audit log

  • After a dispute — someone claims their balance was wrong. Check who last changed it.
  • Security review — look for unexpected actions, unusual hours, unfamiliar actor IDs.
  • Training — see how a new admin has been using the system.
  • Compliance — show an auditor the history of role changes or SMTP config changes.

What’s not logged

  • Normal employee actions (creating a trade, requesting PTO) — those have their own records in their respective tables
  • Sign-in events (Supabase Auth handles those separately)
  • Data reads (only writes/changes are logged)

Required permission

users.manage — Admin only by default. The log has its own RLS policy that mirrors this.
Don’t rely on the audit log as your only copy of history. It’s easy to forget to backup. For compliance-critical workflows, export the log regularly or replicate the audit table to your org’s SIEM.