Skip to content

Admin UI

The Opstage CE console is a React 18 SPA built with Ant Design. It is the operator-facing surface of the control plane.

Pages

PageWhat you do here
DashboardAt-a-glance counts of agents, services, commands; recent audit events.
AgentsInventory; filter by status; enable/disable/revoke; inspect heartbeat freshness.
Capsule ServicesInventory across all agents; per-service drawer with Overview / Manifest / Health / Configs / Actions / Commands / Audit tabs.
Registration TokensCreate / revoke. The plaintext value is shown once at create time.
CommandsFilter, inspect, cancel pending/running commands; view results.
Audit EventsPaginated audit with filters; CSV/JSON export.
Users (owner only)Create / edit / disable users; reset passwords.
SettingsMaintenance settings (with live scheduler reload), diagnostics, SQLite backup download.

Roles

RoleCapabilities
ownerEverything in CE, including user management and SQLite backup download.
operatorMutating operations on agents, registration tokens, services, commands.
viewerRead-only.

Actions and Commands

When you click Run on a service action:

  1. The console opens the action panel by issuing GET /api/admin/capsule-services/:id/actions/:name. This creates an ACTION_PREPARE command, dispatched to the agent, which returns the dynamic inputSchema, initialPayload, and current state.
  2. You fill the form (auto-generated from the schema) or use the JSON override.
  3. Submitting issues POST on the same URL, which creates an ACTION_EXECUTE command.
  4. The command status streams into the modal until it terminates (SUCCEEDED / FAILED / CANCELLED).

Internationalization

The console ships with en-US and zh-CN. The selected language is stored in localStorage under opstage.language. No session data is stored in localStorage or sessionStorage.

Browser support

Modern evergreen browsers (Chromium, Firefox, Safari, Edge). The UI relies on session cookies + CSRF, so third-party cookie restrictions are irrelevant — Opstage is same-origin.

→ See Configuration for the variables driving freshness/offline behavior surfaced in the UI.

Code and docs released under Apache-2.0. "Xtrape", "Xtrape Capsule", and "Opstage" are trademarks of their respective owners.