Skip to main content

WDM wavelength management for NetBox - ITU channel plans, ROADM editing, and position stack enforcement

Project description

netbox-wdm

A NetBox 4.5+ plugin for WDM (Wavelength Division Multiplexing) device management.

PyPI Python NetBox CI codecov Status License: AGPL-3.0

Manages ITU channel plans, channel-to-port assignments, trunk port identification, ROADM live editing, and wavelength service tracking.

Alpha software. The API and data model may change between releases. Use in production at your own risk.

Features

  • Overlay pattern -- WdmDeviceTypeProfile overlays DeviceType (blueprint), WdmNode overlays Device (instance).
  • Dual port support -- separate MUX and DEMUX front port assignments per channel, with duplex and single-fiber modes.
  • ITU grid support -- DWDM 100 GHz (44 ch), DWDM 50 GHz (88 ch), CWDM (18 ch).
  • EXP / 1310 ports -- express upgrade and 1310 nm gray optic pass-through as COM rear port positions.
  • Auto-population -- channels automatically created from profile templates when a device is added.
  • DeviceType integration -- WDM Profile tab on DeviceType detail pages.
  • Wavelength editor -- TypeScript frontend with undo/redo, dirty state, optimistic concurrency, conditional MUX/DEMUX columns.
  • Wavelength services -- end-to-end service tracking with sequenced channel assignments and PROTECT guards.
  • Circuit trace visualization -- interactive horizontal flow diagram on WdmCircuit detail pages.
  • Full CRUD stack -- list, detail, edit, delete, bulk import/edit/delete views for all models.
  • REST API -- CRUD endpoints plus apply-mapping (atomic ROADM editor) and stitch (wavelength path).
  • GraphQL -- strawberry-django types, filters, and schema for all models.
  • Sample data -- management command with realistic WDM topologies, patch panels, and end-to-end cabling.

Compatibility

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

Installation

pip install netbox-wdm

In your NetBox configuration.py:

PLUGINS = ["netbox_wdm"]

Apply migrations:

cd /opt/netbox/netbox
python manage.py migrate

Documentation

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

Key references:

  • docs/developer/architecture -- overlay pattern, port topology, position-stack alignment.
  • docs/developer/style-guide -- frontend conventions for the TypeScript components.

Models

Model Description
WdmDeviceTypeProfile 1:1 overlay on dcim.DeviceType -- defines grid, node type, and fiber type (duplex / single-fiber)
WdmChannelTemplate Channel-to-port blueprint with MUX and DEMUX front port template assignments
WdmNode 1:1 overlay on dcim.Device -- instance of a WDM device
WdmLinePort Identifies trunk RearPorts with direction (common / east / west) and role (tx / rx / bidi)
WdmChannel Per-channel instance with MUX and DEMUX front port assignments
WdmWavelengthPath End-to-end traced path through the cable plant between WDM nodes
WdmCircuit Logical service grouping one or more wavelength paths

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).

License

AGPL-3.0-or-later.

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_wdm-0.2.2.tar.gz (135.6 kB view details)

Uploaded Source

Built Distribution

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

netbox_wdm-0.2.2-py3-none-any.whl (145.9 kB view details)

Uploaded Python 3

File details

Details for the file netbox_wdm-0.2.2.tar.gz.

File metadata

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

File hashes

Hashes for netbox_wdm-0.2.2.tar.gz
Algorithm Hash digest
SHA256 c15baebac011152e4a0f5b7e3dcabb8448494e4e0e82bdf16bef6213308d2d0a
MD5 2352a94fea90de5a8014c5e2a4883715
BLAKE2b-256 57eeb6389c9905cec2991f4e1bfce129320121d5b23c2b3875379e708f413489

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_wdm-0.2.2.tar.gz:

Publisher: publish.yml on jsenecal/netbox-wdm

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_wdm-0.2.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for netbox_wdm-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 143fd5f9f4ec2d409c00cf9d7c17aa832829f9882485a810d581cadc09ffb6f5
MD5 ad10407c04d1514443430143cfb484f7
BLAKE2b-256 8fb28f65e459e727d796ef728aa73cf5ec0fa2cdccbcf0b807329027faa1b08f

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_wdm-0.2.2-py3-none-any.whl:

Publisher: publish.yml on jsenecal/netbox-wdm

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