The platform admin console is the operator-only surface at
/admin. It's where you manage plans, watch usage across
every workspace, retry failed jobs, and impersonate customers for
support. Only users with role = super_admin can see it —
everyone else gets a 404 (not 403) so the panel doesn't even reveal it
exists.
The flag is the users.role column, cast to the
PlatformRole enum which has two cases:
customer (the default for every signup) and
super_admin. There's no UI to grant it — it's set by hand
via tinker or a one-shot migration on a new deployment:
php artisan tinker --execute 'User::where("email", "you@company.com")->update(["role" => "super_admin"]);'
Demoting works the same way (role = "customer"). There's no
notification — the next page load will show or hide the admin nav.
The admin sidebar lists ten sections:
WorkspaceScope so super_admin can clean up phantom agents whose workspace_id points at a workspace the original customer no longer has as their current context (those agents 404 from the customer-side editor).The admin header (top bar of every admin page) has:
site_health.issues_count.Opt-in via Settings → System → Mail → Daily admin digest (checkbox). When enabled, every super_admin receives an email at 09:00 UTC summarising the previous 24 hours:
The scheduled command is php artisan admin:send-daily-digest;
it short-circuits with an "info" log line when the setting is off,
so you can leave the schedule wired without spamming installs that
opted out. --force bypasses the flag for one-off previews;
--dry-run computes the digest and prints it without sending
mail.
From the Workspaces or Users page, click Impersonate. A few things happen:
You're impersonating X banner appears at the top of every page until you stop.audit_logs so the action is traceable.Click Stop impersonating in the banner to drop back to your admin session. The banner is intentionally hard to miss — there's no shortcut to dismiss it without ending the impersonation.
Press / from anywhere in the admin panel. The global
search dropdown opens with sections:
Each result links straight to the resource. The customer surface has the same search but scoped to the current workspace.
Every admin action — plan create/update/delete, impersonation start/stop,
workspace changes — writes to the audit_logs table for
forensic traceability. There's no UI page for browsing audit logs in
v1; query the table directly when you need to investigate.