Skip to content

Releases: netbox-community/netbox

v4.4.2 - 2025-09-30

30 Sep 20:16
Compare
Choose a tag to compare

Enhancements

  • #17010 - Show admin navigation menu items only for staff & superusers
  • #19590 - Add columns for device site & location to device component tables
  • #19765 - Linkify assigned object types under saved filter view
  • #20308 - Add a hotkey (/) for the global search field
  • #20332 - Add a "none" option to object tag filters
  • #20380 - Introduce the SENTRY_CONFIG configuration parameter
  • #20412 - Linkify cluster type on virtual machine detail view
  • #20438 - Add facility field to bulk edit forms for sites and locations

Bug Fixes

  • #18878 - Automatically assign a designated primary MAC address upon creation of a new interface
  • #20243 - Prevent scheduled system jobs from re-running multiple times
  • #20253 - Fix support for filtering object contact assignments in GraphQL API
  • #20365 - Address various inaccuracies in generated OpenAPI schema
  • #20375 - Preserve filter parameters when performing bulk operations
  • #20390 - Fix styling of page size selection dropdown
  • #20392 - Clean up ordering of interface type options
  • #20398 - Fix misleading error reporting for min/max custom field values
  • #20419 - Correct action buttons for child object views
  • #20425 - Fix Markdown preview functionality within "quick add" modal
  • #20441 - Fix display of the "groups" column in contact assignments table

v4.4.1 - 2025-09-16

16 Sep 15:58
8fa1abd
Compare
Choose a tag to compare

Enhancements

  • #15492 - Enable cloning of permissions
  • #16381 - Display script result timestamps in system timezone
  • #19262 - No longer restrict FHRP group assignment by assigned IP address
  • #19408 - Support export templates for circuit terminations and virtual circuit terminations
  • #19428 - Add an optional U height field to the devices table
  • #19547 - Add individual "sync" buttons in data sources table
  • #19865 - Reorganize cable type groupings
  • #20222 - Enable the HttpOnly flag for CSRF cookie
  • #20237 - Include VPN tunnel groups in global search results
  • #20241 - Record A & B terminations in cable changelog data
  • #20277 - Add support for attribute assignment to deserialize_object() utility
  • #20321 - Add physical media types for transceiver interfaces
  • #20347 - Add Wi-Fi Alliance aliases to 802.11 interface types

Bug Fixes

  • #19729 - Restore kind filter for interfaces in GraphQL API
  • #19744 - Plugins list should be orderable by "active" column
  • #19851 - Fix ValueError complaining of missing scope when bulk importing wireless LANs
  • #19896 - Min/max values for decimal custom fields should accept decimal values
  • #20197 - Correct validation for virtual chassis parent interface
  • #20215 - All GraphQL filters for config contexts should be optional
  • #20217 - Remove "0 VLANs available" row at end of VLAN range table
  • #20221 - JSON fields should not coerce empty dictionaries to null
  • #20227 - Ensure consistent padding of Markdown content
  • #20234 - Fix "add" button link for prerequisite object warning in UI
  • #20236 - Strip invalid characters from uploaded image file names
  • #20238 - Fix support for outside IP assignment during bulk import of tunnel terminations
  • #20242 - Avoid AttributeError exception on background jobs with no request ID
  • #20252 - Remove generic AddObject from ObjectChildrenView to prevent duplicate "add" buttons
  • #20264 - Fix rendering of default icon in plugins list
  • #20272 - ConfigContexts assigned to ancestor locations should apply to device/VM
  • #20282 - Fix styling of prerequisite objects warning
  • #20298 - Display a placeholder when an image thumbnail fails to load
  • #20327 - Avoid calling distinct() on device/VM queryset when fetching config context data

v4.4.0 - 2025-09-02

02 Sep 17:04
d8822c8
Compare
Choose a tag to compare

New Features

Background Jobs for Bulk Operations (#19589, #19891)

Most bulk operations, such as the import, modification, or deletion of objects can now be executed as a background job. This frees the user to continue working in NetBox while the bulk operation is processed. Once completed, the user will be notified of the job's result.

Logging Mechanism for Background Jobs (#19816)

A dedicated logging mechanism has been implemented for background jobs. Jobs can now easily record log messages by calling e.g. self.logger.info("Log message") under the run() method. These messages are displayed along with the job's resulting data. Supported log levels include DEBUG, INFO, WARNING, and ERROR.

Changelog Comments (#19713)

When creating, editing, or deleting objects in NetBox, users now have the option of providing a short message explaining the change. This message will be recorded on the resulting changelog records for all affected objects.

Config Context Data Validation (#19377)

A new ConfigContextProfile model has been introduced to support JSON schema validation for config context data. If a validation schema has been defined for a profile, all config contexts assigned to it will have their data validated against the schema whenever a change is made. (The assignment of a config context to a profile is optional.)

Enhancements

  • #17413 - Platforms belonging to different manufacturers may now have identical names
  • #18204 - Improved layout of the image attachments view & tables
  • #18528 - Introduced the HOSTNAME configuration parameter to override the system hostname reported by NetBox
  • #18984 - Added a status field for rack reservations
  • #18990 - Image attachments now include an optional description field
  • #19134 - Interface transmit power now accepts negative values
  • #19231 - Bulk renaming support has been implemented in the UI for most object types
  • #19591 - Thumbnails for all images attached to an object are now displayed under a dedicated tab
  • #19722 - The REST API endpoint for object types has been extended to include additional details
  • #19739 - Introduced a user preference for CSV delimiter
  • #19740 - Enable nesting of platforms within a hierarchy for improved organization
  • #19773 - Extend the system UI view with additional information
  • #19893 - The /api/status/ REST API endpoint now includes the system hostname
  • #19920 - Contacts can now be assigned to ASNs
  • #19945 - Introduce a new custom script variable to represent decimal values
  • #19965 - Add REST & GraphQL API request counters to the Prometheus metrics exporter
  • #20029 - Include complete representation of object type in webhook payload data

Plugins

  • #18006 - A Javascript is now triggered when UI is toggled between light and dark mode
  • #19735 - Custom individual and bulk operations can now be registered under individual views using ObjectAction
  • #20003 - Enable registration of callbacks to provide supplementary webhook payload data
  • #20115 - Support the use of ArrayColumn for plugin tables
  • #20129 - Enable plugins to register custom model features

Deprecations

  • #19738 - The direct assignment of VLANs to sites is now discouraged in favor of VLAN groups

Other Changes

  • #18349 - The housekeeping script has been replaced with a system job
  • #18588 - The "Service" model has been renamed to "Application Service" for clarity (UI change only)
  • #19829 - The REST API endpoint for object types is now available under /api/core/
  • #19924 - ObjectTypes are now tracked as concrete objects in the database (alongside ContentTypes)
  • #19973 - Miscellaneous improvements to the nbshell management command

v4.3.7 - 2025-08-26

26 Aug 17:54
08ae139
Compare
Choose a tag to compare

Enhancements

  • #18147 - Add device & VM interface counts under related objects for VRFs
  • #19990 - Button to add a missing prerequisite now includes a return URL
  • #20122 - Improve color contrast of highlighted data under changelog diff view
  • #20131 - Add object selector for interface to the MAC address edit form

Bug Fixes

  • #18916 - Fix dynamic dropdown selection styling for required fields when no selection is made
  • #19645 - Fix interface selection when adding a cable for a virtual chassis master
  • #19669 - Restore token authentication support for fetching media assets
  • #19970 - Device role child device counts should be cumulative
  • #20012 - Fix support for empty filter lookup on custom fields
  • #20043 - Fix page styling when rack elevations are embedded
  • #20098 - Fix AttributeError exception when assigning tags during bulk import
  • #20120 - Fix REST API serialization of jobs under /api/core/background-tasks/
  • #20157 - Fix IntegrityError exception when a duplicate notification is triggered
  • #20164 - Fix ValueError exception when attempting to add power outlets to devices in bulk

v4.4.0-beta1 - 2025-08-15

15 Aug 17:54
6d4cc16
Compare
Choose a tag to compare
Pre-release

New Features

Background Jobs for Bulk Operations (#19589, #19891)

Most bulk operations, such as the import, modification, or deletion of objects can now be executed as a background job. This frees the user to continue working in NetBox while the bulk operation is processed. Once completed, the user will be notified of the job's result.

Logging Mechanism for Background Jobs (#19816)

A dedicated logging mechanism has been implemented for background jobs. Jobs can now easily record log messages by calling e.g. self.logger.info("Log message") under the run() method. These messages are displayed along with the job's resulting data. Supported log levels include DEBUG, INFO, WARNING, and ERROR.

Changelog Comments (#19713)

When creating, editing, or deleting objects in NetBox, users now have the option of providing a short message explaining the change. This message will be recorded on the resulting changelog records for all affected objects.

Config Context Data Validation (#19377)

A new ConfigContextProfile model has been introduced to support JSON schema validation for config context data. If a validation schema has been defined for a profile, all config contexts assigned to it will have their data validated against the schema whenever a change is made. (The assignment of a config context to a profile is optional.)

Enhancements

  • #17413 - Platforms belonging to different manufacturers may now have identical names
  • #18204 - Improved layout of the image attachments view & tables
  • #18528 - Introduced the HOSTNAME configuration parameter to override the system hostname reported by NetBox
  • #18984 - Added a status field for rack reservations
  • #18990 - Image attachments now include an optional description field
  • #19134 - Interface transmit power now accepts negative values
  • #19231 - Bulk renaming support has been implemented in the UI for most object types
  • #19591 - Thumbnails for all images attached to an object are now displayed under a dedicated tab
  • #19722 - The REST API endpoint for object types has been extended to include additional details
  • #19739 - Introduced a user preference for CSV delimiter
  • #19740 - Enable nesting of platforms within a hierarchy for improved organization
  • #19773 - Extend the system UI view with additional information
  • #19893 - The /api/status/ REST API endpoint now includes the system hostname
  • #19920 - Contacts can now be assigned to ASNs
  • #19945 - Introduce a new custom script variable to represent decimal values
  • #19965 - Add REST & GraphQL API request counters to the Prometheus metrics exporter
  • #20029 - Include complete representation of object type in webhook payload data

Plugins

  • #18006 - A Javascript is now triggered when UI is toggled between light and dark mode
  • #19735 - Custom individual and bulk operations can now be registered under individual views using ObjectAction
  • #20003 - Enable registration of callbacks to provide supplementary webhook payload data

Deprecations

  • #19738 - The direct assignment of VLANs to sites is now discouraged in favor of VLAN groups

Other Changes

  • #18349 - The housekeeping script has been replaced with a system job
  • #18588 - The "Service" model has been renamed to "Application Service" for clarity (UI change only)
  • #19829 - The REST API endpoint for object types is now available under /api/core/
  • #19924 - ObjectTypes are now tracked as concrete objects in the database (alongside ContentTypes)
  • #19973 - Miscellaneous improvements to the nbshell management command

v4.3.6 - 2025-08-12

12 Aug 17:16
290e4af
Compare
Choose a tag to compare

Enhancements

  • #17222 - Made unread notifications more visible with improved styling and positioning
  • #18843 - Include color name when exporting cables
  • #18873 - Add a request timeout parameter to the RSS feed dashboard widget
  • #19622 - Allow sharing GraphQL queries as links
  • #19728 - Added C18 power port type for audio devices
  • #19968 - Improve object type selection form field when editing permissions
  • #19977 - Improve performance when filtering device components by site, location, or rack

Bug Fixes

  • #19321 - Reduce redundant database queries when bulk importing devices
  • #19379 - Support singular VLAN IDs in list when editing a VLAN group
  • #19812 - Implement contains GraphQL filter for IPAM prefixes and IP ranges
  • #19917 - Ensure deterministic ordering of duplicate MAC addresses
  • #19996 - Correct dynamic query parameters for IP Address field in Add/Edit Service form
  • #19998 - Fix missing changelog records for deleted tags
  • #19999 - Corrected excessive whitespace in script list dashboard widget
  • #20001 - is_api_request() should not evaluate a request's content type
  • #20009 - Ensure search parameter is escaped for export links under object list views
  • #20017 - Fix highlighting of changed lines in changelog data
  • #20023 - Add GiST index on prefixes table to vastly improve bulk deletion time
  • #20030 - Fix height of object list action buttons & others
  • #20033 - Fix TypeError exception when bulk deleting bookmarks
  • #20056 - Fixed missing RF role options in device type schema validation

v4.3.5 - 2025-07-29

29 Jul 20:30
6ca3908
Compare
Choose a tag to compare

Enhancements

  • #18797 - Added jinja2.StrictUndefined option for config template rendering to catch undefined variables
  • #18936 - Cable imports now accept color names (e.g. "red", "blue") in addition to hex color codes
  • #19840 - Cable imports now support specifying site information for better organization
  • #19902 - Device names in rack elevation SVG exports are automatically truncated to prevent overflow beyond rack unit boundaries
  • #19903 - String field filters now support regex and iregex lookups for advanced pattern matching
  • #19910 - Internet-dependent links are no longer visible when running in air-gapped environments

Bug Fixes

  • #18900 - REST API paginator now raises proper exceptions when attempting to paginate unordered querysets
  • #19916 - Rack elevation image/label dropdown functionality restored
  • #19934 - Added missing description field to tenant bulk edit form
  • #19956 - Prevent duplicate deletion records in changelog from cascading deletions

Note

Plugin Developer Advisory: The fix for bug #18900 now raises explicit exceptions when API endpoints attempt to paginate unordered querysets. Plugin maintainers should review their API viewsets to ensure proper queryset ordering is applied before pagination, either by using .order_by() on querysets or by setting ordering in model Meta classes. Previously silent pagination issues in plugin code will now raise QuerySetNotOrdered exceptions and may require updates to maintain compatibility.

v4.3.4 - 2025-07-15

15 Jul 18:01
6eeb382
Compare
Choose a tag to compare

Enhancements

  • #18811 - Match expanded form IPv6 addresses in global search
  • #19550 - Enable lazy loading for rack elevations
  • #19571 - Add a default module type profile for expansion cards
  • #19793 - Support custom dynamic navigation menu links
  • #19828 - Expose L2VPN termination in interface GraphQL response

Bug Fixes

  • #19413 - Custom fields should be grouped in filter forms
  • #19633 - Introduce InvalidCondition exception and log all evaluations of invalid event rule conditions
  • #19800 - Module type bulk import should support profile assignment
  • #19806 - Introduce JobFailed exception to allow marking background jobs as failed
  • #19827 - Enforce uniqueness for device role names & slugs
  • #19839 - Enable export of parent assignment for recursively nested objects
  • #19876 - Remove Markdown rendering from CustomFieldChoiceSet description field

v4.3.3 - 2025-06-26

26 Jun 18:42
Compare
Choose a tag to compare

Enhancements

  • #17183 - Enable associating tags with object types during bulk import
  • #17719 - Introduce a user preference for table row striping
  • #19492 - Add a UI button to download the output of an executed custom script
  • #19499 - Support qualifying interfaces by parent device when bulk importing wireless links

Bug Fixes

  • #19529 - Fix support for running custom scripts via the runscript management command
  • #19555 - Fix support for schedule_at when invoking a custom script via the REST API
  • #19617 - Ensure consistent styling of "connect" buttons in UI
  • #19640 - Restore ability to filter FHRP group assignments by device/VM in GraphQL API
  • #19644 - Atomic transactions should always employ database routing
  • #19659 - Populate initial device/VM selection for "add a service" button
  • #19665 - Correct field reference in wireless link model validation
  • #19667 - Fix TypeError exception when creating a new module profile type with no schema
  • #19673 - Ignore custom field references when compiling table prefetches
  • #19677 - Fix exception when passing null value to present_in_vrf filter
  • #19680 - Correct chronological ordering of change records resulting from device deletions
  • #19687 - Cellular interface types should be considered non-connectable
  • #19702 - Fix DoesNotExist exception when deleting a notification group with an associated event rule
  • #19745 - Fix bulk import of services with IP addresses assigned to FHRP groups

v4.3.2 - 2025-06-05

05 Jun 19:57
0e68901
Compare
Choose a tag to compare

Enhancements

  • #19200 - Display assigned virtual chassis (if any) on device view
  • #19461 - Add color backgrounds for virtual circuit types
  • #19605 - Enable filtering IP addresses by family in GraphQL API
  • #19627 - Introduce object change migrators

Bug Fixes

  • #19415 - Increase maximum supported distance for circuits and wireless links
  • #19475 - VLANs belonging to the same location as a VM's cluster should be eligible for assignment to interfaces on that VM
  • #19486 - Fix connection card rendering for console server ports
  • #19487 - Fix FieldError exception when ordering circuit or tunnel terminations by the terminating object
  • #19490 - Fix inclusion support for config templates populated via a data source
  • #19496 - Fix AttributeError exception when rendering a config template with no output
  • #19510 - Restore GraphQL API filtering for assigned IP addresses
  • #19520 - Restore ability to alter prefix scope via the REST API
  • #19587 - The occupied filter should include interfaces terminating a wireless link
  • #19599 - Fix AttributeError exception when sorting change history under user view
  • #19610 - Fix FieldError exception when sorting tunnel terminations by tenant
  • #19623 - Display description under provider account view