[PR #7986] [MERGED] Release v3.1.0 #13307

Closed
opened 2025-12-29 22:26:40 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/netbox-community/netbox/pull/7986
Author: @jeremystretch
Created: 12/6/2021
Status: Merged
Merged: 12/6/2021
Merged by: @jeremystretch

Base: masterHead: develop


📝 Commits (10+)

  • 86aed4e Closes #7318: Raise minimum required PostgreSQL version from 9.6 to 10
  • 9c8432c Merge branch 'develop' into feature
  • ca59cd1 Merge branch 'develop' into feature
  • 6463fd9 Merge branch 'develop' into feature
  • 18c3bb6 Closes #1337: Add WWN field to interfaces
  • 5a6190e Closes #6874: Add tenant assignment for locations
  • 3e7922e Merge branch 'develop' into feature
  • 8e1535f Add RF channel fields to Interface
  • 8b80b0c Introduce the wireless app and SSID model
  • 38f6d22 Enable attachment of wireless interfaces to SSIDs

📊 Changes

380 files changed (+12985 additions, -3058 deletions)

View changed files

📝 .github/ISSUE_TEMPLATE/bug_report.yaml (+1 -1)
📝 .github/ISSUE_TEMPLATE/feature_request.yaml (+1 -1)
📝 base_requirements.txt (+8 -0)
📝 docs/additional-features/napalm.md (+1 -1)
docs/administration/authentication.md (+37 -0)
📝 docs/administration/permissions.md (+1 -1)
docs/configuration/dynamic-settings.md (+180 -0)
📝 docs/configuration/index.md (+7 -3)
📝 docs/configuration/optional-settings.md (+0 -277)
docs/configuration/remote-authentication.md (+110 -0)
📝 docs/configuration/required-settings.md (+1 -1)
docs/core-functionality/contacts.md (+5 -0)
📝 docs/core-functionality/ipam.md (+8 -0)
docs/core-functionality/wireless.md (+8 -0)
📝 docs/customization/custom-validation.md (+61 -29)
📝 docs/development/models.md (+10 -2)
📝 docs/index.md (+1 -1)
📝 docs/installation/1-postgresql.md (+9 -3)
📝 docs/installation/2-redis.md (+7 -1)
📝 docs/installation/3-netbox.md (+8 -8)

...and 80 more files

📄 Description

Breaking Changes

  • NetBox v3.1 requires PostgreSQL 10 or later.
  • The tenant and tenant_id filters for the Cable model now filter on the tenant assigned directly to each cable, rather than on the parent object of either termination.
  • The cable_peer and cable_peer_type attributes of cable termination models have been renamed to link_peer and link_peer_type, respectively, to accommodate wireless links between interfaces.
  • Exported webhooks and custom fields now reference associated content types by raw string value (e.g. "dcim.site") rather than by human-friendly name.
  • The 128GFC interface type has been corrected from 128gfc-sfp28 to 128gfc-qsfp28.

New Features

Contact Objects (#1344)

A set of new models for tracking contact information has been introduced within the tenancy app. Users may now create individual contact objects to be associated with various models within NetBox. Each contact has a name, title, email address, etc. Contacts can be arranged in hierarchical groups for ease of management.

When assigning a contact to an object, the user must select a predefined role (e.g. "billing" or "technical") and may optionally indicate a priority relative to other contacts associated with the object. There is no limit on how many contacts can be assigned to an object, nor on how many objects to which a contact can be assigned.

Wireless Networks (#3979)

This release introduces two new models to represent wireless networks:

  • Wireless LAN - A multi-access wireless segment to which any number of wireless interfaces may be attached
  • Wireless Link - A point-to-point connection between exactly two wireless interfaces

Both types of connection include SSID and authentication attributes. Additionally, the interface model has been extended to include several attributes pertinent to wireless operation:

  • Wireless role - Access point or station
  • Channel - A predefined channel within a standardized band
  • Channel frequency & width - Customizable channel attributes (e.g. for licensed bands)

Dynamic Configuration Updates (#5883)

Some parameters of NetBox's configuration are now accessible via the admin UI. These parameters can be modified by an administrator and take effect immediately upon application: There is no need to restart NetBox. Additionally, each iteration of the dynamic configuration is preserved in the database, and can be restored by an administrator at any time.

Dynamic configuration parameters may also still be defined within configuration.py, and the settings defined here take precedence over those defined via the user interface.

For a complete list of supported parameters, please see the dynamic configuration documentation.

First Hop Redundancy Protocol (FHRP) Groups (#6235)

A new FHRP group model has been introduced to aid in modeling the configurations of protocols such as HSRP, VRRP, and GLBP. Each FHRP group may be assigned one or more virtual IP addresses, as well as an authentication type and key. Member device and VM interfaces may be associated with one or more FHRP groups, with each assignment receiving a numeric priority designation.

Conditional Webhooks (#6238)

Webhooks now include a conditions field, which may be used to specify conditions under which a webhook triggers. For example, you may wish to generate outgoing requests for a device webhook only when its status is "active" or "staged". This can be done by declaring conditional logic in JSON:

{
  "attr": "status.value",
  "op": "in",
  "value": ["active", "staged"]
}

Multiple conditions may be nested using AND/OR logic as well. For more information, please see the conditional logic documentation.

Interface Bridging (#6346)

A bridge field has been added to the interface model for devices and virtual machines. This can be set to reference another interface on the same parent device/VM to indicate a direct layer two bridging adjacency. Additionally, "bridge" has been added as an interface type. (However, interfaces of any type may be designated as bridged.)

Multiple interfaces can be bridged to a single virtual interface to effect a bridge group. Alternatively, two physical interfaces can be bridged to one another, to effect an internal cross-connect.

Multiple ASNs per Site (#6732)

With the introduction of the new ASN model, NetBox now supports the assignment of multiple ASNs per site. Each ASN instance must have a 32-bit AS number, and may optionally be assigned to a RIR and/or Tenant.

The asn integer field on the site model has been preserved to maintain backward compatability until a later release.

Single Sign-On (SSO) Authentication (#7649)

Support for single sign-on (SSO) authentication has been added via the python-social-auth library. NetBox administrators can configure one of the supported authentication backends to enable SSO authentication for users.

Enhancements

  • #1337 - Add WWN field to interfaces
  • #1943 - Relax uniqueness constraint on cluster names
  • #3839 - Add airflow field for devices types and devices
  • #5143 - Include a device's asset tag in its display value
  • #6497 - Extend tag support to organizational models
  • #6615 - Add filter lookups for custom fields
  • #6711 - Add longtext custom field type with Markdown support
  • #6715 - Add tenant assignment for cables
  • #6874 - Add tenant assignment for locations
  • #7354 - Relax uniqueness constraints on region, site group, and location names
  • #7452 - Add json custom field type
  • #7530 - Move device type component lists to separate views
  • #7606 - Model transmit power for interfaces
  • #7619 - Permit custom validation rules to be defined as plain data or dotted path to class
  • #7761 - Extend cable tracing across bridged interfaces
  • #7812 - Enable change logging for image attachments
  • #7858 - Standardize the representation of content types across import & export functions

Bug Fixes

  • #7589 - Correct 128GFC interface type identifier

Other Changes

  • #7318 - Raise minimum required PostgreSQL version from 9.6 to 10

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/netbox-community/netbox/pull/7986 **Author:** [@jeremystretch](https://github.com/jeremystretch) **Created:** 12/6/2021 **Status:** ✅ Merged **Merged:** 12/6/2021 **Merged by:** [@jeremystretch](https://github.com/jeremystretch) **Base:** `master` ← **Head:** `develop` --- ### 📝 Commits (10+) - [`86aed4e`](https://github.com/netbox-community/netbox/commit/86aed4e0732a1a61bff5af943b581b58e26e541d) Closes #7318: Raise minimum required PostgreSQL version from 9.6 to 10 - [`9c8432c`](https://github.com/netbox-community/netbox/commit/9c8432cf13170e5d7c484e565f17043cdb0ec1c8) Merge branch 'develop' into feature - [`ca59cd1`](https://github.com/netbox-community/netbox/commit/ca59cd1eb899d317bae8ba27296cb6060f36d555) Merge branch 'develop' into feature - [`6463fd9`](https://github.com/netbox-community/netbox/commit/6463fd902c8f6f3ede9db4c1582427f7cfea1519) Merge branch 'develop' into feature - [`18c3bb6`](https://github.com/netbox-community/netbox/commit/18c3bb673f762ec92e96ce75c0d21b2e98664348) Closes #1337: Add WWN field to interfaces - [`5a6190e`](https://github.com/netbox-community/netbox/commit/5a6190e321e9494d458fa7d4fa56520b5d50ed17) Closes #6874: Add tenant assignment for locations - [`3e7922e`](https://github.com/netbox-community/netbox/commit/3e7922e41eed088486119c68ef0ad843ee2fb6e7) Merge branch 'develop' into feature - [`8e1535f`](https://github.com/netbox-community/netbox/commit/8e1535f7ecba14aa9259b0ad62f0eabeccc12d82) Add RF channel fields to Interface - [`8b80b0c`](https://github.com/netbox-community/netbox/commit/8b80b0c3df451a894c1286f7afdbb5cd940b8f61) Introduce the wireless app and SSID model - [`38f6d22`](https://github.com/netbox-community/netbox/commit/38f6d22d2d7ac412efa9b50ef4f598d17726e0a9) Enable attachment of wireless interfaces to SSIDs ### 📊 Changes **380 files changed** (+12985 additions, -3058 deletions) <details> <summary>View changed files</summary> 📝 `.github/ISSUE_TEMPLATE/bug_report.yaml` (+1 -1) 📝 `.github/ISSUE_TEMPLATE/feature_request.yaml` (+1 -1) 📝 `base_requirements.txt` (+8 -0) 📝 `docs/additional-features/napalm.md` (+1 -1) ➕ `docs/administration/authentication.md` (+37 -0) 📝 `docs/administration/permissions.md` (+1 -1) ➕ `docs/configuration/dynamic-settings.md` (+180 -0) 📝 `docs/configuration/index.md` (+7 -3) 📝 `docs/configuration/optional-settings.md` (+0 -277) ➕ `docs/configuration/remote-authentication.md` (+110 -0) 📝 `docs/configuration/required-settings.md` (+1 -1) ➕ `docs/core-functionality/contacts.md` (+5 -0) 📝 `docs/core-functionality/ipam.md` (+8 -0) ➕ `docs/core-functionality/wireless.md` (+8 -0) 📝 `docs/customization/custom-validation.md` (+61 -29) 📝 `docs/development/models.md` (+10 -2) 📝 `docs/index.md` (+1 -1) 📝 `docs/installation/1-postgresql.md` (+9 -3) 📝 `docs/installation/2-redis.md` (+7 -1) 📝 `docs/installation/3-netbox.md` (+8 -8) _...and 80 more files_ </details> ### 📄 Description ### Breaking Changes * NetBox v3.1 requires PostgreSQL 10 or later. * The `tenant` and `tenant_id` filters for the Cable model now filter on the tenant assigned directly to each cable, rather than on the parent object of either termination. * The `cable_peer` and `cable_peer_type` attributes of cable termination models have been renamed to `link_peer` and `link_peer_type`, respectively, to accommodate wireless links between interfaces. * Exported webhooks and custom fields now reference associated content types by raw string value (e.g. "dcim.site") rather than by human-friendly name. * The 128GFC interface type has been corrected from `128gfc-sfp28` to `128gfc-qsfp28`. ### New Features #### Contact Objects ([#1344](https://github.com/netbox-community/netbox/issues/1344)) A set of new models for tracking contact information has been introduced within the tenancy app. Users may now create individual contact objects to be associated with various models within NetBox. Each contact has a name, title, email address, etc. Contacts can be arranged in hierarchical groups for ease of management. When assigning a contact to an object, the user must select a predefined role (e.g. "billing" or "technical") and may optionally indicate a priority relative to other contacts associated with the object. There is no limit on how many contacts can be assigned to an object, nor on how many objects to which a contact can be assigned. #### Wireless Networks ([#3979](https://github.com/netbox-community/netbox/issues/3979)) This release introduces two new models to represent wireless networks: * Wireless LAN - A multi-access wireless segment to which any number of wireless interfaces may be attached * Wireless Link - A point-to-point connection between exactly two wireless interfaces Both types of connection include SSID and authentication attributes. Additionally, the interface model has been extended to include several attributes pertinent to wireless operation: * Wireless role - Access point or station * Channel - A predefined channel within a standardized band * Channel frequency & width - Customizable channel attributes (e.g. for licensed bands) #### Dynamic Configuration Updates ([#5883](https://github.com/netbox-community/netbox/issues/5883)) Some parameters of NetBox's configuration are now accessible via the admin UI. These parameters can be modified by an administrator and take effect immediately upon application: There is no need to restart NetBox. Additionally, each iteration of the dynamic configuration is preserved in the database, and can be restored by an administrator at any time. Dynamic configuration parameters may also still be defined within `configuration.py`, and the settings defined here take precedence over those defined via the user interface. For a complete list of supported parameters, please see the [dynamic configuration documentation](../configuration/dynamic-settings.md). #### First Hop Redundancy Protocol (FHRP) Groups ([#6235](https://github.com/netbox-community/netbox/issues/6235)) A new FHRP group model has been introduced to aid in modeling the configurations of protocols such as HSRP, VRRP, and GLBP. Each FHRP group may be assigned one or more virtual IP addresses, as well as an authentication type and key. Member device and VM interfaces may be associated with one or more FHRP groups, with each assignment receiving a numeric priority designation. #### Conditional Webhooks ([#6238](https://github.com/netbox-community/netbox/issues/6238)) Webhooks now include a `conditions` field, which may be used to specify conditions under which a webhook triggers. For example, you may wish to generate outgoing requests for a device webhook only when its status is "active" or "staged". This can be done by declaring conditional logic in JSON: ```json { "attr": "status.value", "op": "in", "value": ["active", "staged"] } ``` Multiple conditions may be nested using AND/OR logic as well. For more information, please see the [conditional logic documentation](../reference/conditions.md). #### Interface Bridging ([#6346](https://github.com/netbox-community/netbox/issues/6346)) A `bridge` field has been added to the interface model for devices and virtual machines. This can be set to reference another interface on the same parent device/VM to indicate a direct layer two bridging adjacency. Additionally, "bridge" has been added as an interface type. (However, interfaces of any type may be designated as bridged.) Multiple interfaces can be bridged to a single virtual interface to effect a bridge group. Alternatively, two physical interfaces can be bridged to one another, to effect an internal cross-connect. #### Multiple ASNs per Site ([#6732](https://github.com/netbox-community/netbox/issues/6732)) With the introduction of the new ASN model, NetBox now supports the assignment of multiple ASNs per site. Each ASN instance must have a 32-bit AS number, and may optionally be assigned to a RIR and/or Tenant. The `asn` integer field on the site model has been preserved to maintain backward compatability until a later release. #### Single Sign-On (SSO) Authentication ([#7649](https://github.com/netbox-community/netbox/issues/7649)) Support for single sign-on (SSO) authentication has been added via the [python-social-auth](https://github.com/python-social-auth) library. NetBox administrators can configure one of the [supported authentication backends](https://python-social-auth.readthedocs.io/en/latest/intro.html#auth-providers) to enable SSO authentication for users. ### Enhancements * [#1337](https://github.com/netbox-community/netbox/issues/1337) - Add WWN field to interfaces * [#1943](https://github.com/netbox-community/netbox/issues/1943) - Relax uniqueness constraint on cluster names * [#3839](https://github.com/netbox-community/netbox/issues/3839) - Add `airflow` field for devices types and devices * [#5143](https://github.com/netbox-community/netbox/issues/5143) - Include a device's asset tag in its display value * [#6497](https://github.com/netbox-community/netbox/issues/6497) - Extend tag support to organizational models * [#6615](https://github.com/netbox-community/netbox/issues/6615) - Add filter lookups for custom fields * [#6711](https://github.com/netbox-community/netbox/issues/6711) - Add `longtext` custom field type with Markdown support * [#6715](https://github.com/netbox-community/netbox/issues/6715) - Add tenant assignment for cables * [#6874](https://github.com/netbox-community/netbox/issues/6874) - Add tenant assignment for locations * [#7354](https://github.com/netbox-community/netbox/issues/7354) - Relax uniqueness constraints on region, site group, and location names * [#7452](https://github.com/netbox-community/netbox/issues/7452) - Add `json` custom field type * [#7530](https://github.com/netbox-community/netbox/issues/7530) - Move device type component lists to separate views * [#7606](https://github.com/netbox-community/netbox/issues/7606) - Model transmit power for interfaces * [#7619](https://github.com/netbox-community/netbox/issues/7619) - Permit custom validation rules to be defined as plain data or dotted path to class * [#7761](https://github.com/netbox-community/netbox/issues/7761) - Extend cable tracing across bridged interfaces * [#7812](https://github.com/netbox-community/netbox/issues/7812) - Enable change logging for image attachments * [#7858](https://github.com/netbox-community/netbox/issues/7858) - Standardize the representation of content types across import & export functions ### Bug Fixes * [#7589](https://github.com/netbox-community/netbox/issues/7589) - Correct 128GFC interface type identifier ### Other Changes * [#7318](https://github.com/netbox-community/netbox/issues/7318) - Raise minimum required PostgreSQL version from 9.6 to 10 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-29 22:26:40 +01:00
adam closed this issue 2025-12-29 22:26:40 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#13307