Files
git.stella-ops.org/docs/features/checked/web/security-operations-leaves-ui.md

68 lines
3.6 KiB
Markdown

# Security Operations Leaves UI
## Module
Web
## Status
VERIFIED
## Description
Shipped the weak-route security operations leaves as fully surfaced operator workflows. `Mission Control` now exposes alerts and activity, `Security` owns unknowns tracking and determinization flows, and `Ops > Operations` owns notifications. Stale `/analyze/unknowns*` and `/notify` entry points now resolve into mounted canonical pages instead of dead owner paths.
## Implementation Details
- **Feature directories**:
- `src/Web/StellaOps.Web/src/app/features/mission-control/`
- `src/Web/StellaOps.Web/src/app/features/unknowns-tracking/`
- `src/Web/StellaOps.Web/src/app/features/notify/`
- **Primary components**:
- `mission-alerts-page` (`src/Web/StellaOps.Web/src/app/features/mission-control/mission-alerts-page.component.ts`)
- `mission-activity-page` (`src/Web.StellaOps.Web/src/app/features/mission-control/mission-activity-page.component.ts`)
- `unknowns-dashboard` (`src/Web.StellaOps.Web/src/app/features/unknowns-tracking/unknowns-dashboard.component.ts`)
- `grey-queue-dashboard` (`src/Web.StellaOps.Web/src/app/features/unknowns-tracking/grey-queue-dashboard.component.ts`)
- `determinization-review` (`src/Web.StellaOps.Web/src/app/features/unknowns-tracking/determinization-review.component.ts`)
- `notify-panel` (`src/Web.StellaOps.Web/src/app/features/notify/notify-panel.component.ts`)
- **Canonical routes**:
- `/mission-control/alerts`
- `/mission-control/activity`
- `/security/unknowns`
- `/security/unknowns/:unknownId`
- `/security/unknowns/:unknownId/determinization`
- `/security/unknowns/queue/grey`
- `/ops/operations/notifications`
- **Legacy aliases**:
- `/analyze/unknowns`
- `/analyze/unknowns/:unknownId`
- `/analyze/unknowns/:unknownId/determinization`
- `/analyze/unknowns/queue/grey`
- `/notify`
- **Secondary entry points**:
- sidebar `Mission Control > Alerts`
- sidebar `Mission Control > Activity`
- sidebar `Security > Unknowns`
- sidebar `Operations > Notifications`
## E2E Test Plan
- **Setup**:
- [x] Start the local Angular test server with `npm run serve:test`.
- [x] Use a test session with mission, scanner, ops, and notify viewer scopes.
- **Core verification**:
- [x] Open `/analyze/unknowns` and verify redirect into canonical `/security/unknowns`.
- [x] Drill into unknown detail and verify the identification workflow stays mounted.
- [x] Open the canonical notifications shell and verify the operator page and watchlist handoff render.
- [x] Open `/mission-control/alerts` and `/mission-control/activity` and verify both pages render live operator links.
## Verification
- Run:
- `npm run test -- --watch=false --include src/app/layout/app-sidebar/app-sidebar.component.spec.ts --include src/tests/security/security-operations-leaves-cutover.spec.ts --include src/tests/unknowns/unknowns-tracking-ui.behavior.spec.ts --include src/tests/unknowns/unknowns-route-handoffs.spec.ts --include src/tests/notify/notify-watchlist-handoff.spec.ts`
- `npx playwright test --config playwright.config.ts tests/e2e/security-operations-leaves-cutover.spec.ts --workers=1`
- `npm run build`
- Tier 0 (source): pass
- Tier 1 (build/tests): pass
- Tier 2 (behavior): pass
- Notes:
- Angular targeted tests passed: `5` files, `16` tests.
- Playwright passed: `1` security-operations cutover scenario.
- The browser flow uses `/ops/operations/notifications` because the local frontend proxy reserves `/notify`; the `/notify` alias remains covered by the route-contract test.
- Production build passed; existing bundle-budget warnings remain unchanged from the baseline.
- Verified on (UTC): 2026-03-08T08:42:15Z