Routing & Layouts

The Provision Portal UI is a single Angular 21 application with its own Angular Router configuration and two layout shells.

Layout shells

Layout Role

AuthLayoutComponent

Wraps the unauthenticated area (/login).

MainLayoutComponent

Wraps all authenticated pages (menu, sidebar, content).

Routes

Routes are defined in src/app/app.routes.ts. The default path redirects to /single-device; an unknown path (**) also redirects there.

Path Component Guards

login

LoginPageComponent (auth layout)

 — 

single-device

SingleDevicePageComponent

authGuard

multiple-device

MultipleDevicePageComponent

authGuard

replace-device

ReplaceDevicePageComponent

authGuard

deactivate-service

DeactivateServicePageComponent

authGuard, ConfigGuard

get-status

GetStatusPageComponent

authGuard

view-log

ViewLogPageComponent

authGuard

user-management

UserManagementPageComponent

authGuard, PermissionGuard

Route guards

  • authGuard — allows the route when an auth token is present in sessionStorage; otherwise redirects to /login.

  • PermissionGuard — blocks users whose permission is USER from /user-management, redirecting them to /single-device.

  • ConfigGuard — gates /deactivate-service on the server feature flag deactivateService.enable; if disabled, redirects to /single-device.

Base path

The app is served under /provision-portal/ in the container (the Nginx location block plus SPA fallback to index.html). Deep links and refreshes resolve through try_files …​ index.html.