Files
git.stella-ops.org/docs/features/checked/web/policy-decisioning-studio-ui.md
2026-03-08 01:35:18 +02:00

68 lines
3.4 KiB
Markdown

# Policy Decisioning Studio UI
## Module
Web
## Status
VERIFIED
## Description
Shipped the canonical `Policy Decisioning Studio` shell at `/ops/policy` and made it the mutable owner for policy packs, governance, simulation, VEX, exceptions, release gates, and policy/VEX audit. Legacy `policy-studio`, `policy/*`, `admin/policy/*`, `admin/vex-hub/*`, and security VEX aliases now resolve into the same routed shell instead of leaving writable sibling products active.
## Implementation Details
- **Feature directory**: `src/Web/StellaOps.Web/src/app/features/policy-decisioning/`
- **Primary components**:
- `policy-decisioning-shell.component.ts`
- `policy-decisioning-overview-page.component.ts`
- `policy-pack-shell.component.ts`
- `policy-decisioning-vex-shell.component.ts`
- `policy-decisioning-gates-page.component.ts`
- `policy-decisioning-audit-shell.component.ts`
- **Canonical routes**:
- `/ops/policy/overview`
- `/ops/policy/packs/*`
- `/ops/policy/governance/*`
- `/ops/policy/simulation/*`
- `/ops/policy/vex/*`
- `/ops/policy/gates/*`
- `/ops/policy/audit/*`
- **Legacy aliases**:
- `/policy-studio/*`
- `/policy/*`
- `/admin/policy/*`
- `/admin/vex-hub/*`
- `/security/vex*`
- `/security/exceptions*`
- **Release-context entry points**:
- approvals detail
- promotion request
- release detail
- workflow editor
- evidence detail
## E2E Test Plan
- **Setup**:
- [x] Log in with a user that has policy, VEX, exception, and release read scopes.
- [x] Seed pack dashboard data or route fixtures for `/api/policy/packs` and `/api/policy/packs/:packId/dashboard`.
- [x] Start the local UI harness on `https://127.0.0.1:4400`.
- **Core verification**:
- [x] Verify `/ops/policy/overview` renders the canonical shell and primary tabs.
- [x] Verify a legacy pack bookmark lands inside pack-mode decisioning.
- [x] Verify a release-context gate URL renders context chips and return-to-source affordance.
- [x] Verify `/security/vex` redirects into the canonical VEX shell.
- **Regression verification**:
- [x] Verify targeted Angular route and redirect specs cover the alias contract.
- [x] Verify workflow-editor and evidence-detail deep links open the shared shell.
- [x] Verify global search VEX normalization lands in the canonical shell.
## Verification
- Run:
- `npm test -- --watch=false --include src/tests/policy_decisioning/policy-decisioning-shell.component.spec.ts --include src/tests/policy_decisioning/policy-decisioning-routes.spec.ts --include src/tests/release_orchestrator/evidence-detail.behavior.spec.ts --include src/tests/release_orchestrator/visual-workflow-editor.behavior.spec.ts --include src/tests/security/security-overview-dashboard.behavior.spec.ts --include src/tests/global_search/search-route-matrix.spec.ts --include src/tests/navigation/legacy-redirects.spec.ts --include src/tests/routes/legacy-route-migration-framework.component.spec.ts --include src/tests/administration/administration-routes.spec.ts --include src/tests/security-risk/security-risk-routes.spec.ts`
- `npx playwright test tests/e2e/policy-decisioning-studio.spec.ts`
- `npm run build`
- Tier 0 (source): pass
- Tier 1 (build/tests): pass
- Tier 2 (behavior): pass
- Note: the production build still emits existing bundle-budget warnings outside this feature scope; the build itself completes successfully.
- Verified on (UTC): 2026-03-07T23:22:53Z