!!! warning "PostgreSQL 10 Required"
NetBox v3.1 requires PostgreSQL 10 or later.
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.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.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.
This release introduces two new models to represent wireless networks:
Both types of connection include SSID and authentication attributes. Additionally, the interface model has been extended to include several attributes pertinent to wireless operation:
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.
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",
"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.
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.
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.
airflow field for devices types and deviceslongtext custom field type with Markdown supportjson custom field type/api/tenancy/contact-assignments//api/tenancy/contact-groups//api/tenancy/contact-roles//api/tenancy/contacts//api/wireless/wireless-lans//api/wireless/wireless-lan-groups//api/wireless/wireless-links/tags field to the following models:
tenant fieldairflow fieldairflow fieldbridge fieldrf_role fieldrf_channel fieldrf_channel_frequency fieldrf_chanel_width fieldtx_power fieldwwn fieldcable_peer has been renamed to link_peercable_peer_type has been renamed to link_peer_typetenant fieldconditions fieldbridge field