nautobot

Network Source of Truth & Network Automation Platform

APACHE-2.0 License

Downloads
16K
Stars
1K
Committers
251

Bot releases are hidden (Show)

nautobot - v1.4.7 - 2022-10-18

Published by bryanculver about 2 years ago

ℹ️ NOTE: This release is functionally identical to v1.4.6, just fixing the advertised version.

Fixed

  • #2636 - Fixed pyproject.toml to be a proper full release.

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.6...v1.4.7


v1.4.6 Changelog for those that might have missed it.

Added

  • #2437 - Added Nautobot-themed error page for handling 403 CSRF errors.
  • #2512 - Added link to nautobot-plugin-nornir in the Apps section of the documentation.
  • #2588 - Added a danger admonition to developer docs about never using pip to install Poetry into Nautobot dev environment.

Changed

  • #2434 - Updated oauthlib to 3.2.1 for CVE-2022-36087. This is a dependency of social-auth-core so will not auto-update when upgrading. Please be sure to upgrade your local environment.
  • #2530 - Updated development documentation to include LTM, additional release schedule information.
  • #2565 - Updated version to 1.4.6-beta.1.
  • #2602 - Increased size of ObjectChange.change_context_detail field from 100 to 400 chars, and add truncation to it. Also adding truncation to ObjectChange.object_repr.

Fixed

  • #2075 - Fixed white screen flash in dark mode.
  • #2546 - Applied a hotfix for multiple jobs executing from a single scheduled job.
  • #2560 - Fixed NautobotHTMLRenderer incorrectly overrides selected pk_list for bulk_destroy and bulk_update.
  • #2566 - Clarified documentation on superusers needing staff permission to access admin UI.
  • #2573 - Fixed link from VLAN group detail view to filtered VLAN list.
  • #2574 - Updated nautobot.core.settings to match expected behavior on NAPALM_USERNAME, NAPALM_PASSWORD, and NAPALM_TIMEOUT based on documentation.
  • #2595 - Fixed NautobotUIViewSet handling of unauthenticated users.
  • #2614 - Fixed CONTRIBUTING.md link to actual Nautobot documentation.

Contributors

  • @HanlinMiao
  • @jathanism
  • @cmsirbu
  • @matt852
  • @whitej6
  • @johannwagner
  • @scetron
  • @chadell
  • @glennmatthews

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.5...v1.4.7

nautobot - v1.4.6 - 2022-10-17

Published by bryanculver about 2 years ago

Added

  • #2437 - Added Nautobot-themed error page for handling 403 CSRF errors.
  • #2512 - Added link to nautobot-plugin-nornir in the Apps section of the documentation.
  • #2588 - Added a danger admonition to developer docs about never using pip to install Poetry into Nautobot dev environment.

Changed

  • #2434 - Updated oauthlib to 3.2.1 for CVE-2022-36087. This is a dependency of social-auth-core so will not auto-update when upgrading. Please be sure to upgrade your local environment.
  • #2530 - Updated development documentation to include LTM, additional release schedule information.
  • #2565 - Updated version to 1.4.6-beta.1.
  • #2602 - Increased size of ObjectChange.change_context_detail field from 100 to 400 chars, and add truncation to it. Also adding truncation to ObjectChange.object_repr.

Fixed

  • #2075 - Fixed white screen flash in dark mode.
  • #2546 - Applied a hotfix for multiple jobs executing from a single scheduled job.
  • #2560 - Fixed NautobotHTMLRenderer incorrectly overrides selected pk_list for bulk_destroy and bulk_update.
  • #2566 - Clarified documentation on superusers needing staff permission to access admin UI.
  • #2573 - Fixed link from VLAN group detail view to filtered VLAN list.
  • #2574 - Updated nautobot.core.settings to match expected behavior on NAPALM_USERNAME, NAPALM_PASSWORD, and NAPALM_TIMEOUT based on documentation.
  • #2595 - Fixed NautobotUIViewSet handling of unauthenticated users.
  • #2614 - Fixed CONTRIBUTING.md link to actual Nautobot documentation.

Contributors

  • @HanlinMiao
  • @jathanism
  • @cmsirbu
  • @matt852
  • @whitej6
  • @johannwagner
  • @scetron
  • @chadell
  • @glennmatthews

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.5...v1.4.6

nautobot - v1.4.5 - 2022-10-03

Published by bryanculver about 2 years ago

Added

  • #2330 - Added created and last_updated fields to Device Component and ComponentTemplate models.

Changed

  • #2490 - Added change log fragment checkbox to Github pull request template.
  • #2508 - Updated dark mode theme to be less...dark.
  • #2537 - Updated django-extensions to 3.2.1, drf-spectacular to 0.24.2, drf-yasg to 1.21.4.
  • #2544 - Updated towncrier template to convert multi-line change fragments into multiple release notes entries.

Fixed

  • #2326 - Fixed 500 error in Circuit Termination swap.
  • #2330 - Fixed missing Change Log tab on device component detail views.
  • #2445 - Fixed invalid Renovate config.
  • #2466 - Fixed Jobs misleading sensitive variables or requiring approval error message.
  • #2509 - Fixed template lookup logic in ObjectNotesView, ObjectDynamicGroupsView and ObjectChangeLogView.
  • #2526 - Fixed error in rendering the example plugin's AnotherExampleModel list view by adding a get_absolute_url() method to the AnotherExampleModel class and adding an AnotherExampleModel detail view template.
  • #2533 - Fixed test_list_objects_unknown_filter_no_strict_filtering failure if a filterset couldn't be found for a given model.
  • #2539 - Updated links from nautobot.readthedocs.io to docs.nautobot.com.

Contributors

  • @jathanism
  • @HanlinMiao
  • @itdependsnetworks
  • @timizuoebideri1
  • @Kircheneer
  • @matt852
  • @gsnider2195

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.4...v1.4.5

nautobot - v1.4.4 - 2022-09-26

Published by bryanculver about 2 years ago

Added

  • #2023 - Added reusable GitHub Action workflow for use by plugins to test against next, develop routinely.

Changed

  • #2153 - Updated optional settings documentation to provide clarity on Nautobot vs Django settings.
  • #2235 - Added ancestor information to Location and LocationType display names to provide additional context in the UI.
  • #2457 - Moved towncrier_template.j2 from root to develop directory.
  • #2468 - Upgraded CI gh-action-setup-poetry-environment action to v3

Fixed

  • #2353 - Fixed MultiSelect CustomField being emptied unintentionally after bulk update.
  • #2375 - Fixed error in Cable list view filtering when color and type filters are not set.
  • #2461 - Fixed an exception during OpenAPI schema generation when certain Nautobot apps (including nautobot-firewall-models) were installed.
  • #2496 - Fixed failing CI due to #2468

Contributors

  • @glennmatthews
  • @gsnider2195
  • @christhant
  • @HanlinMiao
  • @itdependsnetworks
  • @nniehoff
  • @bryanculver

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.3...v1.4.4

nautobot - v1.4.3 - 2022-09-19

Published by gsnider2195 about 2 years ago

Added

  • #2327 - Added help text to the Job scheduling datetime picker to indicate the applicable time zone.
  • #2362 - Added documentation and automation for Nautobot Github project to use towncrier for changelog fragments.
  • #2431 - Add section to the custom field documentation on ORM filtering.

Changed

  • #1619 - Updated drf-spectacular dependency to version 0.24.
  • #2223 - Augment get_route_for_model() to support REST API routes.
  • #2340 - Improved rendering of badges, labels, buttons, and color selection menus in dark mode.
  • #2383 - Updated documentation link for Nautobot ChatOps plugin.
  • #2392 - Un-group Renovate next updates to address code changes per package.
  • #2400 - Improved formatting of version changes in the documentation.
  • #2417 - Reworked Docker builds in CI to publish an intermediate "dependencies-only" image to speed up rebuild times.
  • #2447 - Moved Dynamic Groups tab on object detail view to it's own view as a generic ObjectDynamicGroupsView.

Fixed

  • #138 - Fixed lack of user-facing message when an exception occurs while discovering Jobs from a Git repository.
  • #950 - Fixed database concurrency issues with uWSGI pre-forking.
  • #1619 - Improved accuracy of OpenAPI schema for bulk REST API operations.
  • #2299 - Remove render_filter() method and filter field from table columns
  • #2309 - Fixed 404 on ScheduledJobView, job_class no longer found behavior.
  • #2324 - Fixed errors encountered when a job model is deleted while a job is running.
  • #2338 - Fixed whitespace issue with Text File secrets and they are now stripped of leading/trailing whitespace and newlines.
  • #2364 - Allow invoke tasks to be run even if rich is not installed.
  • #2378 - Fix Job Result redirection on submit.
  • #2382 - Removed extraneous cache and temporary files from the dev and final-dev Docker images to reduce image size.
  • #2389 - Removed extraneous inspect.getsource() call from Job class.
  • #2407 - Corrected SSO Backend reference for Azure AD Tenant.
  • #2449 - CI: Moved dependency build to be a job, not a step.

Contributors

  • @HanlinMiao
  • @Kircheneer
  • @abates
  • @bryanculver
  • @glennmatthews
  • @gsnider2195
  • @jathanism
  • @smk4664
  • @timizuoebideri1
  • @whitej6

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.2...v1.4.3

nautobot - v1.4.2 - 2022-09-05

Published by bryanculver about 2 years ago

Added

  • #983 - Added functionalities to specify args and kwargs to NavMenuItem.
  • #2250 - Added "Stats" and "Rack Groups" to Location detail view, added "Locations" to Site detail view.
  • #2273 - Added custom markdownlint rule to check for invalid relative links in the documentation.
  • #2307 - Added dynamic_groups field in GraphQL on objects that can belong to dynamic groups.
  • #2314 - Added pylint to linting suite and CI.
  • #2339 - Enabled and addressed additional pylint checkers.
  • #2360 - Added Django natural key to extras.Tag.

Changed

  • #2011 - replaced all .format() strings and C format strings with fstrings.
  • #2293 - Updated GitHub bug report template.
  • #2296 - Updated netutils dependency from 1.1.x to 1.2.x.
  • #2347 - Revamped documentation look and feel.
  • #2349 - Docker images are now built with Poetry 1.2.0.
  • #2360 - Django natural key for Status is now name rather than slug.
  • #2363 - Update app icons for consistency
  • #2365 - Update Network to Code branding name
  • #2367 - Remove coming soon from projects that exists

Fixed

  • #449 - Improved error checking and reporting when syncing Git repositories.
  • #1227 - The NAUTOBOT_DOCKER_SKIP_INIT environment variable can now be set to "false" (case-insensitive),
  • #1807 - Fixed post_run method fails to add exceptions to job log.
  • #2085 - The log entries table on a job result page can now be filtered by log level or message and hitting the return key has no effect.
  • #2107 - Fixed a TypeError when a view defines action_buttons = None.
  • #2237 - Fixed several issues with permissions enforcement for Note creation and viewing.
  • #2268 - Fixed broken links in documentation.
  • #2269 - Fixed missing JS code causing rendering errors on GraphQL Query and Rack Reservation detail views.
  • #2278 - Fixed incorrect permissions check on "Installed Plugins" menu item.
  • #2290 - Fixed inheritance of ObjectListViewMixin for CircuitTypeUIViewSet.
  • #2311 - Fixed autopopulation of "Parent" selection when editing an existing Location.
  • #2341 - Fixed omission of docs from published Python packages.
  • #2342 - Reduced file size of nautobot-dev Docker images by clearing Poetry cache
  • #2350 - Fixed potential Redis deadlock if Nautobot server restarts at an unfortunate time.

Contributors

  • @HanlinMiao
  • @gsnider2195
  • @glennmatthews
  • @whitej6
  • @jvanderaa
  • @smk4664
  • @briddo
  • @Kircheneer
  • @cmsirbu
  • @itdependsnetworks

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.1...v1.4.2

nautobot - v1.4.1 - 2022-08-22

Published by bryanculver about 2 years ago

Added

  • #1809 - Added Django natural key to extras.Status to simplify exporting and importing of database dumps for Status objects.
  • #2202 - Added validate_models management command to validate each instance in the database.
  • #2213 - Added a new --pull parameter for invoke build to tell Docker to pull images when building containers.

Changed

  • #2206 - Changed Run button on Job Result to always be displayed, "Re-Run" if available.
  • #2252 - Updated Poetry install command for Development Getting Started guide.

Fixed

  • #2209 - Fixed lack of dark-mode support in GraphiQL page.
  • #2215 - Fixed error seen in migration from 1.3.x if certain default Statuses had been modified.
  • #2218 - Fixed typos/links in release notes and Dynamic Groups docs.
  • #2219 - Fixed broken pagination in Dynamic Group detail "Members" tab.
  • #2220 - Narrowed scope of auto-formatting in VSCode to only apply to Python files.
  • #2222 - Fixed missing app headings in Swagger UI.
  • #2229 - Fixed render_form.html include template to not render a duplicate object_note field.
  • #2232 - Fixed incorrect API URLs and incorrect inclusion of Circuits UI URLs in Swagger UI.
  • #2241 - Fixed DynamicGroup.objects.get_for_model() to support nested Dynamic Groups.
  • #2259 - Fixed footer not bound to bottom of Device View.

Contributors

  • @jathanism
  • @glennmatthews
  • @HanlinMiao
  • @jifox
  • @nlgotz
  • @whitej6
  • @briddo
  • @itdependsnetworks

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.0...v1.4.1

nautobot - v1.4.0 - 2022-08-15

Published by bryanculver about 2 years ago

Release Overview

Added

Custom Field Extended Filtering (#1498)

Objects with custom fields now support filter lookup expressions for filtering by custom field values, such as cf_date_field__gte=2022-08-11 to select objects whose date_field custom field has a date of 2022-08-11 or later.

Custom Field Slugs (#1962)

Custom fields now have a distinct slug field. The custom field name attribute should be considered deprecated, and will be removed in a future major release (see also #824.) Additionally, the label 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, the slug and label 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 and label optional; if unspecified, the slug and label will receive default values based on the provided name). A REST API client can request API version 1.4, in which case the updated API will require slug and label parameters in place of name.

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 the custom_fields dictionary by fields' name values, but when REST API version 1.4 or later is requested, the custom_fields data will be indexed by slug 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 the slug in a future major release. Again, watch #824 for plans in that regard.

Custom Tabs in Object Detail Views (#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.

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.

Dynamic Groups Support Additional Models (#2200)

Cluster, IP Address, Prefix, and Rack models can now be filtered on in Dynamic Groups and can also support nested or groups of Dynamic Groups. Some fields have been excluded from filtering until a sensible widget can be provided.

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 and Virtualization Models

The DCIM, Virtualization FilterSets have been updated with over 150 new filters, including hybrid filters that support filtering on both pk and slug (or pk and name where slug is not available). A new filter class NaturalKeyOrPKMultipleChoiceFilter was added to nautobot.utilities.filters to support filtering on multiple fields of a related object. See the Best Practices documentation for more information.

Job Hooks (#1878)

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, BuildingFloorRoom) 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.

Info: At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country ← City ← Site ← Building ← Floor ← Room.

Parent Interfaces and Bridge Interfaces (#1455)

Interface and VMInterface models now have parent_interface and bridge keys. An interface of type Virtual 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 new Bridge interface type has also been added, but the bridge 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 defining UI_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)

  • For all models that support Relationships, their corresponding list and detail REST API endpoints now include the option to include data on their associated Relationships and related objects by specifying include=relationships as a query parameter.
  • Relationship associations on a model can be edited by a PATCH to the appropriate nested value, such as "relationships" -> <relationship-slug> -> "source" or "relationships" -> <relationship-slug> -> "destination".
  • For implementers of REST API serializers (core and/or plugins), a new 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.

NautobotUIViewSet (#1812)

New in Nautobot 1.4 is the debut of NautobotUIViewSet: A powerful plugin development tool that can save plugin developer hundreds of lines of code compared to using legacy generic.views. Using it to gain access to default functionalities previous provided by generic.views such as create(), bulk_create(), update(), partial_update(), bulk_update(), destroy(), bulk_destroy(), retrieve() and list() actions.

Note that this ViewSet is catered specifically to the UI, not the API.

Concrete examples on how to use NautobotUIViewSet resides in nautobot.circuits.views.

Visit the documentation on plugins/development.md for more information on how to use NautobotUIViewSet.

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.

Warning: Any plugin that inherits from one of these two models and uses the ViewTestCases.PrimaryObjectViewTestCase or ViewTestCases.OrganizationalObjectViewTestCase for their test will need to add the NotesObjectView to the objects URLs. See Plugin Development for more details.

Notes can also be used via the REST API at endpoint /api/extras/notes or per object at the object's /notes endpoint.

Info: For implementers of REST API views (core and/or plugins), a new nautobot.extras.api.views.NautobotModelViewSet base class has been added. Use of this class ensures that all features from PrimaryModel or OrganizationalModel are accessible through the API. This includes custom fields and notes.

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.

Warning: The default behavior of Dynamic Groups with an empty filter ({}) has been inverted to include all objects matching the content type by default instead of matching no objects. This was necessary to implement the progressive layering of child filters similarly to how we use filters to reduce desired objects from basic list view filters.

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.

Former Name New Name
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 to True, enabling strict validation of filter parameters, but can be set to False to disable this validation.

Warning: Setting STRICT_FILTERING to False can result in unexpected filtering results in the case of user error, for example a request to /api/dcim/devices/?has_primry_ip=false (note the typo primry) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.

Moved Registry Template Context (#1945)

The settings_and_registry default context processor was changed to purely settings - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new registry template tag that can be invoked by specific templates to provide this variable where needed.


v1.4.0 (2022-08-15)

Added

  • #1812 - Added NautobotViewSet and accompanying helper methods, documentation.
  • #2173 - Added flake8 linting and black formatting settings to vscode workspace settings.
  • #2105 - Added support for Notes in NautobotBulkEditForm and NautobotEditForm.
  • #2200 - Added Dynamic Groups support for Cluster, IP Address, Prefix, and Rack.

Changed

  • #1812 - Changed Circuit app models to use NautobotViewSets.
  • #2029 - Updated optional settings docs to call out environment variable only settings.
  • #2176 - Update invoke task output to use rich formatting, print full Docker Compose commands.
  • #2183 - Update dependency django to ~3.2.15.
  • #2193 - Updated Postgres/MySQL dumpdata docs to exclude django_rq exports.
  • #2200 - Group of dynamic group membership links now link to the group's membership table view.

Fixed

  • #1304 - Fixed incorrect display of connection counts on home page.
  • #1845 - Fixed not being able to schedule job with 'immediate' schedule via API.
  • #1996 - Fixed Menu Item link_text render on top of buttons.
  • #2178 - Fixed "invalid filter" error when filtering JobResults in the UI.
  • #2184 - Fixed job re-run not honoring has_sensitive_variables.
  • #2190 - Fixed tags missing from Location forms.
  • #2191 - Fix widget for boolean filters fields when generating filter form for a Dynamic Group
  • #2192 - Fixed job.request removed from job instance in v1.4.0b1.
  • #2197 - Fixed some display issues in the Dynamic Groups detail view.

v1.4.0rc1 (2022-08-10)

Added

  • #767 - Added notes field to Primary and Organizational models.
  • #1498 - Added extended lookup expression filters to custom fields.
  • #1962 - Added slug field to Custom Field model, added 1.4 REST API version of the api/extras/custom-fields/ endpoints.
  • #2106 - Added support for listing/creating Notes via REST API.

Changed

  • #2156 - Update network automation apps listed on overview of docs.
  • #2168 - Added model toggle to skip adding missing Dynamic Group filter fields for use in easing integration of new models into Dynamic Groups.

Fixed

  • #2090 - Fixed an issue where a REST API PATCH of a Tag could inadvertently reset its associated content-types.
  • #2150 - Fixed unit tests performance degradation.
  • #2132 - Updated job hooks to use slugs in urls instead of pk.
  • #2133 - Update documentation for job hooks, make it reachable from the Nautobot UI.
  • #2135 - Fixed ImportError on RelationshipModelForm, renamed other mixins and added aliases for backwards compatibility.
  • #2137 - Fixed incorrect parameter name in NaturalKeyOrPKMultipleChoiceFilter documentation.
  • #2142 - Fixed incorrect URL field in REST API nested relationship representation.
  • #2165 - Fix up relationship-association API test issue.

v1.4.0b1 (2022-07-30)

Added

  • #1463 - Added REST API support for opt-in relationships data on model endpoints; added NautobotModelSerializer base class.
  • #1614 - Added support for nesting of Dynamic Groups, allowing inclusion/exclusion rules of sub-group members.
  • #1735 - Added missing filters to model FilterSets for Virtualization models.
  • #1865 - Added support for a custom template on Job forms.
  • #1875 - Add ability to quickly re-submit a previously run Job with the same parameters.
  • #1877 - Add new job base class JobHookReceiver to support triggering job execution from change events.
  • #1878 - Add job hooks feature.
  • #1883 - Add ability to filter objects by their relationships into the existing FilterSet.
  • #1884 - Add ability to set the relationship filter via the filter form.
  • #2035 - Added change source context to object change context manager.
  • #2051 - Add changelog url for Relationships.
  • #2061 - Add draggable child groups to Dynamic Groups edit view in UI, recompute and hide weights.
  • #2072 - Expand on query_params for ObjectVar in Jobs documentation.

Changed

  • #2049 - Moved get_changelog_url to a method on objects that support changelogs, updated template context.
  • #2116 - Updated package dependencies: Pillow ~9.1.1 -> ~9.2.0, black ~22.3.0 -> ~22.6.0, coverage 6.4.1 -> 6.4.2, django-cacheops 6.0 -> 6.1, django-cryptography 1.0 -> 1.1, django-debug-toolbar ~3.4.0 -> ~3.5.0, django-extensions ~3.1.5 -> ~3.2.0, drf-yasg ~1.20.0 -> ^1.20.0, importlib-metadata ~4.4 -> ^4.4.0, jsonschema ~4.4.0 -> ~4.8.0, mkdocs 1.3.0 -> 1.3.1, mkdocs ==1.3.0 -> ==1.3.1, mkdocs-include-markdown-plugin ~3.2.3 -> ~3.6.0, mkdocs-include-markdown-plugin ==3.2.3 -> ==3.6.1, social-auth-core ~4.2.0 -> ~4.3.0, svgwrite 1.4.2 -> 1.4.3

Fixed

  • #1710 - Fixed invalid CSS when clicking "Add another" row buttons for formsets on Secrets Groups, Dynamic Groups edit view in the UI.
  • #2069 - Addressed numerous UX improvements for Dynamic Groups of Dynamic Groups feature to ease usability of this feature.
  • #2109 - Fixed Relationship Filters are not Applied with "And" Operator.
  • #2111 - Fixed Invalid filter error thrown for __source with message: "" is not a valid UUID.

v1.4.0a2 (2022-07-11)

!!! attention
next and develop introduced conflicting migration numbers during the release cycle. This necessitates reordering the migration in next. If you installed v1.4.0a1, you will need to roll back a migration before upgrading/installing v1.4.0a2 and newer. If you have not installed v1.4.0a this will not be an issue.

Before upgrading, run: `nautobot-server migrate extras 0033_add__optimized_indexing`. This will revert the reordered migration `0034_configcontextschema__remove_name_unique__create_constraint_unique_name_owner`, which is now number `0035`.

Perform the Nautobot upgrade as usual and proceed with post-installation migration.

No data loss is expected as the reordered migration only modified indexing on existing fields.

Added

  • #1000 - Object detail views can now have extra UI tabs which are defined by a plugin.
  • #1052 - Initial prototype implementation of Location data model.
  • #1318 - Added nautobot.extras.forms.NautobotBulkEditForm base class. All bulk-edit forms for models that support both custom fields and relationships now inherit from this class.
  • #1466 - Plugins can now override views.
  • #1729 - Add new filter class NaturalKeyOrPKMultipleChoiceFilter to nautobot.utilities.filters.
  • #1729 - Add 137 new filters to nautobot.dcim.filters FilterSets.
  • #1729 - Add cable_terminations to the model_features registry.
  • #1893 - Added an object detail view for Relationships.
  • #1949 - Added TestCaseMixin for Helper Functions across all test case bases.

Changed

  • #1908 - Update dependency Markdown to ~3.3.7
  • #1909 - Update dependency MarkupSafe to ~2.1.1
  • #1912 - Update dependency celery to ~5.2.7
  • #1913 - Update dependency django-jinja to ~2.10.2
  • #1915 - Update dependency invoke to ~1.7.1
  • #1917 - Update dependency svgwrite to ~1.4.2
  • #1919 - Update dependency Pillow to ~9.1.1
  • #1920 - Update dependency coverage to ~6.4.1
  • #1921 - Update dependency django-auth-ldap to ~4.1.0
  • #1924 - Update dependency django-cors-headers to ~3.13.0
  • #1925 - Update dependency django-debug-toolbar to ~3.4.0
  • #1928 - Update dependency napalm to ~3.4.1
  • #1929 - Update dependency selenium to ~4.2.0
  • #1945 - Change the settings_and_registry default context processor to purely settings, moving registry dictionary to be accessible via registry template tag.

Fixed

  • #1898 - Browsable API is now properly styled as the rest of the app.

Removed

  • #1462 - Removed job source tab from Job and Job Result view.
  • #2002 - Removed rqworker container from default Docker development environment.

v1.4.0a1 (2022-06-13)

Added

  • #729 - Added UI dark mode.
  • #984 - Added status field to Interface, VMInterface models.
  • #1119 - Added truncated device name functionality to Rackview UI.
  • #1455 - Added parent_interface and bridge fields to Interface and VMInterface models.
  • #1833 - Added hyperlinked_object template filter to consistently reference objects in templates.

Changed

  • #1736 - STRICT_FILTERING setting is added and enabled by default.
  • #1793 - Added index notes to fields from analysis, relaxed ConfigContextSchema constraint (unique on name, owner_content_type, owner_object_id instead of just name).

Fixed

  • #1815 - Fix theme link style in footer.
  • #1831 - Fixed missing parent_interface and bridge from 1.4 serializer of Interfaces.

Contributors

  • @timizuoebideri1
  • @matt852
  • @glennmatthews
  • @bryanculver
  • @briddo
  • @HanlinMiao
  • @whitej6
  • @gsnider2195
  • @jathanism
  • @smk4664
  • @tbotnz
  • @itdependsnetworks
  • @sirtux
  • @mzbroch

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.10...v1.4.0

nautobot - v1.4.0-rc.1 - 2022-08-10

Published by bryanculver about 2 years ago

Release Overview

Added

Custom Field Slugs (#1962)

Custom fields now have a distinct slug field. The custom field name attribute should be considered deprecated, and will be removed in a future major release (see also #824.) Additionally, the label 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, the slug and label 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 and label optional; if unspecified, the slug and label will receive default values based on the provided name). A REST API client can request API version 1.4, in which case the updated API will require slug and label parameters in place of name.

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 the custom_fields dictionary by fields' name values, but when REST API version 1.4 or later is requested, the custom_fields data will be indexed by slug 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 the slug 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 and slug (or pk and name where slug is not available). A new filter class NaturalKeyOrPKMultipleChoiceFilter was added to nautobot.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, BuildingFloorRoom) 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.

Info:
At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country ← City ← Site ← Building ← Floor ← Room.

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 and bridge keys. An interface of type Virtual 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 new Bridge interface type has also been added, but the bridge 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 defining UI_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)

  • For all models that support Relationships, their corresponding list and detail REST API endpoints now include the option to include data on their associated Relationships and related objects by specifying include=relationships as a query parameter.
  • Relationship associations on a model can be edited by a PATCH to the appropriate nested value, such as "relationships" -> <relationship-slug> -> "source" or "relationships" -> <relationship-slug> -> "destination".
  • For implementers of REST API serializers (core and/or plugins), a new 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.

Warning:
Any plugin that inherits from one of these two models and uses the ViewTestCases.PrimaryObjectViewTestCase or ViewTestCases.OrganizationalObjectViewTestCase for their test will need to add the NotesObjectView to the objects URLs. See Plugin Development for more details.

Notes can also be used via the REST API at endpoint /api/extras/notes or per object at the object's /notes endpoint.

Info:
For implementers of REST API views (core and/or plugins), a new nautobot.extras.api.views.NautobotModelViewSet base class has been added. Use of this class ensures that all features from PrimaryModel or OrganizationalModel are accessible through the API. This includes custom fields and notes.

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.

Warning:
The default behavior of Dynamic Groups with an empty filter ({}) has been inverted to include all objects matching the content type by default instead of matching no objects. This was necessary to implement the progressive layering of child filters similarly to how we use filters to reduce desired objects from basic list view filters.

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.

Former Name New Name
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 to True, enabling strict validation of filter parameters, but can be set to False to disable this validation.

Warning:
Setting STRICT_FILTERING to False can result in unexpected filtering results in the case of user error, for example a request to /api/dcim/devices/?has_primry_ip=false (note the typo primry) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.

Moved Registry Template Context (#1945)

The settings_and_registry default context processor was changed to purely settings - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new registry template tag that can be invoked by specific templates to provide this variable where needed.


v1.4.0rc1 (2022-08-10)

Added

  • #1962 - Added slug field to Custom Field model, added 1.4 REST API version of the api/extras/custom-fields/ endpoints.
  • #2106 - Added support for listing/creating Notes via REST API.

Changed

  • #2156 - Update network automation apps listed on overview of docs.
  • #2168 - Added model toggle to skip adding missing Dynamic Group filter fields for use in easing integration of new models into Dynamic Groups.

Fixed

  • #2090 - Fixed an issue where a REST API PATCH of a Tag could inadvertently reset its associated content-types.
  • #2150 - Fixed unit tests performance degradation.
  • #2132 - Updated job hooks to use slugs in urls instead of pk.
  • #2133 - Update documentation for job hooks, make it reachable from the Nautobot UI.
  • #2135 - Fixed ImportError on RelationshipModelForm, renamed other mixins and added aliases for backwards compatibility.
  • #2137 - Fixed incorrect parameter name in NaturalKeyOrPKMultipleChoiceFilter documentation.
  • #2142 - Fixed incorrect URL field in REST API nested relationship representation.
  • #2165 - Fix up relationship-association API test issue.

Contributors

  • @gsnider2195
  • @smk4664
  • @glennmatthews
  • @yoonthegoon
  • @itdependsnetworks
  • @jathanism
  • @briddo
  • @nniehoff
  • @timizuoebideri1

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.0-beta.1...v1.4.0-rc.1

nautobot - v1.3.10 - 2022-08-08

Published by bryanculver about 2 years ago

Added

  • #1226 - Added custom job intervals package management.
  • #2091 - Added remove_stale_scheduled_jobs management command which removes all stale scheduled jobs and also added has_sensitive_variables field to Job model which prevents the job's input parameters from being saved to the database.
  • #2073 - Added --local option to nautobot-server runjob command.
  • #2080 - Added --data parameter to nautobot-server runjob command.
  • #2143 - Scheduled Job detail view now includes details of any custom interval.

Changed

  • #2025 - Tweak Renovate config for automated package management.
  • #2114 - Home page now redirects to the login page when HIDE_RESTRICTED_UI is enabled and user is not authenticated.
  • #2115 - Patch updates to mkdocs, svgwrite.

Fixed

  • #1739 - Fixed paginator not enforcing max_page_size setting in web ui views.
  • #2060 - Fixed relationship peer_id filter non-existent error on relationship association page.
  • #2095 - Fixed health check failing with Redis Sentinel, TLS configuration.
  • #2119 - Fixed flaky integration test for cable connection UI.

Security

IMPORTANT
With introducing the has_sensitive_variables flag on Job classes and model (see: #2091), jobs can be prevented from storing their inputs in the database. Due to the nature of queuing or scheduling jobs, the desired inputs must be stored for future use.

New safe-default behavior will only permit jobs to be executed immediately, as has_sensitive_variables defaults to True. This value can be overridden by the Job class itself or the Job model edit page. Values entered for jobs executing immediately go straight to the Celery message bus and are cleaned up on completion of execution.

Scheduling jobs or requiring approval necessitates those values to be stored in the database until they have been sent to the Celery message bus for execution.

During installation of v1.3.10, a migration is applied to set the has_sensitive_variables value to True to all existing Jobs. However to maintain backwards-compatibility, past scheduled jobs are permitted to keep their schedule. New schedules cannot be made until an administrator has overridden the has_sensitive_variables for the desired Job.

A new management command exists (remove_stale_scheduled_jobs) which will aid in cleaning up schedules to past jobs which may still have sensitive data stored in the database. This command is not exhaustive nor intended to clean up sensitive values stored in the database. You should review the extras_scheduledjob table for any further cleanup.

Note: Leveraging the Secrets and Secret Groups features in Jobs does not need to be considered a sensitive variable. Secrets are retrieved by reference at run time, which means no secret value is stored directly in the database.

Contributors

  • @HanlinMiao
  • @gsnider2195
  • @yoonthegoon
  • @itdependsnetworks
  • @nniehoff
  • @timizuoebideri1

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.9...v1.3.10

nautobot - v1.4.0-beta.1 - 2022-07-30

Published by bryanculver about 2 years ago

Release Overview

Added

Custom Template (CSS, HTML, JavaScript) on Job Forms (#1865)

New in Beta 1

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

New in Beta 1

The DCIM, Virtualization FilterSets have been updated with over 150 new filters, including hybrid filters that support filtering on both pk and slug (or pk and name where slug is not available). A new filter class NaturalKeyOrPKMultipleChoiceFilter was added to nautobot.utilities.filters to support filtering on multiple fields of a related object. See the Best Practices documentation for more information.

Job Hooks (#2103)

New in Beta 1

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)

New in Beta 1

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, BuildingFloorRoom) 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.

ℹ️ At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country ← City ← Site ← Building ← Floor ← Room.

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 and bridge keys. An interface of type Virtual 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 new Bridge interface type has also been added, but the bridge 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 defining UI_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)

New in Beta 1

  • For all models that support Relationships, their corresponding list and detail REST API endpoints now include the option to include data on their associated Relationships and related objects by specifying include=relationships as a query parameter.
  • Relationship associations on a model can be edited by a PATCH to the appropriate nested value, such as "relationships" -> <relationship-slug> -> "source" or "relationships" -> <relationship-slug> -> "destination".
  • For implementers of REST API serializers (core and/or plugins), a new 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)

New in Beta 1

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.

⚠️ Any plugin that inherits from one of these two models and uses the ViewTestCases.PrimaryObjectViewTestCase or ViewTestCases.OrganizationalObjectViewTestCase for their test will need to add the NotesObjectView to the objects URLs. See Plugin Development for more details.

Changed

Dynamic Groups of Dynamic Groups (#1614)

New in Beta 1

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.

⚠️ The default behavior of Dynamic Groups with an empty filter ({}) has been inverted to include all objects matching the content type by default instead of matching no objects. This was necessary to implement the progressive layering of child filters similarly to how we use filters to reduce desired objects from basic list view filters.

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 to True, enabling strict validation of filter parameters, but can be set to False to disable this validation.

⚠️ Setting STRICT_FILTERING to False can result in unexpected filtering results in the case of user error, for example a request to /api/dcim/devices/?has_primry_ip=false (note the typo primry) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.

Moved Registry Template Context (#1945)

The settings_and_registry default context processor was changed to purely settings - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new registry template tag that can be invoked by specific templates to provide this variable where needed.

v1.4.0b1 (2022-07-30)

Attention:

next and develop introduced conflicting migration numbers during the release cycle. This necessitates reordering the migration in next. If you installed v1.4.0a1 or v1.4.0a2, you will need to roll back a migration before upgrading/installing v1.4.0b1. If you have not installed either v1.4.0a1 or v1.4.0a2 this will not be an issue.

Before upgrading, run: nautobot-server migrate extras 0033_add__optimized_indexing. This will revert to migrations prior to those introduced in 1.4.

Perform the Nautobot upgrade as usual and proceed with post-installation migration.

Data loss may occur from features in earlier alphas!

Added

  • #1463 - Added REST API support for opt-in relationships data on model endpoints; added NautobotModelSerializer base class.
  • #1614 - Added support for nesting of Dynamic Groupsallowing inclusion/exclusion rules of sub-group members
  • #1735 - Added missing filters to model FilterSets for Virtualization models.
  • #1865 - Added support for a custom template on Job forms.
  • #1877 - Add new job base class JobHookReceiver to support triggering job execution from change events.
  • #1883 - Add ability to filter objects by their relationships into the existing FilterSet.
  • #1884 - Add ability to set the relationship filter via the filter form.
  • #2035 - Added change source context to object change context manager.
  • #2051 - Add changelog url for Relationships.
  • #2061 - Add draggable child groups to Dynamic Groups edit view in UI, recompute and hide weights.
  • #2103 - Add job hooks feature.

Changed

  • #2049 - Moved get_changelog_url to a method on objects that support changelogs, updated template context.
  • #2116 - Updated package dependencies: Pillow ~9.1.1 -> ~9.2.0, black ~22.3.0 -> ~22.6.0, coverage 6.4.1 -> 6.4.2, django-cacheops 6.0 -> 6.1, django-cryptography 1.0 -> 1.1, django-debug-toolbar ~3.4.0 -> ~3.5.0, django-extensions ~3.1.5 -> ~3.2.0, drf-yasg ~1.20.0 -> ^1.20.0, importlib-metadata ~4.4 -> ^4.4.0, jsonschema ~4.4.0 -> ~4.8.0, mkdocs 1.3.0 -> 1.3.1, mkdocs ==1.3.0 -> ==1.3.1, mkdocs-include-markdown-plugin ~3.2.3 -> ~3.6.0, mkdocs-include-markdown-plugin ==3.2.3 -> ==3.6.1, social-auth-core ~4.2.0 -> ~4.3.0, svgwrite 1.4.2 -> 1.4.3

Fixed

  • #1710 - Fixed invalid CSS when clicking "Add another" row buttons for formsets on Secrets Groups, Dynamic Groups edit view in the UI.
  • #2069 - Addressed numerous UX improvements for Dynamic Groups of Dynamic Groups feature to ease usability of this feature.
  • #2109 - Fixed Relationship Filters are not Applied with "And" Operator.
  • #2111 - Fixed Invalid filter error thrown for __source with message: “” is not a valid UUID.

Contributors

  • @briddo
  • @HanlinMiao
  • @Kircheneer
  • @gsnider2195
  • @jathanism
  • @timizuoebideri1
  • @glennmatthews
  • @smk4664
  • @tbotnz
  • @yoonthegoon
  • @jeffkala
  • @itdependsnetworks
  • @bryanculver

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.0-alpha.2...v1.4.0-beta.1

nautobot - v1.3.9 - 2022-07-25

Published by bryanculver about 2 years ago

Added

  • #860 - Added documentation that adding device component to device type does not modify existing device instances
  • #1595 - Add ability to specify uWSGI buffer size via environment variable.
  • #1757 - Added nullable face, position to Device bulk edit form to provided desired behavior to bulk assigning to a new rack.

Changed

  • #386 - Clarified messaging in API for rack position occupied.
  • #1356 - Virtual chassis master device interface list is less confusing.
  • #2045 - Clarified Job authoring around proper class inheritance.

Fixed

  • #1035 - Fix assertion raised if SLAAC Status is missing when creating IPAddress objects
  • #1694 - Fixed CablePath not found error when disconnects/delete action performed on a cable
  • #1795 - Corrected relationship source/destination filter help text from queryset Filter to filterset Filter and updated documentations.
  • #1839 - Fixed staff users with auth > group permissions unable to view groups in admin UI.
  • #1937 - Solved _custom_field_data do not fully delete when using CustomFieldBulkDeleteView.
  • #1947 - Fixed unbound local error by initializing template variable before conditional logic statements.
  • #2036 - Fixed outdated UI navigation references in documentation.
  • #2039 - Fixed IntegerVar with default set to 0 on Job evaluating to False.
  • #2057 - Fixed RIR changelog route being in VRF name prefix.
  • #2077 - Fixed an error when viewing object detail pages after uninstalling a plugin but still having RelationshipAssociations involving the plugin's models.
  • #2081 - Fixed error raised if status connected not found when creating a cable

Contributors

  • @HanlinMiao
  • @timizuoebideri1
  • @itdependsnetworks
  • @bryanculver
  • @Kircheneer
  • @jeffkala
  • @smk4664
  • @briddo
  • @glennmatthews

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.8...v1.3.9

nautobot - v1.4.0-alpha.2 - 2022-07-12

Published by bryanculver over 2 years ago

Release Overview

Added

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.

Location Data Model (#1052)

New in Alpha 2

To locate network information more precisely than a Site defines, you can now define a hierarchy of Location Types (for example, BuildingFloorRoom) 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.

At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country ← City ← Site ← Building ← Floor ← Room.

Parent Interfaces and Bridge Interfaces (#1455)

Interface and VMInterface models now have parent_interface and bridge keys. An interface of type Virtual 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 new Bridge interface type has also been added, but the bridge 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 defining UI_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.

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.

Object Detail Tabs (#1000)

New in Alpha 2

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.

Improved Filter Coverage for DCIM models (#1729)

New in Alpha 2

The DCIM FilterSets have been updated with 137 new filters, including hybrid filters that support filtering on both pk and slug (or pk and name where slug is not available). A new filter class NaturalKeyOrPKMultipleChoiceFilter was added to nautobot.utilities.filters to support filtering on multiple fields of a related object. See the Best Practices documentation for more information.

Changed

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 to True, enabling strict validation of filter parameters, but can be set to False to disable this validation.

Setting STRICT_FILTERING to False can result in unexpected filtering results in the case of user error, for example a request to /api/dcim/devices/?has_primry_ip=false (note the typo primry) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.

Moved Registry Template Context (#1945)

New in Alpha 2

The settings_and_registry default context processor was changed to purely settings - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new registry template tag that can be invoked by specific templates to provide this variable where needed.

v1.4.0a2 (2022-07-11)

Attention:

next and develop introduced conflicting migration numbers during the release cycle. This necessitates reordering the migration in next. If you installed v1.4.0a1, you will need to roll back a migration before upgrading/installing v1.4.0a2 and newer. If you have not installed v1.4.0a this will not be an issue.

Before upgrading, run: nautobot-server migrate extras 0033_add__optimized_indexing. This will revert the reordered migration 0034_configcontextschema__remove_name_unique__create_constraint_unique_name_owner, which is now number 0035.

Perform the Nautobot upgrade as usual and proceed with post-installation migration.

No data loss is expected as the reordered migration only modified indexing on existing fields.

Added

  • #1000 - Object detail views can now have extra UI tabs which are defined by a plugin.
  • #1052 - Initial prototype implementation of Location data model
  • #1318 - Added nautobot.extras.forms.NautobotBulkEditForm base class. All bulk-edit forms for models that support both custom fields and relationships now inherit from this class.
  • #1466 - Plugins can now override views.
  • #1729 - Add new filter class NaturalKeyOrPKMultipleChoiceFilter to nautobot.utilities.filters.
  • #1729 - Add 137 new filters to nautobot.dcim.filters FilterSets.
  • #1729 - Add cable_terminations to the model_features registry.
  • #1893 - Added an object detail view for Relationships.
  • #1949 - Added TestCaseMixin for Helper Functions across all test case bases.

Changed

  • #1908 - Update dependency Markdown to ~3.3.7
  • #1909 - Update dependency MarkupSafe to ~2.1.1
  • #1912 - Update dependency celery to ~5.2.7
  • #1913 - Update dependency django-jinja to ~2.10.2
  • #1915 - Update dependency invoke to ~1.7.1
  • #1917 - Update dependency svgwrite to ~1.4.2
  • #1919 - Update dependency Pillow to ~9.1.1
  • #1920 - Update dependency coverage to ~6.4.1
  • #1921 - Update dependency django-auth-ldap to ~4.1.0
  • #1924 - Update dependency django-cors-headers to ~3.13.0
  • #1925 - Update dependency django-debug-toolbar to ~3.4.0
  • #1928 - Update dependency napalm to ~3.4.1
  • #1929 - Update dependency selenium to ~4.2.0
  • #1945 - Change the settings_and_registry default context processor to purely settings, moving registry dictionary to be accessible via registry template tag.

Fixed

  • #1898 - Browsable API is now properly styled as the rest of the app.

Removed

  • #1462 - Removed job source tab from Job and Job Result view.
  • #2002 - Removed rqworker container from default Docker development environment.

Contributors

  • @briddo
  • @HanlinMiao
  • @whitej6
  • @gsnider2195
  • @jathanism
  • @glennmatthews
  • @smk4664

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.4.0-alpha.1...v1.4.0-alpha.2

nautobot - v1.3.8 - 2022-07-11

Published by bryanculver over 2 years ago

Added

  • #1464 - Added "Continue with SSO" link on login page.

Changed

  • #1407 - Changed custom field export column headings to prefix with cf_.
  • #1603 - Changed GraphQL schema generation to call time for GraphQL API.
  • #1977 - Updated Renovate config to batch updates (additional PRs included to further refine config).
  • #2020 - Updated celery >= 5.2.7, django-jinja >= 2.10.2, and mysqlclient >= 2.1.1 versions in lock file (patch updates).

Fixed

  • #1838 - Fixed job result to show latest not oldest.
  • #1874 - Fixed Git repo sync issue with Sentinel with deprecated rq_count check.

Security

Contributors

  • @HanlinMiao
  • @timizuoebideri1

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.7...v1.3.8

nautobot - v1.3.7 - 2022-06-27

Published by bryanculver over 2 years ago

Added

  • #1896 - Added Renovate Bot configuration, targeting next.
  • #1900 - Added ability to filter Git repository table based on provided contents.

Changed

  • #1645 - Hide search bar for unauthenticated users if HIDE_RESTRICTED_UI is True
  • #1946 - Increase character limit on FileAttachment.mimetype to 255 to allow for all mime types to be used.
  • #1948 - Switched Renovate Bot configuration to bump lock-file only on patch releases instead of bumping in pyproject.toml.

Fixed

  • #1677 - Fixed default values of custom fields on device components (such as Interface) not being applied upon Device creation.
  • #1769 - Resolve missing menu 'General / Installed Plugins' in navbar if HIDE_RESTRICTED_UI is activated
  • #1836 - Fixed incorrect pre-population of custom field filters in table views.
  • #1870 - Fixed cable _abs_length validation error.
  • #1941 - Fixes uWSGI config example, development environment links in Docker section of docs.

Contributors

  • @HanlinMiao
  • @timizuoebideri1
  • @whitej6
  • @joewesch
  • @Kircheneer

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.6...v1.3.7

nautobot - v1.4.0-alpha.1 - 2022-06-13

Published by bryanculver over 2 years ago

Release Overview

Added

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.

Parent Interfaces and Bridge Interfaces (#1455)

Interface and VMInterface models now have parent_interface and bridge keys. An interface of type Virtual 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 new Bridge interface type has also been added, but the bridge 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 defining UI_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.

**Currently missing in changelog in release v1.4.0-alpha.1.

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.

Changed

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 to True, enabling strict validation of filter parameters, but can be set to False to disable this validation.

Warning:

Setting STRICT_FILTERING to False can result in unexpected filtering results in the case of user error, for example a request to /api/dcim/devices/?has_primry_ip=false (note the typo primry) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.

v1.4.0a1 (2022-06-13)

Added

  • #729 - Added UI dark mode.
  • #984 - Added status field to Interface, VMInterface models.
  • #1119 - Added truncated device name functionality to Rackview UI. **Missing in changelog for this release.
  • #1455 - Added parent_interface and bridge fields to Interface and VMInterface models.

Changed

  • #1736 - STRICT_FILTERING setting is added and enabled by default.
  • #1793 - Added index notes to fields from analysis, relaxed ConfigContextSchema constraint (unique on name, owner_content_type, owner_object_id instead of just name).

Fixed

  • #1815 - Fix theme link style in footer.
  • #1831 - Fixed missing parent_interface and bridge from 1.4 serializer of Interfaces.

Contributors

  • @timizuoebideri1
  • @matt852
  • @glennmatthews
  • @briddo

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.6...v1.4.0-alpha.1

nautobot - v1.3.6 - 2022-06-13

Published by bryanculver over 2 years ago

Changed

  • #207 - Update permissions documentation to add assigning permissions section.
  • #1763 - Job testing documentation updated to include details around enabling jobs. Job logs database added to TransactionTestCase.
  • #1829 - Change Docker build GitHub Action to cache with matrix awareness.
  • #1856 - Updated links to Slack community.

Fixed

  • #1409 - Fixed page title on device status (NAPALM) page template.
  • #1524 - Fixed valid "None" option removed from search field upon display.
  • #1649 - Changed the incorrect view permission (circuits.view_vrf to ipam.view_vrf)
  • #1750 - Fixed incorrect display of boolean value in Virtual Chassis display.
  • #1759 - Fixed TypeError on webhook REST API PATCH.
  • #1787 - Fix scheduled jobs failing when scheduled from REST API.
  • #1841 - Fixed incorrect display of boolean values in Git Repository view.
  • #1848 - Fix Poetry cache issue in CI causing version tests to fail in next.
  • #1850 - Added {{block.super}} to negate the override from the js block in rack.html. This change fixed the issue of unable to navigate away from rack changelog tab.
  • #1868 - Updated link to advanced Docker compose use in getting started guide.

Contributors

  • @u1735067
  • @timizuoebideri1
  • @Kircheneer
  • @gsnider2195
  • @itdependsnetworks

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.5...v1.3.6

nautobot - v1.3.5 - 2022-05-30

Published by bryanculver over 2 years ago

Added

  • #1606 - Added best practices for working with FilterSet classes to developer documentation.
  • #1796 - Added documentation for using Git Repositories behind/via proxies.
  • #1811 - Added developer Docker container for running mkdocs instead of locally.

Changed

  • #1818 - Changed README.md to link to correct build status workflows.

Fixed

  • #895 - Fixed validation when creating Interface and VMInterface objects via the REST API while specifying untagged_vlan without mode also set in the payload. A 400 error will now be raised as expected.
  • #1289 - Fixed issue where job result live pagination would reset to page 1 on refresh. The currently selected page will now persist until the job run completes.
  • #1290 - Fix NAPALM enable password argument for devices using the eos NAPALM driver.
  • #1427 - Fix NoReverseMatch exception when related views for action_buttons don't exist.
  • #1428 - Fix IPAM prefix utilization sometimes showing greater than 100 percent for IPv4 prefixes.
  • #1604 - Fix missing filter restriction enforcement on relationship association.
  • #1771 - Fix exception raised for RelationshipAssociation when updating source.
  • #1772 - Fix RelationshipAssociationSerializer not triggering model clean method.
  • #1784 - Fix nautobot-server dumpdata not working due to django_rq update. Updated documentation.
  • #1805 - Fix git pre-commit hook incompatibility with dash shell and add warning on skipped tests.

Security

  • #1808 - Bump PyJWT from 2.3.0 to 2.4.0

Contributors

  • @briddo
  • @jathanism
  • @timizuoebideri1
  • @gsnider2195
  • @TheRealBecks
  • @glennmatthews

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.4...v1.3.5

nautobot - v1.3.4 - 2022-05-16

Published by bryanculver over 2 years ago

Added

  • #923 - Added ability to search by UUID (via #1752, #1765)
  • #1766 - Added configuration for downloaded filename branding.
  • #1752 - Added a new SearchFilter that is now used on all core filtersets to provide the q= search parameter for basic searching in list view of objects.

Changed

  • #1744 - Updated REST API token provisioning docs to include added in version.
  • #1751 - Updated secrets documentation advisory notes.

Fixed

  • #1263 - Rack device image toggle added back to detail UI.
  • #1449 - Fixed a performance bug in /api/dcim/devices/ and /api/virtualization/virtual-machines/ relating to configuration contexts.
  • #1652 - Unicode now renders correctly on uses of json.dumps and yaml.dump throughout the code base.
  • #1712 - Fixed circuit termination detail view getting 500 response when it's a provider network.
  • #1755 - Fixed "Select All" helper widget from taking full UI height.
  • #1761 - Fixed typo in upgrading documentation.

Security

Contributors

  • @briddo
  • @timizuoebideri1
  • @whitej6
  • @Kircheneer
  • @matt852
  • @abates
  • @glennmatthews
  • @jathanism
  • @zackt25

New Contributors

Full Changelog: https://github.com/nautobot/nautobot/compare/v1.3.3...v1.3.4

nautobot - v1.3.3 - 2022-05-02

Published by bryanculver over 2 years ago

Added

  • #1481 - Pre-Generate Docs, Add Support for Plugin-Provided Docs
  • #1617 - Added run_job_for_testing helper method for testing Jobs in plugins, internally.

Changed

  • #1481 - Docs link in footer now opens link to bundled documentation instead of Read the Docs.
  • #1680 - Bump netutils dependency to 1.1.0.
  • #1700 - Revert vendoring drf-spectacular.

Fixed

  • #473 - Fix get_return_url for plugin reverse URLs.
  • #1430 - Fix not being able to print Job results, related IPs.
  • #1503 - SSO users can no longer interact with or see the change password form.
  • #1515 - Further fixes for slow/unresponsive jobs results display.
  • #1538 - Fix incorrect page title alignment on the "Device Type Import" page.
  • #1678 - Custom fields with 'json' type no longer raise TypeError when filtering on an object list URL
  • #1679 - Fix a data migration error when upgrading to 1.3.x with pre-existing JobResults that reference Jobs with names exceeding 100 characters in length.
  • #1685 - Fix Hadolint issue of docker/Dockerfile.
  • #1692 - Fix duplicate tags in search list results.
  • #1697 - Fix docs incorrectly stating Celerey Redis URLs defaulting from CACHES.
  • #1701 - Fix static file serving of drf-spectacular-sidecar assets when using alternative STATICFILES_STORAGE settings.
  • #1705 - Fix NestedVMInterfaceSerializer referencing the wrong model.