Auth & access surfaces [UI]
From the Meridians Wiki · Public · Maintained · joint
The sign-in and credential surfaces — the doorway into an instance and the gateway. One shared two-panel frame (AuthShell) hosts the caller's controls; distinct flows sit behind it for members, Directors, and MCP credentials. Auth is local-first; the control plane is a separate, non-blocking layer.
flowchart TB
Shell["**AuthShell** — two-panel frame<br/>(welcome panel + caller's controls, cosmos backdrop)"]
Shell --> SignIn & Portal & Central
SignIn["**SignInView**<br/>gateway login (Supabase)"]
SignIn -.->|"reset"| SetPw["SetPasswordCard"]
Portal["**UserPortal**<br/>signed-in menu: profile · settings · sign-out"]
Central["**DirectorCentralOnboarding**<br/>Director welcome / seeding"]
subgraph Creds["credential surfaces (separate from sign-in)"]
direction TB
Mcp["**McpConnectModal**<br/>local stdio vs remote HTTP relay"]
Prof["GatewayProfileModal · CredentialModal"]
end
Portal -.-> Creds
- One frame, many callers.
AuthShellis the shared violet-welcome + controls layout;SignInView,UserPortal, andDirectorCentralOnboardingall render inside it, so the doorway looks the same everywhere. - Local-first, gateway-separate. The member / dev sign-in path never calls the gateway; the Supabase session is the platform-account layer. The one exception is the Electron Director sign-in, which is license-gated (fail-closed, cache-honouring). Never put a gateway call in the member sign-in path.
- MCP credentials are their own flow.
McpConnectModalsets up a headless connection — local loopback (stdio) vs a remote gateway-relayed HTTP endpoint with a minted Bearer token. Distinct from human sign-in (mcp-runtime).
Where it lives: src/features/access/auth/ — AuthShell.tsx · UserPortal.tsx; src/features/gateway/auth/ — SignInView.tsx · SetPasswordCard.tsx; src/features/access/ — McpConnectModal.tsx; src/features/access/onboarding/DirectorCentralOnboarding.tsx. Routes: src/app/(gateway)/{signin,access}/. The decision ladder: access-gate; the hosted session: hosted-signin.