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 root src, component/style prefix app, styles in SCSS.

  • Framework: Angular 21.x (standalone components, signals) with Angular Material / CDK 21.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/core with the HTTP loader (assets/i18n/en.json).

  • Notifications & assets: ngx-toastr for toasts, angular-svg-icon for inline SVGs.

  • Build output: dist/provision-portal_angular/browser (the @angular/build:application builder).

  • Container runtime: nginx:alpine serves the app as static assets under /provision-portal/ and terminates HTTP/HTTPS. The published image is hub.friendly-tech.com/ui/provision-portal:<version>.

  • Startup: the container entrypoint renders nginx.conf from a template (substituting FT_PROV_API_URL into the /prov-api/ proxy) and patches assets/config/app.config.json so 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

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 (PermissionGuard redirects USER to 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.