Skip to main content

NetBox plugin to sync Forward Networks data into NetBox via built-in NQE queries

Project description

Forward NetBox Plugin

forward_netbox is a NetBox plugin that syncs Forward Networks inventory into NetBox through direct Forward API connectivity and NQE while preserving the branch-backed sync, diff, and merge workflow.

Release Compatibility

Plugin Release NetBox Version Status
v0.1.5 4.5.x only Current unsupported release

Version History

Release Summary
v0.1.5 Fixes null VRF coalesce handling, imports loopback interfaces for IP attachment, and hardens inventory-item identity fallbacks.
v0.1.4.2 CI/package patch release that applies repository formatting/import-order fixes and publishes a clean artifact line.
v0.1.4.1 Patch release that bounds built-in dcim.virtualchassis names/domains to NetBox field limits.
v0.1.4 Hardened built-in NQE mappings and docs for large real-world datasets.
v0.1.3 Enforced deterministic model identity contracts during sync ingestion.
v0.1.2 Improved ingestion safety, diagnostics, and compatibility with custom NetBox data.
v0.1.1 Added pagination, shared built-in NQE helpers, and release/doc cleanup.
v0.1.0 Initial unsupported NetBox plugin release with built-in Forward sync workflow and seeded NQE maps.

Support Disclaimer

This repository is provided for use at your own risk. It is an unsupported release and is not an officially supported Forward Networks product. There is no warranty, support commitment, or compatibility guarantee beyond the version table above.

Features

  • Branch-backed sync, diff, and merge flow through netbox_branching
  • Forward Sources, NQE Maps, Syncs, and Ingestions
  • Built-in shipped NQE maps seeded automatically after migration
  • Support for either published Forward query_id references or raw NQE query text
  • Explicit identity contracts per map (coalesce_fields) with strict sync-time ambiguity detection
  • Repository-authored built-in queries can share local helper modules and still execute as flattened raw NQE when bundled
  • Automatic paging across multi-page Forward NQE result sets during sync execution
  • Snapshot-aware execution with latestProcessed or an explicit Forward snapshot per sync
  • Ingestion records that preserve the selected snapshot mode, resolved snapshot ID, and Forward snapshot metrics
  • Built-in coverage for:
    • dcim.site
    • dcim.manufacturer
    • dcim.devicerole
    • dcim.platform
    • dcim.devicetype
    • dcim.device
    • dcim.virtualchassis
    • dcim.interface
    • dcim.macaddress
    • dcim.inventoryitem
    • ipam.vlan
    • ipam.vrf
    • ipam.prefix for IPv4 and IPv6
    • ipam.ipaddress

Quickstart

  1. Install the plugin into the same Python environment as NetBox:
pip install forward-netbox==0.1.5

If you need an offline or pinned artifact workflow, install the wheel or source archive from GitHub Releases instead:

pip install /path/to/forward_netbox-0.1.5-py3-none-any.whl
  1. Enable both plugins in the NetBox configuration:
PLUGINS = [
    "netbox_branching",
    "forward_netbox",
]
  1. Apply migrations:
python manage.py migrate
  1. Open NetBox and create a Forward Source.
  2. Select a Forward network for that source.
  3. Create a Forward Sync, choose the snapshot selector, and enable the NetBox models you want to sync.
  4. Run an adhoc ingestion, review the staged branch diff, review the recorded snapshot details and metrics, and merge when the changes look correct.

Test It Yourself

Use this quick validation flow after installation:

  1. Create a Forward Source using https://fwd.app or your custom Forward URL.
  2. Enter a Forward username and password, then confirm the Network field populates from the live Forward tenant.
  3. Open NQE Maps and verify the built-in maps are present.
  4. Create a Forward Sync tied to the source, leaving Snapshot at latestProcessed for the first run.
  5. Run the sync from the sync detail page.
  6. Review the generated Forward Ingestion, Issues, snapshot details, snapshot metrics, and change diff.
  7. Merge the branch and confirm the synced objects appear in NetBox.

Local Validation

The repository now includes local validation tasks:

  • invoke forward_netbox.lint
  • invoke forward_netbox.check
  • invoke forward_netbox.test
  • invoke forward_netbox.docs
  • invoke forward_netbox.package
  • invoke forward_netbox.ci

For a live Forward smoke run outside CI, set these environment variables and run the smoke task locally:

export FORWARD_SMOKE_USERNAME='your-forward-username'
export FORWARD_SMOKE_PASSWORD='your-forward-password'
export FORWARD_SMOKE_NETWORK_ID='your-network-id'
invoke forward_netbox.smoke-sync

Optional smoke-sync variables:

  • FORWARD_SMOKE_URL defaults to https://fwd.app
  • FORWARD_SMOKE_SNAPSHOT_ID defaults to latestProcessed
  • FORWARD_SMOKE_MODELS accepts a comma-separated subset such as dcim.site,dcim.device,dcim.interface
  • invoke forward_netbox.smoke-sync --validate-only runs live snapshot/query validation without executing an ingestion
  • invoke forward_netbox.smoke-sync --merge will merge the staged branch after a clean run

Documentation

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

forward_netbox-0.1.5.tar.gz (62.7 kB view details)

Uploaded Source

Built Distribution

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

forward_netbox-0.1.5-py3-none-any.whl (90.3 kB view details)

Uploaded Python 3

File details

Details for the file forward_netbox-0.1.5.tar.gz.

File metadata

  • Download URL: forward_netbox-0.1.5.tar.gz
  • Upload date:
  • Size: 62.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for forward_netbox-0.1.5.tar.gz
Algorithm Hash digest
SHA256 972db39a91daedad37e28d4d3a6915839a5fec059048636fa495ce05cb00e013
MD5 d82a19b1f03d43ec762961a532cb2602
BLAKE2b-256 77d7e1e9d7e2f57ecd8e4674e274a369c133dc34638bdd0ce2ad24f7ec5fb85e

See more details on using hashes here.

File details

Details for the file forward_netbox-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: forward_netbox-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 90.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for forward_netbox-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3e129d5290f772bb7ed3c79cd6398d92c6a6721102822096f0b5d874f2f237d1
MD5 aeac3c0c63ea7798342f94bc7752c672
BLAKE2b-256 96bf82c07dfd7e047b9ee16325820e44554cad43132796c102b22d03049feef2

See more details on using hashes here.

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