NetBox IPAM Grouping and Applications
A NetBox plugin that lets you group IPAM objects (IP Addresses, Prefixes, IP Ranges) into named Groups and assign them to Applications, with ownership-scoped editing based on NetBox's native Ownership model (introduced in NetBox 4.5).
Features
- Applications — standalone entities with a name, slug, and owner. Used to represent systems or services that own IPAM resources.
- Groups — named collections of IP Addresses, Prefixes, and IP Ranges, linked to an Application and an Owner.
- Ownership scoping — non-admin users can only see and edit Groups and Applications belonging to Owners they are members of.
- IPAM object scoping — when editing a Group, the IP Address / Prefix / IP Range pickers are filtered to objects the user owns (via the
ipam_applicationcustom field). - Native NetBox Ownership — uses
users.Owner(NetBox 4.5+) rather than raw Django users/groups.
Requirements
- NetBox >= 4.5.0
- Python >= 3.10
Installation
pip install netbox-ipam-grouping
Add the plugin to your NetBox configuration.py:
PLUGINS = [
"netbox_ipam_grouping",
]
Run migrations:
python netbox/manage.py migrate netbox_ipam_grouping
Custom Field Setup
This plugin expects the following custom fields:
-
- Name:
ipam_application: - Object types:
ipam | ip addressipam | prefixipam | ip range
- Label:
Application - Group name:
AppViz - Type:
Object - Related object type:
IPAM Grouping And Applications > Application - UI visible:
If set - UI editable:
Yes
- Name:
-
- Name:
appviz_diff - Object types:
IPAM Grouping And Applications > Group
- Group name:
AppViz - Type:
Text - UI visible:
Hidden - UI editable:
No
- Name:
-
- Name:
appviz_sync: - Object types:
IPAM Grouping And Applications > Group
- Label:
Synced with AppViz - Group name:
AppViz - Type:
Boolean (true/false) - Default value:
false - UI visible:
Always - UI editable:
No
- Name:
-
- Name:
appviz_object_id: - Object types:
IPAM Grouping And Applications > Group
- Label:
AppViz object_id - Group name:
AppViz - Type:
Integer - UI visible:
If set - UI editable:
Yes
- Name:
Navigation
The plugin registers a Firewall Management top-level menu with two sections:
- Applications — list, add, view, edit, delete Applications
- Groups — list, add, view, edit, delete Groups
Note: NetBox's plugin API does not currently expose a public mechanism to inject items into the built-in IPAM navigation menu. The plugin therefore registers its own top-level menu entry.
Permissions
Grant the following NetBox object permissions to non-admin users/groups as needed:
| Model | Permissions |
|---|---|
netbox_ipam_grouping | application |
view, add, change, delete |
netbox_ipam_grouping | group |
view, add, change, delete |
Development
git clone https://github.com/your-org/netbox-ipam-grouping
cd netbox-ipam-grouping
pip install -e ".[dev]"
Publishing to PyPI
pip install build twine
python -m build
twine upload dist/*
License
Apache 2.0 — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netbox_ipam_grouping-1.0.6.tar.gz.
File metadata
- Download URL: netbox_ipam_grouping-1.0.6.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b0859d5aba1a0021a96db472ffac6087866640bf5f98fe9a47adf59bdc02115
|
|
| MD5 |
fdf6fa0ba8998856c8e9204b54e62d33
|
|
| BLAKE2b-256 |
6dbd8e61791bc1abdc0ce8c02e8a996f7ae70bdfe89a8242096652fe8b0d5fa3
|
Provenance
The following attestation bundles were made for netbox_ipam_grouping-1.0.6.tar.gz:
Publisher:
python-publish.yml on bogdan-iot/netbox-ipam-grouping
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbox_ipam_grouping-1.0.6.tar.gz -
Subject digest:
5b0859d5aba1a0021a96db472ffac6087866640bf5f98fe9a47adf59bdc02115 - Sigstore transparency entry: 2499110505
- Sigstore integration time:
-
Permalink:
bogdan-iot/netbox-ipam-grouping@cff18357448cc62aeaf50772047f3a609d7d4608 -
Branch / Tag:
refs/tags/v1.0.6 - Owner: https://github.com/bogdan-iot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@cff18357448cc62aeaf50772047f3a609d7d4608 -
Trigger Event:
release
-
Statement type:
File details
Details for the file netbox_ipam_grouping-1.0.6-py3-none-any.whl.
File metadata
- Download URL: netbox_ipam_grouping-1.0.6-py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aef1001517d25b0cc0acc6d81269e06c93058571c69be69c1ee6fc9a618fc763
|
|
| MD5 |
2d1b9f95df03579df56e9ba226292023
|
|
| BLAKE2b-256 |
09fe248370a273c6839b557e127b324e3bb91f00e7c837a24be896c1a151cc7d
|
Provenance
The following attestation bundles were made for netbox_ipam_grouping-1.0.6-py3-none-any.whl:
Publisher:
python-publish.yml on bogdan-iot/netbox-ipam-grouping
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbox_ipam_grouping-1.0.6-py3-none-any.whl -
Subject digest:
aef1001517d25b0cc0acc6d81269e06c93058571c69be69c1ee6fc9a618fc763 - Sigstore transparency entry: 2499110515
- Sigstore integration time:
-
Permalink:
bogdan-iot/netbox-ipam-grouping@cff18357448cc62aeaf50772047f3a609d7d4608 -
Branch / Tag:
refs/tags/v1.0.6 - Owner: https://github.com/bogdan-iot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@cff18357448cc62aeaf50772047f3a609d7d4608 -
Trigger Event:
release
-
Statement type: