You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Applications can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see Application Registry for more details.
Computed fields offers users the ability to create read-only custom fields using existing data already stored in the database. Users define Jinja2 templates that populate the value of these fields. Computed fields are available on all data models that currently support custom fields.
While config contexts allow for arbitrary data structures to be stored within Nautobot, at scale it is desirable to apply validation constraints to that data to ensure its consistency and to avoid data entry errors. To service this need, Nautobot supports optionally backing config contexts with JSON Schemas for validation. These schema are managed via the config context schema model and are optionally linked to config context instances, in addition to devices and virtual machines for the purpose of validating their local context data. Please see the docs for more details.
GraphQL ORM Functions
Two new GraphQL utility functions have been added to allow easy access to the GraphQL system from source code. Both can be accessed by using from nautobot.core.graphql import execute_saved_query, execute_query.
execute_query(): Runs string as a query against GraphQL.
execute_saved_query(): Execute a saved query from Nautobot database.
MySQL 8.x is now fully supported as a database backend!
The installation and configuration guides have been revised to include MySQL. If you prefer MySQL or it is more easily supported in your environment, configuring Nautobot to use MySQL is as easy as changing value of ENGINE in your DATABASES setting to point to django.db.backends.mysql and installing the MySQL Python driver using pip3 install nautobot[mysql].
!!! note
You will not be able to directly migrate your data from PostgreSQL to MySQL. A fresh start is required.
A new NAUTOBOT_DB_ENGINE environment variable has been added to allow for specifying the desired database engine at runtime without needing to modify your nautobot_config.py. Please see the configuration guide on DATABASES for more details on how to configure Nautobot to use MySQL.
Please see the MySQL setup guides for Ubuntu and CentOS to get started.
Plugins can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see Application Registry for more details.
Jobs may be optionally marked as read only by setting the read_only = True meta attribute. This prevents the job from making any changes to nautobot data and suppresses certain log messages. Read only jobs can be a great way to safely develop new jobs, and for working with reporting use cases. Please see the Jobs documentation for more details.
Saved GraphQL queries offers a new model where reusable queries can be stored in Nautobot. New views for managing saved queries are available; additionally, the GraphiQL interface has been augmented to allow populating the interface from a saved query, editing and saving new queries.
Saved queries can easily be imported into the GraphiQL interface by using the new navigation tab located on the right side of the navbar. Inside the new tab are also buttons for editing and saving queries directly into Nautobot's databases.
Celery has been introduced to eventually replace RQ for executing background tasks within Nautobot. All core usage of RQ has been migrated to use Celery.
Prior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now deprecated. RQ and the @job decorator for custom tasks are still supported for now, but will no longer be documented, and support for RQ will be removed in a future release.
RQ support for custom tasks was not removed in order to give plugin authors time to migrate, however, to continue to utilize advanced Nautobot features such as Git repository synchronization, webhooks, jobs, etc. you must migrate your nautobot-worker deployment from RQ to Celery.
Please see the section on migrating to Celery from RQ for more information on how to easily migrate your deployment.
v1.1.0 (2021-07-20)
Added
#372 - Added support for displaying custom fields in tables used in object list views
#620 - Config context schemas can now be managed via Git repositories.
Changed
#675 - Update MySQL unicode settings docs to be more visible
#684 - Renamed ?opt_in_fields= query param to ?include=
#691 - Clarify documentation on RQ to Celery worker migration and running both workers in parallel to help ease migration
#692 - Clarify plugin development docs on naming of file for custom Jinja2 filters
#697 - Added CELERY_TASK_SOFT_TIME_LIMIT to settings.py and lowered the default CELERY_TASK_TIME_LIMIT configuration.
Fixed
#363 - Fixed using S3 django-storages backend requires USE_TZ=False
#466 - Fixed improper GraphQL schema generation on fields that can be blank but not null (such as Interface.mode)
#663 - Fixed kombu.exceptions.EncodeError when trying to execute Jobs using (Multi)ObjectVar objects with nested relationships
#672 - Fixed inheritance of Celery broker/results URL settings for dev/template configs (they can now be defined using Redis env. vars)
#680 - Removed unnecessary warning message when both RQ and Celery workers are present
#686 - Fixed incorrect permission name for Tags list view in nav menu
#690 - Fixed Jinja2 dependency version to remain backwards-compatible with Nautobot 1.0.x
#696 - Fixed inheritance of VRF and Tenant assignment when creating an IPAddress or Prefix under a parent Prefix. (Port of NetBox #5703 and NetBox #6012)
#698 - Fixed cloning of a computed field object to now carry over required non-unique fields
#699 - Exceptions such as TypeError are now caught and handled correctly when rendering a computed field.
#702 - GraphiQL view no longer requires internet access to load libraries.
#703 - Fixed direct execution of saved GraphQL queries containing double quotes
#705 - Fixed missing description field from detail view for computed fields
Security
#717 - Bump Pillow from 8.1.2 to 8.2.0 to address numerous critical CVE advisories
v1.1.0b2 (2021-07-09)
Added
#599 - Custom fields are now supported on JobResult objects
#637 - Implemented a nautobot-server fix_custom_fields command to manually purge stale custom field data
Changed
#634 - Documentation on plugin capabilities has been clarified.
Fixed
#495 - Fixed search for partial IPv4 prefixes/aggregates not finding all matching objects
#533 - Custom field tasks are now run atomically to avoid stale field data from being saved on objects.
#554 - Fixed search for partial IPv6 prefixes/aggregates not finding all matching objects
#569 - Change minimum/maximum allowed values for integer type in Custom Fields to 64-bit BigIntegerField types (64-bit)
#600 - The invoke migrate step is now included in the development getting started guide for Docker workflows
#617 - Added extra comments to uwsgi.ini config to help with load balancer deployments in Nautobot services documentation
#626 - Added prefix NAUTOBOT_ in override.env example inside of docker-entrypoint.sh
#645 - Updated services troubleshooting docs to include "incorrect string value" fix when using Unicode emojis with MySQL as a database backend
#653 - Fixed systemd unit file for nautobot-worker to correctly start/stop/restart
#661 - Fixed computed_fields key not being included in API response for devices when using include (for opt-in fields)
#667 - Fixed various outdated/incorrect places in the documentation for v1.1.0 release.
v1.1.0b1 (2021-07-02)
Added
#3 - GraphQL queries can now be saved for later execution
#10 - Added a new "Getting Started in the Web UI" section to the documentation to help new users begin learning how to use Nautobot.
#17 - MySQL 8.x is now fully supported as a database backend
#274 - Added config context schemas to optionally validate config and local context data against JSON Schemas
#297 - Added an anonymous health-checking endpoint at /health/using, also introducing a nautobot-server health_check command.
#485 - Applications can define navbar properties through navigation.py
#557 - Prefix records can now be created using /32 (IPv4) and /128 (IPv6) networks. (Port of NetBox #6545)
#561 - Added autodetection of mime_type on export_templates provided by Git datasources
#636 - Added custom fields to JobResult model, with minor changes to job result detail page
Changed
#431 - ConfigContext and ExportTemplate records now must have unique name values. This was always the case in NetBox, but was inadvertently un-enforced in earlier versions of Nautobot.
Fixed
#460 - Deleting a record now deletes any associated RelationshipAssociation records
#494 - Objects with status fields now emit limited choices correctly when performing OPTIONS metadata API requests
#602 - Fixed incorrect requirement to install toml Python library before running invoke tasks
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Nautobot v1.1
This document describes all new features and changes in Nautobot 1.1.
If you are a user migrating from NetBox to Nautobot, please refer to the "Migrating from NetBox" documentation.
Release Overview
Added
App Defined Navigation (#12)
Applications can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see Application Registry for more details.
Computed Fields (#4)
Computed fields offers users the ability to create read-only custom fields using existing data already stored in the database. Users define Jinja2 templates that populate the value of these fields. Computed fields are available on all data models that currently support custom fields.
Config Context Schemas (#274)
While config contexts allow for arbitrary data structures to be stored within Nautobot, at scale it is desirable to apply validation constraints to that data to ensure its consistency and to avoid data entry errors. To service this need, Nautobot supports optionally backing config contexts with JSON Schemas for validation. These schema are managed via the config context schema model and are optionally linked to config context instances, in addition to devices and virtual machines for the purpose of validating their local context data. Please see the docs for more details.
GraphQL ORM Functions
Two new GraphQL utility functions have been added to allow easy access to the GraphQL system from source code. Both can be accessed by using
from nautobot.core.graphql import execute_saved_query, execute_query
.execute_query()
: Runs string as a query against GraphQL.execute_saved_query()
: Execute a saved query from Nautobot database.MySQL Database Support (#17)
MySQL 8.x is now fully supported as a database backend!
The installation and configuration guides have been revised to include MySQL. If you prefer MySQL or it is more easily supported in your environment, configuring Nautobot to use MySQL is as easy as changing value of
ENGINE
in yourDATABASES
setting to point todjango.db.backends.mysql
and installing the MySQL Python driver usingpip3 install nautobot[mysql]
.!!! note
You will not be able to directly migrate your data from PostgreSQL to MySQL. A fresh start is required.
A new
NAUTOBOT_DB_ENGINE
environment variable has been added to allow for specifying the desired database engine at runtime without needing to modify yournautobot_config.py
. Please see the configuration guide onDATABASES
for more details on how to configure Nautobot to use MySQL.Please see the MySQL setup guides for Ubuntu and CentOS to get started.
Plugin Defined Navigation (#12)
Plugins can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see Application Registry for more details.
Read Only Jobs (#200)
Jobs may be optionally marked as read only by setting the
read_only = True
meta attribute. This prevents the job from making any changes to nautobot data and suppresses certain log messages. Read only jobs can be a great way to safely develop new jobs, and for working with reporting use cases. Please see the Jobs documentation for more details.Saved GraphQL Queries (#3)
Saved GraphQL queries offers a new model where reusable queries can be stored in Nautobot. New views for managing saved queries are available; additionally, the GraphiQL interface has been augmented to allow populating the interface from a saved query, editing and saving new queries.
Saved queries can easily be imported into the GraphiQL interface by using the new navigation tab located on the right side of the navbar. Inside the new tab are also buttons for editing and saving queries directly into Nautobot's databases.
Changed
Background Tasks now use Celery (#223)
Celery has been introduced to eventually replace RQ for executing background tasks within Nautobot. All core usage of RQ has been migrated to use Celery.
Prior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now deprecated. RQ and the
@job
decorator for custom tasks are still supported for now, but will no longer be documented, and support for RQ will be removed in a future release.RQ support for custom tasks was not removed in order to give plugin authors time to migrate, however, to continue to utilize advanced Nautobot features such as Git repository synchronization, webhooks, jobs, etc. you must migrate your
nautobot-worker
deployment from RQ to Celery.Please see the section on migrating to Celery from RQ for more information on how to easily migrate your deployment.
v1.1.0 (2021-07-20)
Added
Changed
?opt_in_fields=
query param to?include=
CELERY_TASK_SOFT_TIME_LIMIT
tosettings.py
and lowered the defaultCELERY_TASK_TIME_LIMIT
configuration.Fixed
USE_TZ=False
Interface.mode
)kombu.exceptions.EncodeError
when trying to execute Jobs using(Multi)ObjectVar
objects with nested relationshipsSecurity
v1.1.0b2 (2021-07-09)
Added
JobResult
objectsnautobot-server fix_custom_fields
command to manually purge stale custom field dataChanged
Fixed
BigIntegerField
types (64-bit)invoke migrate
step is now included in the development getting started guide for Docker workflowsuwsgi.ini
config to help with load balancer deployments in Nautobot services documentationNAUTOBOT_
inoverride.env
example inside ofdocker-entrypoint.sh
nautobot-worker
to correctly start/stop/restartcomputed_fields
key not being included in API response for devices when usinginclude
(for opt-in fields)v1.1.0b1 (2021-07-02)
Added
/health/
using, also introducing anautobot-server health_check
command.navigation.py
Prefix
records can now be created using /32 (IPv4) and /128 (IPv6) networks. (Port of NetBox #6545)mime_type
onexport_templates
provided by Git datasourcesJobResult
model, with minor changes to job result detail pageChanged
ConfigContext
andExportTemplate
records now must have uniquename
values. This was always the case in NetBox, but was inadvertently un-enforced in earlier versions of Nautobot.Fixed
RelationshipAssociation
recordsstatus
fields now emit limited choices correctly when performingOPTIONS
metadata API requeststoml
Python library before runninginvoke
tasksThis discussion was created from the release v1.1.0 - 2021-07-20.
Beta Was this translation helpful? Give feedback.
All reactions