Skip to main content

Fiber Management System - Enhanced fiber cable topology visualization and management for NetBox

Project description

NetBox FMS -- Fiber Management System

Under active development -- alpha. netbox-fms is pre-1.0 and changing fast. Models, migrations, REST endpoints, and configuration keys may break between releases without deprecation cycles. Pin an exact version in production, expect to read the CHANGELOG before every upgrade, and back up your database before running migrations. Issue reports and PRs are very welcome.

A NetBox plugin for fiber cable management, splice planning, and circuit provisioning.

PyPI Python NetBox CI codecov Documentation License: AGPL-3.0

Define fiber cable construction as reusable blueprints, auto-instantiate components on cable creation, plan splices with diff computation and draw.io export, and provision end-to-end fiber circuits with DAG-based pathfinding -- all within NetBox's native UI and API.

Features

  • Cable type blueprints with auto-instantiation -- Define fiber cable construction once as a FiberCableType, then create instances that automatically populate buffer tubes, ribbons, strands, and cable elements following NetBox's Device/DeviceType pattern.
  • Four construction cases -- Loose tube, ribbon-in-tube, central-core ribbon, and tight buffer cable designs with full template-driven instantiation.
  • Per-wavelength loss budgeting -- Attach manufacturer max-attenuation specs (dB/km) to each FiberCableType at any wavelength. FiberCircuitPath.calculated_loss_db computes per-wavelength losses across the full cable path from spec values and each cable's glass_length.
  • Splice planning -- Map strand-to-strand connections in splice closures, compute diffs against live state, and export diagrams to draw.io for field crews.
  • Fiber circuit provisioning -- End-to-end provisioning with DAG-based pathfinding and multi-hop tracing.
  • Device fiber overview -- Per-device fiber connection view, splice closure management with tray and group organization.
  • Slack loop tracking -- Record slack loop locations and storage methods at splice closures, with insert-into-closure workflows.
  • Full REST API and GraphQL -- All models exposed via NetBox's standard API framework.

Compatibility

Plugin version NetBox version Python
0.1.x 4.5 3.12-3.14

Installation

pip install netbox-fms

In your NetBox configuration.py:

PLUGINS = [
    "netbox_fms",
]

Run migrations and restart NetBox:

cd /opt/netbox/netbox
python manage.py migrate
sudo systemctl restart netbox netbox-rq

Configuration

netbox-fms has no required PLUGINS_CONFIG entries. See Configuration for optional settings.

Documentation

Full documentation: jsenecal.github.io/netbox-fms

Related plugins

netbox-fms is part of a three-plugin set that models the full optical transport stack:

  • netbox-pathways -- physical cable plant documentation with PostGIS. Models conduits, aerial spans, structures (poles, manholes, cabinets), and the geographic routes NetBox cables traverse. FMS describes what is inside a fiber cable and how strands are spliced; Pathways describes where the cable physically runs.
  • netbox-wdm -- WDM (Wavelength Division Multiplexing) device management. Models ITU channel plans, ROADM mappings, and wavelength services that ride on top of the fiber circuits FMS provisions.

Contributing

PRs welcome. Use conventional-commits PR titles (feat:, fix:, chore:, docs:, ...) -- release-drafter assembles release notes from them. Run make setup after cloning to install dev dependencies and the pre-commit hooks (including the AI-attribution-rejecting commit-msg hook).

For questions and discussion, join the #netbox channel on the NetDev Community Slack.

License

GNU Affero General Public License v3.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netbox_fms-0.2.0.tar.gz (268.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netbox_fms-0.2.0-py3-none-any.whl (276.1 kB view details)

Uploaded Python 3

File details

Details for the file netbox_fms-0.2.0.tar.gz.

File metadata

  • Download URL: netbox_fms-0.2.0.tar.gz
  • Upload date:
  • Size: 268.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for netbox_fms-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d5a27a81978769affdcd16df19918115b59fdd8e7a930f3d2f99a9a34f476edc
MD5 300072ef83e532102c161963c8933126
BLAKE2b-256 8ef0ab27a308d9343c334d16422255d0b42647a9a551a97bcc4ad1811857e861

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_fms-0.2.0.tar.gz:

Publisher: publish.yml on jsenecal/netbox-fms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file netbox_fms-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: netbox_fms-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 276.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for netbox_fms-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0866d353f991fa1fed23015f69c1ce416c10d06c60ce03a53d0a5468b842c8d5
MD5 d4a921bebeebee2264fc4f90cda0f771
BLAKE2b-256 6f2552463f983d294be4903cf3c0365bbd5ba6671a6cc0d7b520fb0993db04e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_fms-0.2.0-py3-none-any.whl:

Publisher: publish.yml on jsenecal/netbox-fms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page