tv-account
Telia Play account management — VAS activation, device management, help/support portal.
Overview
tv-account is the Telia Play account management app. It provides
Value-Added Service (VAS) activation flows, device management (view
logged-in devices, sign out remote devices), and a help/support portal.
Built on Next.js 16 (App Router, Turbopack) and deployed via Openship at
https://tv-account.albertonline.org.
Stack
- Next.js 16 (App Router, Turbopack) + React 19
- Effect v4 services from
@repo/telia-core(auth, log, statistics, BOM) @repo/telia-graphqlclient for account data- Tailwind CSS +
@repo/design-systemcomponents - Vitest (unit tests)
Develop
pnpm -F tv-account dev # http://localhost:3008 (Turbopack)
pnpm -F tv-account build
pnpm -F tv-account test
pnpm -F tv-account check-typesFeatures
VAS Activation
The /activate/[serviceName] route implements a polling state machine:
- Fetch VAS info from the engagement gateway
- If PREPARED with an activation URL → redirect to it
- If ACTIVE/SUSPENDED/TERMINATED → show the matching state view
- Otherwise keep polling until timeout (10s)
Pure logic is extracted into src/lib/activate-logic.ts (unit-tested)
and the UI component is src/components/activate-view.tsx.
Device Management
The /devices page shows all logged-in devices for the account,
distinguishing the current device from others. Device data is fetched
via DevicesDataService (Effect v4 service wrapping the login-gateway
REST API).
Help
The /help page provides support articles and contact links.
Deploy
Deployed via Openship (Docker container behind Caddy). Project ID:
proj_8jhn6Gpvti5J4upL. The Dockerfile builds a Next.js standalone
image with @repo/telia-core Effect v4 services wired into the runtime.
See the root README for monorepo-wide commands.