NetBox FMS - Fiber Management System¶
Fiber cable management, splice planning, and circuit provisioning for NetBox.
Version: 0.1.0 | Requires: NetBox 4.5+ | Python: 3.12+
What it does¶
NetBox FMS extends NetBox with the data model and tooling needed to track real
fiber plant: outside-plant trunks, splice closures, fiber circuits, and the
day-to-day work of moving glass around. It plugs into NetBox's existing
dcim.Cable / FrontPort / RearPort graph rather than replacing it, so the
trace algorithm, REST API, GraphQL schema, change log, and permission system
all work the same way they do for the rest of NetBox.
The plugin focuses on four problems:
- Cable construction modeling. Define a fiber cable product once as a
blueprint (
FiberCableType), then auto-instantiate buffer tubes, ribbons, strands, and non-fiber elements every time you install that cable. - Splice planning with review. Plan splice work in
draft, route it through a review gate (pending_approval->approved), and apply approved plans atomically per closure. - Fiber circuit provisioning. Discover candidate paths between two devices via DAG-based pathfinding and create end-to-end circuits with traceable hops.
- Operational metadata. Slack loops, gland labels, tube-to-tray assignments, and a per-device fiber overview tab.
Feature highlights¶
- Type/Instance pattern.
FiberCableTypeis a blueprint;FiberCableis an instance. On creation, the instance auto-instantiates components from the type's templates following the same shape NetBox uses forDeviceType/Device. - Four construction cases. Loose tube, ribbon-in-tube, central-core ribbon, and tight buffer. The case is determined entirely by which templates are attached to the type; no flag is needed.
- EIA-598 colors. Strands and tubes are colored automatically by position, cycling every 12. No manual color entry.
- Splice plan FSM.
draft->pending_approval->approved->archived. Multiple plans can target the same closure in parallel; fiber exclusivity prevents collisions. Approval requires theapprove_spliceplanpermission. - Splice editor. TypeScript/D3 visual editor at the device level. Drag to splice, click to remove, ghost lines for fibers claimed by other plans, read-only mode for non-draft plans, undo/redo, optimistic locking.
- Draw.io export. One page per tray, EIA-598 colors, diff annotations.
- Custom cable profiles. 24, 48, 72, 96, 144, 216, 288, and 432 strand profiles plus trunk profiles, registered via a startup monkey-patch (NetBox's built-in profiles cap at 16 positions).
- REST API and GraphQL. Every model is exposed; the splice plan viewset
has dedicated
bulk-update,apply,import-from-device, anddiffactions. - Search integration.
FiberCableType,FiberCable,SplicePlan,SpliceProject,FiberCircuit,SlackLoop, andTrayProfileare registered with NetBox's global search. - Sample data. A
create_sample_datamanagement command builds a full ISP-scale topology (380+ closures, 460+ plant cables, 5 fiber circuits) for demo, screenshots, and benchmarking.
Quick install¶
See Installation for the full procedure.
Documentation¶
-
Getting Started
Install, configure, and walk through your first cable, splice plan, and circuit.
-
User Guide
Cable types, cables, splice planning, fiber circuits, the splice editor, closures, and slack loops.
-
Developer
Architecture, REST API, GraphQL, signals, services, and contributing.
-
Reference
Choice values, cable profiles, permissions, and management commands.