Étienne Brunel
1f336eee2e
Closes #21575 : Implement {vc_position} template variable on component template name/label ( #21601 )
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 9s
CodeQL / Analyze (actions) (push) Failing after 1m0s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m8s
CodeQL / Analyze (python) (push) Failing after 1m7s
2026-03-18 10:15:11 -07:00
Jeremy Stretch
6030fc383a
Merge branch 'main' into feature
CI / build (20.x, 3.12) (push) Failing after 13s
CI / build (20.x, 3.13) (push) Failing after 15s
CI / build (20.x, 3.14) (push) Failing after 28s
CodeQL / Analyze (actions) (push) Failing after 1m8s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m15s
CodeQL / Analyze (python) (push) Failing after 1m10s
2026-03-18 10:16:21 -04:00
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
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
Arthur Hanson
753fedf5e7
Revert " #14329 Improve diffs for custom_fields" ( #21692 )
...
CI / build (20.x, 3.12) (push) Failing after 10s
CI / build (20.x, 3.13) (push) Failing after 11s
CI / build (20.x, 3.14) (push) Failing after 11s
CodeQL / Analyze (actions) (push) Failing after 1m2s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m9s
CodeQL / Analyze (python) (push) Failing after 1m13s
This reverts commit 38afed60ef .
2026-03-17 17:35:30 +01:00
Arthur
38afed60ef
#14329 Improve diffs for custom_fields
CI / build (20.x, 3.12) (push) Failing after 10s
CI / build (20.x, 3.13) (push) Failing after 11s
CI / build (20.x, 3.14) (push) Failing after 10s
CodeQL / Analyze (actions) (push) Failing after 1m1s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m7s
CodeQL / Analyze (python) (push) Failing after 1m13s
2026-03-17 09:09:03 -07: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
bctiemann
2f5543933e
Merge pull request #21670 from netbox-community/15513-add-bulk-create-for-prefixes
...
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 1m5s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m12s
CodeQL / Analyze (python) (push) Failing after 1m13s
Closes #15513 : Add bulk creation support for IP prefixes
2026-03-13 18:25:13 -04: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
Martin Hauser
1fc43026d0
Closes #20698 : Expose total_vlan_ids on VLAN groups ( #21574 )
...
Fixes #20698
2026-03-13 15:10:56 -05:00
Martin Hauser
5804b53bb1
fix(utilities): Add atomic group in expandable field regex pattern
...
CI / build (20.x, 3.13) (push) Failing after 16s
CI / build (20.x, 3.14) (push) Failing after 15s
CI / build (20.x, 3.12) (push) Failing after 19s
Replace non-capturing group with atomic group in expansion bracket regex
to prevent excessive backtracking. Add missing 'object' key to bulk view
context for template compatibility.
2026-03-13 15:50:27 +01:00
Martin Hauser
775d6aa936
feat(ipam): Add HTMX support to prefix bulk add form
...
CI / build (20.x, 3.13) (push) Failing after 24s
CI / build (20.x, 3.12) (push) Failing after 27s
CI / build (20.x, 3.14) (push) Failing after 23s
Enable dynamic form updates in the prefix bulk add view by introducing
HTMX partial rendering. Inherit from PrefixForm to support scope and
VLAN fields, and add htmx_template_name for efficient field updates.
2026-03-13 15:10:46 +01:00
Martin Hauser
639a739b5b
feat(ipam): Add bulk creation support for prefixes
...
Implement bulk prefix creation using network patterns
(e.g., 10.[0-2].0/2). Refactor bulk creation views to support reusable
context and templates. Rename IPAddressBulkCreateForm to
IPNetworkBulkCreateForm for IPv4/IPv6 support.
2026-03-13 15:10:18 +01:00
bctiemann
b01d92c98b
Fixes : #19953 - ConfigTemplate debug rendering mode ( #21652 )
...
CI / build (20.x, 3.12) (push) Failing after 22s
CI / build (20.x, 3.13) (push) Failing after 23s
CI / build (20.x, 3.14) (push) Failing after 56s
CodeQL / Analyze (actions) (push) Failing after 1m30s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m31s
CodeQL / Analyze (python) (push) Failing after 1m23s
Add debug field to ConfigTemplate and (if True) render template errors
with a full traceback.
2026-03-13 08:19:45 +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
bctiemann
02165a28a0
Closes #20151 : Add support for cable bundles ( #21636 )
CI / build (20.x, 3.12) (push) Failing after 11s
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 1m25s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m29s
CodeQL / Analyze (python) (push) Failing after 1m28s
2026-03-11 11:43:40 -05:00
Jason Novinger
80cc7e0d91
Closes #21157 : Add public models to export template context
...
Move shared get_context() logic from ConfigTemplate into
RenderTemplateMixin so ExportTemplate also gets access to all
public model classes. This enables export templates to perform
cross-model lookups (e.g. resolving parent Prefix from IPAddress).
2026-03-11 12:26:17 -04: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
Martin Hauser
e2665ef211
Closes #20961 : Introduce RackGroup for physical rack placement ( #21624 )
...
CI / build (20.x, 3.12) (push) Failing after 11s
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 1m18s
CodeQL / Analyze (python) (push) Failing after 1m21s
Fixes #20961
2026-03-10 10:19:12 -05:00
bctiemann
c384cec453
Closes #21331 : Emit deprecation warning on use of querystring template tag ( #21476 )
2026-03-10 10:10:40 -05: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
Arthur Hanson
e3d9fe622d
Fix #17654 : Add Role to ASN ( #21582 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jason Novinger <jnovinger@gmail.com >
Closes #21571 : Bump minimatch and markdown-it to resolve security alerts (#21573 )
2026-03-10 10:00:28 -05: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
bctiemann
719effb548
Fixes : #20123 - Add replicate_components and adopt_components write_only fields to ModuleSerializer ( #21600 )
CI / build (20.x, 3.12) (push) Failing after 14s
CI / build (20.x, 3.13) (push) Failing after 15s
CI / build (20.x, 3.14) (push) Failing after 12s
CodeQL / Analyze (actions) (push) Failing after 1m10s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m15s
CodeQL / Analyze (python) (push) Failing after 1m17s
2026-03-09 11:11:40 -07: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
6659bb3abe
Closes #21363 : Implement cursor-based pagination for the REST API ( #21594 )
CI / build (20.x, 3.12) (push) Failing after 17s
CI / build (20.x, 3.13) (push) Failing after 15s
CI / build (20.x, 3.14) (push) Failing after 15s
CodeQL / Analyze (actions) (push) Failing after 10m25s
CodeQL / Analyze (javascript-typescript) (push) Failing after 10m40s
CodeQL / Analyze (python) (push) Failing after 10m40s
2026-03-06 17:13:08 -08: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
0a5f40338d
Merge pull request #21584 from netbox-community/21409-introduce-an-option-to-retain-the-original-create-and-latest
...
CI / build (20.x, 3.12) (push) Failing after 14s
CI / build (20.x, 3.13) (push) Failing after 13s
CodeQL / Analyze (actions) (push) Failing after 13s
CodeQL / Analyze (javascript-typescript) (push) Failing after 12s
CodeQL / Analyze (python) (push) Failing after 11s
CI / build (20.x, 3.14) (push) Failing after 24s
Closes #21409 : Add option to retain create & last update changelog records when pruning
2026-03-06 09:26:58 -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
Jeremy Stretch
44abeeff5a
Fixes #21012 : Ensure all tagged VLANs assigned to an interface are listed under the interface detail UI view
2026-03-05 16:35:31 -05:00
Martin Hauser
fd6e0e9784
feat(core): Retain create & last update changelog records
...
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 13s
Introduce a new configuration parameter,
`CHANGELOG_RETAIN_CREATE_LAST_UPDATE`, to retain each object's create
record and most recent update record when pruning expired changelog
entries (per `CHANGELOG_RETENTION`).
Update documentation, templates, and forms to reflect this change.
Fixes #21409
2026-03-05 22:05:07 +01:00
Martin Hauser
93e01d5b07
fix(dcim): Correct object type for child Site Group actions
...
CI / build (20.x, 3.12) (push) Failing after 12s
CI / build (20.x, 3.14) (push) Failing after 10s
CI / build (20.x, 3.13) (push) Failing after 12s
CodeQL / Analyze (actions) (push) Failing after 9s
CodeQL / Analyze (javascript-typescript) (push) Failing after 10s
CodeQL / Analyze (python) (push) Failing after 12s
Replace `dcim.Region` with `dcim.SiteGroup` in child Site Group actions
for the DCIM view. Ensures the correct model is referenced when adding
child Site Groups, improving functionality and aligning with the
expected behavior.
Fixes #21586
2026-03-05 13:59:18 -05:00
Jeremy Stretch
2a176df28a
Merge branch 'main' into feature
CI / build (20.x, 3.12) (push) Failing after 11s
CI / build (20.x, 3.13) (push) Failing after 12s
CI / build (20.x, 3.14) (push) Failing after 12s
CodeQL / Analyze (actions) (push) Failing after 12s
CodeQL / Analyze (javascript-typescript) (push) Failing after 13s
CodeQL / Analyze (python) (push) Failing after 12s
2026-03-05 12:39:09 -05:00
bctiemann
cd5d88ff8a
Merge pull request #21522 from netbox-community/21356-etags
...
Closes #21356 : Implement ETag support for REST API
2026-03-05 12:06:11 -05:00
bctiemann
6e3fd9d4b2
Merge pull request #21581 from netbox-community/20916-jobs-log-stack-trace
...
Closes #20916 : Record a stack trace in the job log for unhandled exceptions
2026-03-05 11:52:41 -05:00
bctiemann
53ae164c75
Fixes : #20984 - Django 6.0 ( #21583 )
2026-03-05 08:36:47 -08:00
Jeremy Stretch
fa5f9430fc
Fixes #20468 : Fix range lookups for numeric GraphQL filters ( #21589 )
...
CodeQL / Analyze (actions) (push) Failing after 6s
CI / build (20.x, 3.12) (push) Failing after 21s
CodeQL / Analyze (javascript-typescript) (push) Failing after 4s
CI / build (20.x, 3.13) (push) Failing after 19s
CI / build (20.x, 3.14) (push) Failing after 16s
CodeQL / Analyze (python) (push) Failing after 4s
* Fixes #20468 : Fix range lookups for numeric GraphQL filters
* Update netbox/netbox/tests/test_graphql.py
---------
Co-authored-by: Martin Hauser <mhauser@netboxlabs.com >
2026-03-05 17:10:49 +01:00
Jeremy Stretch
351066c73f
Limit auto-review workflow to GitHub org members ( #21570 )
2026-03-05 08:06:43 -08:00
bctiemann
e6db3f75ea
Merge pull request #21588 from netbox-community/19867-preserve-per_page-param
...
Fixes #19867 : Retain the `per_page` URL parameter after editing an object
2026-03-05 09:56:32 -05:00
Jeremy Stretch
04244e188f
#20923 : Migrate DCIM view templates ( #21372 )
...
* Permit passing template_name to Panel instance
* Define UI layout for ModuleType view
* Define UI layout for DeviceRole view
* Define UI layout for Platform view
* Define UI layout for Module view
* Misc cleanup
* Linkify module bay
2026-03-05 08:43:46 -05:00
Jeremy Stretch
eaad5cc26f
Fixes #19867 : Retain the per_page URL parameter after editing an object
2026-03-05 08:26:47 -05:00
Jeremy Stretch
c40640af81
Omit the system filepath north of the installation root
2026-03-04 13:47:54 -05:00
Jeremy Stretch
3c6596de8f
Closes #20916 : Record a stack trace in the job log for unhandled exceptions
2026-03-04 13:39:08 -05:00
Jeremy Stretch
b3de0b9bee
Enforce IF-Match for DELETE requests as well
CI / build (20.x, 3.12) (push) Failing after 17s
CI / build (20.x, 3.13) (push) Failing after 20s
CI / build (20.x, 3.14) (push) Failing after 17s
2026-03-04 10:49:09 -05:00
Jeremy Stretch
ec0fe62df5
Include the current ETag in the 412 response
2026-03-04 10:44:37 -05:00
Jeremy Stretch
d3a0566ee3
Address TOCTOU race condition
2026-03-04 10:38:12 -05:00
Jason Novinger
a1d82e45a0
Closes #21571 : Bump minimatch and markdown-it to resolve security alerts ( #21573 )
...
CI / build (20.x, 3.12) (push) Failing after 12s
CI / build (20.x, 3.13) (push) Failing after 11s
CI / build (20.x, 3.14) (push) Failing after 11s
CodeQL / Analyze (actions) (push) Failing after 1m4s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m4s
CodeQL / Analyze (python) (push) Failing after 1m5s
Add yarn resolutions to force patched versions of two transitive
dependencies flagged by dependabot:
- minimatch 3.1.2 → 3.1.5 (GHSA-7r86-cg39-jmmj, high severity ReDoS)
- markdown-it 14.1.0 → 14.1.1 (CVE-2026-2327, medium severity ReDoS)
2026-03-04 16:08:02 +01:00
Jeremy Stretch
694e3765dd
Use weak ETags
2026-03-04 10:04:30 -05:00
Jeremy Stretch
303199dc8f
Closes #21356 : Implement ETag support for REST API
2026-03-04 09:57:59 -05:00
github-actions
e4f7f080b3
Update source translation strings
CodeQL / Analyze (javascript-typescript) (push) Failing after 57s
CodeQL / Analyze (actions) (push) Failing after 1m0s
CodeQL / Analyze (python) (push) Failing after 58s
2026-03-04 05:17:48 +00:00
bctiemann
6eafffb497
Closes : #21304 - Add stronger deprecation warning on use of housekeeping management command ( #21483 )
...
CI / build (20.x, 3.12) (push) Failing after 11s
CI / build (20.x, 3.13) (push) Failing after 11s
CI / build (20.x, 3.14) (push) Failing after 11s
CodeQL / Analyze (actions) (push) Failing after 1m12s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m15s
CodeQL / Analyze (python) (push) Failing after 1m15s
* Add stronger deprecation warning on use of housekeeping management command
* Add stronger deprecation warning on use of housekeeping management command
* Rework deprecation warning to use FutureWarning (not DeprecationWarning as that is ignored in non-dev environments).
2026-03-03 16:12:39 -05:00
Jeremy Stretch
53ea48efa9
Merge branch 'main' into feature
2026-03-03 15:40:46 -05:00
bctiemann
983ba4fda8
Merge pull request #21562 from netbox-community/release-v4.5.4
...
CI / build (20.x, 3.12) (push) Failing after 41s
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 42s
CodeQL / Analyze (javascript-typescript) (push) Failing after 45s
CodeQL / Analyze (python) (push) Failing after 48s
Release v4.5.4
2026-03-03 15:07:18 -05:00
Jeremy Stretch
54462595a6
Release v4.5.4
2026-03-03 12:46:15 -05:00
Jeremy Stretch
8ab752b9ad
Closes #21451 : Upgrade tom-select to v2.5.2 ( #21563 )
2026-03-03 18:35:36 +01:00
Jeremy Stretch
b11cc31f9d
Closes #21559 : Add CLAUDE.md
CI / build (20.x, 3.12) (push) Failing after 11s
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 58s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m0s
CodeQL / Analyze (python) (push) Failing after 59s
2026-03-03 12:01:33 -05:00
Martin Hauser
3f02309538
fix(ipam): Avoid allocating IPv6 subnet-router anycast address ( #21547 )
...
Ensure available IP selection for IPv6 non-pool prefixes excludes the
subnet-router anycast address (RFC 4291), so allocation starts at ::1
for typical prefixes (e.g. /64).
Add tests for IPv4/IPv6 pools and special cases (/31-/32, /127-/128).
Fixes #21347
2026-03-03 08:26:44 -08:00
Martin Hauser
53345f194a
refactor(graphql): Replace FilterLookup[str] with StrFilterLookup
...
Replace usages of FilterLookup[str] with StrFilterLookup in GraphQL
filter definitions to align with strawberry-graphql-django v0.75.1.
This silences upstream warnings and helps avoid DuplicatedTypeName
errors.
Fixes #21450
2026-03-03 11:17:13 -05:00
Jeremy Stretch
139557b8dd
Fixes #21524 : Fix IndexError when serializing stale cable paths ( #21525 )
2026-03-03 16:37:45 +01:00
bctiemann
fcf02bd8bb
Merge pull request #21453 from netbox-community/21429-cable-create-add-another-does-not-carry-over-termination
...
Fixes #21429 : Add Cable cloning and fix "Create & Add Another" to preserve Termination Types
2026-03-03 09:44:35 -05:00
Martin Hauser
7d6989ff34
Closes #21477 : Add cached relation filters to GraphQL for Cable ( #21506 )
2026-03-03 08:01:45 -06:00
Jeremy Stretch
cb99199340
Initial POC for #21025
2026-03-03 08:17:55 -05:00
Jamie (Bear) Murphy
1be917fb90
Add changelog message documentation in custom scripts
...
Add changelog message documentation in custom scripts
2026-03-03 13:10:04 +00:00
Arthur Hanson
3b0b95c265
Closes #21550 : Call snapshot() before saving related objects ( #21551 )
...
Add missing pre-change `snapshot()` calls in views/forms before updating
and saving related objects (device bays, virtual chassis members, and
bulk-import primary MAC/IP assignments), so changelog entries include
pre-change data.
2026-03-03 14:01:04 +01:00
github-actions
cdc2fb2f06
Update source translation strings
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m12s
CodeQL / Analyze (actions) (push) Failing after 1m14s
CodeQL / Analyze (python) (push) Failing after 1m11s
2026-03-03 05:20:47 +00:00
Jeremy Stretch
1a404f5c0f
Merge branch 'main' into feature
CI / build (20.x, 3.12) (push) Failing after 19s
CI / build (20.x, 3.13) (push) Failing after 19s
CI / build (20.x, 3.14) (push) Failing after 13s
CodeQL / Analyze (actions) (push) Failing after 1m2s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m9s
CodeQL / Analyze (python) (push) Failing after 1m10s
2026-02-25 17:07:26 -05:00
bctiemann
3320e07b70
Closes #21284 : Add deprecation note to webhooks documentation ( #21491 )
...
CI / build (20.x, 3.12) (push) Failing after 13s
CI / build (20.x, 3.13) (push) Failing after 10s
CI / build (20.x, 3.14) (push) Failing after 41s
CodeQL / Analyze (actions) (push) Failing after 1m16s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1m24s
CodeQL / Analyze (python) (push) Failing after 1m25s
* Add searchable deprecation comments on request_id and username fields in EventContext
* Add deprecation note in webhooks documentation
* Expand deprecation note/warning
* Add version number to deprecation warning
* Add deprecation warning to two other places
2026-02-20 19:52:42 +01:00
Martin Hauser
951d856c3c
feat(dcim): Add Cable cloning with Termination mapping
...
Introduce `clone()` method for the Cable model to enable cloning
its attributes, including termination type and parent selectors.
Updates mappings to align with CableForm workflows, supporting
"Clone" and "Create & Add Another" actions.
Fixes #21429
2026-02-17 18:30:36 +01:00