Appearance
Data (Fibre & LTE)
The Data module manages fixed-line and mobile broadband services sold to customers: Openserve FTTH fibre lines, Axxess LTE (RCP-based) accounts, and Vodacom LTE accounts, plus the prepaid balances that sit behind capped monthly plans. It's used by ISP/telecoms operations staff to provision, monitor, suspend, and track connectivity services, and it can pull live status and usage straight from the upstream providers where an integration exists (Axxess) or import inventory from a provisioning system (Splynx, for fibre). Most of these grids are staff-only — they are not exposed on the self-service customer portal.
What you can do
- Fibre Services — manage FTTH lines with client name, username, product, phone, IP address, external provider ID, status (active/suspended/cancelled), and notes.
- Fibre Lines ("Data Admin", staff-only) — a second, simpler fibre line register keyed by username/product/provider/speed, linked to a customer record, with one-click import of the fibre inventory straight from Splynx.
- Plan Balances — track prepaid data balances per domain, including currency, low-balance threshold, and auto-recharge amount/enable flag; totals are rolled up as a stat tile.
- Axxess LTE Accounts ("Data Admin", staff-only) — manage LTE accounts (username, MSISDN, product, status, customer link), suspend/unsuspend the service directly on the Axxess provider, pull live per-day data usage, and bulk-sync all accounts from Axxess.
- Axxess Products — the synced Axxess product catalogue (product name + provider product GUID), refreshable on demand from the live API.
- Vodacom LTE Accounts ("Data Admin", staff-only) — manage LTE accounts by MSISDN, SIM number, product, status, and customer link.
- SIM Swaps — log and track Vodacom SIM swap requests (old SIM → new SIM) with a Pending/Completed/Failed status and a stat tile for outstanding swaps.
Common tasks
Provision/register a new fibre line Open Fibre Lines (or Fibre Services for the older register), create a row, and fill in username, product, provider, and speed. Link it to the owning customer via the Customer lookup column. Set status to
active.Import fibre inventory from Splynx On the Fibre Lines grid, click the toolbar button Import from Splynx. This pulls the live fibre inventory from Session Telecoms' Splynx instance (Splynx is the actual provisioning system and source of truth for what's live), refreshes existing lines in place, and links each imported line to a customer by matching the fibre subscription's RADIUS login. Nothing is deleted by this sync.
Register a new Axxess LTE account and sync it Either create the account manually on Axxess LTE, or click Sync from Axxess in the toolbar to read every client's services live from the provider and create/update matching rows.
Suspend or unsuspend an LTE service (Axxess) On the Axxess LTE grid, use the row-level Suspend button (calls
funcSuspendon Axxess, keyed on the account's username/guidServiceId) or Unsuspend (funcLiftSuspend) once it's suspended. You can also select multiple rows and use Suspend selected for a bulk suspend. The local status only flips if the upstream call returns success, so the local record and Axxess never drift.Check live data usage for an LTE SIM On the Axxess LTE grid, click the row action Data Usage to fetch per-day usage straight from Axxess for that SIM. Some product types (e.g. Fixed Wireless / uncapped combos) won't return usage data since Axxess doesn't track it for those.
Log and track a SIM swap Create a row on SIM Swaps with the customer's MSISDN, old SIM, and new SIM number, status
Pending. Update the status toCompletedorFailedonce the swap is actioned with the carrier.
Data model
All tables below live only in the data site's database.
| Model | Table | Purpose |
|---|---|---|
FibreService | fibre_services | Provisioned FTTH line (older/legacy fibre register, ported from CloudTools' FibreServiceController). |
DataFibreLine | isp_data_fibre | Fibre line register (staff-only "Data Admin" grid), the target of the Splynx import; links to a customer via customer_id. |
MonthlyPlanBalance | monthly_plan_balances | Prepaid balance and auto-recharge configuration per domain, for capped monthly data plans. |
LteAxxessAccount | isp_data_lte_axxess_accounts | Axxess LTE account (username = provider guidServiceId), linked to a customer. |
LteAxxessProduct | axxess_products | Synced Axxess product catalogue, with the raw provider payload kept in raw_data. |
LteVodacomAccount | isp_data_lte_vodacom_accounts | Vodacom LTE account by MSISDN and SIM, linked to a customer. |
LteVodacomSimSwap | isp_data_lte_vodacom_simswop | Log of SIM swap requests (old SIM → new SIM) with a Pending/Completed/Failed workflow status. |
customer_id on the fibre/LTE account tables links to AccCustomer (the acc-customers grid). Several tables also carry a domain_uuid/external_id for matching back to the source system (RADIUS domain for fibre, provider service ID for LTE); these are the fields the provider syncs use to reconcile local rows with upstream state rather than duplicating records.
Configuration & integrations
- Openserve FTTH — fibre is Openserve-provisioned infrastructure; the
providercolumn on Fibre Lines records this, but there is no live Openserve API integration in this module — fibre inventory instead comes in via the Splynx import below. - Splynx (Session Telecoms,
rad.sessiontelecoms.co.za) — the actual fibre provisioning system and source of truth for what fibre lines exist and whether they're live. The Import from Splynx button (app/services/splynx_sync.sync_fibre_lines) reads its inventory and reconciles it intoisp_data_fibre. - Axxess RCP — live LTE provider integration (
app/services/providers/axxess.py, client built viaaxxess.from_db(db)). Used for account suspend/unsuspend (funcSuspend/funcLiftSuspend), live per-day usage lookup (getServiceUsageDetailsById), and syncing both the LTE account list and product catalogue. Must be configured under Settings → Connections; grid actions return a clear "Axxess is not configured" message if it isn't. - Vodacom — account and SIM-swap data is tracked locally; the code comments note provider sync for Vodacom is deferred (tables carry external-id-style fields to backfill it later), so Vodacom rows are currently managed by hand rather than synced live.
API reference
This module has no bespoke endpoints — every grid above is served by the generic grid CRUD/action framework (app/social/api/grid.py, mounted at /api/v1/grid/{slug}). The relevant routes, using slug values such as fibre-services, data-fibre, monthly-plan-balances, lte-axxess-accounts, lte-axxess-products, lte-vodacom-accounts, and lte-vodacom-simswap:
| Method & path | Purpose |
|---|---|
GET /api/v1/grid/{slug}/data | Fetch rows (filter, search, paginate). |
POST /api/v1/grid/{slug} | Create a row. |
PUT /api/v1/grid/{slug}/{row_id} | Update a row. |
DELETE /api/v1/grid/{slug}/{row_id} | Delete a row. |
GET /api/v1/grid/{slug}/stats | Fetch the grid's summary stat tiles. |
POST /api/v1/grid/{slug}/action/{key} | Invoke a row/bulk action button — e.g. sync (Sync from Axxess/Splynx), suspend/unsuspend, suspend_selected, usage (Axxess Data Usage). |
GET /api/v1/grid/{slug}/options | Fetch dropdown/lookup values (e.g. the Customer foreign-key lookup). |
The action buttons wired up in this module map to handler functions in app/grids/data.py: _sync_splynx_fibre, _sync_axxess_accounts, _sync_axxess_products, _lte_suspend/_lte_unsuspend, and _axxess_usage.
Access & visibility
- These grids are registered against the
datasite's database, but the tenant that owns them for provisioning purposes is the site literally namedportal(register_grids(GRIDS, sites={"portal"})inapp/grids/data.py). - Four of the seven grids — Fibre Lines, Axxess LTE Accounts, Axxess Products, and Vodacom LTE Accounts — are marked staff-only as of 2026-07-29 under the "Data Admin" grouping: they have no
service_portalflag set, so they don't appear in the customer-facing self-service portal menu (ADMIN_ONLY_SERVICE_APPSinapp/api/menu.py). Only staff with access to the admin grid UI can see and manage them. - Fibre Services, Plan Balances, and SIM Swaps are not flagged staff-only in this file, but check the live menu configuration before assuming any grid is customer-visible.