System Overview
Purpose
The Provision Portal UI is the browser front end of the Friendly TR-069 Provisioning Portal. It is a single Angular single-page application that gives operators a graphical interface for provisioning CPE without dealing with low-level TR-069 objects.
It is a presentation layer only: at runtime it talks to a single service, the Provision Portal
backend REST API (served at the /prov-portal/ context path). All device operations, the ACS, and
the database are reached through the backend, never directly by the browser.
Key facts (from the repository)
-
Workspace: a single-application Angular CLI 21 project (
angular.json), source rootsrc, component/style prefixapp, styles in SCSS. -
Framework: Angular
21.x(standalone components, signals) with Angular Material / CDK21.x,@ng-bootstrap/ng-bootstrap, and Bootstrap 5. -
State management:
@ngrx/signals(Signal Store) for collection state, plus plain signal-based services for simple shared state. -
i18n:
@ngx-translate/corewith the HTTP loader (assets/i18n/en.json). -
Notifications & assets:
ngx-toastrfor toasts,angular-svg-iconfor inline SVGs. -
Build output:
dist/provision-portal_angular/browser(the@angular/build:applicationbuilder). -
Container runtime:
nginx:alpineserves the app as static assets under/provision-portal/and terminates HTTP/HTTPS. The published image ishub.friendly-tech.com/ui/provision-portal:<version>. -
Startup: the container entrypoint renders
nginx.conffrom a template (substitutingFT_PROV_API_URLinto the/prov-api/proxy) and patchesassets/config/app.config.jsonso the browser calls the same-origin relative path/prov-api/. See Configuration.
System boundary
The UI depends on a single backend base URL (proxied as /prov-api/) for all data operations:
-
authentication and session management (
ui/auth/*), -
provisioning, device status, replace, deactivate (
ui/provision/*), -
device domains and lookups (
ui/device/*), -
server configuration, version, and logs (
ui/server/*), -
user management.
Anything not served by the UI (device provisioning execution, the ACS, the database) is owned by the Provision Portal backend and its environment.
Roles & permissions
Access in the Provision Portal UI is governed by the signed-in user’s permission, enforced by the backend and by client-side route guards.
- User
-
Day-to-day operator. Can perform provisioning operations (single / multiple device, replace, status, logs) but is blocked from User Management (
PermissionGuardredirectsUSERto the single-device page). - Administrator
-
Operator capabilities plus User Management (create, update, delete users).
| What you can see and do is determined by your permission. Some pages are additionally gated by server-side feature flags — for example Deactivate Service appears only when the backend enables it. If an action is not available to you, contact an administrator to review your access. |