Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v4.0.0 #15975

Merged
merged 371 commits into from
May 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
371 commits
Select commit Hold shift + click to select a range
5552f2a
Rename ContentTypes REST API endpoint & resources
jeremystretch Mar 6, 2024
40a654b
Use singular names for M2M field filters
jeremystretch Mar 6, 2024
0c22e38
Re-enable error handling in middleware (disabled for testing)
jeremystretch Mar 6, 2024
e5ee852
Misc cleanup
jeremystretch Mar 6, 2024
888d9ec
9856 test fixes
arthanson Mar 6, 2024
7c63d0c
Merge pull request #15327 from netbox-community/15277-object-types
jeremystretch Mar 6, 2024
0ca46e3
9856 test fixes
arthanson Mar 6, 2024
7567c9d
Changelog for #12795, #15277, #15292
jeremystretch Mar 6, 2024
1052ea5
9856 test fix vpn
arthanson Mar 6, 2024
5ff2c18
9856 test fixes
arthanson Mar 6, 2024
77eb101
9856 test fixes
arthanson Mar 6, 2024
7c66a6a
9856 test fixes
arthanson Mar 6, 2024
28ac66b
9856 circuits test sans DjangoModelType
arthanson Mar 6, 2024
4784829
9856 core test sans DjangoModelType
arthanson Mar 6, 2024
005a339
9856 temp checkin
arthanson Mar 7, 2024
663bd32
10587 script pagination (#15343)
arthanson Mar 7, 2024
12cca5d
9856 fix extas FK
arthanson Mar 7, 2024
4b56f0b
9856 fix tenancy FK
arthanson Mar 7, 2024
26c8ee3
9856 fix virtualization FK
arthanson Mar 7, 2024
38c7d76
9856 fix vpn FK
arthanson Mar 7, 2024
5f56e2d
9856 fix wireless FK
arthanson Mar 7, 2024
e53475a
9856 fix ipam FK
arthanson Mar 7, 2024
676764a
9856 fix partial dcim FK
arthanson Mar 7, 2024
a32f4b8
9856 fix dcim FK
arthanson Mar 7, 2024
133d6bf
9856 fix virtualization FK
arthanson Mar 7, 2024
7b6a603
9856 fix tests / remove debug code
arthanson Mar 7, 2024
7fa36ca
9856 fix test imagefield
arthanson Mar 7, 2024
78dd652
Closes #15357: Rename CustomField.object_type to related_object_type …
jeremystretch Mar 9, 2024
ccc81e7
9856 cleanup graphene
arthanson Mar 11, 2024
f960d5a
9856 fix plugin schema
arthanson Mar 11, 2024
ba79078
9856 fix requirements
arthanson Mar 11, 2024
36e6f0d
9856 fix requirements
arthanson Mar 11, 2024
21de3f9
#15357: Rename CustomField object_type to related_object_type
jeremystretch Mar 11, 2024
9167227
9856 fix docs
arthanson Mar 11, 2024
02fbea5
9856 fix docs
arthanson Mar 11, 2024
be2a814
9856 temp fix tests
arthanson Mar 11, 2024
d6acc18
Closes #15383: Standardize filtering logic for the parents of recursi…
jeremystretch Mar 11, 2024
6af12b1
Add tests for missing FilterSet filters
jeremystretch Mar 5, 2024
16b422c
Add missing filters
jeremystretch Mar 5, 2024
5cb7af8
Fix remaining tests
jeremystretch Mar 6, 2024
0a0dae3
Inspect many-to-many fields
jeremystretch Mar 6, 2024
6085e0b
Test for missing ManyToManyField filters
jeremystretch Mar 7, 2024
b36a70d
Add missing filters for reverse many-to-many relationships
jeremystretch Mar 7, 2024
a136030
Validate filter class for foreign key fields
jeremystretch Mar 7, 2024
313e636
Extend logic for validating filter class
jeremystretch Mar 11, 2024
f8744a6
Clean up exemption logic
jeremystretch Mar 11, 2024
52bda9c
Closes #15401: Rename PostgreSQL tables & indexes for L2VPN models (#…
jeremystretch Mar 12, 2024
bea32ae
Declare FilterSet fields as a tuple
jeremystretch Mar 12, 2024
572efeb
Ensure all filter labels are translated
jeremystretch Mar 12, 2024
a36cc0a
9856 first filterset
arthanson Mar 12, 2024
8aca8f8
9856 first filterset
arthanson Mar 12, 2024
2d4295e
Merge pull request #15369 from netbox-community/15237-audit-filtersets
jeremystretch Mar 12, 2024
c2a3275
9856 merge feature
arthanson Mar 12, 2024
d6fd0b8
9856 fix tests
arthanson Mar 12, 2024
960f340
9856 fix tests
arthanson Mar 12, 2024
fe3f2c8
9856 working auto filter generation
arthanson Mar 12, 2024
2c9bea9
9856 filter types
arthanson Mar 13, 2024
21b585e
9856 filter types
arthanson Mar 13, 2024
347e453
9856 filter types
arthanson Mar 13, 2024
634f35a
9856 fix graphiql test
arthanson Mar 13, 2024
2b7c1d1
Merge branch 'feature' into 9856-strawberry-2
arthanson Mar 13, 2024
1da5219
9856 fix counter fields and merge feature
arthanson Mar 13, 2024
1517175
9856 temp fix tests
arthanson Mar 13, 2024
7357f95
Closes #15413: Enable caching of object attributes in search index
jeremystretch Mar 13, 2024
b47c5ee
9856 fix tests
arthanson Mar 13, 2024
9c53f76
9856 fix tenancy, ipam filter definitions
arthanson Mar 13, 2024
da0c23b
9856 cleanup
arthanson Mar 13, 2024
6090d41
9856 cleanup
arthanson Mar 13, 2024
3b30aa9
9856 cleanup
arthanson Mar 13, 2024
9062d99
Closes #14454: Include member devices for virtual chassis in REST API
jeremystretch Mar 13, 2024
b58c85c
Merge pull request #15421 from netbox-community/15413-search-cache-attrs
jeremystretch Mar 15, 2024
78bd7de
Merge branch 'develop' into feature
jeremystretch Mar 15, 2024
19f577c
Closes: #13918 - Add facility field (#15456)
DanSheps Mar 18, 2024
9c29f45
Merge branch 'feature' into 9856-strawberry-2
jeremystretch Mar 18, 2024
93c9f8c
15193 use psycopg compiled
arthanson Mar 18, 2024
b75b9e0
9856 review changes
arthanson Mar 19, 2024
908150f
9856 review changes
arthanson Mar 19, 2024
783c4f2
9856 review changes
arthanson Mar 19, 2024
f585c36
Introduce InlineFields for rendering fields side-by-side
jeremystretch Mar 12, 2024
4c7b6fc
Enable tabbed group fields in fieldsets
jeremystretch Mar 12, 2024
33b9ebb
Ignore fields which are not included on the form (dynamic rendering)
jeremystretch Mar 13, 2024
8f03a19
Introduce ObjectAttribute for displaying read-only instance attribute…
jeremystretch Mar 13, 2024
2aaa552
Replace custom form templates with TabbedFieldGroups
jeremystretch Mar 13, 2024
3b28e8e
Refactor form rendering components & add docstrings
jeremystretch Mar 15, 2024
72d3c17
Use FieldSet instances for all forms
jeremystretch Mar 18, 2024
708d93c
Use render_fieldset() for bulk edit & filter forms
jeremystretch Mar 18, 2024
89150f4
Add form rendering utilities to plugins dev docs
jeremystretch Mar 19, 2024
32edb8d
Misc cleanup & documentation for FieldSets
jeremystretch Mar 19, 2024
849a9d3
Fixes #15340: Fix flicker on page load with dark mode enabled (#15475)
jeremystretch Mar 19, 2024
a3ce14a
Update release notes
jeremystretch Mar 19, 2024
371a2a2
9856 fix base-requirements
arthanson Mar 19, 2024
a83b233
Closes #15339: Consume entire viewport (#15480)
jeremystretch Mar 20, 2024
f456731
9856 add wrapper to graphiql
arthanson Mar 20, 2024
bbccb87
9856 remove old graphiql debug toolbar
arthanson Mar 20, 2024
78b4fa5
Closes #14279: Pass current request to custom validators (#15491)
jeremystretch Mar 22, 2024
9914403
Refactor get_view_name()
jeremystretch Mar 21, 2024
a9bb4c5
Move choice sets from utilities.choices to netbox.choices
jeremystretch Mar 21, 2024
19bb808
Move utilities.api.rest_api_server_error() to utilities.error_handler…
jeremystretch Mar 21, 2024
d924eaf
Remove the sha256_hash() utility function
jeremystretch Mar 21, 2024
aa9a40f
Remove unused MACAddressFilter
jeremystretch Mar 21, 2024
f49819e
Move ConfigTemplateLoader from utilities.jinja2 to extras.jinja2
jeremystretch Mar 21, 2024
f48d1c9
custom_deconstruct() should not ignore TimeZoneField
jeremystretch Mar 21, 2024
73bb175
Rename resolve_permission_ct() to resolve_permission_type()
jeremystretch Mar 21, 2024
950954a
Move title() from utilities.utils to utilities.string
jeremystretch Mar 21, 2024
2719fa3
Move utilities.utils.highlight_string() to utilities.html.highlight()
jeremystretch Mar 21, 2024
3547ea3
Move utilities.utils.get_viewname() to utilities.views
jeremystretch Mar 21, 2024
ef77431
Move NetBoxFakeRequest and copy_safe_request() from utilities.utils t…
jeremystretch Mar 21, 2024
bbb8b7d
Move to_grams() & to_meters() from utilities.utils to utilities.conve…
jeremystretch Mar 21, 2024
b92d324
Move serialize_object() & deserialize_object() to utilities.serializa…
jeremystretch Mar 21, 2024
2a3b85a
Move clean_html() & foreground_color() to utilities.html
jeremystretch Mar 21, 2024
b2e0380
Remove obsolete function utilities.utils.csv_format()
jeremystretch Mar 21, 2024
c30d223
Move extras.jinja2.ConfigTemplateLoader to utilities.jinja2.DataFileL…
jeremystretch Mar 21, 2024
1d3efc9
Move utilities.utils.render_jinja2() to utilities.jinja2
jeremystretch Mar 21, 2024
81ca455
Move array_to_range(), array_to_string(), deepmerge(), drange(), flat…
jeremystretch Mar 21, 2024
a49eb80
Move dict_to_querydict() and normalize_querydict() to utilities.query…
jeremystretch Mar 21, 2024
3b4898a
Move prepare_cloned_fields() to utilities.querydict
jeremystretch Mar 21, 2024
ae8df77
Move count_related() & dict_to_filter_params() to utilities.query
jeremystretch Mar 21, 2024
8ad73e3
Rename content_type_identifier() and content_type_name()
jeremystretch Mar 21, 2024
6ac700e
Move object_type_identifier() & object_type_name() to utilities.objec…
jeremystretch Mar 21, 2024
7b1a08a
Move local_now() to utilities.datetime
jeremystretch Mar 21, 2024
b86c8a9
Remove utilities.utils.dynamic_import()
jeremystretch Mar 21, 2024
eb3aa7c
Move utilities.utils.get_related_models() to utilities.relations
jeremystretch Mar 21, 2024
423c981
Fix import statement
jeremystretch Mar 22, 2024
be52246
Merge branch 'feature' into 9856-strawberry-2
arthanson Mar 22, 2024
d027a1c
9856 review changes
arthanson Mar 22, 2024
d40bf63
9856 update strawberry
arthanson Mar 22, 2024
55725ee
9856 remove superfluous check
arthanson Mar 22, 2024
45c99e4
9856 Replace graphene with Strawberry (#15141)
arthanson Mar 22, 2024
43e7dd3
9856 move static files
arthanson Mar 22, 2024
6973228
Closes #15465: Clean up settings.py
jeremystretch Mar 22, 2024
74444da
Merge branch '9856-strawberry-2' into feature
arthanson Mar 22, 2024
817e009
Closes #15490: CustomValidator support for accessing related object a…
jeremystretch Mar 22, 2024
0cff4c9
14799 Fix sync of scripts from data source (#15303)
arthanson Mar 26, 2024
04d8db7
Closes #15236: Clean up unused static resources (#15539)
jeremystretch Mar 26, 2024
744be59
Closes #14736: Enable HTMX navigation globally (#15158)
jeremystretch Mar 28, 2024
9950815
15154 Add uWSGI as option to gunicorn (#15550)
arthanson Mar 28, 2024
eaa3bc6
Fixes #15570: Remove omission of M2M relations when generating writab…
jeremystretch Mar 28, 2024
d707c65
Fixes #15536: Fix clipping of dropdown menus inside responsive tables
jeremystretch Mar 28, 2024
0dedf60
Update dependencies
jeremystretch Mar 29, 2024
3be3bbe
Upgrade DRF to v3.15
jeremystretch Mar 29, 2024
56dca86
15574 Backport strawberry-graphql-django library (#15577)
arthanson Mar 29, 2024
c8d2886
15552 graphql docs (#15578)
arthanson Mar 29, 2024
8767577
15553 change graphql sub-queries from functions to types (#15557)
arthanson Mar 29, 2024
c8d9d93
Closes #15464: Move permission assignments to user & group models (#1…
jeremystretch Mar 29, 2024
f6da3f8
Fixes #15581: Disable HTMX when logging out
jeremystretch Mar 29, 2024
3ab2f25
Closes #15043: Add v4.0 migration guide for plugins (#15477)
jeremystretch Apr 1, 2024
f0291aa
Fix ordering of Groups
jeremystretch Apr 2, 2024
7422605
Fleshed out v4.0 release notes
jeremystretch Apr 2, 2024
ecf22bf
update readme for strawbery
arthanson Apr 2, 2024
dda9381
Remove old feature notifications
jeremystretch Apr 2, 2024
7fe2e48
Update custom validation docs for #14279, #15490
jeremystretch Apr 2, 2024
fb12957
#12795: Complete support for description field on custom Group model
jeremystretch Apr 2, 2024
abc949a
Refactor models under users app
jeremystretch Apr 2, 2024
8b8d63d
Include description field on Group serializer
jeremystretch Apr 2, 2024
53ff85d
Prevent the stock Django Group model from appearing in the admin UI (…
jeremystretch Apr 2, 2024
d9949b2
Update API test for Group model
jeremystretch Apr 2, 2024
489e956
Merge branch 'develop' into feature
jeremystretch Apr 3, 2024
97b9117
Release v4.0-beta1
jeremystretch Apr 3, 2024
8d773b1
Add warning to beta release notes
jeremystretch Apr 3, 2024
933fdf3
Bump OS & Python for docs build
jeremystretch Apr 3, 2024
0abd094
Closes #15607: Update upgrade path diagram
jeremystretch Apr 3, 2024
25c39ce
Fixes #15616: Tweak button class for invalid custom links
jeremystretch Apr 5, 2024
99fe635
Fixes #15617: Fix rack elevation styling under dark mode
jeremystretch Apr 5, 2024
ccca058
Fixes #15619: Enforce a minimum width for progress bars
jeremystretch Apr 5, 2024
d34f188
Fixes #15637: Fix rendering of links from within embedded tables w/HT…
jeremystretch Apr 5, 2024
9f16f14
Fixes #15620: Limit width of user preferences form
jeremystretch Apr 5, 2024
c7f6c20
Fixes #15638: Correct parameter used to retrieve saved filters for a …
jeremystretch Apr 5, 2024
89453a4
Fixes #15605: Account for older sequence name in migration
jeremystretch Apr 8, 2024
dfae19c
15688 remove USE_L10N setting
arthanson Apr 10, 2024
89dd423
15676 update python versions in pyproject.toml (#15687)
arthanson Apr 10, 2024
379fe7c
Changelog for #15605, #15616, #15617, #15619, #15637, #15638
jeremystretch Apr 11, 2024
815cab5
15532 fix autotype_decorator for method fields
arthanson Mar 26, 2024
5e05041
15671 save module before sync_classes (#15675)
arthanson Apr 15, 2024
0da8164
15684 strawberry filter (#15686)
arthanson Apr 15, 2024
4e4c277
Fixes #15652: Fix the display of error messages after attempting to d…
jeremystretch Apr 15, 2024
4562e34
Fixes #15613: Show login button/user menu on mobile view
jeremystretch Apr 16, 2024
2a88768
Fixes #15695: Clear any legacy group permission associations during m…
jeremystretch Apr 16, 2024
21db54a
Closes #15740: Fix typos and deprecated List in docs (#15741)
markkuleinio Apr 17, 2024
c858aa3
Fix broken link in installation guide
jeremystretch Apr 17, 2024
f0aca5b
Remove notes referencing past releases
jeremystretch Apr 17, 2024
77a4300
Closes #15618: Always use ISO 8601 date & time formatting (#15737)
jeremystretch Apr 17, 2024
157df06
Closes #15738: Remove configuration parameters date & time formatting
jeremystretch Apr 17, 2024
95cc29d
Closes #15752: Remove the ENABLE_LOCALIZATION configuration parameter
jeremystretch Apr 17, 2024
75d6bfe
Closes #15736: Remove annotated_date() template filter and annotated_…
jeremystretch Apr 17, 2024
e303ccf
15636 change content_type_id to object_type_id for imageattachment
arthanson Apr 17, 2024
d0f0782
Update changelog
jeremystretch Apr 17, 2024
480b36d
Fixes #15698: Drop and recreate FK constraints on ObjectPermission M2…
jeremystretch Apr 18, 2024
1efd809
Formatting cleanup
jeremystretch Apr 19, 2024
c9bd59a
Fixes #15641: Fix adding/removing filters on advanced object selector…
jeremystretch Apr 19, 2024
174865b
Fixes #15760: Permit breaking of long words for wrap within object at…
jeremystretch Apr 19, 2024
4b83b5d
15764 change vc_position from PositiveSmallInteger to PositiveInteger
arthanson Apr 19, 2024
1a13007
#15712: add imageattachments to vms
Hedius Apr 12, 2024
3551f3e
Remove the is_staff restriction for admin menu items
jeremystretch Apr 19, 2024
824d66a
Dissuade non-superusers from creating API tokens via the admin view
jeremystretch Apr 19, 2024
0f0ab1a
Closes #15547: Add comments field to CustomField model
jeremystretch Apr 19, 2024
db87fe9
Clean up bulk import view
jeremystretch Apr 19, 2024
f42d033
Clean up layout of global search results
jeremystretch Apr 19, 2024
781409b
Fixes #15787: Convert User ID column to 64-bit integer
jeremystretch Apr 19, 2024
781d932
15789 make sure job completed before including config_form
arthanson Apr 19, 2024
46bd62f
Merge branch 'develop' into feature
jeremystretch Apr 22, 2024
e3c4182
Fixes #15778: Fix bulk edit/delete functionality when HTMX is enabled
jeremystretch Apr 22, 2024
c43b929
Fixes #15580: Fix rendering of modals with HTMX enabled
jeremystretch Apr 22, 2024
8364e63
Remove obsolete type definitions
jeremystretch Apr 22, 2024
c32dff5
Release v4.0-beta2
jeremystretch Apr 22, 2024
e05ca71
Flag HTMX navigation as an experimental feature
jeremystretch Apr 23, 2024
ded2fe9
15809 Mark unions as nullable in GraphQL where appropriate (#15824)
arthanson Apr 25, 2024
4923025
15541 Add component selector to InventoryItemTemplate (#15691)
arthanson Apr 25, 2024
5af3c65
Fix #15826: Added new group and user models
tobiasge Apr 24, 2024
835012f
15838 use naturalday for date not naturaltime
arthanson Apr 26, 2024
0a7d1e2
15823 remove openid from social-auth-core requirement
arthanson Apr 26, 2024
209f596
15815 convert dashboard widgets for users/groups (#15839)
arthanson May 1, 2024
d0e0dcb
15855 fix adding script as event rule (#15861)
arthanson May 1, 2024
778b8b9
15853 fix background color for cable trace svg in dark mode
arthanson Apr 26, 2024
1add918
15833 make navbar sticky at top
arthanson Apr 30, 2024
39a8307
PRVB
jeremystretch May 1, 2024
312291b
Merge branch 'develop' into feature
jeremystretch May 1, 2024
44a7cd9
Update changelog with beta2 bug fixes
jeremystretch May 1, 2024
6530051
Closes #15630: Remove server-side color mode preference & simplify to…
jeremystretch May 1, 2024
4c93a2d
Feature 15832 - Multiselect has no "delete" option on the values (#1…
Julio-Oliveira-Encora May 2, 2024
17e6d10
Fixes #15852: Update total object counts when filtering object lists …
jeremystretch May 2, 2024
3d3c2e9
Delete extraneous lock file
jeremystretch May 2, 2024
0bc2bff
Remove obsolete dependencies
jeremystretch May 2, 2024
8f92b85
Update front end dependencies
jeremystretch May 2, 2024
8f2eba2
15831 monkeypatch LDAP _mirror_group function for NB4 (#15902)
arthanson May 2, 2024
3d4bb20
15802 change table anchor color (#15841)
arthanson May 2, 2024
f8eee45
#15852: Hide count element for non-HTMX requests
jeremystretch May 2, 2024
d824e90
Extend release checklist to include updating UI resources
jeremystretch May 2, 2024
c8a9bc0
Fixes #15925: Fix rendering of cable traces to circuit terminations
jeremystretch May 3, 2024
408e0c5
Fixes #15877: Consider VC membership when assigning LAG interfaces vi…
jeremystretch May 3, 2024
f8cf2a3
Closes #15932: Update embedded documentation for generic templates
jeremystretch May 2, 2024
4150442
Closes #15942: Refactor settings_and_registry() context processor
jeremystretch May 3, 2024
a9b311b
Fixes #15944: Extend paginator template to be aware of placement
jeremystretch May 3, 2024
88f2735
Fixes #15917: slim-select-pagination-bug-fix : fixed several bugs rel…
MaxBear May 3, 2024
8e1c2ec
Closes #15915: Replace plugins list with an overall system status vie…
jeremystretch May 3, 2024
b91741d
Changelog for #15630, #15802, #15831, #15852, #15915, #15942, #15944
jeremystretch May 3, 2024
c6f833e
Changelog for #15877, #15917, #15925
jeremystretch May 3, 2024
4cc5079
12127 enable cable add button
arthanson May 3, 2024
56e0449
Fixes: #15948 - Fixes cable fanin/fanout when both are required (#15953)
DanSheps May 6, 2024
60aee6f
Fixes #15961: Fix secret toggle button by avoiding duplicate event ha…
jeremystretch May 6, 2024
15cc50f
Fixes #15960: Use internal ManyToManyColumn to ensure proper export b…
jeremystretch May 6, 2024
c7d53ed
Translate django.po in ja
transifex-integration[bot] May 5, 2024
c02bd0a
Release v3.7.8
jeremystretch May 6, 2024
f00eceb
Merge branch 'master' into develop
jeremystretch May 6, 2024
51bd98b
Merge branch 'develop' into feature
jeremystretch May 6, 2024
e6a7971
15934 screenshots (#15935)
arthanson May 6, 2024
32b3961
Merge pull request #15972 from netbox-community/feature
jeremystretch May 6, 2024
840dcaa
Update source translation strings
jeremystretch May 6, 2024
0f7e207
Updates for file netbox/translations/en/LC_MESSAGES/django.po (#15974)
transifex-integration[bot] May 6, 2024
f12b2fa
Release v4.0.0
jeremystretch May 6, 2024
fce54f3
Bump PR
jeremystretch May 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ body:
attributes:
label: NetBox Version
description: What version of NetBox are you currently running?
placeholder: v3.7.8
placeholder: v4.0.0
validations:
required: true
- type: dropdown
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ body:
attributes:
label: NetBox version
description: What version of NetBox are you currently running?
placeholder: v3.7.8
placeholder: v4.0.0
validations:
required: true
- type: dropdown
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
NETBOX_CONFIGURATION: netbox.configuration_testing
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
node-version: ['14.x']
python-version: ['3.10', '3.11', '3.12']
node-version: ['18.x']
services:
redis:
image: redis
Expand Down
4 changes: 2 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
version: 2
build:
os: ubuntu-20.04
os: ubuntu-22.04
tools:
python: "3.9"
python: "3.12"
mkdocs:
configuration: mkdocs.yml
python:
Expand Down
37 changes: 19 additions & 18 deletions base_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
# HTML sanitizer
# https://github.com/mozilla/bleach/blob/main/CHANGES
bleach

# The Python web framework on which NetBox is built
# https://docs.djangoproject.com/en/stable/releases/
Django<5.0
Django<5.1

# Django middleware which permits cross-domain API requests
# https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst
Expand All @@ -18,14 +14,13 @@ django-debug-toolbar
# https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst
django-filter

# Django debug toolbar extension with support for GraphiQL
# https://github.com/flavors/django-graphiql-debug-toolbar/blob/main/CHANGES.rst
django-graphiql-debug-toolbar
# HTMX utilities for Django
# https://django-htmx.readthedocs.io/en/latest/changelog.html
django-htmx

# Modified Preorder Tree Traversal (recursive nesting of objects)
# Pinned to 0.14.0; 0.15.0 requires Python 3.9+
# https://github.com/django-mptt/django-mptt/blob/main/CHANGELOG.rst
django-mptt==0.14.0
django-mptt

# Context managers for PostgreSQL advisory locks
# https://github.com/Xof/django-pglocks/blob/master/CHANGES.txt
Expand Down Expand Up @@ -61,8 +56,7 @@ django-timezone-field

# A REST API framework for Django projects
# https://www.django-rest-framework.org/community/release-notes/
# Pinned to 3.14 for NetBox v3.7
djangorestframework<3.15
djangorestframework

# Sane and flexible OpenAPI 3 schema generation for Django REST framework.
# https://github.com/tfranzel/drf-spectacular/blob/master/CHANGELOG.rst
Expand All @@ -76,11 +70,6 @@ drf-spectacular-sidecar
# https://github.com/kurtmckee/feedparser/blob/develop/CHANGELOG.rst
feedparser

# Django wrapper for Graphene (GraphQL support)
# https://github.com/graphql-python/graphene-django/releases
# Pinned to v3.0.0 for GraphiQL UI issue (see #12762)
graphene_django==3.0.0

# WSGI HTTP server
# https://docs.gunicorn.org/en/latest/news.html
gunicorn
Expand Down Expand Up @@ -109,6 +98,10 @@ mkdocstrings[python-legacy]
# https://github.com/netaddr/netaddr/blob/master/CHANGELOG.rst
netaddr

# Python bindings to the ammonia HTML sanitization library.
# https://github.com/messense/nh3
nh3

# Fork of PIL (Python Imaging Library) for image processing
# https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst
Pillow
Expand All @@ -133,8 +126,16 @@ social-auth-core
# https://github.com/python-social-auth/social-app-django/blob/master/CHANGELOG.md
social-auth-app-django

# Strawberry GraphQL
# https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md
strawberry-graphql

# Strawberry GraphQL Django extension
# https://github.com/strawberry-graphql/strawberry-django/blob/main/CHANGELOG.md
strawberry-graphql-django

# SVG image rendering (used for rack elevations)
# hhttps://github.com/mozman/svgwrite/blob/master/NEWS.rst
# https://github.com/mozman/svgwrite/blob/master/NEWS.rst
svgwrite

# Tabular dataset library (for table-based exports)
Expand Down
4 changes: 4 additions & 0 deletions contrib/netbox.service
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@ Group=netbox
PIDFile=/var/tmp/netbox.pid
WorkingDirectory=/opt/netbox

# Remove the following line if using uWSGI instead of Gunicorn
ExecStart=/opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi

# Uncomment the following line if using uWSGI instead of Gunicorn
#ExecStart=/opt/netbox/venv/bin/uwsgi --ini /opt/netbox/uwsgi.ini

Restart=on-failure
RestartSec=30
PrivateTmp=true
Expand Down
10 changes: 10 additions & 0 deletions contrib/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,20 @@ server {
}

location / {
# Remove these lines if using uWSGI instead of Gunicorn
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;

# Uncomment these lines if using uWSGI instead of Gunicorn
# include uwsgi_params;
# uwsgi_pass 127.0.0.1:8001;
# uwsgi_param Host $host;
# uwsgi_param X-Real-IP $remote_addr;
# uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for;
# uwsgi_param X-Forwarded-Proto $http_x_forwarded_proto;

}
}

Expand Down
18 changes: 18 additions & 0 deletions contrib/uwsgi.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[uwsgi]
; bind to the specified UNIX/TCP socket and port (usually localhost)
socket = 127.0.0.1:8001

; fail to start if any parameter in the configuration file isn’t explicitly understood by uWSGI.
strict = true

; re-spawn and pre-fork workers
master = true

; clear environment on exit
vacuum = true

; exit if no app can be loaded
need-app = true

; do not use multiple interpreters
single-interpreter = true
2 changes: 1 addition & 1 deletion docs/administration/authentication/microsoft-azure-ad.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ You should be redirected to Microsoft's authentication portal. Enter the usernam

If successful, you will be redirected back to the NetBox UI, and will be logged in as the AD user. You can verify this by navigating to your profile (using the button at top right).

This user account has been replicated locally to NetBox, and can now be assigned groups and permissions by navigating to Admin > Permissions.
This user account has been replicated locally to NetBox, and can now be assigned groups and permissions.

## Troubleshooting

Expand Down
2 changes: 1 addition & 1 deletion docs/administration/authentication/okta.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,4 @@ You should be redirected to Okta's authentication portal. Enter the username/ema

If successful, you will be redirected back to the NetBox UI, and will be logged in as the Okta user. You can verify this by navigating to your profile (using the button at top right).

This user account has been replicated locally to NetBox, and can now be assigned groups and permissions by navigating to Admin > Permissions.
This user account has been replicated locally to NetBox, and can now be assigned groups and permissions.
2 changes: 1 addition & 1 deletion docs/administration/authentication/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Local user accounts and groups can be created in NetBox under the "Authentication" section in the "Admin" menu. This section is available only to users with the "staff" permission enabled.

At a minimum, each user account must have a username and password set. User accounts may also denote a first name, last name, and email address. [Permissions](../permissions.md) may also be assigned to users and/or groups under Admin > Permissions.
At a minimum, each user account must have a username and password set. User accounts may also denote a first name, last name, and email address. [Permissions](../permissions.md) may also be assigned to individual users and/or groups as needed.

## Remote Authentication

Expand Down
2 changes: 0 additions & 2 deletions docs/administration/permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ The `$user` token can be used only as a constraint value, or as an item within a

### Default Permissions

!!! info "This feature was introduced in NetBox v3.6."

While permissions are typically assigned to specific groups and/or users, it is also possible to define a set of default permissions that are applied to _all_ authenticated users. This is done using the [`DEFAULT_PERMISSIONS`](../configuration/security.md#default_permissions) configuration parameter. Note that statically configuring permissions for specific users or groups is **not** supported.

### Example Constraint Definitions
Expand Down
23 changes: 0 additions & 23 deletions docs/configuration/date-time.md

This file was deleted.

23 changes: 8 additions & 15 deletions docs/configuration/miscellaneous.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,6 @@ This defines custom content to be displayed on the login page above the login fo

!!! tip "Dynamic Configuration Parameter"

!!! note
This parameter was added in NetBox v3.5.

This adds a banner to the top of every page when maintenance mode is enabled. HTML is allowed.

---
Expand Down Expand Up @@ -99,6 +96,14 @@ The maximum size (in bytes) of an incoming HTTP request (i.e. `GET` or `POST` da

---

## DJANGO_ADMIN_ENABLED

Default: False

Setting this to True installs the `django.contrib.admin` app and enables the [Django admin UI](https://docs.djangoproject.com/en/5.0/ref/contrib/admin/). This may be necessary to support older plugins which do not integrate with the native NetBox interface.

---

## ENFORCE_GLOBAL_UNIQUE

!!! tip "Dynamic Configuration Parameter"
Expand All @@ -107,9 +112,6 @@ Default: True

By default, NetBox will prevent the creation of duplicate prefixes and IP addresses in the global table (that is, those which are not assigned to any VRF). This validation can be disabled by setting `ENFORCE_GLOBAL_UNIQUE` to False.

!!! info "Changed in v3.7"
The default value for this parameter was changed from False to True in NetBox v3.7.

---

## FILE_UPLOAD_MAX_MEMORY_SIZE
Expand All @@ -134,9 +136,6 @@ Setting this to False will disable the GraphQL API.

!!! tip "Dynamic Configuration Parameter"

!!! note
This parameter was renamed from `JOBRESULT_RETENTION` in NetBox v3.5.

Default: 90

The number of days to retain job results (scripts and reports). Set this to `0` to retain job results in the database indefinitely.
Expand Down Expand Up @@ -231,9 +230,6 @@ The maximum execution time of a background task (such as running a custom script

## RQ_RETRY_INTERVAL

!!! note
This parameter was added in NetBox v3.5.

Default: `60`

This parameter controls how frequently a failed job is retried, up to the maximum number of times specified by `RQ_RETRY_MAX`. This must be either an integer specifying the number of seconds to wait between successive attempts, or a list of such values. For example, `[60, 300, 3600]` will retry the task after 1 minute, 5 minutes, and 1 hour.
Expand All @@ -242,9 +238,6 @@ This parameter controls how frequently a failed job is retried, up to the maximu

## RQ_RETRY_MAX

!!! note
This parameter was added in NetBox v3.5.

Default: `0` (retries disabled)

The maximum number of times a background task will be retried before being marked as failed.
2 changes: 0 additions & 2 deletions docs/configuration/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,6 @@ CSRF_TRUSTED_ORIGINS = (

## DEFAULT_PERMISSIONS

!!! info "This parameter was introduced in NetBox v3.6."

Default:

```python
Expand Down
14 changes: 6 additions & 8 deletions docs/configuration/system.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,6 @@ Email is sent from NetBox only for critical events or if configured for [logging

---

## ENABLE_LOCALIZATION

Default: False

Determines if localization features are enabled or not. This should only be enabled for development or testing purposes as netbox is not yet fully localized. Turning this on will localize numeric and date formats (overriding any configured [system defaults](./date-time.md#date-and-time-formatting)) based on the browser locale as well as translate certain strings from third party modules.

---

## HTTP_PROXIES

Default: None
Expand Down Expand Up @@ -200,3 +192,9 @@ A dictionary of configuration parameters for the storage backend configured as `
If `STORAGE_BACKEND` is not defined, this setting will be ignored.

---

## TIME_ZONE

Default: UTC

The time zone NetBox will use when dealing with dates and times. It is recommended to use UTC time unless you have a specific need to use a local time zone. Please see the [list of available time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
2 changes: 0 additions & 2 deletions docs/customization/custom-fields.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ This parameter has no effect on the API representation of custom field data.

### Visibility & Editing

!!! info "This feature was improved in NetBox v3.7."

When creating a custom field, users can control the conditions under which it may be displayed and edited within the NetBox user interface. The following choices are available for controlling the display of a custom field on an object:

* **Always** (default): The custom field is included when viewing an object.
Expand Down
Loading
Loading