MeridiansMeridians

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. GatewayConsoleShell builds 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 touches instanceMembers — this is platform authority, not in-instance roles.
  • /domain here ≠ the instance /domain/[id]. The gateway's /domain (Hosted runtime/address/usage) collides with an instance route by path; GATEWAY_EXACT_PAGES disambiguates 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.