Dashboard: Security Overview
Route: /security/overview (SecurityOverview.tsx)
What this screen is
A page header plus a single card that dumps the raw JSON response from GET /security/overview via syntax highlighting. There is no API-key list, no create/rotate/revoke UI, and no RBAC-matrix visualization on this screen — use the CLI (hoziron-cli auth) or the API (reference/api/auth.md, reference/api/security.md) for those.
What it actually shows
GET /security/overview is a console-surface-internal route (hoziron-console/src/routes.rs, distinct from the main API's GET /security/status) that calls the same platform.security_status() the API surface does. The JSON rendered is the same shape reference/api/security.md documents:
{
"audit_enabled": true,
"audit_entries": 1247,
"auth_mode": "api-key",
"tls_enabled": true
}
auth_mode is "none", "api-key", or "oidc".
RBAC in the console: display-only, not enforcement
The console's Shell.tsx / NavFooter.tsx fetch the current identity's role and display it as plain text next to the user's identity (e.g. viewer · Hoziron). There is no conditional rendering anywhere in the frontend keyed on role — no nav item, button, or route is hidden or disabled based on the caller's role. Enforcement is entirely server-side: a lower-privileged user sees every screen and control, and gets a 403 from the API when they try an action their role doesn't permit. The console does not pre-emptively hide what a viewer can't do — see reference/api/security.md for the actual role/permission matrix this maps to.
Related:
- reference/api/security.md —
/security/status,/security/audit,/security/verify, RBAC role matrix - reference/api/auth.md — API key management
- reference/cli/auth.md —
hoziron-cli auth(the actual API-key CRUD surface today) - authentication.md — the console's own login flow
- audit-trail.md — the full audit log viewer, a separate screen from this one