Files
backup-tool/docs/release/m16-routing-evidence.md
T

2.0 KiB

M16 routed operator UI evidence

  • The authenticated operator console now has protected, URL-addressable routes for the existing Dashboard, Sources, Repositories, Jobs, Executions, Backups, Security, Notifications, and Audit views. / and authenticated unknown routes redirect to /dashboard without adding a dead Back-history entry.
  • Authentication discovery happens before the route shell renders, so an unauthenticated deep link is retained through sign-in rather than prematurely redirected.
  • Route components load through React.lazy with an announced Suspense state and an in-shell error boundary. OperatorPages.tsx splits the existing resource pages into a separate production chunk.
  • Navigation uses semantic NavLink anchors with current-page semantics. The shell provides one main landmark, a functional skip link, route-based document titles, and focus restoration after route navigation.
  • Route-level tests cover direct /sources navigation, title/current-link state, focus restoration, authenticated unknown-route redirect, and the skip link. Existing workflow tests were adapted to the semantic navigation links.

Green M16 checks

npm --prefix frontend run api:check                                      # generated client current
npm --prefix frontend run typecheck                                      # passed
npm --prefix frontend run build                                          # passed; emitted OperatorPages and M13Workflows chunks
npm --prefix frontend test -- --run                                      # 11 passed
npx --prefix frontend playwright test --config frontend/playwright.config.ts  # 1 passed
.venv/bin/python tools/export_openapi.py --check openapi/v2.json        # current
make check                                                               # passed

Known boundary: this evidence covers delivery slice 1's routed shell over the pre-existing read/workflow views. The create/edit/administration workflows in later slices of docs/plans/full-operator-ui.md remain unimplemented.