NetBox Services Plugin
A NetBox plugin for service providers who need a service-centric inventory on top of DCIM/IPAM.
NetBox already models devices, prefixes, circuits, and VRFs. What it does not model natively is the commercial / operational service that those objects deliver — the Cogent DIA circuit NW-123456, the customer L3VPN, the IP transit handoff.
This plugin adds a Service object: a unique service ID, a type, a tenant, a lifecycle, and many-to-many links to the NetBox objects that implement it. Tags are still useful for loose labels; a Service is the object you open when someone asks “what does this customer product actually run on?”
What a Service is
Each Service has:
| Area | Fields |
|---|---|
| Identity | Unique service_id, type (L2VPN, L3VPN, DIA, IP Transit, CDN, Voice), description, status, tenant |
| Lifecycle | Order date, planned activation, installed, contract start/end, requested disconnect, decommissioned |
| Delivery | Devices, interfaces, cables, VLANs, prefixes, VRFs, ASNs, route targets, L2VPNs, tunnels, VMs |
| Files | PDF/other files (ServiceAttachment) plus NetBox image attachments (photos) on the Images tab |
Status reuses NetBox circuit statuses so services line up with how circuits are already tracked.
Date checks: contract end cannot precede start; decommissioned cannot precede installed or requested disconnect.
Why not just tags?
Tagging a prefix dia does not tell you which customer product it belongs to, when it was ordered, or which handoff interface delivers it.
With a Service you can, for example, create DIA NW-123456 for a tenant and then:
- Point at the PE/CE devices and the exact interfaces
- Attach the WAN prefixes, VRF, and ASN
- Record order / install / contract dates
- Store the signed PDF and site photos next to the inventory
The detail page is split for that workflow: technical inventory on the left, lifecycle and attachments on the right.
Features
- CRUD for business services from Business Services in the nav
- Relate/unrelate DCIM, IPAM, VPN, and virtualization objects from the service detail view
- Filter and search by service ID, description, tenant, status, and dates
- Bulk delete from the list view
- Changelog, tags, and custom fields (
NetBoxModel) - REST API under
/api/plugins/services/(list/detail includeidand lifecycle fields) - File attachments and native image attachments
Usage
- Open Business Services in the plugin menu.
- Create a service (ID + type at minimum).
- On the detail page, use Assign on each technical card to attach inventory.
- Fill lifecycle dates when the order, install, or disconnect happens.
- Add contracts/PDFs under Attachments; photos go on the Images tab.
Requirements
- NetBox 4.4+
- Python 3.10+
Installation
Install the package:
pip install netbox-services
Or clone this repo next to your NetBox plugins and install in editable mode.
Enable it in configuration.py:
PLUGINS = [
'netbox_services',
]
Apply migrations and restart NetBox:
python manage.py migrate netbox_services
The UI lives at /plugins/services/. The API lives at /api/plugins/services/ (no extra /services/ segment).
License
MIT
Metadata
Release files for netbox-services 0.0.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| netbox_services-0.0.17.tar.gz | 13.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_services-0.0.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.3 kB
Release files / netbox_services-0.0.17.tar.gz
| Download URL | netbox_services-0.0.17.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15c18879d8a4502dcd196552150d4aef3ea58bab48599d6afe3023ff3be8388a
|
|
BLAKE2b-256 checksum How to use checksums |
6a297d82e956a9ab6bfdbaec3df21c0643563e82e157cd96f80bcdff63f83b0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / netbox_services-0.0.17-py3-none-any.whl
| Download URL | netbox_services-0.0.17-py3-none-any.whl |
|---|---|
| Size | 16.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2db5e206e7cee2d9956013d60bb39bea98e066c4ab0f216d99fcea9ebab838d4
|
|
BLAKE2b-256 checksum How to use checksums |
93d4a9c6bb3a59f59f8b178a5b6ca138a698af438f455d381357fc64f65296b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Security for netbox-services 0.0.17
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.