Skip to main content

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.

Metadata

Release files for netbox-wdm 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netbox-wdm 0.2.2
File Size Uploaded
netbox_wdm-0.2.2.tar.gz 135.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for netbox-wdm 0.2.2
File Interpreter ABI Platform
netbox_wdm-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 281.4 kB

Release files / netbox_wdm-0.2.2.tar.gz

Download URL netbox_wdm-0.2.2.tar.gz
Size 135.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c15baebac011152e4a0f5b7e3dcabb8448494e4e0e82bdf16bef6213308d2d0a
BLAKE2b-256 checksum
How to use checksums
57eeb6389c9905cec2991f4e1bfce129320121d5b23c2b3875379e708f413489
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Release files / netbox_wdm-0.2.2-py3-none-any.whl

Download URL netbox_wdm-0.2.2-py3-none-any.whl
Size 145.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
143fd5f9f4ec2d409c00cf9d7c17aa832829f9882485a810d581cadc09ffb6f5
BLAKE2b-256 checksum
How to use checksums
8fb28f65e459e727d796ef728aa73cf5ec0fa2cdccbcf0b807329027faa1b08f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page