Gateway admin console [UI]
From the Meridians Wiki · Public · Maintained · joint
The control-plane dashboard: one role-aware chrome (GatewayConsoleShell) wrapping a set of console pages. What a viewer sees depends on their platform role and entitlement (platform-model) — admins run the business, a paying Director manages billing, an unpaid visitor sees plans.
flowchart LR
Shell["**GatewayConsoleShell** — SpineShell frame<br/>role-aware nav rail · learn links · profile footer"]
Shell --> Admin & Owner & Explore
subgraph Admin["admin / owner only"]
direction TB
Users["**/users** → UsersView<br/>Directors, admins & subscriptions"]
Fleet["**/fleet** → FleetView<br/>hosted instances · health · spend"]
Devices["**/devices** → DevicesView<br/>device usage & access points"]
end
subgraph Owner["the account owner (Director)"]
direction TB
Account["**/account** → AccountView + BillingDashboard<br/>billing & subscriptions"]
Domain["**/domain** → DomainView<br/>runtime · address · usage (Hosted)"]
Plans["**/plans** → PlansView<br/>pricing & Director plans"]
end
subgraph Explore["everyone"]
direction TB
Lib["**/exchange** → ExchangeView"]
Pub["white-paper · FAQ · download"]
end
- One shell, role-gated nav.
GatewayConsoleShellbuilds the rail from the viewer's role: the admin group (Users · Fleet · Devices) appears for admins/owners; Account/Domain for a paying Director; Plan (not Plans) for an unpaid visitor who needs to subscribe first. The gateway never touchesinstanceMembers— this is platform authority, not in-instance roles. /domainhere ≠ the instance/domain/[id]. The gateway's/domain(Hosted runtime/address/usage) collides with an instance route by path;GATEWAY_EXACT_PAGESdisambiguates the exact page.- Billing terms stay explicit. "Hosted" is the subscription product; the console reads amounts from the application price book, never Stripe directly.
Where it lives: src/features/gateway/console/ — GatewayConsoleShell.tsx · FleetView.tsx · HostView.tsx · AccountView.tsx; src/features/gateway/admin/ — UsersView.tsx · DevicesView.tsx · BillingDashboard.tsx · PlansView.tsx. Routes: src/app/(gateway)/{users,fleet,devices,account,domain,plans}/. Public surfaces: gateway-public. Enforcement: PERMISSIONS.md 🔒 · access-gate.