Enhancements
- #19273 - Enable the selection of VLANs scoped to a device's cluster or cluster group when assigning VLANs to interfaces
- #22522 - Render colored badges for custom field choices in tables
- #22623 - Change the default color of the DHCP IP address status from green to purple to distinguish it from "available"
- #22685 - Introduce an "any" lookup for the
tagandtag_idfilters to match objects assigned any of the specified tags - #22753 - Add a
header_safeJinja2 filter for sanitizing HTTP header values
Performance Improvements
- #22497 - Improve the speed of bulk object deletion by avoiding per-object cascade handling and N+1 counter updates
- #22687 - Avoid an unnecessary queryset evaluation when rendering export templates
Bug Fixes
- #21988 - Ensure view permissions are enforced when referencing a related object by its attributes in the REST API
- #22513 - Make
JournalEntry.created_byimmutable after creation to prevent audit trail spoofing - #22565 - Include circuit distance when calculating the total length of a cable path
- #22588 - Restrict the VLANs available for assignment to a prefix scoped to a site group
- #22644 - Record changes to front/rear port mappings in the changelog
- #22654 - Redact server filesystem paths from tracebacks rendered by ConfigTemplate debug mode
- #22656 - Pre-populate interface attributes when using "Create & Add Another"
- #22662 - Avoid raising a
DataErrorexception when a cable length exceeds the maximum supported value - #22675 - Validate the URL scheme of RSS feed entries to prevent DOM-based cross-site scripting
- #22677 - Display validation errors for form fields which lack HTML5 constraints
- #22682 - Prevent the deletion of a site group from cascading to prefixes scoped to its member sites
- #22690 - Restore the left border on the quick search field
- #22697 - Return to the scripts list when cancelling out of the "add script" form
- #22707 - Fix the resolution of port mappings when
{vc_position}is used on device type component templates - #22712 - Highlight relevant dropdown fields when form validation fails
- #22717 - Fix
KeyErrorraised when validating a device assigned to a cluster scoped to a different location - #22719 - Avoid raising a
KeyErrorfor malformed IP address and prefix values submitted via the REST API - #22720 - Raise a protected-deletion error rather than a
TypeErrorwhen deleting a virtual chassis with a cross-chassis LAG - #22729 - Escape object names when populating the
Content-Dispositionheader of file responses - #22736 - Include the
commentsfield of ASNs in the global search index - #22737 - Clear stale connector metadata from cable endpoints when deleting a profiled cable
- #22748 - Ensure
ContentTypeFieldrespects its declared queryset to prevent the selection of non-public object types - #22752 - Restore the rear port fields on the front port bulk import form
- #22766 - Fix the GraphQL
lengthlookup for array filters - #22767 - Include the
commentsfield of several models in the global search indexes - #22768 - Store a null value rather than an empty string for
cable_endwhen removing a cable - #22773 - Fix
TypeErrorexception when bulk adding module bays to devices - #22790 - Enforce saved filter visibility when applied via the
filterorfilter_idquery parameter