Release Overview
Added
Dynamic Group Model (#896)
A new data model for representing dynamic groups of objects has been implemented. Dynamic groups can be used to organize objects together by matching criteria such as their site location or region, for example, and are dynamically updated whenever new matching objects are created, or existing objects are updated.
For the initial release only dynamic groups of Device
and VirtualMachine
objects are supported.
!!! note
For this first 1.3 beta release, this feature is not yet documented. Dynamic Groups be found by navigating to Organization > Dynamic Groups in the web interface.
GraphQL Pagination (#1109)
GraphQL list queries can now be paginated by specifying the filter parameters limit
and offset
. Refer to the user guide for examples.
Job Database Model (#1001)
Installed Jobs are now represented by a data model in the Nautobot database. This allows for new functionality including:
- The Jobs listing UI view can now be filtered and searched like most other Nautobot table/list views.
- Job attributes (name, description, approval requirements, etc.) can now be managed via the Nautobot UI by an administrator or user with appropriate permissions to customize or override the attributes defined in the Job source code.
- Jobs can now be identified by a
slug
as well as by theirclass_path
. - A new set of REST API endpoints have been added at
api/extras/job-models
. The existingapi/extras/jobs
REST API continues to work but should be considered as deprecated.
!!! warning
The new Jobs REST API endpoint URL is likely to change before the final release of Nautobot 1.3.
- As a minor security measure, newly installed Jobs default to
enabled = False
, preventing them from being run until an administrator or user with appropriate permissions updates them to be enabled for running.
!!! note
As a convenience measure, when initially upgrading to Nautobot 1.3.x, any existing Jobs that have been run or scheduled previously (i.e., have at least one associated JobResult and/or ScheduledJob record) will instead default to enabled = True
so that they may continue to be run without requiring changes.
For more details please refer to the Jobs feature documentation as well as the Job data model documentation.
Provider Network Model (#724)
A data model has been added to support representing the termination of a circuit to an external provider's network.
Python 3.10 Support (#1255)
Python 3.10 is officially supported by Nautobot now, and we are building and publishing Docker images with Python 3.10 now.
Changed
Update Jinja2 to 3.x (#1474)
We've updated the Jinja2 dependency from version 2.11 to version 3.0.3. This may affect the syntax of any nautobot.extras.models.ComputedField
objects in your database... Specifically, the template
attribute, which is parsed as a Jinja2 template. Please refer to Jinja2 3.0.x's release notes to check if any changes might be required in your computed fields' templates.
Docker Images Now Default to Python 3.7 (#1252)
As Python 3.6 has reached end-of-life, the default Docker images published for this release (i.e. 1.3.0
, stable
, latest
) have been updated to use Python 3.7 instead.
Removed
Python 3.6 No Longer Supported (#1268)
As Python 3.6 has reached end-of-life, and many of Nautobot's dependencies have already dropped support for Python 3.6 as a consequence, Nautobot 1.3 and later do not support installation under Python 3.6.
v1.3.0b1 (2022-03-11)
Added
- #5 - Added the option to perform a "dry run" of Git repository syncing.
- #330 - Added pre-/post-change data to WebHooks leveraging snapshots
- #498 - Added custom-validator support to the RelationshipAssociation model.
- #724 - Added Provider Network data model. (Partially based on NetBox #5986.)
- #795 - Added ability to filter objects missing custom field values by using
null
. - #803 - Added a
render_boolean
template filter, which renders computed boolean values as HTML in a consistent manner. - #863 - Added the ability to hide a job in the UI by setting
hidden = True
in the Job's innerMeta
class - #881 - Improved the UX of the main Jobs list by adding accordion style interface that can collapse/expand jobs provided by each module
- #885 - Added the ability to define a
soft_time_limit
andtime_limit
in seconds as attributes of a Job'sMeta
. - #894 - Added the ability to view computed fields in an object list.
- #898 - Added support for moving a CustomField, Relationship or ComputedField from the main tab of an object's detail page in the UI to the "Advanced" tab.
- #1001 - Added Job database model and associated functionality.
- #1109 - Added pagination support for GraphQL list queries.
- #1255 - Added Python 3.10 support.
- #1350 - Added missing methods on Circuit Termination detail view.
- #1411 - Added concrete Job database model; added database signals to populate Job records in the database; added detail, edit, and delete views for Job records.
- #1457 - Added new Jobs REST API, added control logic to use JobModel rather than JobClass where appropriate; improved permissions enforcement for Jobs
Changed
- #368 - Added
nautobot.extras.forms.NautobotModelForm
andnautobot.extras.filters.NautobotFilterSet
base classes. All form classes which inherited from all three of (BootstrapMixin
,CustomFieldModelForm
, andRelationshipModelForm
) now inherit fromNautobotModelForm
as their base class. All filterset classes which inherited from all three of (BaseFilterSet
,CreatedUpdatedFilterSet
, andCustomFieldModelFilterSet
) now inherit fromNautobotFilterSet
as their base class. - #443 - The provided "Dummy Plugin" has been renamed to "Example Plugin".
- #591 - All uses of
type()
are now refactored to useisinstance()
where applicable. - #880 - Jobs menu items now form their own top-level menu instead of a sub-section under the Extensibility menu.
- #909 - Device, InventoryItem, and Rack serial numbers can now be up to 255 characters in length.
- #916 - A
Job.Meta.description
can now contain markdown-formatted multi-line text. - #1107 - Circuit Provider account numbers can now be up to 100 characters in length.
- #1252 - As Python 3.6 has reached end-of-life, the default Docker images published for this release (i.e.
1.3.0
,stable
,latest
) have been updated to use Python 3.7 instead. - #1277 - Updated Django dependency to 3.2.X LTS.
- #1307 - Updated various Python package dependencies to their latest compatible versions.
- #1314 - Updated various development-only Python package dependencies to their latest compatible versions.
- #1321 - Updates to various browser package dependencies. This includes updating from Material Design Icons 5.x to 6.x, which has a potential impact on plugins: a small number of icons have been removed or renamed as a result of this change.
- #1367 - Extracted Job-related models to submodule
nautobot.extras.models.jobs
; refined Job testing best practices. - #1391 - Updated Jinja2 dependency to 3.0.X.
- #1435 - Update to Selenium 4.X
Fixed
- #1440 - Handle models missing serializer methods, dependent from adding pre-/post-change data to WebHooks.
Removed
- #1268 - Drop Support for Python 3.6.