Skip to content

Commit dfcfbe2

Browse files
Merge pull request #13614 from netbox-community/develop
Release v3.6.0
2 parents 0dbfbf6 + b040fdc commit dfcfbe2

File tree

587 files changed

+135239
-5985
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

587 files changed

+135239
-5985
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ body:
1414
attributes:
1515
label: NetBox version
1616
description: What version of NetBox are you currently running?
17-
placeholder: v3.5.9
17+
placeholder: v3.6.0
1818
validations:
1919
required: true
2020
- type: dropdown

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ body:
1414
attributes:
1515
label: NetBox version
1616
description: What version of NetBox are you currently running?
17-
placeholder: v3.5.9
17+
placeholder: v3.6.0
1818
validations:
1919
required: true
2020
- type: dropdown

base_requirements.txt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@
22
# https://github.com/mozilla/bleach/blob/main/CHANGES
33
bleach
44

5-
# Python client for Amazon AWS API
6-
# https://github.com/boto/boto3/blob/develop/CHANGELOG.rst
7-
boto3
8-
95
# The Python web framework on which NetBox is built
106
# https://docs.djangoproject.com/en/stable/releases/
11-
Django<4.2
7+
Django<5.0
128

139
# Django middleware which permits cross-domain API requests
1410
# https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst
@@ -74,10 +70,6 @@ drf-spectacular
7470
# https://github.com/tfranzel/drf-spectacular-sidecar
7571
drf-spectacular-sidecar
7672

77-
# Git client for file sync
78-
# https://github.com/jelmer/dulwich/releases
79-
dulwich
80-
8173
# RSS feed parser
8274
# https://github.com/kurtmckee/feedparser/blob/develop/CHANGELOG.rst
8375
feedparser
@@ -121,8 +113,8 @@ netaddr
121113
Pillow
122114

123115
# PostgreSQL database adapter for Python
124-
# https://www.psycopg.org/docs/news.html
125-
psycopg2-binary
116+
# https://github.com/psycopg/psycopg/blob/master/docs/news.rst
117+
psycopg[binary,pool]
126118

127119
# YAML rendering library
128120
# https://github.com/yaml/pyyaml/blob/master/CHANGES

docs/administration/permissions.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,13 @@ When defining a permission constraint, administrators may use the special token
6868

6969
The `$user` token can be used only as a constraint value, or as an item within a list of values. It cannot be modified or extended to reference specific user attributes.
7070

71+
### Default Permissions
7172

72-
#### Example Constraint Definitions
73+
!!! info "This feature was introduced in NetBox v3.6."
74+
75+
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.
76+
77+
### Example Constraint Definitions
7378

7479
| Constraints | Description |
7580
| ----------- | ----------- |

docs/administration/replicating-netbox.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pg_dump --username netbox --password --host localhost -s netbox > netbox_schema.
5454
By default, NetBox stores uploaded files (such as image attachments) in its media directory. To fully replicate an instance of NetBox, you'll need to copy both the database and the media files.
5555

5656
!!! note
57-
These operations are not necessary if your installation is utilizing a [remote storage backend](../../configuration/optional-settings/#storage_backend).
57+
These operations are not necessary if your installation is utilizing a [remote storage backend](../configuration/system.md#storage_backend).
5858

5959
### Archive the Media Directory
6060

docs/configuration/plugins.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Default: Empty
66

7-
A list of installed [NetBox plugins](../../plugins/) to enable. Plugins will not take effect unless they are listed here.
7+
A list of installed [NetBox plugins](../plugins/index.md) to enable. Plugins will not take effect unless they are listed here.
88

99
!!! warning
1010
Plugins extend NetBox by allowing external code to run with the same access and privileges as NetBox itself. Only install plugins from trusted sources. The NetBox maintainers make absolutely no guarantees about the integrity or security of your installation with plugins enabled.

docs/configuration/required-parameters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ ALLOWED_HOSTS = ['*']
2525

2626
## DATABASE
2727

28-
NetBox requires access to a PostgreSQL 11 or later database service to store data. This service can run locally on the NetBox server or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
28+
NetBox requires access to a PostgreSQL 12 or later database service to store data. This service can run locally on the NetBox server or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
2929

3030
* `NAME` - Database name
3131
* `USER` - PostgreSQL username

docs/configuration/security.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Default: True
66

7-
If disabled, the values of API tokens will not be displayed after each token's initial creation. A user **must** record the value of a token immediately upon its creation, or it will be lost. Note that this affects _all_ users, regardless of assigned permissions.
7+
If disabled, the values of API tokens will not be displayed after each token's initial creation. A user **must** record the value of a token prior to its creation, or it will be lost. Note that this affects _all_ users, regardless of assigned permissions.
88

99
---
1010

@@ -90,6 +90,38 @@ CSRF_TRUSTED_ORIGINS = (
9090

9191
---
9292

93+
## DEFAULT_PERMISSIONS
94+
95+
!!! info "This parameter was introduced in NetBox v3.6."
96+
97+
Default:
98+
99+
```python
100+
{
101+
'users.view_token': ({'user': '$user'},),
102+
'users.add_token': ({'user': '$user'},),
103+
'users.change_token': ({'user': '$user'},),
104+
'users.delete_token': ({'user': '$user'},),
105+
}
106+
```
107+
108+
This parameter defines object permissions that are applied automatically to _any_ authenticated user, regardless of what permissions have been defined in the database. By default, this parameter is defined to allow all users to manage their own API tokens, however it can be overriden for any purpose.
109+
110+
For example, to allow all users to create a device role beginning with the word "temp," you could configure the following:
111+
112+
```python
113+
DEFAULT_PERMISSIONS = {
114+
'dcim.add_devicerole': (
115+
{'name__startswith': 'temp'},
116+
)
117+
}
118+
```
119+
120+
!!! warning
121+
Setting a custom value for this parameter will overwrite the default permission mapping shown above. If you want to retain the default mapping, be sure to reproduce it in your custom configuration.
122+
123+
---
124+
93125
## EXEMPT_VIEW_PERMISSIONS
94126

95127
Default: Empty list

docs/customization/custom-fields.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ NetBox supports limited custom validation for custom field values. Following are
6060

6161
### Custom Selection Fields
6262

63-
Each custom selection field must have at least two choices. These are specified as a comma-separated list. Choices appear in forms in the order they are listed. Note that choice values are saved exactly as they appear, so it's best to avoid superfluous punctuation or symbols where possible.
63+
Each custom selection field must designate a [choice set](../models/extras/customfieldchoiceset.md) containing at least two choices. These are specified as a comma-separated list.
6464

6565
If a default value is specified for a selection field, it must exactly match one of the provided choices. The value of a multiple selection field will always return a list, even if only one value is selected.
6666

docs/customization/custom-scripts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ class NewBranchScript(Script):
390390
name=f'{site.slug}-switch{i}',
391391
site=site,
392392
status=DeviceStatusChoices.STATUS_PLANNED,
393-
device_role=switch_role
393+
role=switch_role
394394
)
395395
switch.full_clean()
396396
switch.save()

0 commit comments

Comments
 (0)