# Platform Setup Canonical Route Preservation UI ## Module Web ## Status VERIFIED ## Description Shipped the `Ops > Platform Setup` follow-up that preserves canonical `/ops/platform-setup/*` URLs for the platform setup leaf pages. The shared setup/topology cutover remains intact, but direct entry and in-product navigation no longer rewrite those canonical ops URLs into `/setup/topology/*`. ## Implementation Details - **Feature directories**: - `src/Web/StellaOps.Web/src/app/features/platform/setup/` - `src/Web.StellaOps.Web/src/app/routes/` - **Primary components**: - `platform-setup-home` (`src/Web.StellaOps.Web/src/app/features/platform/setup/platform-setup-home.component.ts`) - `platform-setup-regions-environments-page` (`src/Web.StellaOps.Web/src/app/features/platform/setup/platform-setup-regions-environments-page.component.ts`) - `platform-setup-promotion-paths-page` (`src/Web.StellaOps.Web/src/app/features/platform/setup/platform-setup-promotion-paths-page.component.ts`) - `platform-setup-workflows-gates-page` (`src/Web.StellaOps.Web/src/app/features/platform/setup/platform-setup-workflows-gates-page.component.ts`) - `platform-setup-gate-profiles-page` (`src/Web.StellaOps.Web/src/app/features/platform/setup/platform-setup-gate-profiles-page.component.ts`) - **Preserved canonical routes**: - `/ops/platform-setup` - `/ops/platform-setup/regions-environments` - `/ops/platform-setup/promotion-paths` - `/ops/platform-setup/workflows-gates` - `/ops/platform-setup/gate-profiles` - **Shared setup routes still used for explicit drill-ins**: - `/setup/topology/environments` - `/setup/topology/promotion-graph` - `/setup/topology/workflows` - `/setup/trust-signing` ## E2E Test Plan - **Setup**: - [x] Start the local Angular test server with `npm run serve:test`. - [x] Use a test session with setup and ops scopes. - **Core verification**: - [x] Open `/ops/platform-setup`, click the `Regions & Environments` quick link, and verify the browser stays on `/ops/platform-setup/regions-environments`. - [x] Open `/ops/platform-setup/promotion-paths`, `/workflows-gates`, and `/gate-profiles` directly and verify each page keeps its canonical ops URL. - [x] Re-run the topology/trust cutover browser flow and verify the platform-setup handoff uses the preserved canonical leaf instead of rewriting into setup/topology. ## Verification - Run: - `npm run test -- --watch=false --include src/tests/platform/platform-setup-routes.spec.ts --include src/tests/platform/platform-setup-canonical-links.spec.ts --include src/tests/setup/setup-topology-trust-cutover.spec.ts --include src/tests/topology/topology-routes.spec.ts` - `npx playwright test --config playwright.config.ts tests/e2e/platform-setup-canonical-route-preservation.spec.ts tests/e2e/topology-trust-admin-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: `4` files, `19` tests. - Playwright passed: `2` canonical platform-setup scenarios. - Production build passed; existing bundle-budget warnings remain unchanged from the baseline. - Verified on (UTC): 2026-03-08T09:07:27Z