Repository navigation
Releases: linuxserver/docker-netbox
Release list
v4.7.2-ls384
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.7.2-ls383...v4.7.2-ls384
Remote Changes:
Warning
NetBox v4.7.0 and v4.7.1 recorded the plaintext of API tokens created via background bulk requests in the job results, where they were readable by any user permitted to view jobs. This release rejects such requests; any tokens created this way should be considered exposed and replaced. See #23196 for details.
Enhancements
- #21879 - Introduce the
Cable.update_dependent_objects()hook to rebuild cable paths and related attributes after writes which bypasssave() - #22886 - Include VLANs assigned via VLAN groups scoped to a site (or its site group) among the site's related objects
- #22949 - Focus and scroll to the first field with a validation error when a form fails validation
- #23095 - Display the compatible module types for a module bay type in a dedicated, sortable, and paginated table
Bug Fixes
- #23122 - Prevent the failure to automatically sync one object from skipping the sync of subsequent objects
- #23150 - Preserve the parent device type assignment when using "Create & Add Another" to add component templates
- #23160 - Record a change log entry for each terminating object when a cable is deleted
- #23181 - Restore the display of the cluster group in the virtual machine detail view
- #23187 - Permit the assignment of a data file when creating an export template via the REST API
- #23195 - Validate the
return_urlparameter used for the cancel button on the IP address assignment view - #23196 - Ensure plaintext API tokens are never recorded in background job results (see the warning above)
- #23197 - Enforce object permission constraints on the REST API
syncaction for synced data models - #23203 - Fix the population of the related objects panel for owners
v4.7.2-ls383
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.7.2-ls382...v4.7.2-ls383
Remote Changes:
Warning
NetBox v4.7.0 and v4.7.1 recorded the plaintext of API tokens created via background bulk requests in the job results, where they were readable by any user permitted to view jobs. This release rejects such requests; any tokens created this way should be considered exposed and replaced. See #23196 for details.
Enhancements
- #21879 - Introduce the
Cable.update_dependent_objects()hook to rebuild cable paths and related attributes after writes which bypasssave() - #22886 - Include VLANs assigned via VLAN groups scoped to a site (or its site group) among the site's related objects
- #22949 - Focus and scroll to the first field with a validation error when a form fails validation
- #23095 - Display the compatible module types for a module bay type in a dedicated, sortable, and paginated table
Bug Fixes
- #23122 - Prevent the failure to automatically sync one object from skipping the sync of subsequent objects
- #23150 - Preserve the parent device type assignment when using "Create & Add Another" to add component templates
- #23160 - Record a change log entry for each terminating object when a cable is deleted
- #23181 - Restore the display of the cluster group in the virtual machine detail view
- #23187 - Permit the assignment of a data file when creating an export template via the REST API
- #23195 - Validate the
return_urlparameter used for the cancel button on the IP address assignment view - #23196 - Ensure plaintext API tokens are never recorded in background job results (see the warning above)
- #23197 - Enforce object permission constraints on the REST API
syncaction for synced data models - #23203 - Fix the population of the related objects panel for owners
v4.7.2-ls382
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.7.1-ls381...v4.7.2-ls382
Remote Changes:
Warning
NetBox v4.7.0 and v4.7.1 recorded the plaintext of API tokens created via background bulk requests in the job results, where they were readable by any user permitted to view jobs. This release rejects such requests; any tokens created this way should be considered exposed and replaced. See #23196 for details.
Enhancements
- #21879 - Introduce the
Cable.update_dependent_objects()hook to rebuild cable paths and related attributes after writes which bypasssave() - #22886 - Include VLANs assigned via VLAN groups scoped to a site (or its site group) among the site's related objects
- #22949 - Focus and scroll to the first field with a validation error when a form fails validation
- #23095 - Display the compatible module types for a module bay type in a dedicated, sortable, and paginated table
Bug Fixes
- #23122 - Prevent the failure to automatically sync one object from skipping the sync of subsequent objects
- #23150 - Preserve the parent device type assignment when using "Create & Add Another" to add component templates
- #23160 - Record a change log entry for each terminating object when a cable is deleted
- #23181 - Restore the display of the cluster group in the virtual machine detail view
- #23187 - Permit the assignment of a data file when creating an export template via the REST API
- #23195 - Validate the
return_urlparameter used for the cancel button on the IP address assignment view - #23196 - Ensure plaintext API tokens are never recorded in background job results (see the warning above)
- #23197 - Enforce object permission constraints on the REST API
syncaction for synced data models - #23203 - Fix the population of the related objects panel for owners
v4.7.1-ls381
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.7.1-ls380...v4.7.1-ls381
Remote Changes:
Warning
The triggers which cascade a hierarchical object's path to its descendants could not be recreated when restoring a pg_dump of a v4.7.0 database, so such a restore reported success while leaving the database without those triggers. Renaming or moving a region, site group, location, device role, platform, tenant group, contact group, wireless LAN group, module bay, inventory item, or inventory item template then did not update its descendants. Upgrading reinstalls the triggers so that all subsequent changes cascade correctly, but does not repair values which have already gone stale. See Repairing Hierarchical Paths for how to detect and correct them, and for the steps plugins maintaining their own ltree models must take.
Enhancements
- #22999 - Add a default module type profile for transceivers
- #23041 - Add InfiniBand 2X interface types for HDR and later generations (HDR100, NDR200, and XDR400)
Bug Fixes
- #22750 - Resolve object IDs to model instances and validate the submitted data when executing a custom script via the REST API
- #23012 - Apply a field's collation to both sides of a case-insensitive comparison, so that names containing characters such as
ßcan be matched - #23096 - Persist a cable's normalized length when saving only its
lengthorlength_unitfield - #23112 - Initiate SSO logins via script-driven navigation, so that they are not blocked by a restrictive
form-actioncontent security policy - #23117 - Fix the negation (
__n) filter lookup for multiple selection custom fields - #23120 - Include tags in the REST API representation of a data source, and honor them on write
- #23125 - Add the missing standard fields to the VLAN translation policy & rule REST API serializers
- #23130 - Ensure that the cascade triggers for hierarchical models can be restored from a
pg_dump(see the warning above) - #23154 - Correct the optional/required mismatch on the L2VPN
typeand rack typeform_factorfields - #23166 - Apply a zero-valued minimum or maximum bound from a module type profile attribute to its form field
- #23167 - Sanitize the JSON schema property descriptions used as form help text for module type profile attributes
v4.7.1-ls380
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.7.1-ls379...v4.7.1-ls380
Remote Changes:
Warning
The triggers which cascade a hierarchical object's path to its descendants could not be recreated when restoring a pg_dump of a v4.7.0 database, so such a restore reported success while leaving the database without those triggers. Renaming or moving a region, site group, location, device role, platform, tenant group, contact group, wireless LAN group, module bay, inventory item, or inventory item template then did not update its descendants. Upgrading reinstalls the triggers so that all subsequent changes cascade correctly, but does not repair values which have already gone stale. See Repairing Hierarchical Paths for how to detect and correct them, and for the steps plugins maintaining their own ltree models must take.
Enhancements
- #22999 - Add a default module type profile for transceivers
- #23041 - Add InfiniBand 2X interface types for HDR and later generations (HDR100, NDR200, and XDR400)
Bug Fixes
- #22750 - Resolve object IDs to model instances and validate the submitted data when executing a custom script via the REST API
- #23012 - Apply a field's collation to both sides of a case-insensitive comparison, so that names containing characters such as
ßcan be matched - #23096 - Persist a cable's normalized length when saving only its
lengthorlength_unitfield - #23112 - Initiate SSO logins via script-driven navigation, so that they are not blocked by a restrictive
form-actioncontent security policy - #23117 - Fix the negation (
__n) filter lookup for multiple selection custom fields - #23120 - Include tags in the REST API representation of a data source, and honor them on write
- #23125 - Add the missing standard fields to the VLAN translation policy & rule REST API serializers
- #23130 - Ensure that the cascade triggers for hierarchical models can be restored from a
pg_dump(see the warning above) - #23154 - Correct the optional/required mismatch on the L2VPN
typeand rack typeform_factorfields - #23166 - Apply a zero-valued minimum or maximum bound from a module type profile attribute to its form field
- #23167 - Sanitize the JSON schema property descriptions used as form help text for module type profile attributes
v4.7.1-ls379
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.7.0-ls378...v4.7.1-ls379
Remote Changes:
Warning
The triggers which cascade a hierarchical object's path to its descendants could not be recreated when restoring a pg_dump of a v4.7.0 database, so such a restore reported success while leaving the database without those triggers. Renaming or moving a region, site group, location, device role, platform, tenant group, contact group, wireless LAN group, module bay, inventory item, or inventory item template then did not update its descendants. Upgrading reinstalls the triggers so that all subsequent changes cascade correctly, but does not repair values which have already gone stale. See Repairing Hierarchical Paths for how to detect and correct them, and for the steps plugins maintaining their own ltree models must take.
Enhancements
- #22999 - Add a default module type profile for transceivers
- #23041 - Add InfiniBand 2X interface types for HDR and later generations (HDR100, NDR200, and XDR400)
Bug Fixes
- #22750 - Resolve object IDs to model instances and validate the submitted data when executing a custom script via the REST API
- #23012 - Apply a field's collation to both sides of a case-insensitive comparison, so that names containing characters such as
ßcan be matched - #23096 - Persist a cable's normalized length when saving only its
lengthorlength_unitfield - #23112 - Initiate SSO logins via script-driven navigation, so that they are not blocked by a restrictive
form-actioncontent security policy - #23117 - Fix the negation (
__n) filter lookup for multiple selection custom fields - #23120 - Include tags in the REST API representation of a data source, and honor them on write
- #23125 - Add the missing standard fields to the VLAN translation policy & rule REST API serializers
- #23130 - Ensure that the cascade triggers for hierarchical models can be restored from a
pg_dump(see the warning above) - #23154 - Correct the optional/required mismatch on the L2VPN
typeand rack typeform_factorfields - #23166 - Apply a zero-valued minimum or maximum bound from a module type profile attribute to its form field
- #23167 - Sanitize the JSON schema property descriptions used as form help text for module type profile attributes
v4.7.0-ls378
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.7.0-ls377...v4.7.0-ls378
Remote Changes:
Warning
This release of NetBox drops support for PostgreSQL 14.
Warning
The PostgreSQL database must support the ltree extension. This is a trusted module which ships with PostgreSQL and does not require superuser permission to activate. It will be installed automatically upon upgrade.
Warning
This release of NetBox drops support for Redis 5.x.
Breaking Changes
- PostgreSQL 14 is no longer supported. NetBox now requires PostgreSQL 15 or later: The upgrade script will abort when connected to an earlier release. (NetBox v4.6 reported this as a warning.)
- Redis 5.x is no longer supported. NetBox now requires Redis 6.0 or later.
- Selection and multiple selection custom field values are now returned as objects specifying both the raw value and its human-friendly label (e.g.
{"value": "datacenter", "label": "Data Center"}) in both the REST and GraphQL APIs. These fields continue to accept the raw value on write. - The
protocolandportsfields on theipam.Serviceandipam.ServiceTemplatemodels have been replaced by a unifiedport_mappingsfield, which supports multiple protocols per service. The legacy fields are retained (as deprecated) in the REST and GraphQL APIs, but at the ORM level they are now read-only properties derived fromport_mappings: Passingprotocolorportsto the model raises aTypeError, and assigning toservice.portsraises anAttributeError. This restriction applies only at the ORM level: The REST API continues to accept the legacy pair on write, translating it intoport_mappings. - Because
protocolis now filtered against theport_mappingsarray rather than a dedicated model field, the character-based REST filter lookups previously generated for it (protocol__ic,protocol__isw,protocol__empty, etc.) are no longer available. Theport__emptylookup has been removed as well. - The GraphQL filters for
ipam.Serviceandipam.ServiceTemplatehave changed shape: The nestedportsinteger lookup has been replaced by the flatport,port__gt,port__gte,port__lt, andport__lteparameters (each accepting a list of values), alongside the newport_mappingsparameter. Additionally, the members ofServiceProtocolEnumhave been renamed to drop a spuriousROLE_prefix (e.g.ROLE_TCPis nowTCP). - Config context data is now pre-rendered and cached for each device and virtual machine, and is always included in their REST API representations. The
DeviceWithConfigContextSerializerandVirtualMachineWithConfigContextSerializerclasses have been removed (merged into the base serializers), and the?exclude=config_contextquery parameter is now silently ignored. - Failed bulk create and update operations via the REST API now return a structured response of the form
{"detail": ..., "errors": [{"index": N, "errors": {...}}]}, correlating each error with the index of the offending object in the submitted list. (Bulk operations remain all-or-none.) - API token plaintexts can no longer be specified by the client when creating a token via the REST API. The
tokenfield is now read-only, and any value supplied is ignored. (This restriction was already in effect in the web UI.) - Executing a custom script via the REST API now requires that the calling token have its write ability enabled.
- The
usernameargument has been removed fromextras.webhooks.send_webhook()(the value remains available to webhook templates asrequest.user). Any webhook jobs still enqueued when the workers are restarted will fail with aTypeError, so the background queues should be allowed to drain before upgrading. - Updates to the global search cache are now deferred to a background task. As a result, a newly created or modified object may not appear in search results for a brief period. (When no background worker is running, the index is updated synchronously as before.)
- Hierarchical models are now backed by a PostgreSQL
ltreecolumn rather than django-mptt. This covers the nested group models (Region, SiteGroup, Location, DeviceRole, Platform, TenantGroup, ContactGroup, WirelessLANGroup, etc.) as well as ModuleBay, InventoryItem, and InventoryItemTemplate. Thelft,rght,tree_id, andlevelcolumns have been dropped from every migrated model:levelremains available as a Python property, but can no longer be used in a queryset filter ororder_by()clause. NetBox'sltreeimplementation deliberately covers only the subset of MPTT's API which NetBox itself uses (get_ancestors(),get_descendants(),get_children(), andadd_related_count()); methods such asget_root(),get_family(),is_leaf_node(),move_to(), andinsert_at()are no longer available. The MPTT-backedNestedGroupModelbase class is retained for backward compatibility with plugins, but is deprecated: New code should useNestedLtreeGroupModelinstead. - django-tables2 has been upgraded to v3.0, which renames its
querystringtemplate tag toquerystring_replaceand removes theRelatedLinkColumnclass. social-auth-app-djangoandsocial-auth-corehave been upgraded to v6.0 and v5.1 respectively, each a major release. Deployments which employ single sign-on should test authentication against a non-production instance before upgrading.- The
requestobject passed to custom link templates is now a sanitized subset of the current request. Only theid,path,path_info,method,GET, anduserattributes are available; cookies, headers, and session state are no longer accessible. - URL custom field values are now validated against the
ALLOWED_URL_SCHEMESconfiguration parameter. A value entered without a scheme is assumed to usehttpsand stored as an absolute URL. - Webhooks now support a configurable timeout. If you have lowered
RQ_DEFAULT_TIMEOUTto 60 seconds or less, you must also setWEBHOOK_DEFAULT_TIMEOUTto a lower value; NetBox will refuse to start otherwise. - Specifying an email server under the
EMAILconfiguration parameter is now mandatory in order to send mail: A deployment which does not defineEMAIL['SERVER']will raise anInvalidMailerexception when attempting to send, rather than failing at the SMTP connection. - NetBox now populates Django's
MAILERSsetting rather than the individualEMAIL_*settings which it supersedes.EMAIL_HOST,EMAIL_PORT,EMAIL_HOST_USER,EMAIL_HOST_PASSWORD,EMAIL_USE_SSL,EMAIL_USE_TLS,EMAIL_TIMEOUT,EMAIL_SSL_CERTFILE, andEMAIL_SSL_KEYFILEare no longer defined, andEMAIL_BACKENDis no longer consulted. Plugin code which reads any of these, or which callsdjango.core.mail.get_connection()with an explicit backend (now raising aRuntimeError), must be updated. TheEMAILconfiguration parameter itself is unchanged. - The upgrade script now runs the
rebuild_config_context_cachemanagement command to populate the new config context cache. This issues oneUPDATEper device and virtual machine, and may extend the duration of the upgrade considerably for deployments with a large number of either. The command skips objects whose cache is already populated, so it is safe to interrupt and re-run; it may also be deferred until after NetBox is back online, as any object whose cache is empty falls back to rendering its config context on demand. - Creating a custom field which has a default value, and deleting a custom field, are now deferred to a background job where the field's assigned object types hold more than
BULK_UPDATE_CHUNK_SIZEobjects in total. - The obsolete
populate_custom_field_defaults()method has been removed fromCustomFieldsMixin. CustomField.objects.get_for_model()and thecustom_fieldsproperty ofCustomFieldsMixinnow return a list rather than a queryset, andget_for_model()returns only those fields which are active: Any whose stored data is being updated by a background job is omitted (see field status) unless selected via itsstatusesargument.- Removal of deprecated behavior
- The
housekeepingmanagement command has been removed. (Its constituent tasks are performed by the individual management commands introduced in NetBox v4.6.) - NetBox's custom
querystringtemplate tag has been removed in favor of Django's built-in tag of the same name. The two are not interchangeable: Django's tag reads the current request from the template context, so therequestargument must be dropped ({% querystring request page=1 %}becomes{% querystring page=1 %}; passingrequestraises aTemplateSyntaxError). It also returns a bare?where NetBox's tag returned an empty string. - The legacy Sentry configuration parameters
SENTRY_DSN,SENTRY_SAMPLE_RATE,SENTRY_SEND_DEFAULT_PII, andSENTRY_TRACES_SAMPLE_RATEhave been removed. UseSENTRY_CONFIGinstead. - The obsolete
DEFAULT_ACTION_PERMISSIONSconstant has been removed. - Support for legacy view action mappings has been dropped, and the
LEGACY_ACTIONSconstant has been removed. - Registered models are no longer populated under
registry['models']. (UseObjectType.objects.public()instead.) Theregistry['denormalized_fields']store has been removed as well. - The backward compatibility shims for
OptionalLimitOffsetPagination(nowNetBoxPagination),ExpandableIPAddressField(nowExpandableIPNetworkField), andexpand_ipaddress_pattern()(nowexpand_ipnetwork_pattern()) have been removed.
...
- The
v4.7.0-ls377
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.6.10-ls376...v4.7.0-ls377
Remote Changes:
Warning
This release of NetBox drops support for PostgreSQL 14.
Warning
The PostgreSQL database must support the ltree extension. This is a trusted module which ships with PostgreSQL and does not require superuser permission to activate. It will be installed automatically upon upgrade.
Warning
This release of NetBox drops support for Redis 5.x.
Breaking Changes
- PostgreSQL 14 is no longer supported. NetBox now requires PostgreSQL 15 or later: The upgrade script will abort when connected to an earlier release. (NetBox v4.6 reported this as a warning.)
- Redis 5.x is no longer supported. NetBox now requires Redis 6.0 or later.
- Selection and multiple selection custom field values are now returned as objects specifying both the raw value and its human-friendly label (e.g.
{"value": "datacenter", "label": "Data Center"}) in both the REST and GraphQL APIs. These fields continue to accept the raw value on write. - The
protocolandportsfields on theipam.Serviceandipam.ServiceTemplatemodels have been replaced by a unifiedport_mappingsfield, which supports multiple protocols per service. The legacy fields are retained (as deprecated) in the REST and GraphQL APIs, but at the ORM level they are now read-only properties derived fromport_mappings: Passingprotocolorportsto the model raises aTypeError, and assigning toservice.portsraises anAttributeError. This restriction applies only at the ORM level: The REST API continues to accept the legacy pair on write, translating it intoport_mappings. - Because
protocolis now filtered against theport_mappingsarray rather than a dedicated model field, the character-based REST filter lookups previously generated for it (protocol__ic,protocol__isw,protocol__empty, etc.) are no longer available. Theport__emptylookup has been removed as well. - The GraphQL filters for
ipam.Serviceandipam.ServiceTemplatehave changed shape: The nestedportsinteger lookup has been replaced by the flatport,port__gt,port__gte,port__lt, andport__lteparameters (each accepting a list of values), alongside the newport_mappingsparameter. Additionally, the members ofServiceProtocolEnumhave been renamed to drop a spuriousROLE_prefix (e.g.ROLE_TCPis nowTCP). - Config context data is now pre-rendered and cached for each device and virtual machine, and is always included in their REST API representations. The
DeviceWithConfigContextSerializerandVirtualMachineWithConfigContextSerializerclasses have been removed (merged into the base serializers), and the?exclude=config_contextquery parameter is now silently ignored. - Failed bulk create and update operations via the REST API now return a structured response of the form
{"detail": ..., "errors": [{"index": N, "errors": {...}}]}, correlating each error with the index of the offending object in the submitted list. (Bulk operations remain all-or-none.) - API token plaintexts can no longer be specified by the client when creating a token via the REST API. The
tokenfield is now read-only, and any value supplied is ignored. (This restriction was already in effect in the web UI.) - Executing a custom script via the REST API now requires that the calling token have its write ability enabled.
- The
usernameargument has been removed fromextras.webhooks.send_webhook()(the value remains available to webhook templates asrequest.user). Any webhook jobs still enqueued when the workers are restarted will fail with aTypeError, so the background queues should be allowed to drain before upgrading. - Updates to the global search cache are now deferred to a background task. As a result, a newly created or modified object may not appear in search results for a brief period. (When no background worker is running, the index is updated synchronously as before.)
- Hierarchical models are now backed by a PostgreSQL
ltreecolumn rather than django-mptt. This covers the nested group models (Region, SiteGroup, Location, DeviceRole, Platform, TenantGroup, ContactGroup, WirelessLANGroup, etc.) as well as ModuleBay, InventoryItem, and InventoryItemTemplate. Thelft,rght,tree_id, andlevelcolumns have been dropped from every migrated model:levelremains available as a Python property, but can no longer be used in a queryset filter ororder_by()clause. NetBox'sltreeimplementation deliberately covers only the subset of MPTT's API which NetBox itself uses (get_ancestors(),get_descendants(),get_children(), andadd_related_count()); methods such asget_root(),get_family(),is_leaf_node(),move_to(), andinsert_at()are no longer available. The MPTT-backedNestedGroupModelbase class is retained for backward compatibility with plugins, but is deprecated: New code should useNestedLtreeGroupModelinstead. - django-tables2 has been upgraded to v3.0, which renames its
querystringtemplate tag toquerystring_replaceand removes theRelatedLinkColumnclass. social-auth-app-djangoandsocial-auth-corehave been upgraded to v6.0 and v5.1 respectively, each a major release. Deployments which employ single sign-on should test authentication against a non-production instance before upgrading.- The
requestobject passed to custom link templates is now a sanitized subset of the current request. Only theid,path,path_info,method,GET, anduserattributes are available; cookies, headers, and session state are no longer accessible. - URL custom field values are now validated against the
ALLOWED_URL_SCHEMESconfiguration parameter. A value entered without a scheme is assumed to usehttpsand stored as an absolute URL. - Webhooks now support a configurable timeout. If you have lowered
RQ_DEFAULT_TIMEOUTto 60 seconds or less, you must also setWEBHOOK_DEFAULT_TIMEOUTto a lower value; NetBox will refuse to start otherwise. - Specifying an email server under the
EMAILconfiguration parameter is now mandatory in order to send mail: A deployment which does not defineEMAIL['SERVER']will raise anInvalidMailerexception when attempting to send, rather than failing at the SMTP connection. - NetBox now populates Django's
MAILERSsetting rather than the individualEMAIL_*settings which it supersedes.EMAIL_HOST,EMAIL_PORT,EMAIL_HOST_USER,EMAIL_HOST_PASSWORD,EMAIL_USE_SSL,EMAIL_USE_TLS,EMAIL_TIMEOUT,EMAIL_SSL_CERTFILE, andEMAIL_SSL_KEYFILEare no longer defined, andEMAIL_BACKENDis no longer consulted. Plugin code which reads any of these, or which callsdjango.core.mail.get_connection()with an explicit backend (now raising aRuntimeError), must be updated. TheEMAILconfiguration parameter itself is unchanged. - The upgrade script now runs the
rebuild_config_context_cachemanagement command to populate the new config context cache. This issues oneUPDATEper device and virtual machine, and may extend the duration of the upgrade considerably for deployments with a large number of either. The command skips objects whose cache is already populated, so it is safe to interrupt and re-run; it may also be deferred until after NetBox is back online, as any object whose cache is empty falls back to rendering its config context on demand. - Creating a custom field which has a default value, and deleting a custom field, are now deferred to a background job where the field's assigned object types hold more than
BULK_UPDATE_CHUNK_SIZEobjects in total. - The obsolete
populate_custom_field_defaults()method has been removed fromCustomFieldsMixin. CustomField.objects.get_for_model()and thecustom_fieldsproperty ofCustomFieldsMixinnow return a list rather than a queryset, andget_for_model()returns only those fields which are active: Any whose stored data is being updated by a background job is omitted (see field status) unless selected via itsstatusesargument.- Removal of deprecated behavior
- The
housekeepingmanagement command has been removed. (Its constituent tasks are performed by the individual management commands introduced in NetBox v4.6.) - NetBox's custom
querystringtemplate tag has been removed in favor of Django's built-in tag of the same name. The two are not interchangeable: Django's tag reads the current request from the template context, so therequestargument must be dropped ({% querystring request page=1 %}becomes{% querystring page=1 %}; passingrequestraises aTemplateSyntaxError). It also returns a bare?where NetBox's tag returned an empty string. - The legacy Sentry configuration parameters
SENTRY_DSN,SENTRY_SAMPLE_RATE,SENTRY_SEND_DEFAULT_PII, andSENTRY_TRACES_SAMPLE_RATEhave been removed. UseSENTRY_CONFIGinstead. - The obsolete
DEFAULT_ACTION_PERMISSIONSconstant has been removed. - Support for legacy view action mappings has been dropped, and the
LEGACY_ACTIONSconstant has been removed. - Registered models are no longer populated under
registry['models']. (UseObjectType.objects.public()instead.) Theregistry['denormalized_fields']store has been removed as well. - The backward compatibility shims for
OptionalLimitOffsetPagination(nowNetBoxPagination),ExpandableIPAddressField(nowExpandableIPNetworkField), andexpand_ipaddress_pattern()(nowexpand_ipnetwork_pattern()) have been removed.
...
- The
v4.6.10-ls376
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.6.9-ls375...v4.6.10-ls376
Remote Changes:
Performance Improvements
- #22988 - Prefetch the related fields of nested serializers referenced by
SerializedPKRelatedField - #23060 - Include reverse many-to-many relationships when determining REST API prefetches
Bug Fixes
- #22671 - Support the selection of multiple values when filtering VLAN groups by scope (e.g. by site group)
- #22872 - Gracefully handle invalid values assigned to a custom script's
Metaattributes - #22989 - Reference brief components in the OpenAPI response schemas for nested
SerializedPKRelatedFieldfields - #23035 - Expand the active navigation menu section when resizing from a mobile to a desktop viewport
- #23038 - Omit the cache-busting query parameter from signed static file URLs (e.g. when using S3 storage)
- #23040 - Fix the validation error raised when removing the scope assigned to a VLAN group
- #23043 - Correct the validation of front port positions when creating front ports in bulk
- #23052 - Fix the duplicated
ownerfield on the power outlet and service forms - #23066 - Include the configured Redis username in the default Django cache settings
- #23072 - Retain cable paths when applying a cable profile via bulk edit
- #23078 - Normalize
update_fieldsto avoid consuming a generator inVLANGroup.save()andCircuitTermination.save() - #23090 - Fix the filtering of background jobs by user in the UI
v4.6.9-ls375
CI Report:
N/A
LinuxServer Changes:
Full Changelog: v4.6.9-ls374...v4.6.9-ls375
Remote Changes:
Enhancements
- #21387 - Add InfiniBand 4X interface types
- #22660 - Add an interface type for HPE Synergy interconnect links
- #22716 - Restrict images in rendered Markdown to HTTP(S) and relative URLs
- #22998 - Add a 100GBase-X-SFP112 interface type
Performance Improvements
- #23000 - Prefetch cable terminations to avoid N+1 queries when fetching cables via the GraphQL API
Bug Fixes
- #22683 - Prevent a server error when bulk import validation raises an error referencing a field omitted from the import data
- #22812 - Avoid loading all associated jobs into memory when deleting a custom script or other job-bearing object
- #22889 - Restore the monospace font for text areas on the config revision form
- #22922 - Honor the saving database connection in the scope propagation signal handlers
- #22923 - Clear
current_requestand the query cache when an exception is raised within anevent_tracking()block - #22929 - Avoid initializing a second
SideNavinstance for the top header - #22930 - Fix sidebar navigation initialization at a viewport width of exactly 1200 pixels
- #22934 - Discard queued events when a write performed by a UI view is rolled back
- #22944 - Display the complete role hierarchy in the virtual machine info panel
- #22953 - Restore custom script log messages in the output of the
runscriptmanagement command - #22954 - Display nested group and platform hierarchies in several info panels
- #22957 - Include ancestors in the breadcrumbs for device roles, platforms, and power panels
- #22963 - Honor the saving database connection in the counter cache signal handlers
- #22967 - Update the cached scope fields of circuit terminations when a location is moved to a different site
- #22978 - Discard queued events when a write performed via the REST API is rolled back
- #22985 - Exempt data file content from browser caching
- #22990 - Correct inconsistent field declarations which prevented certain fields from being edited or cleared via bulk edit
- #23007 - Align the sidebar navigation JavaScript breakpoint with that of the responsive layout
- #23013 - Avoid propagating a location's site assignment to descendant objects when the site has not changed