!!! warning "PostgreSQL 11 Required"
NetBox v3.4 requires PostgreSQL 11 or later.
asn, noc_contact, admin_contact, and portal_url fields have been removed from the provider model. Please replicate any data remaining in these fields to the ASN and contact models introduced in NetBox v3.1 prior to upgrading.content_type fields on the CustomLink and ExportTemplate models have been renamed to content_types and now support the assignment of multiple content types per object.cf property on an object with custom fields now returns deserialized values. For example, a custom field referencing an object will return the object instance rather than its numeric ID. To access the raw serialized values, reference the object's custom_field_data attribute instead.NetBoxModelCSVForm class has been renamed to NetBoxModelImportForm. Backward compatability with the previous name has been retained for this release, but will be dropped in NetBox v3.5.NetBox's global search functionality has been completely overhauled and replaced by a new cache-based lookup. This new implementation provides a much faster, more intelligent search capability. Results are returned in order of precedence regardless of object type, and matching field values are highlighted in the results. Additionally, custom field values are now included in global search results (where enabled). Plugins can also register their own models with the new global search engine.
A new model representing virtual device contexts (VDCs) has been added. VDCs are logical partitions of resources within a device that can be managed independently. A VDC is created within a device and may have device interfaces assigned to it. An interface can be allocated to any number of VDCs on its device.
Object lists can be filtered by a variety of different fields and characteristics. Applied filters can now be saved for reuse. For example, the query string
?status=active®ion_id=12&tenant=acme
can be saved and applied to future queries as
?filter=my-custom-filter
Saved filters can be kept private, or shared among NetBox users. They can be applied to both UI and REST API searches.
NetBox's bulk import feature, which was previously limited to CSV-formatted data for most types of objects, has been extended to accept data formatted in JSON or YAML as well. This enables users to directly import objects from a variety of sources without needing to first convert data to CSV. NetBox will attempt to automatically determine the format of import data if not specified by the user.
NetBox's CSV-based bulk import functionality has been extended to support also modifying existing objects. When an id column is present in the import form, it will be used to infer the object to be modified, rather than a new object being created. All fields (columns) are optional when modifying existing objects.
Reports and custom scripts can now be scheduled for execution at a desired future time. Background scheduling is handled entirely by the existing RQ workers; there is no need to configure additional tasks to support scheduled jobs. When creating a scheduled job, the user may optionally specify an interval at which the job will run repeatedly (e.g. every 24 hours).
This release introduces a new programmatic API that enables plugins and custom scripts to prepare changes in NetBox without actually committing them to the active database. To stage changes, create and activate a branch using the checkout() context manager. Any changes made within this context will be captured, recorded, and rolled back for future use. Once ready, a branch can be applied to the active database by calling merge().
!!! danger "Experimental Feature"
This feature is still under active development and considered experimental in nature. Its use in production is strongly discouraged at this time.
ALLOW_TOKEN_RETRIEVAL config parameter to restrict the display of API tokenslink_peers field to GraphQL types for cabled objectsweight field to racks, device types, and module typesassigned_object field to GraphQL type for IP addresses and L2VPN terminationsmounting_depth field to rack modelname field for FHRP groupsstatus field for modulesdescription and comments fields on all primary modelsdisplay field in all GraphQL object typesmax_weight field to track maximum load capacity for racksstatus field to WirelessLANQUEUE_MAPPINGS configuration parameter to allow customization of background task prioritizationNoReverseMatch exception when rendering tabs with no registered URLlist_buttons() methodSearchIndexdjango_apps attributedocs_url property to determine link to model documentationclone() method from NetBoxModel to CloningMixinget_plugin_config() utility functionget_queryset() method on generic viewscf attribute on objects now returns deserialized custom field datapost_save signal when creating device components in bulkimport_object() function/api/dcim/virtual-device-contexts/ endpointasn, noc_contact, admin_contact, and portal_url fieldsdescription fielddescription and comments fieldsdescription fielddescription, weight, and weight_unit fieldsdescription fieldvdcs fieldstatus fielddescription, weight, and weight_unit fieldsdescription fielddescription and comments fieldsdescription, mounting_depth, weight, max_weight, and weight_unit fieldscomments fielddescription and comments fieldssearch_weight fieldcontent_type field to content_typescontent_type field to content_typesinterval, scheduled, and started fieldscomments fieldcomments fieldname and comments fieldscomments fieldcomments fieldcomments fieldcomments fieldcomments fieldcomments fieldcomments fieldcomments fieldcomments fielddescription fielddescription fielddescription fieldstatus choice fieldcomments fieldcomments fielddisplay fieldlink_peers fieldcontacts relationship for all relevant modelstermination fieldcomponent fieldcomponent fieldmounting_depth fieldinterface fieldassigned_object fieldassigned_object fieldscope field