Nautobot v3.1¶
This document describes all new features and changes in Nautobot 3.1.
Upgrade Actions¶
Administrators¶
Migrate From Legacy PostgreSQL Versions As Needed¶
Nautobot 3.1, as a consequence of the Django 5.2 dependency upgrade, drops support for PostgreSQL versions 12.x and 13.x and now requires a minimum of PostgreSQL 14.0. If you have an existing Nautobot deployment on these no-longer-supported versions of PostgreSQL, you will need to upgrade and migrate your database.
Tip
In general we recommend that you upgrade PostgreSQL as a separate step and change window from upgrading Nautobot in order to reduce the complexity of the upgrade and allow easier troubleshooting and recovery should anything go wrong in the process.
Migrate Configuration To STORAGES As Needed¶
As a consequence of the Django 5.2 dependency upgrade, Nautobot 3.1 drops support for the Django DEFAULT_FILE_STORAGE and STATICFILES_STORAGE settings variables in favor of a unified STORAGES setting. Additionally, support for the corresponding Nautobot-specific STORAGE_BACKEND, STORAGE_CONFIG, and JOB_FILE_IO_STORAGE settings variables has been removed and merged into the STORAGES setting.
If your deployment of Nautobot had overridden any of the above settings (for example, to use S3 storage), you will need to update your nautobot_config.py file to use the STORAGES setting instead. More details are available in the Nautobot documentation for STORAGES.
Configure New Performance Settings As Appropriate¶
If you have a large number of Location and/or Prefix records, you can configure LOCATION_LIST_DEFAULT_MAX_DEPTH and/or PREFIX_LIST_DEFAULT_MAX_DEPTH to limit the depth of data that's initially retrieved and rendered when first accessing these list views, with the potential to significantly improve the performance of these enhanced views as a result.
App Authors/Maintainers¶
Changes For Django 5.2 Compatibility¶
Nautobot's dependency update to Django 5.2, as typical of Django major version updates, included a small number of breaking changes to Django's Python APIs. For a comprehensive guide, refer to the "Backwards incompatible changes" and "Features removed" sections of Django's release-notes for versions 5.0, 5.1, and 5.2. The most likely impacts we have identified to Nautobot Apps are the following:
- Support for
Model.Meta.index_together(previously deprecated in Django 4.2) is removed; App models with custom indexes usingindex_togetherwill need to migrate to useModel.Meta.indexesinstead and create a database migration accordingly. - Models using a
ManyToManyFieldwith an explicitthroughtable (as is recommended by Nautobot) may need to runnautobot-server makemigrations <app>to generate a schema migration explicitly specifying thethrough_fieldsfor each suchManyToManyField. - The test method
assertQuerysetEqual()(previously deprecated in Django 4.2) is removed; App tests using this method will need to migrate to useassertQuerySetEqual()(note capitalization) instead. - Nautobot previously maintained a Django templatetag named
querystring, which may conflict with the built-inquerystringtemplatetag introduced in Django 5.1. Additionally, Django Tables2 has a similar namespace conflict. It is recommended to use Django's built-in version where possible. If compatibility issues arise, usenautobot.app.templatetags.legacy_querystringinstead.
Changes for HTMX¶
See HTMX List View Rendering below.
Support Dependent Object Creation and Search In Forms¶
See Dependent Object Creation and Search below.
Bootstrap FileStyle Deprecation¶
The Bootstrap FileStyle library is now deprecated and will be removed in Nautobot 4.0. The ClearableFileInput widget, which previously depended on Bootstrap FileStyle, has already been migrated to the standard Bootstrap 5 file input.
If you do not directly reference the bootstrap-filestyle-1.2.3/bootstrap-filestyle.min.js script in your code, no action is required. Otherwise, we encourage you to transition to the Bootstrap 5 file input or import an external library of your choice.
Release Overview¶
Breaking Changes¶
Dropped Support for PostgreSQL Versions Less Than 14.0¶
As a consequence of the dependency update to Django 5.2, support for PostgreSQL versions before 14.0 has been removed from Nautobot.
Dropped Support for MySQL Versions Less Than 8.0.11¶
As a consequence of the dependency update to Django 5.2, support for MySQL versions before 8.0.11 has been removed from Nautobot.
Unified Storage Backend Configuration¶
As a consequence of the dependency update to Django 5.2, Nautobot 3.1 drops support for the Django DEFAULT_FILE_STORAGE and STATICFILES_STORAGE settings variables in favor of a unified STORAGES setting. Additionally, support for the corresponding Nautobot-specific STORAGE_BACKEND, STORAGE_CONFIG, and JOB_FILE_IO_STORAGE settings variables has been removed and merged into the STORAGES setting. More details are available in the Nautobot documentation for STORAGES.
Added¶
Dependent Object Creation and Search¶
Dependent objects can now be created directly from the current page using an embedded modal, without interrupting your workflow. Additionally, dependent object search supports advanced filtering, making it easier to find related records, especially in cases like interfaces where simple string matching was not sufficient.
Both creation and search are handled within a modal, so you don't have to leave the main form.
Form migration guide for App developers is available in Embedded Actions.
Configurable Columns¶
Configurable Columns have been redesigned for improved usability. You can now easily toggle columns on and off via moveable checkboxes, while preserving the order of selected columns.
Job Console¶
When running jobs, Nautobot now optionally captures and displays all console output in the Job Console tab, including logs previously omitted due to log settings or C-program output. You can now see the complete console log as if running the job interactively, creating a clear separation between job troubleshooting (Job Console) and job reporting (Job Log Entries).
Custom Field Scoping¶
Custom Fields can now be scoped to display or edit only when specific, user-defined filtering conditions are met. Previously, all Custom Fields appeared on all objects. Common use cases include:
- Displaying SMARTnet details for
Deviceobjects only when the device is a Cisco model. - Showing local contact information for
Locationobjects only when theLocationTypeisSite. - Presenting ATT billing account information for
Circuitobjects only when the circuit is an ATT circuit.
Python 3.14 Support¶
Added official support for Python 3.14.
Changed¶
HTMX List View Rendering¶
In Nautobot 3.1, object list views (including both those derived from generic.ObjectListView and those using NautobotUIViewSet) now load in two stages (using HTMX) to improve the responsiveness of the UI. Custom implementations of these views, and/or custom test cases written for these views, may require some updates to handle this behavior correctly. Refer to the developer documentation for more specific guidance.
Async Global Search¶
Global search is now loaded asynchronously. When performing a search, results are returned incrementally, so you see matches immediately without waiting for the slowest queries to complete.
Improved Location and Prefix List Views¶
In addition to the generalized list-view performance enhancements described above, the list views for Location and Prefix records specifically have been enhanced in several ways:
- The rendering of the "tree" data hierarchy for these records has in general been improved to visualize object relationships more clearly.
- An administrator can configure
LOCATION_LIST_DEFAULT_MAX_DEPTHand/orPREFIX_LIST_DEFAULT_MAX_DEPTHto limit the depth of data that's initially retrieved and rendered when first accessing these list views, improving their responsiveness substantially at high data scale. - Users can interactively "drill down" into deeper nested data as needed with a few quick clicks, incrementally loading additional "child" records on the fly.
Deprecated¶
assertQuerysetEqualAndNotEmpty() Test Method¶
The Nautobot test method assertQuerysetEqualAndNotEmpty() has been deprecated in favor of the new assertQuerySetEqualAndNotEmpty() method (note change in capitalization) to align with Django's assertQuerySetEqual() test method. Support for assertQuerysetEqualAndNotEmpty() may be removed in a future Nautobot release.
Dependencies¶
Django 5.2¶
Nautobot 3.1 upgrades the core Django dependency from 4.2.x LTS to 5.2.x LTS. Nautobot has been updated accordingly, but Apps and third-party dependencies may need to update to newer versions for compatibility with Django 5.2.
v3.1.0a5 (2026-04-07)¶
Security in v3.1.0a5¶
- #8819 - Updated dependency
Djangoto>=5.2.13,<5.3to mitigate CVE-2026-33033 and others.
Changed in v3.1.0a5¶
- #8805 - JobResult modal now displays link to View job results as soon as the modal loads.
- #8813 - Changed job form modal to replace the Run button with a disabled "Enqueuing..." button and spinner when the form is submitted.
Fixed in v3.1.0a5¶
- #8784 - Fixed invalid results in Static Assignment to Dynamic Groups embedded search.
Housekeeping in v3.1.0a5¶
- #8799 - Fixed state leakage between consecutive calls to
merge-image-digestsGitHub action.
v3.1.0a4 (2026-04-02)¶
Security in v3.1.0a4¶
- #8663 - Updated dependency
Djangoto>=5.2.12,<5.3to mitigate CVE-2026-25673 and CVE-2026-25674.
Added in v3.1.0a4¶
- #8578 - Added jobs to manage and clean up custom field data.
- #8612 - Implemented embedded object search.
- #8627 - Added the ability to run k8s jobs with the console log.
- #8627 - Added
execute_job_resultmanagement command introduced as the shared leaf executor for bothrunjob --localandrunjob_with_job_resultflows and JobConsoleLogExecutor subprocess mode. - #8644 - Added
deferred_renderflag to UI Component FrameworkComponentclass, allowing components to opt in to deferred rendering via HTMX to improve initial page render times. - #8644 - Added deferred-rendering placeholder templates for generic
Component,Button, andPanelclasses. - #8644 - Added autogenerated but overridable
component_idhash string to each UIComponentinstance. - #8644 - Enhanced
ObjectViewandNautobotUIViewSetMixinto support HTMX queries with?component_idquery parameter to render a single UIComponenton request. - #8644 - Enhanced
ObjectDetailContentto support looking up its memberComponentinstances by theircomponent_id. - #8650 - Added
Re-Runbutton toConsole Logtab. - #8650 - Added saving the same data in
JonConsoleEntrywhich are stored inJobLogEntrywhen console log is enabled. - #8650 - Added
sanitizedata before saving it toJobConsoleEntry. - #8672 - Added experimental
_JobModalButtonas an ObjectDetail Component. - #8689 - Added ARM64 variants for all published Docker images.
- #8693 - Added support for bulk adding and removing VLANs from interfaces.
- #8703 - Added
export_job_console_entriesaction to JobResult to download console entries to plain text file. - #8723 - Added a note to Job forms when the job has no user inputs to avoid rendering an empty card.
- #8738 - - Added
pre_deletesignalprevent_delete_definition_with_pending_workflowsonApprovalWorkflowDefinitionto block deletion when pendingApprovalWorkflowinstances exist. - #8738 - - Added
pre_deletesignalprevent_delete_stage_definition_with_pending_stagesonApprovalWorkflowStageDefinitionto block deletion when pendingApprovalWorkflowStageinstances exist. - #8738 - - Added
_handle_validation_erroroverride inApprovalWorkflowDefinitionUIViewSetto display a user-friendly HTML error message with a link to the affected workflows when deletion is blocked by a pending workflow signal. - #8750 - Added boolean column for JobResult table showing whether a record has a console log or not, set as default column.
- #8750 - Added
has_job_console_entriesfilter for JobResults. - #8750 - Added action buttons on JobResult list view for downloading console output and job logs.
- #8751 - Added logic to
object_list.htmlto handle error responses when loading table contents over HTMX.
Changed in v3.1.0a4¶
- #7066 - Add support for parent-child device types to enable multi-level nested devices.
- #8627 - Changed
runjob --localnow delegates execution toexecute_job_resultinsteadJobResult.execute_job. - #8627 - Changed
runjob_with_job_resultnow delegates toexecute_job_resultdirectly (non-console path) or via JobConsoleLogExecutor subprocess (console path), replacing its previous execution logic. - #8635 - Updated CustomField clean method to block setting both required and scope filter values
- #8635 - Updated UI to hide scope filter section when required is marked.
- #8644 - Changed Device detail view "Power Utilization" panel to deferred rendering via HTMX to improve page loading performance.
- #8650 - Report for status is also displayed and saved to
JobConsoleEntrywhen console log is enabled. - #8696 - Changed "dependent object search" modal behavior so that when first opened, an initial search query is automatically triggered.
- #8696 - Changed global search behavior to display only a single loading spinner while search is in progress.
- #8696 - Changed Location and Prefix list view behavior so that when table subtrees are toggled, the "Showing X of Y" pagination info is hidden.
- #8703 - Changed
render_on_tab_idfromButtonclass to support also a list. - #8716 - Added rendering custom form templates capability to Embedded Create modal.
- #8738 - Changed
ApprovalWorkflow.approval_workflow_definitionon_deletebehavior fromCASCADEtoSET_NULL. - #8738 - Changed
ApprovalWorkflowStage.approval_workflow_stage_definitionon_deletebehavior fromCASCADEtoSET_NULL. - #8753 - Changed the default ordering of models in the global Search results to place Device, Location, Prefix, and IPAddress first in the results, followed by all remaining core models, followed by all app models.
- #8753 - Changed behavior of
LOCATION_LIST_DEFAULT_MAX_DEPTH,PREFIX_LIST_DEFAULT_MAX_DEPTH, andPREFIX_LIST_DEFAULT_CONTAINER_ONLYsettings to simply redirect unfiltered access to the Prefix and Location list views to a filtered equivalent, rather than automagically filtering the data behind the scenes. - #8770 - Changed handling of
nautobot_config.pyto be passed explicitly via--config=settings.SETTINGS_PATHin job execution commands. - #8777 - Updated the CustomField's Job name.
- #8787 - Replaced Bootstrap FileStyle library with standard Bootstrap 5 file input.
Deprecated in v3.1.0a4¶
- #8787 - Deprecated Bootstrap FileStyle library as a provided dependency. It is recommended to use Bootstrap 5 file input instead.
Removed in v3.1.0a4¶
- #8703 - Removed
Re-Runbutton fromConsole Logtab in Job Result detail view.Re-Runbutton it's only available onJob Resulttab.
Fixed in v3.1.0a4¶
- #8627 - Fixed missing fallback value for
last_timestampwhen no console log entries exist. - #8649 - Fixed displaying Django messages after dependent objects creation.
- #8649 - Fixed form error message wrapping.
- #8650 - Fixed subprocess-based(console log) job execution incorrectly reporting SUCCESS when a job raised an exception, caused by Celery eager mode silently capturing exceptions inside EagerResult rather than propagating them to the subprocess exit code.
- #8650 - Fixed
task_namewhen job is run immediately with console log. - #8662 - Fixed component ID generation crash caused by non-string dictionary keys.
- #8693 - Fixed styling for two boolean columns.
- #8717 - Fixed bug with
_JobModalButtonmodifying class instead of context. - #8720 - Fixed validation of ApprovalWorkflowDefinition formset to require at least one stage on create and update.
- #8750 - Fixed JobResult rerun behavior to persist the "console log" field properly.
- #8769 - Fixed Git Repositories table "Sync" action button.
- #8773 - Fixed eChart title color handling between dark mode and light mode switching.
Dependencies in v3.1.0a4¶
- #8728 - Updated dependency
django-filterto>=25.2,<25.3. - #8728 - Updated dependency
django-silkto>=5.5.0,<5.6. - #8728 - Updated dependency
djangorestframeworkto>=3.17.0,<3.18. - #8728 - Updated dependency
kubernetesto>=35.0.0,<36. - #8728 - Updated dependency
Markdownto>=3.10.2,<3.11. - #8728 - Updated dependency
prometheus-clientto>=0.24.1,<0.25. - #8728 - Updated dependency
social-auth-app-djangoto>=5.7.0,<5.8. - #8728 - Updated optional dependency
django-auth-ldapto>=5.3.0,<5.4.
Documentation in v3.1.0a4¶
- #8692 - Updated the 3.1 release documentation with the new features.
- #8716 - Added Embedded Actions migration guide for Nautobot App developers.
- #8774 - Updated release process documentation to reflect available automation.
Housekeeping in v3.1.0a4¶
- #6267 - Replaced third-party GitHub action in release CI.
- #8632 - Improved reliability of
nautobot.ipam.tests.integration.test_prefixesintegration test cases. - #8656 - Merged in latest fixes and updates from v3.0.8.
- #8689 - Refactored GitHub CI to use multi-architecture runners for Docker image build and publish.
- #8697 - Fixed Docker image publication for integration branches and releases.
- #8699 - Fixed isolation of docker image digests by cache scope when building multiple images in a single workflow.
- #8711 - Merged in latest fixes and updates from v3.0.9.
- #8719 - Updated development dependency
coverageto~7.13.5. - #8719 - Updated development dependency
django-debug-toolbarto~6.2.0. - #8719 - Updated development dependency
fakerto^40.11.0. - #8719 - Updated development dependency
openapi-spec-validatorto~0.8.4. - #8719 - Updated development dependency
richto~14.3.3. - #8719 - Updated development dependency
ruffto~0.15.6. - #8719 - Updated development dependency
time-machineto~3.2.0. - #8719 - Updated development dependency
yamllintto~1.38.0. - #8721 - Updated documentation dependency
mkdocstringsto~1.0.3. - #8721 - Updated documentation dependency
mkdocstrings-pythonto~2.0.3. - #8721 - Updated development dependency
pylintto~4.0.5. - #8721 - Updated development dependency
pylint-djangoto~2.7.0. - #8721 - Updated development dependency
ruffto~0.15.7. - #8770 - Added
CelerySubprocessTestCaseutility to facilitate E2E testing of Celery tasks that spawn subprocesses. - #8774 - Updated PyPI publication to use Trusted Publisher.
- #8792 - Merged in latest code and updates from v3.0.10.
v3.1.0a3 (2026-02-25)¶
Added in v3.1.0a3¶
- #2516 - Enhanced Prefix list view to support dynamic expansion/collapsing of prefix subtrees.
- #2516 - Added support for
prefix_and_descendantsfilter on Prefix list view. - #2516 - Added option for
ButtonsColumnin tables to be passed an explicitreturn_urlin the render context in order to override its default behavior. - #2516 - Added
Prefix.next_siblingproperty. - #2516 - Added
/ipam/prefixes/<uuid>/children/URL endpoint in support of enhanced Prefix list view functionality. - #8516 - Added dynamically rendered scope filter fields to the Custom Field edit form.
- #8524 - Added
Console Logtab to Job Result detail view. - #8524 - Added
job_console_entriesaction toJobResultUIViewSetto stream output from SQL into the UI in realtime. - #8524 - Modified
runjob_with_job_result.pycommand torun_jobinstead ofexecute_job. - #8524 - Improved
job_result.jsandjob_level_filtering.js. - #8546 - Implemented embedded create and search buttons accompanying dynamic model choice fields.
- #8551 - Added
max_depthfilter support to the Location list view. - #8551 - Added
max_depthfilter to the Location basic filter form. - #8551 - Added support for the setting/Constance variable
LOCATION_LIST_DEFAULT_MAX_DEPTH. Configuring this may improve the performance of the Location list view at scale. - #8559 - Implemented embedded object creation modal.
- #8562 - Added tables of "Sibling Prefixes" and "Child Prefixes" to Prefix detail view.
- #8562 - Added
TreeModel.siblingsconvenience property. - #8562 - Added table of "Sibling Locations" to Location detail view.
- #8571 - Added testing of
test_filter_form_fields_are_workingto catch more filter form issues. - #8579 - Added role-based precedence for
console_log(Author -> Admin -> Runner). - #8579 - Added the ability to run scheduled jobs with the console log.
Changed in v3.1.0a3¶
- #8527 - Changed behavior of
PREFIX_LIST_DEFAULT_MAX_DEPTHandmax_depthPrefix filter to start at 1 instead of 0. - #8527 - Changed behavior of table paginator widget to automatically return to page 1 when changing the
per_pageselection. - #8527 - Renamed Prefix table column "Children" to "Descendants" for improved clarity.
- #8527 - Changed hierarchy rendering in Prefix table to more clearly indicate parent, child, and sibling relations.
- #8537 - Updated testing of
test_model_properties_as_table_columns_are_not_orderableto catch more sortable issues. - #8551 - Changed Location list view behavior so that filtering by the filters
max_depthand/orsubtree(in the absence of any other filters) will not prevent the indentation of locations based on their nesting depth. - #8562 - Renamed "Child Prefixes" tab on Prefix detail view to "Descendant Prefixes" for clarity.
- #8562 - Renamed "Parent Prefixes" table on Prefix detail view to "Ancestor Prefixes" for clarity.
- #8564 - Updated the logic that determines which nav menu item is marked "active" to always prefer exact URL matches before falling back to introspecting the view and model.
- #8579 - Job run form split into 3 separate sections:
Job Data,Job ExecutionandJob Schedule Type. - #8579 -
Job.as_form()no longer includes execution fields (_profile,_console_log,_job_queue,_ignore_singleton_lock). These have been moved to the newJob.as_execution_form(). - #8579 -
Job.as_execution_form()added as a new classmethod returning a standaloneJobExecutionFormpopulated with execution-related fields only. - #8579 -
JobRunView.post()updated to validatejob_form,job_execution_form, andschedule_formindependently. Execution fields are now read fromjob_execution_form.cleaned_dataand job data fields fromjob_form.cleaned_data. - #8579 - Template
nautobot/extras/templates/extras/job.htmlupdated to render three separate cards:Job Data,Job Execution, andJob Schedule Type. - #8596 - Changed behavior of model edit forms to hide custom fields that are out of scope.
- #8596 - Improved unit test coverage for scope filter HTMX endpoint.
- #8609 - Made embedded object create form footer sticky.
- #8617 - Enhanced Location list view tree rendering to follow the same pattern as Prefix list view tree.
- #8622 - Restored support for
DATE_FORMAT,DATETIME_FORMAT,SHORT_DATE_FORMAT,SHORT_DATETIME_FORMAT, andTIME_FORMATsettings. - #8622 - Removed user-defined locale/language selection feature (previously introduced for 3.1 by #8417).
- #8628 - Changed "global" search to load results incrementally with HTMX in order to avoid timing out when searching a large amount of data.
Fixed in v3.1.0a3¶
- #8527 - Fixed
per_pagelist view dropdown not working in Chrome and similar browsers. - #8537, #8571 - Fixed sorting on multiple tables.
- #8562 - Fixed a warning appearing in Firefox when updating table configuration in a view that contained multiple instances of the same table class.
- #8570 - Fixed an exception under Django 5.2 when bulk-editing or bulk-deleting certain types of records.
- #8597 - Fixed initial HTMX loading of Job list view (table or tiles).
- #8597 - Fixed rendering of "Descendants" column in Prefix table.
- #8597 - Fixed duplicated messages when applying invalid filters to object list views.
- #8602 - Fixed ECharts not resizing with their container.
- #8617 - Reduced the number of database queries needed to render Location tree view.
Dependencies in v3.1.0a3¶
- #8563 - Added declared support for Python 3.14.
Documentation in v3.1.0a3¶
- #8527 - Improved developer documentation and release note content about HTMX.
Housekeeping in v3.1.0a3¶
- #8532 - Changed the Python API for the UI components to allow default values to be set directly as class attributes.
- #8602 - Decoupled the EChartsPanel and EChartsBase classes.
- #8602 - Removed the redundant
permissionattribute from the EChartsBase class. - #8622 - Removed leftover test case for
social-auth-app-djangopatch.
v3.1.0a2 (2026-02-10)¶
Housekeeping in v3.1.0a2¶
- #8538 - Fixed missing end of conditional in release CI.
v3.1.0a1 (2026-02-10)¶
Breaking Changes in v3.1.0a1¶
- #694 - Removed support for settings variables
DEFAULT_FILE_STORAGE,JOB_FILE_IO_STORAGE,STATICFILES_STORAGE,STORAGE_BACKEND, andSTORAGE_CONFIG. These are all now incorporated into the Django standardSTORAGESsettings variable. - #8459 - Dropped support for PostgreSQL versions 12 and 13 as a consequence of upgrading to Django 5.2.
Security in v3.1.0a1¶
- #8459 - Updated dependency
social-auth-app-djangoto 5.6.0 in order to pick up the official fix forCVE-2025-61783, and removed the local patch previously implemented in Nautobot for that vulnerability. - #8507 - Updated dependency
djangoto>=5.2.11,<5.3to mitigate several CVEs including CVE-2026-1287 and CVE-2026-1312.
Added in v3.1.0a1¶
- #7018 - Added support for per-user configuration of preferred language/locale through the User Preferences UI. Currently this configuration applies primarily to date/time display in the UI.
- #7957 - Added
port_typefield to Interface and InterfaceTemplate models to track physical connector type. - #8410 - Added
scope_filterfield toCustomFieldmodel. - #8427 - Added checks for
CustomField.scope_filterto show/hide custom fields on object detail view based on scope filters. - #8457 - Implemented table column config drag and drop.
- #8458 - Added initial support for running jobs in a subprocess and asynchronously capturing console output.
- #8461 - Implemented table column config saved ordering on unselected columns.
- #8468 - Added
max_depthfilter support to the Prefix list view. - #8468 - Added
max_depthandnamespacefilters to the Prefix basic filter form. - #8468 - Added support for the settings/Constance variables
PREFIX_LIST_DEFAULT_MAX_DEPTHandPREFIX_LIST_DEFAULT_CONTAINER_ONLY. Configuring either or both of these may improve the performance of the Prefix list view at scale. - #8498 - Added saving output (stdout/stderr) line by line to
JobConsoleEntrytable.
Changed in v3.1.0a1¶
- #8446 - Changed object list views to render in two passes with HTMX, improving initial load times.
- #8446 - Changed rendering of table sorting indicator arrows from client-side to server-side rendering.
- #8450 - Converted table column config to checkboxes.
- #8468 - Enhanced the "Max Length" dropdown in the Prefix list view to allow deselecting a previously selected value.
- #8468 - Changed Prefix list view behavior so that filtering by the filters
ip_version,max_depth,namespace,prefix_length__lte, and/ortype=container(in the absence of any other filters) will not prevent the indentation of prefixes based on their nesting depth.
Deprecated in v3.1.0a1¶
- #8459 - Following upstream Django patterns, the test helper method
assertQuerysetEqualAndNotEmptyhas been renamed toassertQuerySetEqualAndNotEmpty. The old method name is still available but is deprecated and will be removed in a future release.
Removed in v3.1.0a1¶
- #7018 - As a consequence of upgrading to Django 5.2, necessarily removed support for customizing date/time display in the UI through
nautobot_config.pysettingsDATE_FORMAT,DATETIME_FORMAT,TIME_FORMAT,SHORT_DATE_FORMAT, andSHORT_DATETIME_FORMAT. Formatting of date/time information is now controlled by the application-levelLANGUAGE_CODEsetting and/or by per-user language preferences.
Fixed in v3.1.0a1¶
- #7018 - Fixed rendering of "last sync time" and "last synced by" columns in Git Repository list view.
- #8315 - Fixed bug in Interface template causing emdash to not be used for Port Type if no value was set.
- #8349 - Fixed unit tests failing after upgrading to Django 5.2.
- #8422 - Fixed incompatibilities with
django_celery_beatv2.8.1. - #8468 - Fixed dynamic-group filter calculation for cases where the filter is using
exclude=True. - #8479 - Fixed missing text on the trace action button.
Dependencies in v3.1.0a1¶
- #8459 - Updated dependency
djangoto>=5.2.10,<5.3. - #8459 - Updated dependency
django-celery-beatto==2.8.1for compatibility with Django 5.2; pinned to an exact version due to Nautobot's use of some internals of this dependency.