Files

16 KiB
Raw Permalink Blame History

Forefront Wireless Operations Portal

Status: Scoped & Documented — awaiting build Started: July 25, 2026 Domain: my.forefrontwireless.com Access: Dual — staff (role-based) and customer self-service

Single pane of glass for Forefront Wireless operations and customer self-service. Staff get a real-time network dashboard aggregating MikroTik routers, Ubiquiti backhauls & CPEs, switches, PDUs, UPSs, and environmental monitors. Customers get account management and a service upgrade marketplace. All driven by four backend data sources — Splynx, UISP, MikroTik RouterOS, and Zabbix/SNMP.


Access Model — Role-Based (Staff) + Customer

my.forefrontwireless.com
├── /login
├── /staff/*      ← role-gated
└── /customer/*   ← customer-gated

Staff Roles

Role Permissions Who
Admin Full CRUD — devices, customers, SNMP templates, billing overrides, user management Germaine
Tech Read-write limited — troubleshoot customer issues, view all equipment, run diagnostics, reset CPEs, but no billing changes or user management Contractors, support staff
View Only Read-only across all dashboards — no config changes, no customer data mutation Auditors, occasional helpers

Implementation: Role stored in portal's own user table (not Splynx roles — Splynx is source-of-truth for billing, portal has its own auth). Contractors get Tech role by default.

Customer Access

  • Login (email + password, or magic link)
  • Tied to their Splynx customer record
  • Can only see their own account, services, and usage
  • No network-level visibility

Staff Dashboard — Real-Time Network Ops

The staff landing page is a grid of live-status cards grouped by device category:

Section 1: MikroTik Routers

Source: MikroTik REST API (direct) Devices: 5 × CCR2004

Widget Data
Router status Online/offline, uptime
CPU / Memory Live gauges
Aggregate throughput Total in/out across all interfaces
Per-router drill-down Interface stats, queues, DHCP leases, ARP

Source: UISP API

Widget Data
Link status Up/down, signal strength (dBm)
Capacity Current throughput vs max
List view All P2P links with AirMax stats

Section 3: Customer CPEs (Ubiquiti)

Source: UISP API

Widget Data
CPE status Online/offline count, last seen
Signal health Signal/chain stats from subscriber devices
Search By customer name → linked CPE
Actions (Tech) Reboot CPE, re-associate

Section 4: MikroTik Switches

Source: MikroTik REST API (or SNMP via Zabbix proxy)

Widget Data
Switch status Online/offline per switch
Port utilization % used, PoE budget
VLAN membership Trunk/access port map

Section 5: PDUs & UPSs (Algcom)

Source: SNMP (via Zabbix or direct SNMP poll)

Widget Data
PDU outlet status On/off per outlet, current draw
UPS status Battery charge %, load %, runtime remaining
Alerts On battery, low battery, overload

Section 6: Environmental (TPDIN Web Monitor 3)

Source: SNMP (via Zabbix or direct) + web URL scrape

Widget Data
Temperature Current, min/max 24h
Humidity Current %
Contact sensors Door open/closed, water detected
Web UI link Direct link to TPDIN interface

Device Inventory & SNMP Template Auto-Generation

Staff (Admin/Tech) can add new devices via the portal UI:

Add Device Form

Field Example Purpose
Make Algcom, MikroTik, TPDIN, Ubiquiti Manufacturer
Model ALG-PDU-8, CCR2004, W-M3 Model identifier
Category Router / Switch / PDU / UPS / Environmental / Backhaul / CPE Dashboard section
IP Address 10.x.x.x SNMP target
SNMP Community public / custom For SNMP polling
Web URL http://10.x.x.x Direct link from dashboard
SNMP Template algcom-pdu, tpdin-wm3, mikrotik-switch Dropdown — existing templates

Auto-Template Engine

When a new make/model is added that has no existing template, the backend:

  1. Probes SNMP — walks 1.3.6.1.2.1 (standard MIB) to discover available OIDs
  2. Identifies device — matches sysDescr / sysObjectID against known patterns
  3. Suggests template — maps discovered OIDs to widget types (gauge, status, counter, text)
  4. Staff approves — one-click to save as reusable template for that make/model

Once a template exists for a make+model, any new device added with that combination inherits it automatically.

Template Schema (per make/model)

{
  "make": "Algcom",
  "model": "ALG-PDU-8",
  "category": "pdu",
  "poll_interval_seconds": 60,
  "widgets": [
    {
      "name": "Outlet 1 Current",
      "oid": "1.3.6.1.4.1.x.x.x.1",
      "type": "gauge",
      "unit": "A",
      "warning_threshold": 8,
      "critical_threshold": 10
    }
  ]
}

Architecture — 4-Source Aggregation

┌──────────────────────────────────────────────────────────────────────────┐
│                        my.forefrontwireless.com                           │
│                     ┌─────────────────────────┐                          │
│                     │     React SPA            │                          │
│                     │  /staff/*  │ /customer/* │                          │
│                     └───────────┬─────────────┘                          │
└─────────────────────────────────┼────────────────────────────────────────┘
                                  │
                                  ▼
┌──────────────────────────────────────────────────────────────────────────┐
│                       FastAPI Aggregation Backend                         │
│                                                                          │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌────────────────┐    │
│  │ Splynx  │ │  UISP   │ │MikroTik │ │  Zabbix  │ │  Direct SNMP   │    │
│  │ Adapter │ │ Adapter │ │ Adapter │ │ Adapter  │ │  Poller        │    │
│  └────┬────┘ └────┬────┘ └────┬────┘ └────┬─────┘ └───────┬────────┘    │
│       │           │           │            │               │             │
│  ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ ┌────┴─────┐ ┌──────┴────────┐    │
│  │  Auth   │ │  Role   │ │ Device  │ │  SNMP    │ │  Template     │    │
│  │ Service │ │ Manager │ │ Registry│ │ Template │ │  Engine       │    │
│  └─────────┘ └─────────┘ └─────────┘ └──────────┘ └───────────────┘    │
└──────────────────────────────────────────────────────────────────────────┘
        │              │              │                 │
        ▼              ▼              ▼                 ▼
┌──────────────┐ ┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ Splynx v4.2  │ │ UISP     │ │ MikroTik     │ │ Zabbix       │
│ Self-hosted  │ │ (UNMS)   │ │ RouterOS     │ │ (on-prem     │
│              │ │ app2     │ │ REST API     │ │  or cloud)   │
└──────────────┘ └──────────┘ └──────────────┘ └──────────────┘
   billing/CRM     network     router stats       SNMP infra

Customer Portal Features

Dashboard

  • Active services (what plan am I on?)
  • Current bill & due date
  • Data usage (from MikroTik queue stats)
  • Recent payments

Account Management

  • Update contact info (email, phone, address)
  • Update payment method
  • View invoice history

Marketplace — Service Upgrades

  • Browse available plans (from Splynx tariffs)
  • Compare current plan vs upgrades
  • Request upgrade (generates Splynx ticket or service change)
  • See prorated cost before confirming

Support

  • Submit ticket (→ Splynx ticket system)
  • View ticket status
  • Outage notifications (opt-in SMS/email)

Hardware Inventory — Known Devices

Routers (MikroTik CCR2004 Series)

Model Ports SFP+ Cooling Notes
CCR2004-1G-12S+2XS 1× GbE, 12× SFP+, 2× SFP28 (25G) ✓ 12+2 Active High-density fiber router
CCR2004-16G-2S+PC 16× GbE, 2× SFP+ ✓ 2 Passive Silent, 300% faster than CCR1009
CCR2004-16G-2S+ 16× GbE, 2× SFP+ ✓ 2 Active Best single-core perf/watt

Data source: MikroTik REST API — status, CPU, memory, throughput, interface stats, DHCP, queues

Switches (MikroTik CRS Series)

Model Ports SFP+ PoE Form Factor
CRS317-1G-16S+RM 1× GbE, 16× SFP+ ✓ 16 1U rack, dual PSU
CRS309-1G-8S+IN 1× GbE, 8× SFP+ ✓ 8 Desktop
CRS310-8G+2S+IN 8× 2.5GbE, 2× SFP+ ✓ 2 Desktop, ROS v7
CRS326-24G-2S+RM 24× GbE, 2× SFP+ ✓ 2 ✓ Passive 1U rack

Data source: MikroTik REST API or SNMP — port map, PoE budget, VLAN memberships

Access Points / Base Stations (Ubiquiti)

Model SKU Band Gain WiFi Price Notes
Wave AP Micro Wave-AP-Micro 60 GHz + 5 GHz 13.5 dBi 6 (802.11ax) 1× 2.5GbE, IPX6, 24W
Wave AP Wave-AP 60 GHz + 5 GHz 12 dBi 6 (802.11ax) 1× 2.5GbE + 1× 10G SFP+, IPX6
LTU Rocket LTU-Rocket 5 GHz LTU $399 PtMP base station, pairs with LTU Pro/LR/XE

Data source: UISP API — channel, clients, throughput, firmware

Customer CPEs (Ubiquiti Subscriber Stations)

Model SKU Band Gain Throughput Price Use Case
LTU Pro LTU-Pro 5 GHz 24 dBi 900+ Mbps $179 Standard 5 GHz CPE, 14° beam
LTU LR LTU-LR 5 GHz 26 dBi 900+ Mbps $99 Long range 5 GHz, 26 dBi
Wave Nano Wave-Nano 60 GHz $279 Compact 60 GHz CPE
Wave LR Wave-LR 60 GHz $379 Long range 60 GHz CPE
airFiber 60 LR AF60-LR 60 GHz $299 Dual-mode: PtP link or PtMP client

Data source: UISP API — online/offline, signal (dBm), throughput, reboot (Tech role)

Model SKU Band Gain Beamwidth Price Notes
airFiber 60 XR AF60-XR 60 GHz + 5 GHz failover 26 dBi × $999 Extreme range, dual-band redundancy
Wave Pro Wave-Pro 60 GHz $599 High-capacity 60 GHz PTP/PTMP
Wave LR Wave-LR 60 GHz $379 Can serve as backhaul or CPE

Data source: UISP API — link status, signal strength, capacity %, uptime

DC Power Systems (PacketFlux)

Device Description SNMP Notes
PacketFlux RackInjector Modular DC power injector, hot-swappable, bench-repairable ✓ via SiteMonitor Individual port fuses, per-component replacement
RackInjector Hardware Docs Installation & configuration manual Internal component layout, power distribution

Data source: SNMP via PacketFlux SiteMonitor system

DC UPS & PDUs (Algcom)

SKU Model Spec SNMP Notes
FN-4800-10-SNMP POWER ADVANCED 48-540-M 540W / 10A, 48V DC UPS LiFePO4 compatible
FN-4800-25-SNMP POWER ADVANCED 48-1350-M 1350W / 25A, 48V DC UPS Larger capacity
37030030001 DC PDU Monitored 1U 8× 10A outputs, 80A total, 1060 VDC ✓ SNMPv2 Per-outlet V/A/W, remote on/off, scheduling, undervoltage shutdown, Zabbix/Grafana/LibreNMS compatible

Data source: SNMP — per-output voltage, current, power; battery charge/load/runtime for UPS models

Environmental Monitors (TPDIN)

Device Data Source Widgets
TPDIN Web Monitor 3 SNMP + web URL scrape Temperature, humidity, contact sensors (door/water)

Data source: SNMP (temp/humidity/contacts) + HTTP scrape of web interface for backup data


Build Phases

Phase What Complexity
1 Splynx adapter + auth system + roles + customer dashboard Medium
2 MikroTik adapter + staff router/switch dashboard Medium
3 UISP adapter + backhaul/CPE dashboard Medium
4 SNMP poller + template engine + PDU/UPS/environmental dashboard High
5 Customer marketplace (plan comparison + upgrade flow) Medium
6 Device registry UI + auto-template generation High

Integration Dependencies

Source Adapter Type Auth Status
Splynx REST (HMAC-SHA256 signature) Key + secret ✓ Proven
UISP REST (API token) Settings → Users → API Access Token needed
MikroTik REST (basic auth) Read-only API user per router Users needed
Zabbix REST (API token) Zabbix API user TBD — cloud migration
SNMP Direct UDP poll Community string per device Template needed