NetBox v3.6.0 is now available! Our second minor release of 2023, it brings some substantial changes to the user interface as well as several new features.
Breaking Changes
- PostgreSQL 11 is no longer supported (dropped in Django 4.2). NetBox v3.6 requires PostgreSQL 12 or later.
- The
device_rolefield on the Device model has been renamed torole. Thedevice_rolefield has been temporarily retained on the REST API serializer for devices for backward compatibility, but is read-only. - The
choicesarray field has been removed from the CustomField model. Any defined choices are automatically migrated to CustomFieldChoiceSets, accessible via the newchoice_setfield on the CustomField model. - The
napalm_driverandnapalm_argsfields (which were deprecated in v3.5) have been removed from the Platform model. - The
deviceanddevice_idfilter for interfaces will no longer include interfaces from virtual chassis peers. Two new filters,virtual_chassis_memberandvirtual_chassis_member_id, have been introduced to match all interfaces belonging to the specified device’s virtual chassis (if any). - Reports and scripts are now returned within a
resultslist when fetched via the REST API, consistent with other models. - Superusers can no longer retrieve API token keys via the web UI if
ALLOW_TOKEN_RETRIEVALis disabled. (The admin view has been removed per #13044.)
New Features
Relocated Admin UI Views (#12589, #12590, #12591, #13044)
Management views for the following object types, previously available only under the backend admin interface, have been relocated to the primary user interface:
- Users
- Groups
- Object permissions
- API tokens
- Configuration revisions
This migration provides a more consistent user experience and unlocks advanced functionality not feasible using Django’s built-in views. The admin UI is scheduled for complete removal in NetBox v4.0.
Configurable Default Permissions (#13038)
Administrators now have the option of configuring default permissions for all users globally, regardless of explicit permission or group assignments granted in the database. This is accomplished by defining the DEFAULT_PERMISSIONS configuration parameter. By default, all users are granted permission to manage their own bookmarks and API tokens.
User Bookmarks (#8248)
Users can now bookmark their favorite objects in NetBox. Bookmarks are accessible under each user’s personal bookmarks list, and can also be added as a dashboard widget.
Custom Field Choice Sets (#12988)
Selection and multi-select custom fields now employ discrete, reusable choice sets containing the valid options for each field. A choice set may be shared by multiple custom fields. Additionally, each choice within a set can now specify both a raw value and a human-friendly label (see #13241). Pre-existing custom field choices are migrated to choice sets automatically during the upgrade process.
Pre-Defined Location Choices for Custom Fields (#12194)
Users now have the option to employ one of several pre-defined sets of choices when creating a custom field. These include:
- IATA airport codes
- ISO 3166 country codes
- UN/LOCODE location identifiers
When defining a choice set, one of the above can be employed as the base set, with the option to define extra, custom choices as well.
Restrict Tag Usage by Object Type (#11541)
Tags may now be restricted to use with designated object types. Tags that have no specific object types assigned may be used with any object that supports tag assignment.
Enhancements
- #6347 – Cache the number of assigned components for devices and virtual machines
- #8137 – Add a field for designating the out-of-band (OOB) IP address for devices
- #10197 – Cache the number of member devices on each virtual chassis
- #11305 – Add GPS coordinate fields to the device model
- #11478 – Introduce
virtual_chassis_memberfilter for interfaces & restore default behavior fordevicefilter - #11519 – Add a SQL index for IP address host values to optimize queries
- #11732 – Prevent inadvertent overwriting of object attributes by competing users
- #11936 – Introduce support for tags and custom fields on webhooks
- #12175 – Permit racks to start numbering at values greater than one
- #12210 – Add tenancy assignment for power feeds
- #12461 – Add config template rendering for virtual machines
- #12814 – Expose NetBox models within ConfigTemplate rendering context
- #12882 – Add tag support for contact assignments
- #13037 – Return reports & scripts within a
resultslist when fetched via the REST API - #13170 – Add
rf_roleto InterfaceTemplate - #13269 – Cache the number of assigned component templates for device types
Bug Fixes
- #13513 – Prevent exception when rendering bookmarks widget for anonymous user
- #13599 – Fix errant counter increments when editing device/VM components
- #13605 – Optimize cached counter migrations to avoid excessive memory consumption
Other Changes
- Work has begun on introducing translation and localization support in NetBox. This work is being performed in preparation for release 4.0.
- #6391 – Rename the
device_rolefield on Device torolefor consistency with VirtualMachine - #9077 – Prevent the errant execution of dangerous instance methods in Django templates
- #11766 – Remove obsolete custom
ChoiceFieldandMultipleChoiceFieldclasses - #12180 – All API endpoints for available objects (e.g. IP addresses) now inherit from a common parent view
- #12237 – Upgrade Django to v4.2
- #12794 – Avoid direct imports of Django’s stock user model
- #12320 – Remove obsolete fields
napalm_driverandnapalm_argsfrom Platform - #12964 – Drop support for PostgreSQL 11
- #13309 – User account-specific resources have been moved to a new
accountapp for better organization

