Changelog

v4.6.1 - 2026-06-23

  • Remove the legacy code paths for netbox 4.1 and older, dead since support for those versions was dropped in v4.6.0: clusters and prefixes now always use the scoped-object api (scope_type/scope_id), and the netbox::ResourceWithCompatibilityBody entity with its use_compatibility_body attribute is removed together with the legacy cable termination body format it selected. This is a breaking change for models that set use_compatibility_body on netbox::resources::InterfaceCable.

  • The handlers now discover the version of the netbox instance (/api/status/) and compare it with the netbox_version configured on netbox::Credentials: a mismatch is logged as a warning, and the check is skipped (with a warning) when the instance version can not be discovered. The attribute is now nullable and defaults to null instead of 4.1 (a version that is no longer supported): when left null, no check is performed; models that read credentials.netbox_version must handle null. The attribute is kept for the future: when a netbox version requires the module to generate diverging request bodies again, it decides which bodies are built, and a mismatch that affects the generated bodies makes the resource fail explicitly instead of sending requests built for the wrong api.

  • The Netbox-Secrets helper now bootstraps the initial setup on its first login: when no public key is registered for the user yet, it generates a local RSA key pair when none exists and registers the public key as the user’s user key. Once a key is registered, a missing local key pair makes the helper raise NoLocalKeyPairException instead of silently generating a pair: a generated pair can never match the registered public key, which permanently broke secret resolution (e.g. when an agent resolves secrets from a fresh state directory). login() no longer raises NoPublicKeyException; the exception class is kept so that existing except NoPublicKeyException: initialize_public_key(...) bootstrap flows keep working (the branch simply never triggers anymore).

  • The directory holding the RSA key pair used towards Netbox-Secrets can now be configured explicitly, instead of always being derived from the state dir of the process resolving the secret: set the new rsa_key_dir attribute on netbox::Credentials (carried inside the exported secret references), or the new INMANTA_NETBOX_RSA_KEY_DIR environment variable. When neither is set, the behavior is unchanged (<state-dir>/rsa_keys).

v4.6.0 - 2026-06-11

  • Add support for Netbox 4.5 and 4.6: support the netbox-secrets 3.x API (session-key and user-keys endpoints), while staying compatible with netbox-secrets 2.x

  • Update the test environment to Netbox 4.6 (netbox-docker 5.0.1, netbox-secrets 3.1.0)

  • Drop support for Netbox 4.1 and older and document the supported Netbox versions in the README. The module follows the scoped-object api introduced in Netbox 4.2, deploys against Netbox 4.1 do not converge.

  • Test against multiple netbox versions in CI: commits test the latest supported version, nightly builds add the oldest supported version and weekly builds test all supported versions

v4.5.1 - 2026-06-09

  • Share the netbox-secrets session used by secret references across all the threads of the process

  • Add the INMANTA_NETBOX_SERIALIZE_SECRET_REQUESTS environment variable to serialize all requests towards netbox-secrets

v4.5.0 - 2026-05-27

  • Add py.typed to module source

  • Add more references to the module: netbox::create_secret_reference_v2, netbox::create_object_reference, netbox::create_api_reference

v4.4.3 - 2026-02-03

  • Improve handling of mac addresses

v4.4.2 - 2026-01-12

  • Add verify option to credentials

v4.4.1 - 2025-11-12

  • Improve error logging

  • Add Fallback reference resolver

  • Make Interface mac_address diffing case insensitive

v4.4.0 - 2025-10-02

  • Add support for Netbox 4.2 and 4.3

  • Fix creation of Interfaces with attached module

  • Add support for tags

  • Allow references with no name

v4.3.1 - 2025-08-08

  • Fix netbox secret reference when multiple devices

  • Fix netbox secret reference class name typo

  • Add support for name reference in netbox SecretReference class

  • Add logging of error for netbox secret

v4.3.0 - 2025-05-02

  • Make sure that identical netbox::Secret references are seen as identical values by the compiler

v4.2.0 - 2025-04-23

  • Add netbox secret reference

  • Cleanup secret logic in handler deletion

v4.1.0 - 2025-02-07

  • Added support for Netbox 4.1

v3.7.4 - 2024-12-20

  • Add iso8 compatibility

v3.7.3 - 2024-11-18

  • Make sure netbox secret helper cannot be entered twice

  • Cleanup logs of netbox::PrimaryIP resource

  • Stop using deprecated number type

v3.7.2 - 2024-10-21

  • Add agent_name attribute to Credentials entity.

v3.7.1 - 2024-07-11

  • Add no_cache variable to generator schemaHandlers

  • Refactor netbox resources id and change primaryIP index

v3.7.0.1 - 2024-06-12

  • Added support for Netbox 3.7

v0.5.5 - 2024-06-06

  • Fix query retry when cache is corrupted

v0.5.4 - 2024-05-16

  • Update PrimaryIP entity:

    • Add inmanta_primary_ip relation for Device and VirtualMachine

    • Add index based on the IP and the linked Device / VirtualMachine

v0.5.3 - 2024-05-07

  • Fix requires and provides relations of entities with following multiplicity [0:]

  • Fix VRF using wrong field in query: name instead of slug for Tenant

  • Update L2VPN identity name -> slug

v0.5.2 - 2024-04-25

  • Add compatibility body method in resources when interacting with old Netbox instances

  • Update query of IpAddress: Use VRF if defined as the ip should be unique per VRF

v0.5.1 - 2024-04-24

  • Fix when comparing unsupported desired fields

  • Change default value of agent_autostart to true

v0.5.0 - 2024-04-22

  • Fix DeviceRole not using slug

  • Call PATCH on resource update

  • Make all attributes optional for easier use of “unmanaged” resources.

  • Allow to manage custom fields on resources

  • Add support from creating secret from query

  • Fix when adding bridge to interface

  • Improve handler logging

  • Fix diffing for interface relations based on the id of the netbox object.

v0.4.0 - 2024-03-11

  • Add parameters for the generation of secrets

  • Fix inconsistent RSA key path when deleting secret

v0.3.0 - 2024-02-20

  • Bugfix fixed credentials logic in plugins

  • Stop using deprecated jsonschema.RefResolver

  • Add restbase caching mechanism for schemas

  • Rewriting of the generate_password secret plugin

  • Refactor of the public interface of the Netbox Secret helper

v0.2.1 - 2024-01-05

  • Fix listing netbox secrets

v0.2.0 - 2023-11-27

  • Improved the logs when fetching dependencies

  • Refactor Netbox-Secret helper

  • refactor netbox-secret integration

  • refactor resource ids

  • add cache for the session

v0.1.2 - 2023-07-14

  • bugfix changing dictionary size during iteration

v0.1.1 - 2023-07-14

  • Added reference resolver cache

v0.1.0 - 2023-05-16

  • Use restbase 1.3.0

  • Remove index and update id_attribute for Prefix

  • Add agent_autostart parameter to Credentials

v0.0.1 - 2022/12/16

  • Plugins allowing to query netbox inventory