Releases: netbox-community/netbox
v3.2.8 - 2022-08-08
Enhancements
- #9062 - Add/edit {module} substitution to help text for component template name
- #9637 - Add site group field to rack reservation form
- #9762 - Add
nat_outside
column to the IPAddress table - #9825 - Add contacts column to virtual machines table
- #9881 - Increase granularity in utilization graph values
- #9882 - Add manufacturer column to modules table
- #9883 - Linkify location column in power panels table
- #9906 - Include
color
attribute in front & rear port YAML import/export
Bug Fixes
- #9827 - Fix assignment of module bay position during bulk creation
- #9871 - Fix utilization graph value alignments
- #9884 - Prevent querying assigned VRF on prefix object init
- #9885 - Fix child prefix counts when editing/deleting aggregates in bulk
- #9891 - Ensure consistent ordering for tags during object serialization
- #9919 - Fix potential XSS avenue via linked objects in tables
- #9948 - Fix TypeError exception when requesting API tokens list as non-authenticated user
- #9949 - Fix KeyError exception resulting from invalid API token provisioning request
- #9950 - Prevent redirection to arbitrary URLs via
next
parameter on login URL - #9952 - Prevent InvalidMove when attempting to assign a nested child object as parent
v3.3-beta2 - 2022-08-03
Breaking Changes
- Device position and rack unit values are now reported as decimals (e.g.
1.0
or1.5
) to support modeling half-height rack units. - The
nat_outside
relation on the IP address model now returns a list of zero or more related IP addresses, rather than a single instance (or None). - Several fields on the cable API serializers have been altered or removed to support multiple-object cable terminations:
Old Name | Old Type | New Name | New Type |
---|---|---|---|
termination_a_type |
string | Removed | - |
termination_b_type |
string | Removed | - |
termination_a_id |
integer | Removed | - |
termination_b_id |
integer | Removed | - |
termination_a |
object | a_terminations |
list |
termination_b |
object | b_terminations |
list |
- As with the cable model, several API fields on all objects to which cables can be connected (interfaces, circuit terminations, etc.) have been changed:
Old Name | Old Type | New Name | New Type |
---|---|---|---|
link_peer |
object | link_peers |
list |
link_peer_type |
string | link_peers_type |
string |
connected_endpoint |
object | connected_endpoints |
list |
connected_endpoint_type |
string | connected_endpoints_type |
string |
connected_endpoint_reachable |
boolean | connected_endpoints_reachable |
boolean |
- The cable path serialization returned by the
/paths/
endpoint for pass-through ports has been simplified, and the following fields removed:origin_type
,origin
,destination_type
,destination
. (Additionally,is_complete
has been added.)
New Features
Multi-object Cable Terminations (#9102)
When creating a cable in NetBox, each end can now be attached to multiple objects. This allows accurate modeling of duplex fiber connections to individual termination ports and breakout cables, as examples. (Note that all terminations attached to one end of a cable must be the same object type, but do not need to connect to the same parent object.) Additionally, cable terminations can now be modified without needing to delete and recreate the cable.
L2VPN Modeling (#8157)
NetBox can now model a variety of L2 VPN technologies, including VXLAN, VPLS, and others. Each L2VPN can be terminated to multiple device or virtual machine interfaces and/or VLANs to track connectivity across an overlay. Similarly to VRFs, each L2VPN can also have import and export route targets associated with it.
PoE Interface Attributes (#1099)
Two new fields have been added to the device interface model to track power over Ethernet (PoE) capabilities:
- PoE mode: Power supplying equipment (PSE) or powered device (PD)
- PoE type: Applicable IEEE standard or other power type
Half-Height Rack Units (#51)
Device type height can now be specified in 0.5U increments, allowing for the creation of half-height devices. Additionally, a device can be installed at the half-unit mark within a rack (e.g. U2.5). For example, two half-height devices positioned in sequence will consume a single rack unit; two consecutive 1.5U devices will consume 3U of space.
Restrict API Tokens by Client IP (#8233)
API tokens can now be restricted to use by certain client IP addresses or networks. For example, an API token with its allowed_ips
list set to [192.0.2.0/24]
will only permit authentication from API clients within that network; requests from other sources will fail authentication. This can be very useful for restricting the use of a token to specific clients.
Reference User in Permission Constraints (#9074)
NetBox's permission constraints have been expanded to support referencing the current user associated with a request using the special $user
token. As an example, this enables an administrator to efficiently grant each user to edit his or her own journal entries, but not those created by other users.
{
"created_by": "$user"
}
Custom Field Grouping (#8495)
A group_name
field has been added to the custom field model to enable organizing related custom fields by group. Similarly to custom links, custom links which have been assigned to a common group will be rendered within that group when viewing an object in the UI. (Custom field grouping has no effect on API operation.)
Toggle Custom Field Visibility (#9166)
The behavior of each custom field within the NetBox UI can now be controlled individually by toggling its UI visibility. Three settings are available:
- Read/write: The custom field is included when viewing and editing objects (default).
- Read-only: The custom field is displayed when viewing an object, but it cannot be edited via the UI. (It will appear in the form as a read-only field.)
- Hidden: The custom field will never be displayed within the UI. This option is recommended for fields which are not intended for use by human users.
Custom field UI visibility has no impact on API operation.
Enhancements
- #1202 - Support overlapping assignment of NAT IP addresses
- #4350 - Illustrate reservations vertically alongside rack elevations
- #4434 - Enable highlighting devices within rack elevations
- #5303 - A virtual machine may be assigned to a site and/or cluster
- #7120 - Add
termination_date
field to Circuit - #7744 - Add
status
field to Location - #8171 - Populate next available address when cloning an IP
- #8222 - Enable the assignment of a VM to a specific host device within a cluster
- #8471 - Add
status
field to Cluster - #8511 - Enable custom fields and tags for circuit terminations
- #8995 - Enable arbitrary ordering of REST API results
- #9070 - Hide navigation menu items based on user permissions
- #9177 - Add tenant assignment for wireless LANs & links
- #9391 - Remove 500-character limit for custom link text & URL fields
- #9536 - Track API token usage times
- #9582 - Enable assigning config contexts based on device location
Bug Fixes (from Beta1)
- #9728 - Fix validation when assigning a virtual machine to a device
- #9729 - Fix ordering of content type creation to ensure compatability with demo data
- #9730 - Fix validation error when creating a new cable via UI form
- #9733 - Handle split paths during trace when fanning out to front ports with differing cables
- #9765 - Report correct segment count under cable trace UI view
- #9778 - Fix exception during cable deletion after deleting a connected termination
- #9788 - Ensure denormalized fields on CableTermination are kept in sync with related objects
- #9789 - Fix rendering of cable traces ending at provider networks
- #9794 - Fix link to connect a rear port to a circuit termination
- #9818 - Fix circuit side selection when connecting a cable to a circuit termination
- #9829 - Arrange custom fields by group when editing objects
- #9843 - Fix rendering of custom field values (regression from #9647)
- #9844 - Fix interface api request when creating/editing L2VPN termination
- #9847 - Respect
desc_units
when ordering rack units
Plugins API
- #9075 - Introduce
AbortRequest
exception for cleanly interrupting object mutations - [#9092](https://github.com/netbox-community/n...
v3.2.7 - 2022-07-20
Enhancements
- #9705 - Support filter expressions for the
serial
field on racks, devices, and inventory items - #9741 - Check for UserConfig instance during user login
- #9745 - Add wireless LANs and links to global search
Bug Fixes
- #9437 - Standardize form submission buttons and behavior when using enter key
- #9499 - Fix filtered bulk deletion of VM Interfaces
- #9634 - Fix image URLs in rack elevations when using external storage
- #9715 - Fix
SOCIAL_AUTH_PIPELINE
config parameter not taking effect - #9754 - Fix regression introduced by #9632
- #9746 - Permit filtering interfaces by arbitrary speed value in UI
- #9749 - Retain original slug values when modifying object names
- #9775 - Fix exception when viewing a report with no description
v3.3-beta1 - 2022-07-14
Breaking Changes
- Device position and rack unit values are now reported as decimals (e.g.
1.0
or1.5
) to support modeling half-height rack units. - The
nat_outside
relation on the IP address model now returns a list of zero or more related IP addresses, rather than a single instance (or None). - Several fields on the cable API serializers have been altered or removed to support multiple-object cable terminations:
Old Name | Old Type | New Name | New Type |
---|---|---|---|
termination_a_type |
string | Removed | - |
termination_b_type |
string | Removed | - |
termination_a_id |
integer | Removed | - |
termination_b_id |
integer | Removed | - |
termination_a |
object | a_terminations |
list |
termination_b |
object | b_terminations |
list |
- As with the cable model, several API fields on all objects to which cables can be connected (interfaces, circuit terminations, etc.) have been changed:
Old Name | Old Type | New Name | New Type |
---|---|---|---|
link_peer |
object | link_peers |
list |
link_peer_type |
string | link_peers_type |
string |
connected_endpoint |
object | connected_endpoints |
list |
connected_endpoint_type |
string | connected_endpoints_type |
string |
connected_endpoint_reachable |
boolean | connected_endpoints_reachable |
boolean |
- The cable path serialization returned by the
/paths/
endpoint for pass-through ports has been simplified, and the following fields removed:origin_type
,origin
,destination_type
,destination
. (Additionally,is_complete
has been added.)
New Features
Multi-object Cable Terminations (#9102)
When creating a cable in NetBox, each end can now be attached to multiple objects. This allows accurate modeling of duplex fiber connections to individual termination ports and breakout cables, as examples. (Note that all terminations attached to one end of a cable must be the same object type, but do not need to connect to the same parent object.) Additionally, cable terminations can now be modified without needing to delete and recreate the cable.
L2VPN Modeling (#8157)
NetBox can now model a variety of L2 VPN technologies, including VXLAN, VPLS, and others. Each L2VPN can be terminated to multiple device or virtual machine interfaces and/or VLANs to track connectivity across an overlay. Similarly to VRFs, each L2VPN can also have import and export route targets associated with it.
PoE Interface Attributes (#1099)
Two new fields have been added to the device interface model to track power over Ethernet (PoE) capabilities:
- PoE mode: Power supplying equipment (PSE) or powered device (PD)
- PoE type: Applicable IEEE standard or other power type
Half-Height Rack Units (#51)
Device type height can now be specified in 0.5U increments, allowing for the creation of half-height devices. Additionally, a device can be installed at the half-unit mark within a rack (e.g. U2.5). For example, two half-height devices positioned in sequence will consume a single rack unit; two consecutive 1.5U devices will consume 3U of space.
Restrict API Tokens by Client IP (#8233)
API tokens can now be restricted to use by certain client IP addresses or networks. For example, an API token with its allowed_ips
list set to [192.0.2.0/24]
will only permit authentication from API clients within that network; requests from other sources will fail authentication. This can be very useful for restricting the use of a token to specific clients.
Reference User in Permission Constraints (#9074)
NetBox's permission constraints have been expanded to support referencing the current user associated with a request using the special $user
token. As an example, this enables an administrator to efficiently grant each user to edit his or her own journal entries, but not those created by other users.
{
"created_by": "$user"
}
Custom Field Grouping (#8495)
A group_name
field has been added to the custom field model to enable organizing related custom fields by group. Similarly to custom links, custom links which have been assigned to a common group will be rendered within that group when viewing an object in the UI. (Custom field grouping has no effect on API operation.)
Toggle Custom Field Visibility (#9166)
The behavior of each custom field within the NetBox UI can now be controlled individually by toggling its UI visibility. Three settings are available:
- Read/write: The custom field is included when viewing and editing objects (default).
- Read-only: The custom field is displayed when viewing an object, but it cannot be edited via the UI. (It will appear in the form as a read-only field.)
- Hidden: The custom field will never be displayed within the UI. This option is recommended for fields which are not intended for use by human users.
Custom field UI visibility has no impact on API operation.
Enhancements
- #1202 - Support overlapping assignment of NAT IP addresses
- #4350 - Illustrate reservations vertically alongside rack elevations
- #4434 - Enable highlighting devices within rack elevations
- #5303 - A virtual machine may be assigned to a site and/or cluster
- #7120 - Add
termination_date
field to Circuit - #7744 - Add
status
field to Location - #8171 - Populate next available address when cloning an IP
- #8222 - Enable the assignment of a VM to a specific host device within a cluster
- #8471 - Add
status
field to Cluster - #8511 - Enable custom fields and tags for circuit terminations
- #8995 - Enable arbitrary ordering of REST API results
- #9070 - Hide navigation menu items based on user permissions
- #9177 - Add tenant assignment for wireless LANs & links
- #9536 - Track API token usage times
- #9582 - Enable assigning config contexts based on device location
Plugins API
- #9075 - Introduce
AbortRequest
exception for cleanly interrupting object mutations - #9092 - Add support for
ObjectChildrenView
generic view - #9228 - Subclasses of
ChangeLoggingMixin
can overrideserialize_object()
to control JSON serialization for change logging - #9414 - Add
clone()
method to NetBoxModel for copying instance attributes - #9647 - Introduce
customfield_value
template tag
Other Changes
v3.2.6 - 2022-07-11
Enhancements
- #7702 - Enable dynamic configuration for default powerfeed attributes
- #9396 - Allow filtering modules by bay ID
- #9403 - Enable modifying virtual chassis properties when creating/editing a device
- #9540 - Add filters for assigned device & VM to IP addresses list
- #9686 - Add tenant group column for all object tables with tenant assignments
Bug Fixes
- #8854 - Fix
REMOTE_AUTH_DEFAULT_GROUPS
for social-auth backends - #9575 - Fix AttributeError exception for FHRP group with an IP address assigned
- #9597 - Include
installed_module
in module bay REST API serializer - #9632 - Automatically focus on search box when expanding dropdowns
- #9657 - Fix filtering for custom fields and webhooks in the UI
- #9682 - Fix bulk assignment of ASNs to sites
- #9687 - Don't restrict custom text field lengths when entering via UI form
- #9704 - Include
last_updated
field on JournalEntry REST API serializer
v3.2.5 - 2022-06-20
Enhancements
- #8704 - Shift-click to select multiple objects in a list
- #8882 - Support filtering IP addresses by multiple parent prefixes
- #8893 - Include count of IP ranges under tenant view
- #9417 - Initialize manufacturer selection when inserting a new module
- #9501 - Add support for custom Jinja2 filters
- #9517 - Linkify related power port on power outlet view
- #9525 - Provide one-click edit link for objects in tables
- #9533 - Move Markdown reference to local documentation
- #9534 - Add VLAN group selector to interface bulk edit forms
- #9556 - Leave dropdown open upon selection for multi-select fields
Bug Fixes
- #8944 - Fix rendering of Markdown links with colons
- #9108 - Fix rendering of bracketed Markdown links
- #9374 - Improve performance when retrieving devices/VMs with config context data
- #9466 - Avoid sending webhooks after script/report failure
- #9480 - Fix sorting services & service templates by port numbers
- #9484 - Include services listening on "all IPs" under IP address view
- #9486 - Fix redirect URL when adding device components from the module view
- #9495 - Correct link to contacts in contact groups table column
- #9503 - Hyperlinks in rack elevation SVGs must always use absolute URLs
- #9512 - Fix duplicate site results when searching by ASN
- #9524 - Correct order of VLAN fields under VM interface creation form
- #9537 - Ensure consistent use of placeholder tag throughout UI
- #9549 - Fix device counts for rack list under rack role view
v3.2.4 - 2022-05-31
Enhancements
- #8374 - Display device type and asset tag if name is blank but asset tag is populated
- #8922 - Add service list to IP address view
- #9098 - Add "other" types for power ports/outlets, pass-through ports
- #9239 - Enable filtering by contact group for all models which support contact assignment
- #9277 - Introduce
CSRF_COOKIE_NAME
configuration parameter - #9347 - Include services in global search
- #9379 - Redirect to virtual chassis view after adding a member device
- #9451 - Add
export_raw
argument for TemplateColumn
Bug Fixes
- #9094 - Fix partial address search within Prefix and Aggregate filters
- #9291 - Improve data validation for MultiObjectVar script fields
- #9358 - Annotate circuit count for providers list under ASN view
- #9387 - Ensure ActionsColumn
extra_buttons
are always displayed - #9402 - Fix custom field population when creating a virtual chassis
- #9407 - Clean up display of prefixes values when exporting prefixes list
- #9420 - Fix custom script class inheritance
- #9425 - Fix bulk import for object and multi-object custom fields
- #9430 - Fix passing of initial form data for DynamicModelChoiceFields
v3.2.3 - 2022-05-12
Enhancements
- #8805 - Add "mixed" option for device airflow indication
- #8894 - Include full names when listing users
- #8998 - Enable filtering racks & reservations by site group
- #9122 - Introduce
clearcache
management command & clear cache during upgrade - #9221 - Add definition list support for Markdown
- #9260 - Apply user preferences to tables under object detail views
- #9278 - Linkify device types count under manufacturers list
- #9280 - Allow adopting existing components when installing a module
- #9314 - Add device and VM filters for FHRP group assignments
- #9340 - Introduce support for error reporting via Sentry
- #9343 - Add Ubiquiti SmartPower power outlet type
Bug Fixes
- #9190 - Prevent exception when attempting to instantiate module components which already exist on the parent device
- #9267 - Remove invalid entry in IP address role choices
- #9296 - Improve Markdown link sanitization
- #9306 - Include VC master interfaces when selecting a LAG/bridge for a VC member interface
- #9311 - Permit creating contact assignment without a priority via the REST API
- #9313 - Remove HTML code from CSV output of many-to-many relationships
- #9330 - Add missing
module_type
field to REST API serializers for modular device component templates
v3.2.2 - 2022-04-28
Enhancements
- #9060 - Add device type filters for device bays, module bays, and inventory items
- #9152 - Annotate related object type under custom field view
- #9192 - Add Ubiquiti SmartPower connector type
- #9214 - Linkify cluster counts in cluster type & group tables
Bug Fixes
- #4264 - Treat 0th IP as unusable for IPv6 prefixes (excluding /127s)
- #8941 - Fix dynamic dropdown behavior when browser is zoomed
- #8959 - Prevent exception when refreshing scripts list (avoid race condition)
- #9132 - Limit location options by selected site when creating a wireless link
- #9133 - Upgrade script should require Python 3.8 or later
- #9138 - Avoid inadvertent form submission when utilizing quick search field on object lists
- #9151 - Child prefix counts not annotated on aggregates list under RIR view
- #9156 - Fix loading UserConfig data from fixtures
- #9158 - Do not list tags field for CSV forms which do not support tag assignment
- #9194 - Support position assignment when add module bays to multiple devices
- #9206 - Show header for comments field under module & module type creation views
- #9222 - Fix circuit ID display under cable view
- #9227 - Fix related object assignment when recording change record for interfaces
v3.2.1 - 2022-04-15
Enhancements
- #5479 - Allow custom job timeouts for scripts & reports
- #8543 - Improve filtering for wireless LAN VLAN selection
- #8920 - Limit number of non-racked devices displayed
- #8956 - Retain old script/report results for configured lifetime
- #8973 - Display VLAN group count under site view
- #9081 - Add
fhrpgroup_id
filter for IP addresses - #9099 - Enable display of installed module serial & asset tag in module bays list
- #9110 - Add Neutrik proprietary power connectors
- #9123 - Improve appearance of SSO login providers
Bug Fixes
- #8931 - Copy assigned tenant when cloning a location
- #9055 - Restore ability to move inventory item to other device
- #9057 - Fix missing instance counts for module types
- #9061 - Fix general search for device components
- #9065 - Min/max VID should not be required when filtering VLAN groups
- #9079 - Fail validation when an inventory item is assigned as its own parent
- #9096 - Remove duplicate filter tag when filtering by "none"
- #9100 - Include position field in module type YAML export
- #9116 -
assigned_to_interface
filter for IP addresses should not match FHRP group assignments - #9118 - Fix validation error when importing VM child interfaces
- #9128 - Resolve component labels per module bay position when installing modules