Commit Graph

15866 Commits

Author SHA1 Message Date
Jeremy Stretch d2df19790f Merge branch 'main' into feature
# Conflicts:
#	contrib/openapi.json
#	docs/release-notes/version-4.6.md
#	netbox/dcim/choices.py
#	netbox/dcim/forms/mixins.py
#	netbox/dcim/models/device_component_templates.py
#	netbox/dcim/models/device_components.py
#	netbox/extras/dashboard/widgets.py
#	netbox/extras/graphql/types.py
#	netbox/extras/models/configs.py
#	netbox/extras/tests/test_templatetags.py
#	netbox/ipam/choices.py
#	netbox/ipam/forms/model_forms.py
#	netbox/netbox/configuration_example.py
#	netbox/netbox/filtersets.py
#	netbox/netbox/tests/test_api.py
#	netbox/netbox/tests/test_scaffold.py
#	netbox/netbox/tests/test_tables.py
#	netbox/project-static/dist/netbox.js
#	netbox/project-static/dist/netbox.js.map
#	netbox/project-static/package.json
#	netbox/project-static/yarn.lock
#	netbox/release.yaml
#	netbox/translations/cs/LC_MESSAGES/django.mo
#	netbox/translations/cs/LC_MESSAGES/django.po
#	netbox/translations/da/LC_MESSAGES/django.mo
#	netbox/translations/da/LC_MESSAGES/django.po
#	netbox/translations/de/LC_MESSAGES/django.mo
#	netbox/translations/de/LC_MESSAGES/django.po
#	netbox/translations/en/LC_MESSAGES/django.po
#	netbox/translations/es/LC_MESSAGES/django.mo
#	netbox/translations/es/LC_MESSAGES/django.po
#	netbox/translations/fr/LC_MESSAGES/django.mo
#	netbox/translations/fr/LC_MESSAGES/django.po
#	netbox/translations/it/LC_MESSAGES/django.mo
#	netbox/translations/it/LC_MESSAGES/django.po
#	netbox/translations/ja/LC_MESSAGES/django.mo
#	netbox/translations/ja/LC_MESSAGES/django.po
#	netbox/translations/ko/LC_MESSAGES/django.mo
#	netbox/translations/ko/LC_MESSAGES/django.po
#	netbox/translations/lv/LC_MESSAGES/django.mo
#	netbox/translations/lv/LC_MESSAGES/django.po
#	netbox/translations/nl/LC_MESSAGES/django.mo
#	netbox/translations/nl/LC_MESSAGES/django.po
#	netbox/translations/pl/LC_MESSAGES/django.mo
#	netbox/translations/pl/LC_MESSAGES/django.po
#	netbox/translations/pt/LC_MESSAGES/django.mo
#	netbox/translations/pt/LC_MESSAGES/django.po
#	netbox/translations/ru/LC_MESSAGES/django.mo
#	netbox/translations/ru/LC_MESSAGES/django.po
#	netbox/translations/tr/LC_MESSAGES/django.mo
#	netbox/translations/tr/LC_MESSAGES/django.po
#	netbox/translations/uk/LC_MESSAGES/django.mo
#	netbox/translations/uk/LC_MESSAGES/django.po
#	netbox/translations/zh/LC_MESSAGES/django.mo
#	netbox/translations/zh/LC_MESSAGES/django.po
#	netbox/utilities/jinja2.py
#	netbox/utilities/tests/test_filters.py
#	requirements.txt
2026-07-28 14:24:24 -04:00
Jeremy Stretch fb8c455ba6 Release v4.6.6 2026-07-28 13:25:44 -04:00
Arthur Hanson 7472c5d067
22752 - Restore rear port fields on front port bulk import (#22776) 2026-07-28 10:02:41 -04:00
studioussagar eaa2816964
Closes #22522: Render colored badges for Custom Field Choices in tables (#22663)
Render select and multiselect custom field values as colored badges in
table views when their associated choices define colors.

For multiselect fields, render all selected values as badges when any
selected choice has a color, using the secondary badge color for
uncolored choices. Preserve comma-separated text when none of the
selected choices has a color.

Add test coverage for colored, uncolored, empty, mixed, and
HTML-sensitive choice values.

Co-authored-by: Martin Hauser <mhauser@netboxlabs.com>
2026-07-28 15:35:30 +02:00
Abhirupmandal 749e1b6579
Fixes #22690: Restore the left border on the quick search field 2026-07-28 09:32:57 -04:00
Martin Hauser 1e48c81666 docs(permissions): Add note about JSON escaping in constraint definitions
Clarifies that backslashes in constraint values must be escaped in JSON.
Includes example showing regex pattern escaping and adds table entry
demonstrating regex constraint usage.

Fixes #22498
2026-07-28 09:30:59 -04:00
Jason Novinger b3c27b951d
Closes #22790: Enforce SavedFilter visibility when applied via filter/filter_id (#22791)
BaseFilterSet resolved referenced SavedFilters without a visibility check, so
a private (shared=False) filter owned by one user could have its parameters
applied to another user's request. Restrict resolution to shared or owned
filters via restrict_to_shared(), matching the visibility enforced on the UI,
REST, and GraphQL SavedFilter surfaces.
2026-07-28 10:51:14 +02:00
bctiemann 8aa7b3b2c8
Merge pull request #22780 from netbox-community/22768-cable-removal-stores-an-empty-string-instead-of-null-in
Fixes #22768: Store null values for cable_end when removing Cables
2026-07-27 15:02:52 -04:00
bctiemann f951ba0219
Merge pull request #22778 from netbox-community/22745-script2
22766 - Map GraphQL array length lookup to Django's len transform
2026-07-27 15:01:38 -04:00
Martin Hauser 7d0a86ef52 fix(search): Add comments field to search indexing
Include comments field with weight 5000 in search indexes for
DeviceRole, L2VPN, MACAddress, and RouteTarget models to enable
full-text search on comment content.

Fixes #22767
2026-07-27 13:30:13 -04:00
Martin Hauser 34d6c170d8
Fixes #22773: Fix TypeError when bulk adding Module Bays to Devices (#22782) 2026-07-27 09:27:08 -05:00
Martin Hauser 91b51f62d6
fix(dcim): Nullify empty cable_end values instead of empty strings
Replace empty strings with null values for cable_end fields across
cable termination models. Adds data migrations to clean up inconsistent
values from earlier versions that wrote empty strings when cables were
deleted.

Fixes #22768
2026-07-25 13:52:12 +02:00
Arthur 567940ebd7 add tests 2026-07-24 17:55:07 -07:00
Arthur f8e7950004 22766 - Map GraphQL array length lookup to Django's len transform 2026-07-24 17:26:15 -07:00
bctiemann e87899f208
Merge pull request #22734 from netbox-community/22486-webhook
22486 - Add Configurable timeout for webhooks
2026-07-24 14:51:11 -04:00
bctiemann ba5018a3b4
Merge pull request #22763 from netbox-community/22497-delete
22497 Avoid redundant counter updates when deleting an object's parent
2026-07-24 14:37:24 -04:00
Arthur b0f8cb4fbb remove comment 2026-07-24 11:29:12 -07:00
Jeremy Stretch bf363ab9b7
Closes #22593: Deprecate legacy fields on rack model (#22758) 2026-07-24 09:35:38 -05:00
Jeremy Stretch 928d07e69f
Closes #22695: Clean up test suite output (#22760) 2026-07-24 08:44:24 -04:00
github-actions 05e6e85042 Update source translation strings 2026-07-24 05:56:43 +00:00
Arthur d6698ebc68 add test 2026-07-23 15:18:36 -07:00
Arthur eeb44cd0c8 add test 2026-07-23 15:09:52 -07:00
Arthur 393c9d7307 cleanup 2026-07-23 14:23:49 -07:00
Arthur b82016ce0d Merge branch 'feature' into 22486-webhook 2026-07-23 14:04:10 -07:00
bctiemann b6ff8654e0
Merge pull request #22755 from netbox-community/22737-deleting-a-profiled-cable-leaves-stale-connector-metadata-on
Fixes #22737: Clear cached Cable Profile data when deleting Cables
2026-07-23 14:00:29 -04:00
bctiemann d4670266d6
Merge pull request #22759 from netbox-community/22757-InlineFields-help-text
Closes #22757: Extend InlineFields to support an arbitrary help text
2026-07-23 13:57:43 -04:00
Jeremy Stretch 728c84470b
Closes #22753: Add `header_safe` Jinja2 filter for sanitizing webhook headers (#22754)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 10:58:25 -05:00
bctiemann cd2a43dc5f
Closes #22485: Break the search signal wiring import cycle (#22744)
Closes #22485
2026-07-23 10:54:48 -05:00
bctiemann e2bc76c8d3
Closes #22748: ContentTypeField.to_internal_value() must respect its declared queryset (#22749) 2026-07-23 10:56:23 -04:00
Arthur Hanson 58b4209fe6
#22640 - Enforce ALLOWED_URL_SCHEMES for URLs in custom fields (#22732) 2026-07-23 10:33:53 -04:00
Jeremy Stretch 00dc86b3ee Closes #22757: Extend InlineFields to support an arbitrary help text 2026-07-23 10:17:44 -04:00
Martin Hauser 47102330eb
fix(dcim): Clear stale cable profile data on cable deletion
Clear cable_connector and cable_positions when deleting profiled cables.
Adds data migration to clean up stale values from earlier versions that
failed to clear these fields, preventing validation errors on affected
endpoints.

Fixes #22737
2026-07-23 15:06:08 +02:00
github-actions ee8aaec433 Update source translation strings 2026-07-23 05:59:11 +00:00
bctiemann 1860713156
Merge pull request #22741 from netbox-community/22697-using-cancel-button-in-add-script-screen-returns-to-root
Fixes #22697: Return to Scripts list when canceling ScriptModule creation
2026-07-22 19:45:08 -04:00
Jeremy Stretch b62c384daf
Closes #22595: Introduce BULK_UPDATE_CHUNK_SIZE config parameter to limit max number of rows per bulk update (#22728) 2026-07-22 22:44:33 +02:00
Sri Chandraja Reddy Allala 3e3d36cc2d
Fixes #22588: Filter VLANs by Site Group scope when assigning to a prefix (#22684) 2026-07-22 12:44:09 -07:00
Martin Hauser 84a024babd
fix(ipam): Add comments field to ASN search indexing (#22739)
Include comments field in ASN search with weight 5000 to enable
full-text search on ASN comment content.

Fixes #22736
2026-07-22 11:58:48 -07:00
Jeremy Stretch a24fbb06ce Closes #22721: Enable plugins to extend core GraphQL API
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 13:16:43 -04:00
bctiemann 0a3e9e3bdb
Merge pull request #22709 from netbox-community/22604-document-packaged-netbox-installation-and-release-workflow
Closes #22604: Add Python package installation guide (experimental)
2026-07-22 12:24:39 -04:00
Martin Hauser 8ff8dab8a2
docs: Add Python package installation guide (experimental)
Introduce experimental Python package installation workflow as an
alternative to release archive and Git methods. Document package layout,
setup command, upgrade procedure, and migration path for existing
deployments.

Fixes #22604
2026-07-22 18:18:16 +02:00
Jeremy Stretch d5dca3ae81
Closes #20972: Add support for channelized subinterfaces (#22647) 2026-07-22 11:10:45 -05:00
Martin Hauser bc51d04988
fix(extras): Set default return URL for ScriptModule create view
The ScriptModule add view now falls back to the Scripts list when no
explicit return URL is provided. Adds regression test to verify the
default return URL behavior.

Fixes #22697
2026-07-22 18:01:54 +02:00
Martin Hauser 98c94f5fc7
Fixes #22720: Fix Virtual Chassis deletion with cross-chassis LAGs (#22740) 2026-07-22 10:43:26 -05:00
Jeremy Stretch e79e33e9dd
Fixes #22729: Escape names of file attachments in HTTP responses (#22730) 2026-07-22 10:38:22 -05:00
bctiemann abe4a2cd9e
Closes #22685: Add "any" lookup for tag & tag_id filters 2026-07-22 08:20:09 -04:00
Arthur Hanson 64519b722e
Fixes #22677: Fix display of validation errors for Cable length fields (#22733) 2026-07-22 11:17:36 +02:00
bctiemann e232ec00e3
Merge pull request #22724 from netbox-community/22719-rest-api-returns-500-instead-of-a-validation-error-for
Fixes #22719: Correct malformed IP value validation
2026-07-21 22:05:17 -04:00
Arthur 30c61a3aa4 22486 - Add Configurable timeout for webhooks 2026-07-21 16:42:50 -07:00
Martin Hauser f9a90f3cc9
fix(dcim): Correct format placeholder in Cluster location validation error (#22725)
Changes 'site' to 'location' in the error message format string to match
the actual parameter name being passed. Adds regression test coverage to
verify the error message displays the correct location name.

Fixes #22717
2026-07-21 08:27:54 -07:00
Jeremy Stretch ab07002df8 Cleanup from merging main 2026-07-21 09:28:17 -04:00