netbox/docs/release-notes/version-4.5.md
2025-12-08 16:50:10 -05:00

7.0 KiB

v4.5.0 (FUTURE)

Breaking Changes

  • Python 3.10 and 3.11 are no longer supported. NetBox now requires Python 3.12 or later.
  • GraphQL API queries which filter by object IDs or enums must now specify a filter lookup similar to other fields. (For example, id: 123 becomes id: {exact: 123 }.)
  • Rendering a device or virtual machine configuration is now restricted to users with the render_config permission for the applicable object type.
  • Retrieval of API token plaintexts is no longer supported. The ALLOW_TOKEN_RETRIEVAL config parameter has been removed.
  • The owner of an API token can no longer be changed once it has been created.
  • Config contexts now apply to all child platforms of a parent platform.
  • The /api/extras/object-types/ REST API endpoint has been removed. (Use /api/core/object-types/ instead.)
  • The /api/dcim/cable-terminations/ REST API endpoint is now read-only. Cable terminations must be set on cables directly.
  • The UI view dedicated to swaping A/Z circuit terminations has been removed.
  • Webhooks no longer specify a model in payload data. (Reference object_type instead, which includes the parent app label.)
  • The obsolete module core.models.contenttypes has been removed (replaced in v4.4 by core.models.object_types).
  • The load_yaml() and load_json() utility methods have been removed from the base class for custom scripts.
  • The experimental HTMX navigation feature has been removed.
  • The obsolete field is_staff has been removed from the User model.

New Features

Lookup Modifiers in Filter Forms (#7604)

Improved API Authentication Tokens (#20210)

Object Ownership (#20304)

Advanced Port Mappings (#20564)

Cable Profiles (#20788)

Enhancements

  • #16681 - Introduce a render_config permission, which is noq required to render a device or virtual machine configuration
  • #18658 - Add a start_on_boot choice field for virtual machines
  • #19095 - Add support for Python 3.13 and 3.14
  • #19338 - Enable filter lookups for object IDs and enums in GraphQL API queries
  • #19523 - Cache the number of instances for device, module, and rack types, and enable filtering by these counts
  • #20417 - Add an optional color field for device type power outlets
  • #20476 - Once provisioned, the owner of an API token cannot be changed
  • #20492 - Completely disabled the means to retrieve legacy API token plaintexts (removed the ALLOW_TOKEN_RETRIEVAL config parameter)
  • #20639 - Apply config contexts to devices/VMs assigned any child platform of the parent platform
  • #20834 - Add an enabled boolean field to API tokens
  • #20917 - Include usage reference on API token views
  • #20925 - Add optional comments field to all subclasses of OrganizationalModel
  • #20936 - Introduce the /api/authentication-check/ REST API endpoint for validating authentication tokens

Plugins

  • #13182 - Added PrimaryModel, OrganizationalModel, and NestedGroupModel to the plugins API, as well as their respective base classes for various resources

Other Changes

  • #16137 - Remove the obsolete boolean field is_staff from the User model
  • #17571 - Remove the experimental HTMX navigation feature
  • #17936 - Introduce a dedicated GFKSerializerField for representing generic foreign keys in API serializers
  • #19889 - Drop support for Python 3.10 and 3.11
  • #19898 - Remove the obsolete REST API endpoint /api/extras/object-types/
  • #20088 - Remove the non-deterministic model key from webhook payload data
  • #20095 - Remove the obsolete module core.models.contenttypes
  • #20096 - Remove the load_yaml() and load_json() utility methods from the BaseScript class
  • #20204 - Started migrating object views from custom HTML templates to declarative layouts
  • #20617 - Introduce BaseModel as the global base class for models
  • #20683 - Remove the UI view dedicated to swaping A/Z circuit terminations
  • #20926 - Standardize naming of GraphQL filters

REST API Changes

  • Most objects now include an optional owner foreign key field.
  • The /api/dcim/cable-terminations endpoint is now read-only.
  • Introduced the /api/authentication-check/ endpoint.
  • circuits.CircuitGroup
    • Add optional comments field
  • circuits.CircuitType
    • Add optional comments field
  • circuits.VirtualCircuitType
    • Add optional comments field
  • dcim.Cable
    • Add the optional profile choice field
  • dcim.InventoryItemRole
    • Add optional comments field
  • dcim.Manufacturer
    • Add optional comments field
  • dcim.ModuleType
    • Add read-only module_count integer field
  • dcim.PowerOutletTemplate
    • Add optional color field
  • dcim.RackRole
    • Add optional comments field
  • dcim.RackType
    • Add read-only rack_count integer field
  • ipam.ASNRange
    • Add optional comments field
  • ipam.RIR
    • Add optional comments field
  • ipam.Role
    • Add optional comments field
  • ipam.VLANGroup
    • Add optional comments field
  • tenancy.ContactRole
    • Add optional comments field
  • users.Token
    • Add enabled boolean field
  • virtualization.ClusterGroup
    • Add optional comments field
  • virtualization.ClusterType
    • Add optional comments field
  • virtualization.VirtualMachine
    • Add optional start_on_boot choice field
  • vpn.TunnelGroup
    • Add optional comments field