v4 Release Notes
v4.3.2 (2025-10-29)
Changes
- All user-facing strings are now marked for translation.
- Added Ready to mergeandMergingstatuses to Sync to differentiate between sync and merge.
- Added status choices to Sync filter.
- Docs contain new Troubleshootingsection with common issues and their solutions.
- Improved docs regarding logging setup.
Fixes
- Correctly serialize status for IPFabricSyncREST API.
v4.3.1 (2025-10-14)
Changes
- Removed manual Transform Maps installation from docs since it’s obsolete.
- Added bulk operations to all needed models.
- Transform map target model and Relationship field source model are correctly displayed in list view.
- ValidationError on Transform Map conflict is now more specific.
- IPFabricSync sync job scheduling moved from form to model save().
- New REST API endpoint to trigger sync of IPFabricSourceandIPFabricSync.
- Added link from Sync detail to the scheduled Job.
- Scheduled time on Sync is now updated to future whenever a scheduled Job is run.
- Automatically delete Branch if sync is set to auto merge.
Fixes
- Table of contents in Transform Maps docs was incomplete.
- Part number did not have human-readable choice causing unexpected bugs.
- Only allowed actions on list views are now shown.
- Parameters passed to IPFabricSync via API is correctly parsed to JSON.
- Unified permission ipfabric_netbox.start_ipfabricsynctoipfabric_netbox.sync_ipfabricsync
- Scheduled Jobs are no longer duplicated when editing an existing Sync.
- Ingestion detail view works even when Job is manually deleted.
- Disabled Merge button on Ingestion if Branch is already merged.
v4.3.0 (2025-09-23)
Warning
This release requires at least NetBox v4.4.0.
Changes
- Support for NetBox v4.4.0+.
- Optimization: Objects are checked for changes before validation and saving to the database. This should significantly reduce the time needed for syncing when there are only few changes.
- Replace custom Synctable with NetBox’s built-in list table.
- Added option to completely skip syncing custom fields to avoid empty updates.
- Added full GraphQL support for all models.
- IPFabricSourceAPI now supports- briefparameter.
- API serializers now support depthparameter to control how many nested objects are serialized.
- All direct REST API endpoints now support full CRUD operations except for IPFabricSnapshot,IPFabricIngestionandIPFabricIngestionIssuewhich are read-only.
- Removed typefromIPFabricSyncForm, all models are now visible by default.
- IPFabricTransformMapand- IPFabricTransformMapGroupforms now allows for tagging.
- Custom permissions now follow NetBox’s standard naming scheme <app_label>.<action>_<model_name>. Following renames were made:- ipfabric_netbox.tm_restore->- ipfabric_netbox.restore_ipfabrictransformmap
- ipfabric_netbox.ipfabrictransformmap_add->- ipfabric_netbox.clone_ipfabrictransformmap
- ipfabric_netbox.sync_source->- ipfabric_netbox.sync_ipfabricsource
- ipfabric_netbox.start_sync->- ipfabric_netbox.start_ipfabricsync
- ipfabric_netbox.merge_ingestion->- ipfabric_netbox.merge_ipfabricingestion
 
- When cloning an IPFabricTransformMap, the redirect now points to the clones map.
- Source is found using Sitewhen custom field containingIPFabricSourceID is empty. This happens when custom fields are ignored during sync.
- All sync parameters are now enabled by default on new sync creation.
- Updated netbox-branchingto 0.7.0.
Fixes
- Improved docs section regarding upgrade issues with NetBox v4.3.0+.
- extragroup for IPF SDK version- 7.3was incorrectly pointing to- 7.2.
- Fixed wrong filter set on IPFabricRelationshipFieldAPI view.
- IPFabricSource.statusAPI serializer is now correctly read-only.
- Added missing filter sets for IPFabricSyncandIPFabricRelationshipFieldAPI views.
- briefparameter in most API serializers will now correctly return simplified data.
- Fixed several small bugs in forms backend found with new tests.
- Removed obsolete GitLab reference when restoring transform maps.
- All views now correctly handle situation where non HTMX request is made when only HTMX is expected.
- IPFabricSyncbulk deletion was using- IPFabricSnapshottable instead- IPFabricSynctable.
- Since NetBox 4.3.0 Topology button was show on all models. It’s back to only Site.
- Values in IPFabricSyncform were not populated from existing instance on edit.
- IPFabricSyncform HTMX GET URL was getting longer with each change of- sourcefield.
v4.2.2 (2025-09-12)
Fixes
- Sourcedetail view no longer crashes with- 'str' object has no attribute '_meta'error on NetBox 4.3.7+.
v4.2.1 (2025-08-27)
Fixes
- Topology no longer crashes when opening Sitedetail.
v4.2.0 (2025-07-18)
Changes
- Enhanced Installation Guide.
- All data in Ingestion detail views (newly statistics and tabs) are now updated every 5 seconds with the logs.
- Most issues during ingestion are now stored as IPFabricIngestionIssueobjects and can be viewed in separate Ingestion detail tab view.
- Ingestion will show as passed when no errors occurred and only some issues were found.
- Added extragroup for IPF SDK version7.3.
Fixes
- Device topology view was using the wrong data for Site ID.
- Sync settings are more strictly respected in the sync process. This applies for all models but DeviceandInterfacewhich need to be obtained from the database if their child models are asked to be synced.
v4.1.0 (2025-06-24)
Changes
- Added IPFabricTransformMapGroupmodel to groupIPFabricTransformMapobjects together.
- Restoring transform maps restores only those with no group assigned.
- Sync now prioritizes using transform maps from groups specified in the sync settings.
- Dropped extragroup support for IPF SDK <6.10and added version7.2.
Fixes
- Fixed topology view hanging on error.
- Updated docs to incorporate local_settings.pyintoconfiguration.py.
v4.0.1 (2025-06-03)
Fixes
- NetBox plugin list showed the previous version as installed.
v4.0.0 (2025-05-27)
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:
Modify your configuration.py with the following content. Replace $ORIGINAL_DATABASE_CONFIG with your original DATABASE configuration dictionary. If you are using other DATABASE_ROUTERS, make sure to include them in the list.
from netbox_branching.utilities import DynamicSchemaDict
# Wrap DATABASES with DynamicSchemaDict for dynamic schema support
DATABASES = DynamicSchemaDict({
    'default': $ORIGINAL_DATABASE_CONFIG,
})
# Employ netbox-branching custom database router
DATABASE_ROUTERS = [
    'netbox_branching.database.BranchAwareRouter',
]
# Add `netbox-branching` to plugins list (must be last!)
PLUGINS = [
    # ...
    'netbox_branching',
]
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 -> syncandbranch -> ingestionto avoid conflicts with netbox-branching.
- Renamed Name -> Objectin list of ingestion changes and linked to the item if it exists.
- Removed unused statusfield fromIPFabricTransformMapand cleaned all references.
Fixes
- Quick search for staged changes was ignoring their values.
- Sync for InventoryItemfailed 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.
- duplexand- speedon- Interfacetake- unknownvalue as- None.
- Correctly set DeviceTypewhenmodelis empty.
- Convert platform to slugwhen using it forDeviceType.
- Ignored VLANwithVLAN ID0.
- Ignore InventoryItems withNoneserial number.