Skip to content
Version: Current

Use console for common tasks

Use this guide after you can sign in. It covers normal operator work and the checks to make before a state change.

Before changing state, confirm you have the right scope:

  • ops:read can view operator pages and read data.
  • admin is required for state-changing actions.
  • Every non-public console route is gated; missing identity redirects to login and missing scope returns a denial (CONSOLE-BFF-CONTRACT.md:107-111; src/hooks.server.ts:49-61).

If an action is unavailable, check the page state first. Console modules are expected to show an honest unavailable or not-wired state when a backend route is missing (CONSOLE-MODULE-STATES.md:9-19).

Start at the console overview. Use operations and health views to confirm the upstream gateway is reachable before editing seats, offers, or DNS.

Terminal window
curl -sS https://console.tcp.systems/readyz

Observed 2026-11-05 from this workspace (exit code 0): /readyz reported ready:false and origin_bound:false. When readiness is false, read-only pages may be limited and actions that depend on upstream APIs may fail. Record the date and request context when you report that state.

The operator route table includes /seats/, /offers/, /usage/, /ops/, /dns/, and /auth/ (docs/CONSOLE-SPLIT.md:13-20). Use these pages to read current state before taking action:

  • Seats: review the account or model seat state exposed by the upstream gateway. Seat state changes are forwarded to acumen admin routes; do not treat the UI as a local cache of truth.
  • Offers: review current offers or metrics exposed to operators. The upstream route mapping is owned by acumen and can change by deployment.
  • Usage: review usage summaries for the selected scope. If usage is empty, check scope selection and upstream availability before assuming no traffic.

Detailed per-page field behavior is not fully verifiable from this docs workspace alone. When you need an exact field definition, cite the current console route component and the upstream acumen route it calls.

Console mutations are strict by design:

  • The request must come from the same host origin.
  • Admin scope is required for gateway and admin writes.
  • An Idempotency-Key header is required for mutating routes, except analytics ingest which deduplicates by event id (src/hooks.server.ts:30-44,72-74).
  • Service credentials stay server-side; the browser does not send upstream API tokens (CONSOLE-BFF-CONTRACT.md:7-9,145-149).

For an action with a backend contract, expect a normal success response only when the upstream route answers (check dated evidence). For an upstream-pending action, the console passes through the honest upstream refusal; it must not fake a success (CONSOLE-BFF-CONTRACT.md:128-136).

Use the console logout action when you finish operator work. Logout clears the signed session cookie. There is no server-side revocation list for the stateless session cookie; a captured cookie remains valid until its short expiry (CONSOLE-BFF-CONTRACT.md:37-46,91-101; src/lib/server/session.ts:184-188).

When reporting a console change or incident, capture:

  • date and UTC time;
  • the URL or route;
  • HTTP status and response class;
  • x-request-id when present;
  • the code path or runbook that defines the expected behavior.

Do not include session cookies, OIDC client secrets, bearer tokens, or tenant data in notes or screenshots.