Stella Ops Web UI information architecture

Status: Current source-aligned reference (2026-07-13)

This document describes the operator-visible navigation, role paths, and action boundaries of the Stella Ops Web console. Source code remains authoritative when this document and the implementation differ.

Authorities

The rail presents five mission pillars in this order. A router family is not automatically a rail destination: app.routes.ts owns resolvability, while NAVIGATION_GROUPS owns what the operator sees. Contextual and compatibility routes may therefore remain reachable without creating another first-level menu item.

Home
└─ Dashboard
Vulnerabilities
├─ Exposure
├─ Images
└─ Intelligence
Deployment
├─ Releases
├─ Promotions
└─ Environments
Proof
├─ Chain
├─ Estate
└─ Compliance
Operate
├─ Operations
├─ Connections
├─ Access
└─ Settings

Every pillar stays within the four-destination first-level limit enforced by navigation.config.spec.ts. Removing a duplicate door does not remove its owner route or valid deep links.

Pillars, destinations, and owner surfaces

Home

First-level destinationRoutePurposeAccess
Dashboard/Persona- and scope-filtered daily health, readiness, and onboarding overview.Authenticated shell; cards remain scope-filtered.

Dashboard is the overview, not an owner for release, security, proof, or administration mutations. Its cards hand off to the owning destination with the current subject and scope context.

Vulnerabilities

First-level destinationRouteOwner and contextual surfacesNavigation visibility
Exposure/security/exposureAction-led lenses for reachable risk, CVEs, images, releases, environments, and open work. Vulnerability and finding details remain contextual routes.Any of findings:read, vuln:view, advisory:read.
Images/security/image-inventoryCross-registry scan coverage and verdict posture. An image opens the existing Image Security dossier at /security/images.Exact registry:read; scan and configuration scopes do not substitute for inventory read.
Intelligence/security/intelligenceRead-oriented feed freshness, distro, VEX/trust, and mirror coverage. Source configuration remains under Operate > Connections or Operations.Any of advisory:read, vex:read.

Exposure is the canonical risk-work entry. Older Risk Overview, Vulnerability Database, Findings Explorer, and Triage Queue doors are represented as Exposure lenses or contextual routes rather than parallel rail entries.

Advisory & VEX Sources preserves a read-only Mirror view for advisory:read. Mirror domain creation, configuration, credential regeneration, and deletion require the backend-aligned integration:write or integration:operate claim at both route and action boundaries. VEX statement creation is not exposed: VexHub has no authenticated statement-create endpoint, so /ops/policy/vex/create redirects to search until that server contract exists.

Deployment

First-level destinationRouteOwner and contextual surfacesNavigation visibility
Releases/releasesRelease library. Children: My services (/developer/services), Components (/releases/components), and release-content Bundles (/releases/bundles).Any of release:read, release:write, release:publish; child gates are narrower.
Promotions/releases/promotionsGate, approve, and ship flow. Children: Approvals (/releases/approvals), Deployments (/releases/deployments), and Gate policies (/ops/policy/packs).Any of release:read, release:write, release:publish, orch:read, orch:operate, policy:read.
Environments/environments/overviewDeployed/runtime terrain and gate status. Topology & hosts (/ops/platform-setup) owns environment, target, host, and agent setup.Any of orch:read, orch:operate.

The same destinations reorder for the active persona; scope gates do not change. Operations and Security lead with Promotions, while Developer, Compliance, and Overview lead with the release library. Environments remains the third door.

Proof

First-level destinationRouteOwner and contextual surfacesNavigation visibility
ChainParent shelfChain of Custody (/evidence/custody), Verify (/evidence/verify), Proof Chains (/evidence/proofs), and Audit Trail (/ops/operations/audit). Audit tabs use tab=all-events, timeline, correlations, exports, or bundles; the exports and bundles tabs are visible and mounted only with export.viewer, so the shell never eagerly issues Export Center reads for a timeline-only session.Per-child evidence, audit, release, signing, VEX, or verify gates; there is no all-scopes group gate.
Estate/evidence/estateDeployed version by environment crossed with evidence posture. Cells hand off to Chain of Custody with a subject query value.Any of release:read, release:write, release:publish, orch:read.
Compliance/complianceCompliance cockpit with distinct routes /compliance/nis2, /compliance/dora, and /compliance/cra; also cross-lists the Transparency ledger (/setup/trust-signing/transparency, ui.admin). Legacy /assurance/* redirects here (c10 R1).Any of policy:read, policy:audit, notify.viewer, findings:read.

Proof distinguishes three questions: trace one record through Chain, inspect deployed proof coverage in Estate, and review regulator-facing coverage in Compliance. Audit Trail is the evidence audit surface even though its owner route remains under /ops/operations; it is not the same as Operate > Access > Admin activity or Settings > Trust Center > Audit.

Verify is an active deterministic read operation: its route requires replay:read. It reruns a recorded gate decision from sealed evidence and reports whether the result reproduces. Explicit durable replay token, bundle, or snapshot production remains gated by replay:write.

Operate

Operate is the quiet back-of-house pillar. It groups owner workspaces into four questions and pushes administration gates to the relevant child so non-admin operators retain their lanes.

First-level destinationOwner children and routesAccess summary
OperationsSchedules (/ops/operations/jobengine), Feeds & Vuln Data (/ops/operations/feeds-airgap), Scripts (/ops/scripts), Health (/ops/operations/doctor), Asset Inventory (/inventory).Per-child orch:*, advisory/VEX read, ops.health, ui.admin, or graph:read.
ConnectionsIntegrations (/setup/integrations) with Registries, Advisory & VEX, and Secrets children.ui.admin.
AccessTenants (/console-admin/tenants), Users (/console-admin/users), Roles (/console-admin/roles), Clients (/console-admin/clients), Tokens (/console-admin/tokens), Admin activity (/console-admin/audit), and Branding (/console-admin/branding) — the console-admin shell’s tabs, each a direct Access door (the “Tenants & Access” wrapper that duplicated its first child’s route was dissolved, c12 R1); Identity Providers (/setup/identity-providers). The shell page h1 is “Tenants & Access”.ui.admin for the tenant/user/role/client/token/activity/branding doors; platform.idp.admin for Identity Providers.
SettingsTrust Center (/setup/trust-signing) and Telemetry Federation (/ops/operations/federation).ui.admin for Trust Center; the matching telemetry participation or federation read/write scopes for federation pages.

Security Data, Tenant & Branding, System Settings, and Platform Status are not duplicate first-level doors. Their valid functionality is owned by Feeds & Vuln Data, Tenants & Access, User Preferences/Appearance, or Health respectively; compatibility routes remain a router concern.

Role-oriented paths

Stella Ops authorizes with token scopes and backend ABAC, not a role name alone. The first four persona profiles below mirror PERSONA_ROUTE_MATRICES; they determine expected visibility, not an unconditional permission grant. Platform Access Administrator is a capability path governed by admin scopes rather than a fifth dashboard persona.

UserPrimary pathExpected actionsMutation boundary
Executive Assurance ViewerHome > Dashboard; Proof > Compliance, Estate, Chain/Audit/Verify; Deployment > Releases.Review deployment, assurance, policy, finding, evidence, export, and audit posture; deterministically verify a recorded gate decision.The profile is read-oriented and carries replay:read, but no replay production, vulnerability operation, release, policy, exception, or administration mutation scope.
Release Operations StewardHome > Dashboard; Deployment > Promotions, Environments, Releases; Operate > Operations.Compose/update releases, operate deployments, scan when needed, and inspect proof.Profile includes release:write, orch:operate, and scanner:scan. Approve/reject still requires release:publish, which is not part of the base persona profile.
Security Risk ManagerHome > Dashboard; Vulnerabilities > Exposure, Images, Intelligence; Deployment > Promotions; Proof > Chain.Investigate risk, browse tenant registry images, request scans, inspect VEX/advisories, simulate policy, and follow evidence.Profile includes registry:read, vuln:investigate, scanner:scan, policy:simulate, raw-evidence vex:read, and the distinct VexHub statement-read claim vexhub:read; it does not include VexHub administration, registry administration, release:publish, exceptions:approve, or bypass scopes.
Service Release ContributorHome > Dashboard; Deployment > Releases > My services; scoped Exposure and proof handoffs.Select an owned service/digest, inspect scan/policy/findings, update an allowed environment or request promotion.Requires release:write plus serviceIds, repositoryIds, imageNamespaces, environmentIds, maxEnvironmentType, and directUpdateAllowed. Backend checks repeat the service/environment/digest constraints.
Platform Access AdministratorOperate > Access, Connections, and Settings.Manage tenants, users, roles, clients, tokens, branding, integrations, trust, and identity providers.ui.admin opens Console Administration/integration/trust owners; Identity Providers specifically requires platform.idp.admin. Backend commands may require finer scopes and fresh authorization.

Service contribution never implies broad operator, publisher, approver, bypass, or admin power. If directUpdateAllowed is false or the target is outside the user ABAC envelope, the UI must create an approval-required request or show why the action is unavailable.

Read visibility versus mutation authority

Surface or actionRead/route visibilityAdditional mutation authority
Approvals/releases/approvals is visible with release:read.Approve/reject requires release:publish, a valid decision state, and the decision reason/signing rules enforced by the surface and backend. Gate bypass is separate: release:gate-bypass.
DeploymentsDeployment activity is readable with the release/orchestrator read envelope.Operating a deployment requires orch:operate or the explicitly supported release:write path, plus backend policy/ABAC.
Scan nowImage/release context may be readable without scan authority.Triggering a scan requires scanner:scan.
Images inventory/security/image-inventory and its registry/image reads require registry:read.Scan now still requires scanner:scan; Auto-scan configuration still requires integration:write.
VerifyProof records may be readable through evidence scopes./evidence/verify requires replay:read; durable replay production requires replay:write.
Contributor updateMy services requires the contributor scope profile.release:write and all service/environment/digest ABAC checks; direct mutation additionally requires directUpdateAllowed=true.
Console AdministrationOperate > Access is shown only for its child gates.Console Administration requires ui.admin; Identity Provider mutation requires platform.idp.admin.

Admin and ui.admin are guard wildcards in the Web route-access helper, but issued claims still come from the Authority catalog and backend endpoints remain the final authorization boundary.

Context, deep links, and Back behavior

Canonical owner pages must accept contextual handoffs without becoming duplicate menu doors. The shared context-route-state.ts defines the common contract:

Current examples:

Canonical terminology

TermMeaning and placement
DashboardThe Home overview. It summarizes and hands off; it does not own domain mutations.
ExposureThe Vulnerabilities work entry for reachable risk, lenses, and open work. Do not recreate separate Risk Overview or Triage Queue rail doors.
ApprovalsSigned promotion decisions under Deployment > Promotions, not a top-level pillar.
Chain of CustodyThe subject-level evidence trace under Proof > Chain.
EstateDeployed version by environment crossed with evidence posture under Proof.
VerifyDeterministic gate replay from sealed evidence under Proof > Chain; a scoped verification action, not a generic evidence status label.
Compliance / AssuranceCompliance is the Proof destination; /assurance is its cockpit and framework route family.
Audit TrailEvidence/audit records under Proof > Chain. Keep it distinct from Admin activity and Trust Center Audit.
BundlesUnder Deployment, release-content bundles; under Audit Trail, sealed evidence/audit bundles. Always qualify the context.