Keeps a panel activity log and provides a page to browse, filter and export it.
Entries are stored as JSON lines in a file, one object per line, each carrying a UTC timestamp, action name, username, free-text detail, IP address and a severity derived from a fixed action-to-severity table (logins, domain and database changes, plugin installs, file deletions, config changes, firewall changes and similar). Reading supports filtering by user, exact action, severity and an age window in days, with a result limit. Alongside the browser there are summary statistics (total entries, entries today, warning count) which also drive the sidebar badge and dashboard widget, a CSV export covering the last N days, pruning by a configurable retention period (also applied weekly by a cron job), alerts on critical events (2FA disabled, repeated failed admin sign-ins, log deletion, app installs/removals, server identity changes), and a full clear.
Other plugins or panel code can append to the log by calling the log_action action. If the log file is missing or a query returns nothing, the plugin falls back to reading the panel's built-in AuditLog model so the page is not empty on a fresh install. Worth being clear about the limitation: this plugin does not instrument the panel by itself — what shows up is whatever was explicitly logged plus whatever the fallback model already records. All actions are admin-gated.
Use VinzaPanel's REST API to download and install this app programmatically.
POST /plugins/api/download/audit-log/ Content-Type: application/json { "panel_version": "1.0.0" }
{
"success": true,
"plugin_id": "audit-log",
"version": "1.0.4",
"download_url": "..."
}