# CHANGELOG — Forefront Wireless Customer Portal --- ## 2026-07-25 — Project Inception & API Connection **Context:** Germaine shared Splynx API credentials for Forefront Wireless, his WISP company. The self-hosted Splynx instance (v4.2) runs at `portal.forefrontwireless.com/admin/`. The goal is to build a branded customer portal at `my.forefrontwireless.com`. ### Completed - **API connection established** — Splynx API v2.0 at `/api/2.0/` verified working - **Authentication cracked** — Signature-based auth (HMAC-SHA256) with microtime nonce. Three methods tested: - ✅ Signature: `Splynx-EA (key=K&nonce=N&signature=S)` — works - ✅ Access Token: POST `/admin/auth/tokens` — generates token with 30-min expiry - ⚠️ Basic Auth: returns 403 unless "Unsecure access" is enabled on the API key - **API key configured** — Full permissions on all resources (customers, services, finance, networking, support, tariffs, scheduling, inventory) - **Endpoint reconnaissance** — Verified working: - `GET /admin/customers/customer` — 43 customers (33 active, 9 disabled) - `GET /admin/customers/customer-internet-services/{id}` — per-customer services - `GET /admin/networking/routers` — 5 MikroTik CCR2004 routers - `GET /admin/tariffs/internet` — 9 plans ($59.95-$299.95/mo) - `GET /admin/finance/invoices` — billing records - **Splynx quirks documented** — 405 on query-param service endpoints, tariff name resolution, signature nonce format ### Decisions - **Stack:** React SPA → FastAPI backend → Splynx API v2.0. Same pattern as IntelSight and VoIPSimplicity. - **Hosting:** CloudPanel on app3 (152.53.241.111) — keeps customer portals together - **Auth pattern:** Server-to-server signature auth (not per-user Access Tokens) — portal handles its own user auth, backend proxies to Splynx - **Domain:** my.forefrontwireless.com (follows ITPP product convention: my.*.com) - **Building after:** IntelSight + LaunchCheck (shared infrastructure, shared auth patterns, reusable Super Search engine) ### Reference: API Credentials ``` Key: 5a8dc490716424f435306f2c18b4fdcb Secret: 5773f779e5ae5aac965845a66bd857a0 Base: https://portal.forefrontwireless.com/api/2.0/ ``` ### Next Steps (When Ready) 1. Register `my.forefrontwireless.com` DNS 2. Build FastAPI backend with Splynx proxy layer 3. Build React dashboard 4. Stripe integration for payments 5. Deploy on app3 via CloudPanel