Skip to main content

NetBox plugin for physical cable plant infrastructure documentation with GIS capabilities

Project description

netbox-pathways

A NetBox plugin for documenting physical cable plant infrastructure with PostGIS integration. Track conduits, aerial spans, structures, and cable routing with geographic data, comparable to SmallWorld or ArcGIS with ArcFM for outside/inside plant documentation.

PyPI Python NetBox CI codecov Status License: Apache 2.0

Features

  • Structures -- poles, manholes, cabinets, equipment rooms, and more with PostGIS geometry (point or polygon).
  • Pathways -- conduits, aerial spans, direct buried, innerducts, cable trays with PostGIS line geometry.
  • Conduit Banks and Junctions -- model conduit bank configurations and mid-span Y-tees.
  • Cable Routing -- track which NetBox cables traverse which pathways, in sequence.
  • Pull Sheets -- printable cable routing documents for field crews.
  • GeoJSON API -- standard GeoJSON endpoints for QGIS and other GIS clients.
  • QGIS Integration -- style files, project generator, and documentation.
  • Geometry Editing -- draw and edit geometries directly in NetBox forms via Leaflet map widgets.
  • Interactive Map -- built-in Leaflet map for quick visualization.
  • Indoor / Outdoor -- pathways can terminate at structures (outdoor) or NetBox locations (indoor).

Compatibility

Plugin version NetBox version Python PostgreSQL
0.1.x 4.5.3+ 3.12-3.14 16+ with PostGIS 3.4

Installation

pip install netbox-pathways

In your NetBox configuration.py:

PLUGINS = ["netbox_pathways"]

PLUGINS_CONFIG = {
    "netbox_pathways": {
        "srid": 3348,           # REQUIRED -- your EPSG code (see warning below)
        "map_center_lat": 45.5, # default map center latitude (optional)
        "map_center_lon": -73.5,# default map center longitude (optional)
        "map_zoom": 10,         # default map zoom level (optional)
    },
}

Run migrations and restart:

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

Configuration

SRID is immutable after installation

The srid setting defines the coordinate reference system used for all geometry columns in the database. It is baked into the database schema at migration time.

Changing the SRID after data has been loaded WILL CORRUPT YOUR SPATIAL DATA. PostgreSQL / PostGIS does NOT automatically re-project existing coordinates when the column SRID changes. Geometries will have wrong coordinates in the new CRS with no way to recover them automatically.

Choose your SRID carefully before first deployment. Common choices:

EPSG Name Notes
4326 WGS84 (GPS coordinates, degrees) Global, but distorts distances and areas.
3857 Web Mercator (meters) Used by Google Maps, OSM tiles.
3348 NAD83(CSRS) / Statistics Canada Lambert (m) Good for Canada.
2154 RGF93 / Lambert-93 (meters) Good for France.
32632 WGS84 / UTM zone 32N (meters) Good for central Europe.

If you need to change SRID after deployment, you must manually re-project all geometry data using PostGIS ST_Transform() and update the column SRID definitions. This is an advanced DBA operation; back up everything first.

QGIS quick start

Generate a QGIS project with all layers pre-configured:

python manage.py generate_qgis_project \
    --url https://your-netbox \
    --token your-api-token

Open the generated .qgs file in QGIS. Style files (.qml) ship under static/netbox_pathways/qgis/ and can be loaded via Layer Properties > Style > Load Style.

REST and GeoJSON API

All resources are exposed under /api/plugins/pathways/. GeoJSON variants live under /api/plugins/pathways/geo/ for direct QGIS / OGR consumption. See API Examples for full endpoint coverage.

Documentation

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

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

Apache License 2.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_pathways-0.1.0.tar.gz (124.0 kB view details)

Uploaded Source

Built Distribution

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

netbox_pathways-0.1.0-py3-none-any.whl (139.5 kB view details)

Uploaded Python 3

File details

Details for the file netbox_pathways-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for netbox_pathways-0.1.0.tar.gz
Algorithm Hash digest
SHA256 eab392ffaf664d98ea971631f74ea312cce2042f46000b5c3e056524a7f0b5a8
MD5 2f8a42b5700155afd9b6cf3b05a2edb8
BLAKE2b-256 6d11561ac92a2177f9a371b572bc66bbd2bac9415f1666dd42eb0fefbbedb40d

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_pathways-0.1.0.tar.gz:

Publisher: publish.yml on jsenecal/netbox-pathways

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_pathways-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for netbox_pathways-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44243a2e3d16ca9f89044ead3b04ccad0f013e3e06536089836a111c77784ae9
MD5 5a238f5e79795ecf390bc964e3163028
BLAKE2b-256 0949cbb3a946f5d58183b6c3d4da7ba17f4ed7f7f68390db29e76c103c94ef00

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_pathways-0.1.0-py3-none-any.whl:

Publisher: publish.yml on jsenecal/netbox-pathways

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