feat(web): admin backoffice — meshes, sessions, invites, audit, overview
Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
Four new admin routes backed by the mesh API modules: - /admin/meshes — paginated data-table (name, owner, tier, transport, members, created). Tier + transport multiSelect filters. - /admin/meshes/[id] — detail page: owner row + 4 live sections (members, presences, invites, last 50 audit events). - /admin/sessions — live Claude Code WS presences. Status filter, pulse dot for working sessions, disconnected badge. - /admin/invites — invite tokens w/ status derived client-side (active/revoked/expired/exhausted). - /admin/audit — metadata-only event log, event-type + mesh + date filters. Overview page at /admin rewritten to 6 summary cards (users, orgs, customers, meshes, sessions, messages 24h) joining the base /admin/summary and /admin/summary/mesh endpoints. Sidebar navigation gains a second "mesh" group with the four new entries. paths.ts extended with admin.meshes / sessions / invites / audit. All UI reuses @turbostarter/ui-web/data-table — columns.tsx + thin *-data-table.tsx wrapper per the existing users pattern. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,6 +54,19 @@ const pathsConfig = {
|
||||
index: `${ADMIN_PREFIX}/customers`,
|
||||
customer: (id: string) => `${ADMIN_PREFIX}/customers/${id}`,
|
||||
},
|
||||
meshes: {
|
||||
index: `${ADMIN_PREFIX}/meshes`,
|
||||
mesh: (id: string) => `${ADMIN_PREFIX}/meshes/${id}`,
|
||||
},
|
||||
sessions: {
|
||||
index: `${ADMIN_PREFIX}/sessions`,
|
||||
},
|
||||
invites: {
|
||||
index: `${ADMIN_PREFIX}/invites`,
|
||||
},
|
||||
audit: {
|
||||
index: `${ADMIN_PREFIX}/audit`,
|
||||
},
|
||||
},
|
||||
marketing: {
|
||||
pricing: "/pricing",
|
||||
|
||||
Reference in New Issue
Block a user