netbox/docs/release-notes/version-3.4.md
Jeremy Stretch 9628dead07
Closes #10560: New global search (#10676)
* Initial work on new search backend

* Clean up search backends

* Return only the most relevant result per object

* Clear any pre-existing cached entries on cache()

* #6003: Implement global search functionality for custom field values

* Tweak field weights & document guidance

* Extend search() to accept a lookup type

* Move get_registry() out of SearchBackend

* Enforce object permissions when returning search results

* Add indexers for remaining models

* Avoid calling remove() on non-cacheable objects

* Use new search backend by default

* Extend search backend to filter by object type

* Clean up search view form

* Enable specifying lookup logic

* Add indexes for value field

* Remove object type selector from search bar

* Introduce SearchTable and enable HTMX for results

* Enable pagination

* Remove legacy search backend

* Cleanup

* Use a UUID for CachedValue primary key

* Refactoring search methods

* Define max search results limit

* Extend reindex command to support specifying particular models

* Add clear() and size to SearchBackend

* Optimize bulk caching performance

* Highlight matched portion of field value

* Performance improvements for reindexing

* Started on search tests

* Cleanup & docs

* Documentation updates

* Clean up SearchIndex

* Flatten search registry to register by app_label.model_name

* Clean up search backend classes

* Clean up RestrictedGenericForeignKey and RestrictedPrefetch

* Resolve migrations conflict
2022-10-21 13:16:16 -04:00

4.4 KiB

NetBox v3.4

!!! warning "PostgreSQL 11 Required" NetBox v3.4 requires PostgreSQL 11 or later.

Breaking Changes

  • Device and virtual machine names are no longer case-sensitive. Attempting to create e.g. "device1" and "DEVICE1" will raise a validation error.
  • The asn field has been removed from the provider model. Please replicate any provider ASN assignments to the ASN model introduced in NetBox v3.1 prior to upgrading.
  • The 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 contact model introduced in NetBox v3.1 prior to upgrading.

New Features

New Global Search (#10560)

NetBox's global search functionality has been completely overhauled and replaced by a new cache-based lookup.

Top-Level Plugin Navigation Menus (#9071)

A new PluginMenu class has been introduced, which enables a plugin to inject a top-level menu in NetBox's navigation menu. This menu can have one or more groups of menu items, just like core items. Backward compatibility with the existing menu_items has been maintained.

Enhancements

  • #8245 - Enable GraphQL filtering of related objects
  • #9249 - Device and virtual machine names are no longer case-sensitive
  • #9478 - Add link_peers field to GraphQL types for cabled objects
  • #9654 - Add weight field to racks, device types, and module types
  • #9817 - Add assigned_object field to GraphQL type for IP addresses and L2VPN terminations
  • #9892 - Add optional name field for FHRP groups
  • #10348 - Add decimal custom field type
  • #10556 - Include a display field in all GraphQL object types
  • #10595 - Add GraphQL relationships for additional generic foreign key fields

Plugins API

  • #8927 - Enable inclusion of plugin models in global search via SearchIndex
  • #9071 - Introduce PluginMenu for top-level plugin navigation menus
  • #9072 - Enable registration of tabbed plugin views for core NetBox models
  • #9880 - Introduce django_apps plugin configuration parameter
  • #10314 - Move clone() method from NetBoxModel to CloningMixin

Other Changes

  • #9045 - Remove legacy ASN field from provider model
  • #9046 - Remove legacy contact fields from provider model
  • #10358 - Raise minimum required PostgreSQL version from 10 to 11
  • #10699 - Remove custom import_object() function

REST API Changes

  • circuits.provider
    • Removed the asn, noc_contact, admin_contact, and portal_url fields
  • dcim.DeviceType
    • Added optional weight and weight_unit fields
  • dcim.ModuleType
    • Added optional weight and weight_unit fields
  • dcim.Rack
    • Added optional weight and weight_unit fields
  • ipam.FHRPGroup
    • Added optional name field

GraphQL API Changes

  • All object types now include a display field
  • All cabled object types now include a link_peers field
  • Add a contacts relationship for all relevant models
  • dcim.Cable
    • Add A/B terminations fields
  • dcim.CableTermination
    • Add termination field
  • dcim.InventoryItem
    • Add component field
  • dcim.InventoryItemTemplate
    • Add component field
  • ipam.FHRPGroupAssignment
    • Add interface field
  • ipam.IPAddress
    • Add assigned_object field
  • ipam.L2VPNTermination
    • Add assigned_object field
  • ipam.VLANGroupType
    • Add scope field