v1.4 Alpha, Beta, Release Candidate Feedback #1880
bryanculver
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
👋
Thank you for checking out our alpha and beta releases of v1.4! We're excited to hear what you think about another great release.
Please feel free to comment below on any questions you may have pertaining to v1.4, either in general or the alphas and betas specifically.
If you do happen to catch a bug in any version, do not hesitate to open a bug 🐛.
Releases
Release Overview
Added
Custom Field Slugs (#1962)
Custom fields now have a distinct
slug
field. The custom fieldname
attribute should be considered deprecated, and will be removed in a future major release (see also #824.) Additionally, thelabel
attribute, while currently optional in the database, will become mandatory in that same future release as a consequence. When migrating from an earlier Nautobot release to version 1.4 or later, theslug
andlabel
for all existing custom fields will be automatically populated if not previously defined.A new version of the
/api/extras/custom-fields/
REST API endpoints has been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior (name
required,slug
andlabel
optional; if unspecified, theslug
andlabel
will receive default values based on the providedname
). A REST API client can request API version 1.4, in which case the updated API will requireslug
andlabel
parameters in place ofname
.Additionally, REST API serialization of custom field data is itself now versioned. For all object endpoints that include custom field data under the
custom_fields
key, REST API versions 1.3 and earlier will continue the previous behavior of indexing thecustom_fields
dictionary by fields'name
values, but when REST API version 1.4 or later is requested, thecustom_fields
data will be indexed byslug
instead.For technical reasons of backwards-compatibility, the database (ORM) and GraphQL interfaces continue to access and store object custom field data exclusively under the
name
key; this will change to use theslug
in a future major release. Again, watch #824 for plans in that regard.Custom Template (CSS, HTML, JavaScript) on Job Forms (#1865)
Jobs can now specify a
template_name
property and provide a custom template with additional JavaScript and CSS to help with user input on the Job submission form.You can refer to the Job class metadata attribute documentation on how to build and define this template.
Dark Mode UI (#729)
Nautobot's UI now supports dark mode, both explicitly and via browser preference selection.
The "Theme" link in the footer provides a modal popup to select the preferred theme. This preference is saved per browser via
localStorage
.Improved Filter Coverage for DCIM, Virtualization Models
The DCIM, Virtualization FilterSets have been updated with over 150 new filters, including hybrid filters that support filtering on both
pk
andslug
(orpk
andname
whereslug
is not available). A new filter classNaturalKeyOrPKMultipleChoiceFilter
was added tonautobot.utilities.filters
to support filtering on multiple fields of a related object. See the Best Practices documentation for more information.Job Hooks (#2103)
Jobs can now be configured to run automatically when a change event occurs on a Nautobot object. Job hooks associate jobs to content types and actions to run jobs when a create, update or delete action occurs on the selected content type. A new job base class
JobHookReceiver
was introduced that jobs must subclass to be associated with a job hook. See the Job Hooks documentation for more information.Job Re-Runs (#1875)
JobResult records now save the arguments with which the Job was called, allowing for easy re-execution of the Job with the same arguments as before. A "re-run" button has been added to the JobResult list view and detail view.
Location Data Model (#1052)
To locate network information more precisely than a Site defines, you can now define a hierarchy of Location Types (for example,
Building
←Floor
←Room
) and then create Locations corresponding to these types within each Site. Data objects such as devices, prefixes, VLAN groups, etc. can thus be mapped or assigned to Location representing a specific building, wing, floor, room, etc. as appropriate to your needs.Object Detail Tabs (#1000)
A plugin may now define extra tabs which will be appended to the object view's list of tabs.
You can refer to the plugin development guide on how to add tabs to existing object detail views.
Parent Interfaces and Bridge Interfaces (#1455)
Interface and VMInterface models now have
parent_interface
andbridge
keys. An interface of typeVirtual
can now associate to a parent physical interface on the same device, virtual chassis, or virtual machine, and an interface of any type can specify another interface as its associated bridge interface. (A newBridge
interface type has also been added, but thebridge
interface property is not restricted to interfaces of this type.)Rackview UI - Add Option to Truncate Device Name (#1119)
Users can now toggle device full name and truncated name in the rack elevation view. The truncating function is customizable in
nautobot_config.py
via definingUI_RACK_VIEW_TRUNCATE_FUNCTION
. Default behavior is to split on.
and return the first item in the list."Save SVG" link presents the same view as what is currently displayed on screen
Current preferred toggle state is preserved across tabs (requires refresh) and persists in-browser until local storage is cleared. This presents a consistent behavior when browsing between multiple racks.
REST API Enhancements (#1463)
include=relationships
as a query parameter."relationships" -> <relationship-slug> -> "source"
or"relationships" -> <relationship-slug> -> "destination"
.nautobot.extras.api.serializers.NautobotModelSerializer
base class has been added. Using this class guarantees support for relationships, custom fields, and computed fields on the serializer, and provides for a streamlined developer experience.Status Field on Interface, VMInterface Models (#984)
Interface and VMInterface models now support a status. Default statuses that are available to be set are: Active, Planned, Maintenance, Failed, and Decommissioned. During migration all existing interfaces will be set to the status of "Active".
A new version of the
/dcim/interfaces/*
REST API endpoints have been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior unless the REST API client explicitly requests API version=1.4. If you continue to use the pre-1.4 API endpoints, status is defaulted to "Active".Visit the documentation on REST API versioning for more information on using the versioned APIs.
Notes (#767)
Primary and Organizational models now support notes. A notes tab has been added to the Object Detail view for all models that inherit the Primary or Organizational base abstract models.
Notes can also be used via the REST API at endpoint
/api/extras/notes
or per object at the object's/notes
endpoint.Changed
Dynamic Groups of Dynamic Groups (#1614)
Dynamic Groups may now be nested in parent/child relationships. The Dynamic Group edit view now has a "Child Groups" tab that allows one to make other Dynamic Groups of the same content type children of the parent group. Any filters provided by the child groups are used to filter the members from the parent group using one of three operators: "Restrict (AND)", "Include (OR)", or "Exclude (NOT)". This allows for logical parenthetical grouping of nested groups by the operator you choose for that child group association to the parent.
Renamed Mixin Classes (#2135)
A number of mixin classes have been renamed for improved self-consistency and clarity of usage. The former names of these mixins are still available for now as aliases, but inheriting from these mixins will raise a
DeprecationWarning
, and these aliases will be removed in a future major release.AddRemoveTagsForm
TagsBulkEditFormMixin
CustomFieldBulkCreateForm
CustomFieldModelBulkEditFormMixin
CustomFieldBulkEditForm
CustomFieldModelBulkEditFormMixin
CustomFieldFilterForm
CustomFieldModelFilterFormMixin
CustomFieldModelForm
CustomFieldModelFormMixin
RelationshipModelForm
RelationshipModelFormMixin
StatusBulkEditFormMixin
StatusModelBulkEditFormMixin
StatusFilterFormMixin
StatusModelFilterFormMixin
Strict Filter Validation by Default (#1736)
Filtering of object lists in the UI and in the REST API will now report an error if an unknown or unrecognized filter parameter is specified. This is a behavior change from previous Nautobot releases, in which unknown filter parameters would be silently discarded and ignored.
A new configuration setting,
STRICT_FILTERING
has been added. It defaults toTrue
, enabling strict validation of filter parameters, but can be set toFalse
to disable this validation.Moved Registry Template Context (#1945)
The
settings_and_registry
default context processor was changed to purelysettings
- the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a newregistry
template tag that can be invoked by specific templates to provide this variable where needed.Beta Was this translation helpful? Give feedback.
All reactions