Files
LibreQoS/docs/v2.0/integrations.md
T

98 lines
4.9 KiB
Markdown
Raw Normal View History

2025-03-20 12:15:13 -06:00
# CRM/NMS Integrations
2024-03-21 08:33:29 -06:00
2026-02-25 19:15:19 -07:00
## Page Purpose
2026-04-11 04:15:10 +00:00
Use this page to choose and configure a supported CRM/NMS integration. Use the per-integration pages for setup details.
2026-02-25 19:15:19 -07:00
2026-04-11 04:15:10 +00:00
Need definitions for common terms? See the [Glossary](glossary.md).
2026-02-26 08:50:11 -07:00
Most operators use built-in integrations.
If you have not selected a deployment path yet, start with [Quickstart](quickstart.md).
2025-03-11 04:01:57 -06:00
2026-02-25 19:40:43 -07:00
```{mermaid}
flowchart LR
A[CRM/NMS] --> B[LibreQoS Integration Job]
2026-04-11 04:15:10 +00:00
B --> H[topology_import.json]
H --> E[lqos_scheduler]
2026-02-25 19:40:43 -07:00
E --> F[Shaping Updates]
E --> G[WebUI Status / Urgent Issues]
```
2026-02-25 18:50:54 -07:00
## Choose Your Integration Path
2025-11-20 10:39:07 -07:00
2026-04-11 04:15:10 +00:00
| Path | Best fit | Where permanent shaping changes belong |
2026-02-25 18:50:54 -07:00
|---|---|---|
| Built-in integration | Most operators using supported systems | CRM/NMS via LibreQoS integration jobs |
2026-02-26 08:50:11 -07:00
| Custom source of truth | Operators with in-house CRM/NMS sync logic | External generated files (`network.json`, `ShapedDevices.csv`) |
2025-11-20 10:39:07 -07:00
2026-02-25 18:50:54 -07:00
## Where in WebUI
2024-10-22 12:05:25 -06:00
2026-02-25 18:50:54 -07:00
- Integration defaults/common behavior: `Configuration -> Integrations`
- Per-integration configuration fields: `Configuration -> Integrations`
- Operational health checks after sync changes: `WebUI -> Scheduler Status` and `WebUI -> Urgent Issues`
2026-03-15 23:35:41 -06:00
- Topology/result validation: `WebUI -> Network Tree Overview` and `Flow Globe`
2026-02-25 18:50:54 -07:00
## Built-In Integrations
2024-10-22 12:05:25 -06:00
2026-02-25 18:50:54 -07:00
- [Splynx Integration](integrations-splynx.md)
- [UISP Integration](integrations-uisp.md)
- [Netzur Integration](integrations-netzur.md)
- [VISP Integration](integrations-visp.md)
- [WISPGate Integration](integrations-wispgate.md)
- [Powercode Integration](integrations-powercode.md)
- [Sonar Integration](integrations-sonar.md)
2026-04-11 04:15:10 +00:00
## Important Refresh Behavior
2026-02-25 18:50:54 -07:00
When integrations are enabled:
2026-04-11 04:15:10 +00:00
- Integration sync refreshes the imported topology and shaping data LibreQoS uses.
- Built-in integrations do not use `network.json` or `ShapedDevices.csv` as their normal output files.
- Built-in integrations provide native infrastructure topology to Topology Manager; legacy compatibility trees remain derived/export-only data.
- Python-backed integrations currently import infrastructure conservatively as fixed roots or fixed-parent branches. When bounded alternative-parent candidates are available, they are limited to the node's current local parent neighborhood, plus peer root parents of the same type when the current parent is itself a root, rather than the whole imported graph.
- If you run a DIY or manual deployment, `network.json` and `ShapedDevices.csv` remain the files you maintain.
- Direct edits to integration-managed data may be replaced on the next refresh cycle.
Mode capabilities are now explicit by integration:
- UISP: `flat`, `ap_only`, `ap_site`, `full`
- Splynx: `flat`, `ap_only`, `ap_site`, `full`
- Sonar: `flat`, `full`
2026-02-25 18:50:54 -07:00
- Manual edits may be overwritten on the next refresh cycle.
2026-04-11 04:15:10 +00:00
Legacy `integrationUISPbandwidths.csv` and `integrationSplynxBandwidths.csv` files are auto-migrated into operator `AdjustSiteSpeed` entries in `lqos_overrides.json` and renamed to `.backup` files.
DIY/manual deployments continue to use `network.json` and `ShapedDevices.csv` as their primary input files.
## Topology Node ID Support
2026-03-28 02:44:59 +00:00
LibreQoS supports an optional generic `"id"` field on `network.json` nodes. This field is intended to carry stable node identifiers from the integration source where possible.
Current behavior:
2026-04-11 04:15:10 +00:00
- when a node ID is available, LibreQoS uses it to match saved site bandwidth overrides more reliably
- older name-only matching still works as a fallback for older data
2026-03-28 02:44:59 +00:00
- topology names still need to remain globally unique in `network.json`
| Integration | `network.json` node ID support | Notes |
|---|---|---|
| UISP | Yes | Real UISP sites/devices export generic `id` plus existing `uisp_site` / `uisp_device` metadata. Synthetic LibreQoS nodes use stable generated IDs. |
| Splynx | Yes | Network sites and AP/site topology nodes export generic `id`. |
| Sonar | Yes | Site and AP topology nodes export generic `id`. |
2026-04-11 04:15:10 +00:00
| Netzur | Partial | Exported only when the upstream zone data includes a stable zone ID. |
| VISP | No | Current importer shapes services/devices but does not build topology nodes in `network.json`. |
| Powercode | No | Current importer does not build topology nodes in `network.json`. |
| WISPGate | No | Current importer does not build topology nodes from stable upstream topology identifiers. |
2026-03-11 18:22:13 +00:00
## Common Client Rate Handling
For built-in integrations that import raw subscriber plan speeds, LibreQoS applies the same shared client-rate rule before writing `ShapedDevices.csv`:
- effective client max rate = `max(plan_rate * bandwidth_overhead_factor, plan_rate * client_bandwidth_multiplier)`
Integrations that already ingest effective shaped rates keep those values as-is rather than applying the multiplier a second time.
2026-02-25 18:50:54 -07:00
## Related Pages
2026-02-25 18:50:54 -07:00
- [Quickstart](quickstart.md)
- [Operating Modes and Source of Truth](operating-modes.md)
- [Configure LibreQoS](configuration.md)
- [Scale Planning and Topology Design](scale-topology.md)
- [Troubleshooting](troubleshooting.md)