Files
git.stella-ops.org/docs/modules/ui/platform-ops-consolidation/README.md
2026-03-07 20:31:32 +02:00

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 > Operations overview 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 > Topology while 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-ops pages 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.

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

  • Overview
  • Data Integrity
  • Jobs & Queues
  • Health & SLO
  • Feeds & Airgap
  • Offline Kit
  • Quotas & Limits
  • AOC Compliance
  • Diagnostics
  • Signals
  • Pack Registry
  • Notifications

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

  • PlatformOpsOverviewPageComponent
  • operations.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 Kit or Feeds & 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
  • Evidence or Releases
    • 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.md
  • docs/modules/ui/operations/observability-guide.md
  • docs/modules/notify/operations/observability.md
  • src/Web/StellaOps.Web/src/app/routes/operations.routes.ts
  • src/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.ts
  • src/Web/StellaOps.Web/src/app/features/platform-ops/platform-ops-overview.component.ts
  • src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts