6.9 KiB
6.9 KiB
Platform Ops Consolidation
Status: Shipped on 2026-03-07
Recommendation
Keep one consolidated operator shell under Ops > Operations and absorb the useful legacy platform-ops surfaces into it.
- Canonical mount:
/ops/operations - Suggested user-facing title:
Operations - Suggested overview page title:
Platform Ops
This is not a restoration of an abandoned product. It is a consolidation of operator navigation, overview grouping, and missing widgets into the existing route tree.
Shipped Scope
- Mounted one grouped
Ops > Operationsoverview with blocking-strip status, quick submenu chips, pending-action callouts, and an explicit Setup ownership boundary. - Standardized canonical route helpers under
/ops/operations/*and rewired active overview and child-page links away from dead/platform/ops/*paths. - Added legacy alias redirects for both
/platform-ops/*and/platform/ops/*into the live Operations shell. - Preserved agent-fleet and topology ownership under
Setup > Topologywhile adding direct Operations handoffs where runtime monitoring needs to cross that boundary. - Added focused route, component, and Playwright verification plus a checked-feature note at
docs/features/checked/web/operations-consolidation-ui.md.
Why This Is The Right Shape
- The current app already routes operators through
/ops/operations. - The dead and weak-route
platform-opspages overlap with the live ops shell rather than introducing a separate domain. - Restoring the old shell would recreate fragmentation between overview pages, diagnostics, quotas, AOC, and air-gap operations.
- The correct move is to strengthen one overview and one child-route tree.
Operator Modes
1. Control Room Mode
- Used by operators scanning for blocking platform issues.
- Focus: overview, blocking cards, and high-priority drills.
2. Subsystem Specialist Mode
- Used by operators responsible for one area such as quotas, offline kit, job queues, or AOC.
- Focus: a dedicated child route reached from grouped cards.
3. Triage Handoff Mode
- Used when another shell surfaces an ops problem and links into operations.
- Focus: deep link into the relevant child route with preserved return context.
Recommended IA
Overview groups
Blocking- data integrity
- AOC compliance
- critical platform alerts
Execution- jobs and queues
- scheduler
- dead-letter
- signals
Health- health and SLO
- diagnostics
- system status
Supply And Airgap- feeds and airgap
- offline kit
- pack registry
Capacity- quotas and limits
Communications- notifications
Child routes
OverviewData IntegrityJobs & QueuesHealth & SLOFeeds & AirgapOffline KitQuotas & LimitsAOC ComplianceDiagnosticsSignalsPack RegistryNotifications
Page Anatomy
Overview page
- top blocking strip:
- open incidents
- highest-risk subsystem
- degraded status count
- grouped cards:
- each card shows status, trend, queue depth, or freshness
- each card links to a single child route
- lower sections:
- recent changes
- pending operator actions
- cross-links to Setup-owned topology when infra ownership is involved
Child routes
- keep a consistent subpage layout:
- status summary cards
- main table or chart
- action rail
- diagnostics or evidence side panel when relevant
Route Contract
Prefer the current route family and tighten it rather than creating new paths.
Canonical routes
/ops/operations/ops/operations/jobs-queues/ops/operations/data-integrity/ops/operations/health-slo/ops/operations/feeds-airgap/ops/operations/offline-kit/ops/operations/quotas/ops/operations/aoc/ops/operations/doctor/ops/operations/signals/ops/operations/packs/ops/operations/notifications
Alias and cleanup rules
- legacy
/platform-ops/*bookmarks should redirect into/ops/operations/* - duplicate overview routes should be retired once card parity is reached
- child-route labels should match the sidebar and overview cards exactly
Verification
- Angular:
npx ng test --watch=false --include src/tests/platform-ops/platform-ops-routes.spec.ts --include src/tests/platform-ops/platform-ops-overview-page.component.spec.ts --include src/tests/platform-ops/platform-feeds-airgap-page.component.spec.ts --include src/tests/platform-ops/data-integrity-pages.spec.ts --include src/tests/navigation/legacy-redirects.spec.ts
- Playwright:
PLAYWRIGHT_PORT=4410 npx playwright test tests/e2e/operations-consolidation.spec.ts --workers=1
- Checked feature record:
docs/features/checked/web/operations-consolidation-ui.md
What To Merge
Preserve as the main shell
PlatformOpsOverviewPageComponentoperations.routes.ts
Absorb from legacy Platform Ops
PlatformOpsOverviewComponent- federation and telemetry summary cards that still add value
- data-integrity pages still missing from the live grouped overview
- any distinctive capacity or compliance widgets not already surfaced
Single Actions And Supporting Surfaces
Agent fleet
- primary home:
Setup > Topology - operations overview may show health summary and deep-link out
Diagnostics
- keep as
Ops > Operations > Diagnostics - avoid a second top-level doctor product entry
AOC violations and reports
- keep overview status on the main page
- full detail stays in its own child route
Offline import/export helpers
- keep inside
Offline KitorFeeds & Airgap - do not create separate sidebar products
Cross-Product Entry Points
Mission Control- links to degraded subsystem routes
Setup > Topology- links back to operations when infra state impacts runtime operations
EvidenceorReleases- links into data integrity, signals, or pack registry when evidence freshness blocks a workflow
UI Standards For Implementation
- One shell, one overview, one submenu tree.
- Group cards by operator concern, not by backend service name alone.
- Preserve stable deep links from cards to subpages.
- Keep Setup-owned infrastructure management distinct from Ops-owned runtime monitoring.
- Treat legacy routes as migration aliases only.
Non-Goals
- Do not revive
/platform-ops/*as a parallel route tree. - Do not duplicate topology ownership under Ops.
- Do not create separate overview pages for each subsystem when grouped cards already solve discoverability.
Source Inputs
docs/UI_GUIDE.mddocs/modules/ui/operations/observability-guide.mddocs/modules/notify/operations/observability.mdsrc/Web/StellaOps.Web/src/app/routes/operations.routes.tssrc/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.tssrc/Web/StellaOps.Web/src/app/features/platform-ops/platform-ops-overview.component.tssrc/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts