Releases: linuxserver/docker-netbox
v3.3.1-ls85
LinuxServer Changes:
Remove py3-pillow, add tiff to fix deps.
netbox Changes:
Enhancements
- #6454 - Include contextual help when creating first objects in UI
- #9935 - Add 802.11ay and "other" wireless interface types
- #10031 - Enforce
application/json
content type for REST API requests - #10033 - Disable "add termination" button for point-to-point L2VPNs with two terminations
- #10037 - Add "child interface" option to actions dropdown in interfaces list
- #10038 - Add "L2VPN termination" option to actions dropdown in interfaces list
- #10039 - Add "assign FHRP group" option to actions dropdown in interfaces list
- #10061 - Replicate type when cloning L2VPN instances
- #10066 - Use fixed column widths for custom field values in UI
- #10133 - Enable nullifying device location during bulk edit
Bug Fixes
- #9663 - Omit available IP annotations when filtering prefix child IPs list
- #10040 - Fix exception when ordering prefixes by flat representation
- #10053 - Custom fields header should not be displayed when editing circuit terminations with no custom fields
- #10055 - Fix extraneous NAT indicator by device primary IP
- #10057 - Fix AttributeError exception when global search results include rack reservations
- #10059 - Add identifier column to L2VPN table
- #10070 - Add unique constraint for L2VPN slug
- #10087 - Correct display of far end in console/power/interface connections tables
- #10089 -
linkify
template filter should escape object representation - #10094 - Fix 404 when using "create and add another" to add contact assignments
- #10108 - Linkify inside NAT IPs for primary device IPs in UI
- #10109 - Fix available prefixes calculation for container prefixes in the global table
- #10111 - Fix ValueError exception when searching for L2VPN objects
- #10118 - Fix display of connected LLDP neighbors for devices
- #10134 - Custom fields data serializer should return a 400 response for invalid data
- #10135 - Fix SSO support for SAML2 IDPs
- #10147 - Permit the creation of 0U device types via REST API
v3.3.0-ls84
LinuxServer Changes:
Remove py3-pillow, add tiff to fix deps.
netbox Changes:
Breaking Changes
- Device position, device type height, 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 termination points. This allows accurate modeling of duplex fiber connections to individual termination ports and breakout cables, for example. (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. Interfaces and VLANs can be attached to L2VPNs 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 devices consume partial rack units. 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 permit authentication only from API clients within that network; requests from other sources will fail authentication. This enables administrators to restrict 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 fields which have been assigned to the same 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 options 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 Beta2)
- #9758 - Display parent object of connected termination
- #9900 - Pre-populate site & rack fields for cable connection form
- #9938 - Exclude virtual interfaces from terminations list when connecting a cable
- #9939 - Fix list of next nodes for split paths under trace view
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
- #9261 -
NetBoxTable
no longer automatically clears pre-existing calls toprefetch_related()
on its queryset - #9434 - Enabled
django-rich
test runner for more user-friendly output - #9903 - Implement a mechanism for automatically updating denormalized fields
REST API Changes
- List results can now be ordered by field, by appending
?ordering={fieldname}
to the query. Multiple fields can be specified by separating the field names with a comma, e.g.?ordering=site,name
. To invert the ordering, prepend a hyphen to the field name, e.g.?ordering=-name
. - Add...
v3.3.0-ls83
LinuxServer Changes:
Remove py3-pillow, add tiff to fix deps.
netbox Changes:
Breaking Changes
- Device position, device type height, 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 termination points. This allows accurate modeling of duplex fiber connections to individual termination ports and breakout cables, for example. (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. Interfaces and VLANs can be attached to L2VPNs 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 devices consume partial rack units. 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 permit authentication only from API clients within that network; requests from other sources will fail authentication. This enables administrators to restrict 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 fields which have been assigned to the same 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 options 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 Beta2)
- #9758 - Display parent object of connected termination
- #9900 - Pre-populate site & rack fields for cable connection form
- #9938 - Exclude virtual interfaces from terminations list when connecting a cable
- #9939 - Fix list of next nodes for split paths under trace view
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
- #9261 -
NetBoxTable
no longer automatically clears pre-existing calls toprefetch_related()
on its queryset - #9434 - Enabled
django-rich
test runner for more user-friendly output - #9903 - Implement a mechanism for automatically updating denormalized fields
REST API Changes
- List results can now be ordered by field, by appending
?ordering={fieldname}
to the query. Multiple fields can be specified by separating the field names with a comma, e.g.?ordering=site,name
. To invert the ordering, prepend a hyphen to the field name, e.g.?ordering=-name
. - Add...
v3.2.9-ls83
LinuxServer Changes:
Remove py3-pillow, add tiff to fix deps.
netbox Changes:
Enhancements
- #8595 - Add PON interface types
- #8723 - Enable bulk renaming of devices
- #9161 - Pretty print JSON custom field data when editing
- #9505 - Display extra addressing details for IPv4 prefixes
- #9625 - Add phone & email details to contacts panel
- #9857 - Add clear button to quick search fields
- #9933 - Add DOCSIS interface type
Bug Fixes
v3.2.8-ls82
LinuxServer Changes:
Remove py3-pillow, add tiff to fix deps.
netbox Changes:
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.2.8-ls81
LinuxServer Changes:
Remove py3-pillow, add tiff to fix deps.
netbox Changes:
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.2.7-ls80
LinuxServer Changes:
Remove py3-pillow, add tiff to fix deps.
netbox Changes:
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.2.7-ls79
LinuxServer Changes:
Add py3-pillow package back on arm to fix build issue.
netbox Changes:
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.2.7-ls78
LinuxServer Changes:
Remove py3-pillow package to fix dependency issue with 3.2.0.
netbox Changes:
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.2.6-ls77
LinuxServer Changes:
Remove py3-pillow package to fix dependency issue with 3.2.0.
netbox Changes:
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