github-actions
c3c7cf15b2
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 1m3s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m9s
CodeQL / Analyze (python) (push) Failing after 1m10s
2026-03-18 05:28:51 +00:00
Jeremy Stretch
2b7049c39c
Release v4.5.5 ( #21672 )
...
CI / build (20.x, 3.12) (push) Failing after 36s
CI / build (20.x, 3.13) (push) Failing after 9s
CI / build (20.x, 3.14) (push) Failing after 10s
CodeQL / Analyze (actions) (push) Failing after 49s
CodeQL / Analyze (javascript-typescript) (push) Failing after 49s
CodeQL / Analyze (python) (push) Failing after 57s
* Release v4.5.5
* Pin django-rq to <4.0
v4.5.5
2026-03-17 14:58:14 -04:00
Martin Hauser
3ededeb0e7
fix(circuits): Clear Circuit Termination cache on change
...
Move cache update logic from signal to model save method and track
original values to properly clear old cache when circuit_id or term_side
changes. Add comprehensive tests for all cache update scenarios.
Fixes #21686
2026-03-17 13:16:22 -04:00
bctiemann
66f6b2b6f9
Merge pull request #21649 from netbox-community/21556-fix-dropdown-clearing
...
CI / build (20.x, 3.12) (push) Failing after 39s
CI / build (20.x, 3.13) (push) Failing after 8s
CI / build (20.x, 3.14) (push) Failing after 9s
CodeQL / Analyze (actions) (push) Failing after 48s
CodeQL / Analyze (javascript-typescript) (push) Failing after 53s
CodeQL / Analyze (python) (push) Failing after 54s
Fixes #21556 : Restore previous value (if applicable) after clearing related dropdown
2026-03-17 12:06:14 -04:00
Jeremy Stretch
61cef9400d
Fixes #21556 : Restore previous value (if applicable) after clearing related dropdown
2026-03-17 11:33:53 -04:00
Jonathan Senecal
d57f230f37
Fixes #21653 : Fix multi-position tracing in CablePath.from_origin() ( #21681 )
...
* Add failing tests for multi-position cable path tracing
* Fix multi-position tracing in CablePath.from_origin()
* Add failing test for multi-connector trunk cable tracing through patch panel
* Fix multi-connector profiled cable tracing in CablePath.from_origin()
2026-03-17 14:16:03 +01:00
Rob Duffy
472dc3882e
Fixes #21673 : UI Bug with Displaying Primary IP Address with NAT IP on a VM
CI / build (20.x, 3.12) (push) Failing after 9s
CI / build (20.x, 3.13) (push) Failing after 10s
CI / build (20.x, 3.14) (push) Failing after 10s
CodeQL / Analyze (actions) (push) Failing after 1m11s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m17s
CodeQL / Analyze (python) (push) Failing after 1m19s
2026-03-17 08:54:03 +01:00
github-actions
21f78049bc
Update source translation strings
CI / build (20.x, 3.12) (push) Failing after 16s
CI / build (20.x, 3.13) (push) Failing after 14s
CI / build (20.x, 3.14) (push) Failing after 30s
CodeQL / Analyze (actions) (push) Failing after 1m4s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m10s
CodeQL / Analyze (python) (push) Failing after 1m9s
2026-03-14 05:18:31 +00:00
Jeremy Stretch
e28ed7446c
Fixes #21578 : Enable assignment of scope object by name when bulk importing prefixes/VLAN groups ( #21671 )
2026-03-13 16:27:26 -07:00
Jeremy Stretch
9b57512b12
Fixes #21579 : Display 'add script' button only if user has sufficient permission ( #21628 )
...
CI / build (20.x, 3.12) (push) Failing after 38s
CI / build (20.x, 3.13) (push) Failing after 9s
CI / build (20.x, 3.14) (push) Failing after 9s
CodeQL / Analyze (actions) (push) Failing after 46s
CodeQL / Analyze (javascript-typescript) (push) Failing after 50s
CodeQL / Analyze (python) (push) Failing after 53s
* Fixes #21579 : Display 'add script' button only if user has sufficient permission
* Check for core.add_managedfile permission too
2026-03-13 22:08:03 +01:00
github-actions
da79cc775d
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 1m7s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m14s
CodeQL / Analyze (python) (push) Failing after 1m11s
2026-03-13 05:20:12 +00:00
Jeremy Stretch
6f5fd26183
Fixes #20077 : Fix form field focus bug on Edge
CI / build (20.x, 3.12) (push) Failing after 16s
CI / build (20.x, 3.13) (push) Failing after 11s
CI / build (20.x, 3.14) (push) Failing after 12s
CodeQL / Analyze (actions) (push) Failing after 1m11s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m16s
CodeQL / Analyze (python) (push) Failing after 1m12s
2026-03-12 14:49:43 -04:00
Jason Novinger
10157394ae
Fixes #21651 : Disable ordering on MACAddress is_primary column
...
is_primary is a cached_property, not a database field, so attempting
to order by it raises a FieldError.
2026-03-12 14:48:58 -04:00
Jeremy Stretch
ae0907fb37
Fixes #20934 : Fix flicker when navigating in dark mode ( #21650 )
2026-03-12 09:38:04 -07:00
Martin Hauser
fea6ad61fd
fix(virtualization): Hide VM Add Components dropdown without change permission ( #21634 )
...
Wrap the VirtualMachine "Add Components" dropdown in a
`virtualization.change_virtualmachine` permission check to match Device
behavior and prevent users without change permission from seeing
component add actions.
Fixes #21580
2026-03-12 09:30:40 -07:00
bctiemann
675e68f276
Merge pull request #21623 from netbox-community/20923-migrate-vpn-views
...
CI / build (20.x, 3.12) (push) Failing after 19s
CI / build (20.x, 3.13) (push) Failing after 25s
CI / build (20.x, 3.14) (push) Failing after 39s
CodeQL / Analyze (actions) (push) Failing after 1m6s
CodeQL / Analyze (javascript-typescript) (push) Failing after 58s
CodeQL / Analyze (python) (push) Failing after 57s
#20923 : Convert `vpn` views to new UI layout
2026-03-12 09:14:48 -04:00
bctiemann
20b907a8c9
Merge pull request #21630 from netbox-community/21114-data-source
...
#21114 Allow specifying exclude directories for Data Sources
2026-03-12 09:11:12 -04:00
Jason Novinger
8ccb0f7b63
Closes #20923 : Migrate wireless app views to declarative UI layouts ( #21646 )
...
* #20923 : Migrate wireless app views to declarative UI layouts
Convert WirelessLANGroup, WirelessLAN, and WirelessLink detail views
from legacy HTML templates to declarative Python layout definitions.
New files:
- wireless/ui/panels.py: Panel classes for all three model detail views
- templates/wireless/attrs/auth_psk.html: Secret toggle for PSK field
- templates/wireless/panels/wirelesslink_interface_{a,b}.html: Interface
panels for WirelessLink detail view
Removed:
- templates/wireless/inc/authentication_attrs.html
- templates/wireless/inc/wirelesslink_interface.html
* Consolidate wireless link interface templates into ObjectPanel subclass
Replace duplicate wirelesslink_interface_{a,b}.html templates with a
single shared template and WirelessLinkInterfacePanel(ObjectPanel)
subclass that injects the correct interface via get_context().
* Rename WirelessLANAuthenticationPanel to WirelessAuthenticationPanel
Drop the 'LAN' qualifier since the panel is shared by both WirelessLAN
and WirelessLink views.
* Fix accessor shadowing in WirelessLinkInterfacePanel
Rename __init__ parameter from 'accessor' to 'interface_attr' to avoid
shadowing ObjectPanel.accessor, which would cause super().get_context()
to resolve the wrong context key.
* Use SimpleLayout for WirelessLinkView
Replace explicit Layout with SimpleLayout, which auto-includes plugin
content panels. Remove unused Row, Column, and PluginContentPanel
imports.
2026-03-12 08:55:50 -04:00
bctiemann
068fce4d7c
Merge pull request #21608 from netbox-community/21440-oob-ip-import
...
Fixes #21440 : Avoid erroneously clearing primary/OOB IP assignments during bulk import/update
2026-03-12 08:31:40 -04:00
bctiemann
2e4bce2dad
Merge pull request #21555 from ITJamie/patch-3
...
Add changelog message documentation in custom scripts
2026-03-12 08:29:19 -04:00
GeertJohan
dad96c525f
Fixes #21618 : Preserve cable terminations when bulk-editing cable profile
...
When `update_terminations(force=True)` is called (e.g. after a profile
change), cache the termination objects from the database before deleting
CableTermination records. Without this, the `a_terminations`/`b_terminations`
properties fall back to querying the (now-empty) DB and return empty lists,
resulting in all terminations being lost.
Also removes a leftover debug print statement.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 08:23:34 -04:00
Martin Hauser
cac3c1221c
Closes #21631 : Remove duplicate 'created' field in RackReservation table ( #21632 )
CI / build (20.x, 3.12) (push) Failing after 58s
CI / build (20.x, 3.13) (push) Failing after 9s
CI / build (20.x, 3.14) (push) Failing after 10s
CodeQL / Analyze (actions) (push) Failing after 45s
CodeQL / Analyze (javascript-typescript) (push) Failing after 48s
CodeQL / Analyze (python) (push) Failing after 50s
2026-03-11 11:49:01 -05:00
Jeremy Stretch
3a9d00a537
Update the lock-threads workflow
CI / build (20.x, 3.13) (push) Failing after 34s
CI / build (20.x, 3.12) (push) Failing after 36s
CI / build (20.x, 3.14) (push) Failing after 52s
CodeQL / Analyze (actions) (push) Failing after 1m25s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m17s
CodeQL / Analyze (python) (push) Failing after 1m16s
2026-03-11 08:56:39 -04:00
github-actions
4040e4f266
Update source translation strings
2026-03-11 05:19:17 +00:00
Jeremy Stretch
f938309ed9
Second attempt to fix @claude for PRs from forks ( #21633 )
CI / build (20.x, 3.12) (push) Failing after 10s
CI / build (20.x, 3.13) (push) Failing after 10s
CI / build (20.x, 3.14) (push) Failing after 10s
CodeQL / Analyze (actions) (push) Failing after 48s
CodeQL / Analyze (javascript-typescript) (push) Failing after 54s
CodeQL / Analyze (python) (push) Failing after 57s
2026-03-10 10:35:28 -07:00
Arthur
86f6de40d2
add docs and tests
2026-03-10 08:58:07 -07:00
Arthur
83c6149e49
#21114 Allow specifying exclude directories for Data Sources
2026-03-10 08:46:47 -07:00
Jeremy Stretch
98d898aba9
Fix the Claude action for external PRs ( #21629 )
2026-03-10 08:26:36 -07:00
Arthur Hanson
07bb6aa365
#20923 : Migrate Users object to declarative layouts ( #21568 )
...
This continues the migration of object views in the user app to NetBox v4.5’s declarative layouts.
Replace legacy object view templates with declarative layouts for:
- Users
- Groups
- API Tokens
- Permissions
- Owner Groups
- Owners
2026-03-10 16:04:24 +01:00
pobradovic08
f3c34b30ec
Fixes #21402 : Prefetch device_type and manufacturer for brief mode API responses ( #21616 )
...
* Fixes #21402 : Prefetch device_type and manufacturer for brief mode API responses
Add select_related for device_type__manufacturer on the DeviceViewSet
queryset to prevent N+1 queries when rendering unnamed devices in brief
mode.
* Use prefetch_related instead of select_related for device_type__manufacturer
2026-03-10 10:38:17 -04:00
github-actions
2281889e9d
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 1m8s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m13s
CodeQL / Analyze (python) (push) Failing after 1m17s
2026-03-10 05:18:47 +00:00
Jeremy Stretch
b19d0d61f4
Delete unused template
2026-03-09 15:48:04 -04:00
Jeremy Stretch
d64c4d75f8
#20923 : Convert vpn views to new UI layout
2026-03-09 15:25:25 -04:00
Arthur Hanson
b5bd8905ca
#21330 optimize the assignment of tags when saving an object ( #21595 )
...
CI / build (20.x, 3.12) (push) Failing after 46s
CI / build (20.x, 3.13) (push) Failing after 9s
CI / build (20.x, 3.14) (push) Failing after 9s
CodeQL / Analyze (actions) (push) Failing after 44s
CodeQL / Analyze (javascript-typescript) (push) Failing after 45s
CodeQL / Analyze (python) (push) Failing after 49s
* #21330 optimize object tag creation
* ruff fixes
* optimize
* review changes
* fix
* Update netbox/extras/managers.py
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com >
---------
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com >
2026-03-09 14:11:14 -04:00
Jeremy Stretch
cb5521f818
Closes #21468 : copy_safe_request() should retain non-sensitive HTTP request headers ( #21577 )
...
- Define `HTTP_REQUEST_META_SENSITIVE` to serve as a blacklist for
known-sensitive headers
- Modify `copy_safe_request()` to copy all non-sensitive headers
(ignoring any not defined as strings)
- Add the `CopySafeRequestTests` test suite
2026-03-09 16:54:00 +01:00
Jeremy Stretch
3cb854b7d5
Closes #21611 : Replace calls to .count() with .exists() ( #21612 )
...
Replace two boolean evaluations of .count() with .exists()
2026-03-09 16:46:38 +01:00
Jeremy Stretch
d980837da0
Fixes #20385 : Ensure GraphQL API respects MAX_PAGE_SIZE ( #21617 )
...
- Extend `apply_pagination()` to check for and apply `MAX_PAGE_SIZE`
- Add a test
2026-03-09 14:58:23 +01:00
github-actions
5c19afc07c
Update source translation strings
CodeQL / Analyze (actions) (push) Failing after 24s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m9s
CodeQL / Analyze (python) (push) Failing after 1m17s
2026-03-07 05:14:28 +00:00
Jeremy Stretch
67defb3228
Fixes #21531 : Fix search functionality for location when combined with other filters ( #21599 )
CodeQL / Analyze (actions) (push) Failing after 5s
CI / build (20.x, 3.12) (push) Failing after 20s
CodeQL / Analyze (javascript-typescript) (push) Failing after 4s
CI / build (20.x, 3.13) (push) Failing after 15s
CodeQL / Analyze (python) (push) Failing after 3s
CI / build (20.x, 3.14) (push) Failing after 14s
2026-03-06 11:54:10 -06:00
Martin Hauser
cca4cc61b6
Fixes #21512 : Fix GraphQL filtering for device, module components, templates ( #21602 )
2026-03-06 11:23:45 -06:00
Jamie (Bear) Murphy
9b0c6110bb
Clarify optional changelog message in custom-scripts
...
Added comment to clarify optional changelog message.
2026-03-06 17:13:52 +00:00
Martin Hauser
758b230403
docs(webhooks): Update context variables and example payload ( #21607 )
...
Clarify webhook context variable names and event types.
Replace `model` with `object_type`, update event values to match actual
output (`created` vs. `create`), and refresh example JSON to reflect the
current API response format, including new fields like `display` and
`display_url`.
Fixes #21489
2026-03-06 09:04:30 -08:00
Jeremy Stretch
8ea33df148
Fixes #20915 : Ensure preferred language is applied during SSO login ( #21590 )
2026-03-06 10:00:33 -06:00
Jeremy Stretch
c86210f024
Fixes #21440 : Avoid erroneously clearing primary/OOB IP assignments during bulk import/update
2026-03-06 10:48:06 -05:00
Jeremy Stretch
685c1afdcf
Update CONTRIBUTING.md ( #21606 )
...
- Enforce a limit of three open PRs per community contributor
- Clarify AI content policy
- Misc rewording
2026-03-06 16:32:19 +01:00
Martin Hauser
d62a0d7d8d
fix(extras): Add missing COOKIES and method to NetBoxFakeRequest
...
Populate COOKIES dict and set method to POST in runscript command's
NetBoxFakeRequest. Ensures the fake request object more closely mimics
a real Django request, preventing potential issues with code expecting
these attributes.
Fixes #21486
2026-03-06 09:52:26 -05:00
bctiemann
1c527366c9
Merge pull request #21597 from netbox-community/21012-interface-vlans-list
...
Fixes #21012 : Ensure all tagged VLANs assigned to an interface are listed under the interface detail UI view
2026-03-06 09:18:33 -05:00
Jeremy Stretch
e1684fb645
Display the interface's untagged VLAN in the attributes table
2026-03-06 07:37:46 -05:00
Jeremy Stretch
969ae81574
Fixes #21380 : Fix display of the background workers list on small screens ( #21598 )
...
CodeQL / Analyze (actions) (push) Failing after 14s
CodeQL / Analyze (javascript-typescript) (push) Failing after 7s
CI / build (20.x, 3.13) (push) Failing after 31s
CI / build (20.x, 3.12) (push) Failing after 33s
CodeQL / Analyze (python) (push) Failing after 6s
CI / build (20.x, 3.14) (push) Failing after 31s
Wrap the table in a `.table-responsive` to enable horizontal scrolling
within the table body.
2026-03-06 07:45:01 +01:00
github-actions
baec71fcaf
Update source translation strings
2026-03-06 05:17:32 +00:00