Last Month in Nautobot – August 2026

Welcome to our monthly Nautobot community update! We’ll dive into the latest updates across the Nautobot community, highlighting the key milestones, releases, and noteworthy contributions. From new features and enhancements to bug fixes and events, there’s always something happening in our dynamic ecosystem. Open source is at the core of our values, empowering individuals and organizations to collaborate, innovate, and make a positive impact together. This monthly blog post is our way of celebrating the accomplishments and contributions of our Nautobot community members.

Nautobot Core

Releases – Stable

  • v3.2.4 – 2026-08-31
    • #9404, #9422 – Updated the gitpython dependency to address multiple security vulnerabilities.
    • #9381 – Changed the Saved View REST API so the owner field is read-only and always set to the requesting user, and the view field can only be set when creating a Saved View.
    • #9381 – Changed Saved Views and Saved View Associations to be excluded when EXEMPT_VIEW_PERMISSIONS is set to the implicit all ("*") value.
    • #7553 – Added the SSO_SYNC_GROUPS setting to restrict which groups are synced into Nautobot from the SSO group claim.
    • #9381 – Added a /api/extras/saved-views/<uuid>/set-default/ REST API endpoint that lets users set (POST) or clear (DELETE) their own default Saved View without needing any Saved View permissions.
    • #9394 – Changed SSO group sync to properly revoke group memberships and staff or superuser status when the group claim changes from non-empty to empty.
    • #9381 – Deprecated the /api/extras/user-saved-view-associations/ REST API endpoints in favor of the new set-default endpoint.
    • #9419 – Improved the performance of many UI, REST, and GraphQL filters by no longer applying an unnecessary .distinct() to the filtered query.
    • #9419 – Fixed a number of model filters that traverse a to-many relation, such as CircuitFilterSet.provider_network and TenantGroupFilterSet.children, returning duplicate objects, including <field>__isnull=False filters such as ?tags__isnull=False.
    • #9381 – Fixed several Saved View issues, including the edit form not applying the same ownership and permission checks as other Saved View operations, a server error when an unknown saved_view UUID was supplied as a query parameter, and the table configuration form ignoring the column ordering of the applied Saved View.
  • v3.2.3 – 2026-08-17
    • GHSA-x69f-q4wj-vx72 – Fixed missing object-level permission enforcement on the legacy /api/dcim/console-connections/ and /api/dcim/power-connections/ REST API endpoints.
    • #9354, #9358, #9370, #9371 – Updated several dependencies, including cryptography, Django, gitpython, js-yaml, postcss, fast-uri, and brace-expansion, to address known security vulnerabilities.
    • #9369 – Added a “Skip to main content” bypass link to all base templates, plus live regions so that screen reader users are notified of messages added via HTMX and of pagination changes.
    • #9366 – Added a note to the Device creation form describing the necessary steps to assign a management IP.
    • #9346 – Changed Interface validation to allow putting a breakout sub-interface into a LAG.
    • #9369 – Changed status, role, and tag badge text colors to be chosen by actual WCAG contrast ratio rather than a perceived-brightness heuristic, and raised the contrast of disabled rows on the Jobs list.
    • #9369 – Fixed several accessibility defects, including the viewport meta tag blocking pinch-zoom and text scaling, missing accessible names and missing alt attributes on images, keyboard navigation traps, and touch targets smaller than the WCAG minimum.
    • #8449 – Fixed the REST API returning an HTTP 500 error instead of an HTTP 400 when an invalid depth query parameter (outside the range 0-10) was provided.
    • #9282 – Fixed an AttributeError raised when editing an Interface belonging to a Module that has no parent Device while its 802.1Q mode was set to “Tagged”.
    • #9362 – Fixed an N+1 query issue in the Interface Connections list view and REST API endpoint, improving performance on large installations.
  • v3.2.2 – 2026-08-03
    • #9323 – Added support for the termination_id filter to the cable filterset.
    • #9204 – Changed change logging of many-to-many associations declared with an explicit through model so that both associated objects now receive a change log entry.
    • #9204, #9270 – Fixed missing change log entries, webhooks, job hooks, and events when creating or deleting many-to-many association records via the REST API.
    • #6887 – Fixed SSO group syncing to also read group attributes from SAML responses.
    • #9329 – Fixed missing JobResult records when a scheduled job runs while no Celery worker is available; the scheduler now creates a pending JobResult before publishing the task and marks it as failed if publishing fails.
    • #9332 – Fixed segmentation faults in uWSGI worker processes when OpenTelemetry tracing used the OTLP gRPC exporter together with django-silk request profiling.
    • #9337 – Fixed the Job.task_queues property returning a deferred QuerySet instead of the documented list of strings, which also removes a potential database deadlock when bulk-deleting Job records.
    • #9325 – Fixed breakout cable interfaces not updating their colors and icons when a cable status changed.
    • #9335 – Fixed OpenTelemetry log correlation duplicating and reformatting log lines when OTEL_PYTHON_LOG_CORRELATION was enabled.
    • #9336 – Fixed the REST API schema for several structured JSON fields that previously rendered as untyped objects.

Releases – LTM 2.4

  • v2.4.41 – 2026-08-31
    • #9405, #9423 – Updated the GitPython dependency to address multiple security vulnerabilities.
    • #9381 – Changed the Saved View REST API so the owner field is read-only and always set to the requesting user, and the view field can only be set when creating a Saved View.
    • #9381 – Changed Saved Views and Saved View Associations to be excluded when EXEMPT_VIEW_PERMISSIONS is set to the implicit all ("*") value.
    • #7553 – Added the SSO_SYNC_GROUPS setting to restrict which groups are synced into Nautobot from the SSO group claim.
    • #9381 – Added a /api/extras/saved-views/<uuid>/set-default/ REST API endpoint that lets users set (POST) or clear (DELETE) their own default Saved View without needing any Saved View permissions.
    • #9394 – Changed SSO group sync to properly revoke group memberships and staff or superuser status when the group claim changes from non-empty to empty.
    • #9381 – Deprecated the /api/extras/user-saved-view-associations/ REST API endpoints in favor of the new set-default endpoint.
    • #6887 – Fixed SSO group syncing to also read group attributes from SAML responses.
    • #9381 – Fixed the Saved View edit form to apply the same ownership and permission checks as the other Saved View operations, including enforcement of the documented extras.change_savedview permission for the global default Saved View.
    • #9381 – Fixed a server error when an invalid or unknown saved_view UUID was supplied as a query parameter on an object list view.
  • v2.4.40 – 2026-08-17
    • GHSA-x69f-q4wj-vx72 – Fixed missing object-level permission enforcement on the legacy /api/dcim/console-connections/, /api/dcim/power-connections/, and /api/dcim/interface-connections/ REST API endpoints.
    • #9360 – Updated the cryptography and GitPython dependencies to address known security vulnerabilities.
    • #9282 – Fixed an AttributeError raised when editing an Interface belonging to a Module that has no parent Device while its 802.1Q mode was set to “Tagged”.
    • #9368 – Fixed an AttributeError from the legacy /api/dcim/interface-connections/ REST API endpoint when an Interface was cabled to a non-Interface endpoint such as a CircuitTermination.
  • v2.4.39 – 2026-08-03
    • #9327 – Fixed the GitRepository sync REST API endpoint not applying object-level permission restrictions (restrict()) when retrieving the repository.
    • #9302 – Added BOOLEAN_CHOICES and BOOLEAN_WITH_BLANK_CHOICES to the nautobot.apps.constants public API for developers building Nautobot Apps.
    • #9204 – Changed change logging of many-to-many associations declared with an explicit through model so that both associated objects now receive a change log entry.
    • #9204, #9270 – Fixed missing change log entries, webhooks, job hooks, and events when creating or deleting many-to-many association records via the REST API.

Apps Ecosystem

  • Nautobot App SSoT: v4.6.1 – 2026-08-07
    • #1290 – Fixed LibreNMS sync failing with an AttributeError when no Tenant Filter was selected; IP addresses are now placed in the Global namespace when no tenant is set.
    • #1290 – Fixed the Tenant Filter being silently ignored by the Nautobot to LibreNMS job.
    • #1310 – Fixed a ProtectedError crash in the Meraki integration when a SoftwareVersion that was still assigned to a Device was deleted, by deferring SoftwareVersion deletion until after Devices have been updated.
  • Nautobot App Device Onboarding: v5.5.1 – 2026-08-31
    • #609 – Fixed the Sync Devices and Sync Network Data jobs to ensure Git-provided command mappers are synced before running.
  • Nautobot App Device Onboarding: v5.5.0 – 2026-08-17
    • Increased the minimum supported Nautobot version to 3.1.0.
    • #604 – Added support for Cable sync on Nautobot 3.2.0 and later, and fixed cable sync failing on those versions.
  • Nautobot App ChatOps: v3.3.1 – 2026-08-14
    • #448 – Changed the Grafana integration so that it works with diffsync 2.0.
  • Nautobot App ChatOps: v4.1.0 – 2026-08-14
    • Increased the minimum supported Nautobot version to 3.1.0.
    • #448 – Changed the Grafana integration so that it works with diffsync 2.0.
  • Nautobot App DNS Models: v2.3.0 – 2026-08-13
    • #222, #256 – Added an enabled boolean field (default True) to DNS zones and to every DNS record type, so each object can be marked as eligible for publication by external integrations.
    • #217 – Added more fields to the DNS Zone Bulk Edit form.
    • #224 – Changed DNSZone.soa_rname to accept single-label placeholders and to normalize supported DNS-style mailboxes to email form.
    • #214 – Fixed DNS integer fields (Zone TTL, SOA refresh/retry/expire/serial/minimum, and record TTL) to support the full RFC-compliant unsigned 32-bit range (0-4294967295).
    • #214 – Fixed a bug where a record TTL of 0 was treated as unset and silently replaced by the zone TTL.
    • #243 – Fixed the auto-create PTR records field so that it looks the same as the other boolean fields in the bulk edit form.
  • Nautobot App Nornir: v3.2.4 – 2026-08-20
    • #278 – Added a default nornir_settings to the App configuration, so PLUGINS_CONFIG no longer requires a nautobot_plugin_nornir entry; a nornir_settings dictionary is now merged over the defaults, so it only needs the keys you want to change.
    • #278 – Fixed idle database connection cleanup never running for deployments that supplied no nornir_settings.
  • Nautobot App Nornir: v3.2.3 – 2026-08-14
  • Nornir Nautobot: v4.4.0 – 2026-08-13
    • #298 – Added support for Jinja template rendering with substitute_lines in the get_config task.
  • Cookiecutter Nautobot App: nautobot-app-v2.7.3 – 2026-08-10
  • Cookiecutter Nautobot App: nautobot-app-v3.1.4 – 2026-08-07
  • Pylint Nautobot: v1.1.0 – 2026-08-19
    • #138 – Added Python 3.14 support.
    • #136 – Added django.test.TransactionTestCase to the incorrect base class checker.
    • #141 – Added checks for code affected by the Nautobot 3.2 and later changes to the cable data models.
    • #144 – Changed the Nautobot minimum version check so that it no longer loads on startup.

Community


Conclusion
Get in Touch!

Do you have a cool Nautobot-related project we should write about? Swing by the Network to Code Slack -> channel #nautobot and write us a quick line! Sign up here if you don’t have an account.

-Gary