feat(ui): ship policy decisioning studio
This commit is contained in:
67
docs/features/checked/web/policy-decisioning-studio-ui.md
Normal file
67
docs/features/checked/web/policy-decisioning-studio-ui.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user