-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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 v3.0.0 #7069
Merged
Merged
Release v3.0.0 #7069
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Closes #834: Add support for IP ranges
…electors Fixes #7034: Update VLAN Scope parent selectors and run change handler on load
* Fixes #7035: Refactor APISelect query_param logic * Add filter_fields to extras.ObjectVar & fix default value handling * Update ObjectVar docs to reflect new filter_fields attribute * Revert changes from 89b7f3f * Maintain current `query_params` API for form fields, transform data structure in widget * Revert changes from d0208d4
v3.0 release prep
…ncies, update clipboard
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WARNING: Upgrading an existing NetBox deployment to version 3.0 must be done from version 2.11.0 or later. If attempting to upgrade a deployment of NetBox v2.10 or earlier, first upgrade to a NetBox v2.11 release, and then upgrade from v2.11 to v3.0. This will avoid any problems with the database migration optimizations implemented in version 3.0. (This is not necessary for new installations.)
Breaking Changes
invalidate
management command (which clears cached database queries) is no longer needed and has been removed (see #6639).caching_config
) has been removed from the plugins API (see #6639).cacheops_*
metrics have been removed from the Prometheus exporter (see #6639).display_field
keyword argument has been removed from custom script ObjectVar and MultiObjectVar fields. These widgets will use thedisplay
value provided by the REST API.display_name
field has been removed from all REST API serializers. (API clients should reference thedisplay
field instead.)?connected=True
filter applied.New Features
Updated User Interface (#5893)
The NetBox user interface has been completely overhauled with a fresh new look! Beyond the cosmetic improvements, this initiative has allowed us to modernize the entire front end, upgrading from Bootstrap 3 to Bootstrap 5, and eliminating dependencies on outdated libraries such as jQuery and jQuery-UI. The new user interface also features a dark mode option.
A huge thank you to NetBox maintainer Matt Love for his tremendous work on this!
GraphQL API (#2007)
A new GraphQL API has been added to complement NetBox's REST API. GraphQL allows the client to specify which fields of the available data to return in each request. NetBox's implementation, which employs Graphene, also includes a user-friendly query interface known as GraphiQL.
Here's an example GraphQL request:
And the response:
All GraphQL requests are made at the
/graphql
URL (which also serves the GraphiQL UI). The API is currently read-only, however users who wish to disable it until needed can do so by setting theGRAPHQL_ENABLED
configuration parameter to False. For more detail on NetBox's GraphQL implementation, see the GraphQL API documentation.IP Ranges (#834)
NetBox now supports modeling arbitrary IP ranges, which are defined by specifying a starting and ending IP address (e.g. to denote DHCP pools). Similar to prefixes, each IP range may optionally be assigned to a VRF and/or tenant, and can be assigned a functional role. An IP range must be assigned a status of active, reserved, or deprecated. The REST API implementation for this model also includes an "available IPs" endpoint which functions similarly to the endpoint for prefixes.
More information about IP ranges is available in the documentation.
Custom Model Validation (#5963)
This release introduces the
CUSTOM_VALIDATORS
configuration parameter, which allows administrators to map NetBox models to custom validator classes to enforce custom validation logic. For example, the following configuration requires every site to have a name of at least ten characters and a description:CustomValidator can also be subclassed to enforce more complex logic by overriding its
validate()
method. See the custom validation documentation for more details.SVG Cable Traces (#6000)
Cable trace diagrams are now rendered as atomic SVG images, similar to rack elevations. These images are embedded in the UI and can be easily downloaded for use outside NetBox. SVG images can also be generated directly through the REST API, by specifying SVG as the render format for the
trace
endpoint on a cable termination:The width of the rendered image in pixels may optionally be specified by appending the
&width=<width>
parameter to the request. The default width is 400px.New Views for Models Previously Under the Admin UI (#6466)
New UI views have been introduced to manage the following models:
These models were previously managed under the admin section of the UI. Moving them to dedicated views ensures a more consistent and convenient user experience.
REST API Token Provisioning (#5264)
The new REST API endpoint
/api/users/tokens/
has been added, which includes a child endpoint for provisioning new REST API tokens using a username and password. This allows a user to gain REST API access without needing to first create a token via the web UI.If the supplied credentials are valid, NetBox will create and return a new token for the user.
New Housekeeping Command (#6590)
A new management command has been added:
manage.py housekeeping
. This command is intended to be run nightly via a system cron job. It performs the following tasks:A convenience script for calling this command via an automated scheduler has been included at
/contrib/netbox-housekeeping.sh
. Please see the housekeeping documentation for further details.Custom Queue Support for Plugins (#6651)
NetBox uses Redis and Django-RQ for background task queuing. Whereas previous releases employed only a single default queue, NetBox now provides a high-, medium- (default), and low-priority queue for use by plugins. (These will also likely be used internally as new functionality is added in future releases.)
Plugins can also now create their own custom queues by defining a
queues
list within their PluginConfig class:Note that NetBox's
rqworker
process will not service custom queues by default, since it has no way to infer the priority of each queue. Plugin authors should be diligent in including instructions for proper worker configuration in their plugin's documentation.Enhancements
color
field to front and rear portsBug Fixes (from v3.2-beta2)
Other Changes
display_field
argument on ObjectVarConfiguration Changes
CACHE_TIMEOUT
configuration parameter has been removed.RELEASE_CHECK_TIMEOUT
configuration parameter has been removed.REST API Changes
/api/secrets/generate-rsa-key-pair/
/api/secrets/get-session-key/
/api/secrets/secrets/
/api/secrets/secret-roles/
/api/dcim/console-connections/
/api/dcim/power-connections/
/api/dcim/interface-connections/
/api/ipam/ip-ranges/
endpoint/api/users/tokens/
endpointprovision/
child endpoint can be used to provision new REST API tokens by supplying a valid username and passwordlength
is now a decimal valuedisplay_name
attribute (usedisplay
instead)display_name
attribute (usedisplay
instead)color
fieldcolor
fielddisplay_name
attribute (usedisplay
instead)color
fieldcolor
fieldlatitude
andlongitude
are now decimal fields rather than stringsdisplay_name
attribute (usedisplay
instead)mark_utilized
boolean fielddisplay_name
attribute (usedisplay
instead)display_name
attribute (usedisplay
instead)vcpus
is now a decimal field rather than a string