Skip to Content
Wisteria is in beta — these docs are evolving fast.
Super AdminAudit log

Audit log

Wisteria records every consequential action — content changes, approvals, user changes, settings updates, integration connects — in an audit log. The viewer lives at Audit Log in the sidebar.

Available to: super_admin and auditor only.

What’s logged

Every entry has:

  • Action — a dotted-namespace string (e.g. module.publish, user.role_change, approval.approve)
  • Actor — the user who triggered the action
  • Resource type + Resource ID — what was changed
  • Resource name snapshot — the name of the resource at the time of action (so renames don’t lose history)
  • Timestamp

Optional extras: a meta blob with action-specific details (e.g. for user.role_change, the previous and new role values).

Filtering

The page has three filters:

  • Action — grouped dropdown organised by Module / Course / User / Department / Assignment / Company / etc.
  • Actor — pick a specific user
  • Date range — From and To, inclusive

Apply applies filters. Clear resets everything to no-filter.

Pagination

50 rows per page. Use the chevron buttons at the bottom to page through. The counter shows X–Y of Z entries.

Exporting

Click Export to Excel to download up to 2,000 matching rows as .xlsx. The export respects whatever filters are currently applied — so if you want everything, clear filters first.

For full bulk export beyond 2,000 rows, contact support.

Action vocabulary

Common actions you’ll see:

ActionMeans
module.createNew module created (typically inside a new course)
module.publishModule published — visible to learners
module.archiveModule archived
module.submit_for_approvalTrainer submitted for review
module.approveReviewer approved a module
module.rejectReviewer rejected a module with feedback
module.resubmit_after_rejectionTrainer resubmitted after fixing
course.createNew course
course.publishCourse published
user.createNew user added
user.role_changeRole changed (meta has before/after)
user.deactivateUser deactivated
user.deleteUser permanently deleted
department.create / .update / .deleteDepartment changes
assignment.create / .deleteCourse assigned / unassigned
company.updateWorkspace settings changed
integration.connect / .disconnectIntegration connected or removed

The full list is searchable in the dropdown. Any action not in the dropdown is from a route that hasn’t been added to the filter list yet — file a bug if you find one.

Retention

Audit log entries are retained indefinitely by default. Wisteria doesn’t auto-delete history.

If your organisation has a data retention policy that requires deletion after N years, contact support — we’ll set up a retention rule for your workspace.

What’s NOT in the audit log

  • Read events — viewing a course, listing the user roster, etc. Audit log captures changes, not access.
  • Learner activity — quiz attempts, flashcard completions, etc. Those go in activity_log (a separate learner-event table). Available via the Analytics page.
  • Sign-in events — Supabase Auth tracks these; they’re not duplicated into Wisteria’s audit log.

Why the audit log matters

For compliance-driven customers, the audit log is the answer to:

  • “Who approved this content for production?” — find the module.approve entry.
  • “When was this learner removed?” — find their user.delete entry.
  • “Who changed this person’s role from learner to trainer?” — find the user.role_change entry with their ID.

For everyone else: it’s the answer to “what happened” when you’re trying to retrace something.

Last updated on