v4 Release Notes
v4.0.0 (2025-05-26)
Changes
- We are now using netbox-branching to handle staging.
Required upgrade steps
For successful migration please follow netbox-branching installation instructions. Step 3 and 4 should be enough since the plugin is installed as dependency and just needs enabling and configuring.
Simplified installation instructions:
- Enable the plugin in
configuration.py
(must be last!)PLUGINS = [ # ... 'netbox_branching', ]
- Create
/opt/netbox/netbox/netbox/local_settings.py
with following content. It assumes yourconfiguration.py
is in/opt/netbox/netbox/netbox/
.from netbox_branching.utilities import DynamicSchemaDict from .configuration import DATABASE # Wrap DATABASES with DynamicSchemaDict for dynamic schema support DATABASES = DynamicSchemaDict({ 'default': DATABASE, }) # Employ our custom database router DATABASE_ROUTERS = [ 'netbox_branching.database.BranchAwareRouter', ]
Danger
When upgrading to v4.0.0+, make sure to upgrade at the same step as NetBox to 4.3.0+. If you already upgraded your NetBox instance, follow Cannot resolve bases for [<ModelState: 'ipfabric_netbox.IPFabricBranch'>]
instructions.
- Renamed
ingestion -> sync
andbranch -> ingestion
to avoid conflicts with netbox-branching. - Renamed
Name -> Object
in list of ingestion changes and linked to the item if it exists. - Removed unused
status
field fromIPFabricTransformMap
and cleaned all references.
Fixes
- Quick search for staged changes was ignoring their values.
- Sync for
InventoryItem
failed when name was longer than 64 characters. - Unable to delete IP Fabric Ingestion in UI.
- Data were not validated on model save.
Warning
This will cause more failures during data ingestion. These are not new, but are not hidden anymore. It would cause error when manipulating the faulty object synced by previous versions.
- Ingestion Job was listed in Sync and not in Ingestion.
- The Default value for template is empty string instead of
None
. duplex
andspeed
onInterface
takeunknown
value asNone
.- Correctly set
DeviceType
whenmodel
is empty. - Convert platform to
slug
when using it forDeviceType
. - Ignored
VLAN
withVLAN ID
0. - Ignore
InventoryItem
s withNone
serial number.