{t("Dashboard")}

System overview and recent activity

{t("Users")}

{@user_count}

<.link navigate={~p"/admin/users"} class="text-blue-600 dark:text-blue-400 hover:underline text-sm" > View all users →

{t("Organizations")}

{@org_count}

<.link navigate={~p"/admin/organizations"} class="text-blue-600 dark:text-blue-400 hover:underline text-sm" > View all organizations →

<.icon name="hero-queue-list" class="w-5 h-5 inline mr-1" /> Oban Dashboard

{t("Monitor background jobs and queues")}

<.link navigate={~p"/admin/oban"} class="text-blue-600 dark:text-blue-400 hover:underline text-sm" > Open Oban →

<.icon name="hero-chart-bar" class="w-5 h-5 inline mr-1" /> LiveDashboard

{t("System metrics and performance")}

<.link navigate={~p"/admin/dashboard"} class="text-blue-600 dark:text-blue-400 hover:underline text-sm" > Open Dashboard →

<.icon name="hero-bug-ant" class="w-5 h-5 inline mr-1" /> Exceptions

{t("Tracked errors and exceptions")}

<.link navigate={~p"/admin/errors"} class="text-blue-600 dark:text-blue-400 hover:underline text-sm" > Open Error Tracker →

<.icon name="hero-cpu-chip" class="w-5 h-5 inline mr-1" /> Job Monitoring

{t("Real-time polling and discovery job monitoring")}

<.link navigate={~p"/admin/monitoring"} class="text-blue-600 dark:text-blue-400 hover:underline text-sm" > Open Monitoring →

<.icon name="hero-server" class="w-5 h-5 inline mr-1" /> All Agents

{t("Agents across all organizations and cloud pollers")}

<.link navigate={~p"/admin/agents"} class="text-blue-600 dark:text-blue-400 hover:underline text-sm" > View all agents →

{t("Recent Audit Logs")}

<.link navigate={~p"/admin/audit"} class="text-sm text-blue-600 dark:text-blue-400 hover:underline" > View all →
<.table id="audit-logs" rows={@recent_logs}> <:col :let={log} label={t("Action")}>{log.action} <:col :let={log} label={t("User")}>{log.superuser && log.superuser.email} <:col :let={log} label={t("Target")}>{log.target_user && log.target_user.email} <:col :let={log} label={t("Time")}> {ToweropsWeb.TimeHelpers.format_iso8601(log.inserted_at, @timezone)}
<.pagination meta={@pagination} path={~p"/admin"} />