Audit Log

Every dashboard write is recorded: searchable, scoped, and inspectable.

What's logged

  • Feature toggles (feature.toggle)
  • Per-feature config writes (verification.config, economy.currency, …)
  • Embed builder sends (embed.send, embed.template.save)
  • Role-menu / reaction-role mutations
  • Scope grants on dashboard roles
  • Manual economy adjustments, with amount + reason

What each entry contains

FieldSource
actor_user_idThe OAuth-authenticated Discord user.
actionStable string identifier (e.g. tickets.panel.toggle).
target_type / target_idOptional pointer to the affected row (panel id, role id, …).
before / afterJSONB snapshots of the row pre- and post-write.
ip_addressFrom X-Forwarded-For when set, otherwise the socket peer.
user_agentTruncated to 512 chars.
created_atUTC.

Where to read it

  • Server overview → Audit log (last 200, all features).
  • Each feature detail page shows the last 10 entries scoped to that feature.
  • JSON: GET /api/server/<id>/audit-log?feature=<key>&limit=200.
Confirm