Release Notes¶
This section tracks the release line represented by this repository and keeps older historical placeholders explicit.
Current Release Line¶
The current release is 0.0.31. The sibling plugins (netbox-pbs,
netbox-ceph, and netbox-pdm) live in standalone repositories under
@emersonfelipesp and declare
netbox-proxbox>=0.0.25.post2,<0.1.0 as an install-time dependency.
netbox-packer is installable standalone but is prepared for certification as
part of the same plugin family.
Unreleased Maintenance Fixes¶
- Optional companion detection now follows NetBox's enabled plugin registry.
The home page no longer constructs a PDM table when
netbox_pdmis merely importable, and Proxmox endpoint serialization no longer queries thenetbox_rpcsettings table when that companion is disabled. This prevents missing-route rendering failures and transaction-aborting unmigrated-table probes in ordinary compatibility lanes. - FastAPI endpoint list serialization now resolves global credential-storage state once per response instead of once for each assignment metadata field. The measured NetBox 4.7.0 GA list contract is 13 queries: the existing 12 core/list queries plus one required plugin-settings lookup. The separate NetBox 4.6.6 baseline remains 13 and is not inferred from the 4.7 lane.
- Verified Fernet rotation and selective reset can again update the encrypted columns of FastAPI, PBS, PDM, and Firecracker single-secret owners. Their OpenBao queryset guard now recognizes only the recovery workflow's existing exact-value, model-specific, database-specific permit; ordinary ciphertext writes, mismatched permits, reference changes, storage switches, assignments, and deletion remain fail-closed.
- netbox-openbao is optional again. Migration
0105_reset_implicit_openbao_storage_defaultresets a plugin-wide credential storage backend ofopenbaothat the historical migration default left in the settings row to Automatic, but only when no OpenBao credential reference exists on any credential owner. Endpoint overrides and installations with referenced OpenBao material are not changed. Without the companion, Automatic uses local Fernet storage, so Proxmox endpoints can be created again. The settings form, the endpoint form, and the REST API now refuse a new explicit OpenBao selection while netbox-openbao is not enabled, storage errors appear on the credential storage field instead of the write-permission field, and system checknetbox_proxbox.W106reports an explicit OpenBao selection that the companion cannot serve. To opt out manually, set Settings > Credential storage backend to Automatic or Legacy Fernet-encrypted local storage. This migration starts a new release boundary after the published0.0.29candidates. - The Settings page now renders a Credential storage card with the credential storage backend, OpenBao policy slug, and OpenBao service username. Before this fix the page omitted the required policy slug, so saving Settings failed with an error on a field that was not displayed. A pip-installed but disabled netbox-openbao package no longer breaks settings or endpoint saves.
- Proxmox endpoints without OpenBao references can be deleted when netbox-openbao is absent. An endpoint that still holds OpenBao references is refused with an actionable error instead of a server error, and bulk or queryset deletion of such an endpoint is refused as well.
- Switching the plugin-wide credential storage away from OpenBao is refused, with a field error on the Settings page and in the REST API, while any inheriting Proxmox endpoint, node credential, single-secret owner, or VM cloud-init record still holds OpenBao references or assignments. Clear those credentials through the supported cleanup path first.
- Docker E2E and page coverage now use proxbox-api
0.0.23.post2, and the E2E bootstrap no longer calls the removed custom-field creation route. Typed sync-state sidecars require no custom-field bootstrap before synchronization. - SSE-backed synchronization now probes each unique primary/IP backend candidate before selecting one, then issues the mutating stream request only once. Every post-selection outcome is terminal, preventing an unseen or partial response from causing duplicate work through another candidate.
- The published runtime metadata now requires
cryptography>=50.0.0, so fresh downstream installs cannot resolve releases covered byGHSA-g6cj-pr64-35w5; the lockfile and fixed security-floor guard enforce the same boundary. - The sync-state bootstrap status card now surfaces the actionable
no_netbox_sessionbackend reason and explains that proxbox-api requires its own NetBox endpoint configuration. - Data Protection list pages now include permission-aware month and ISO-week calendars, and the new combined Data Protection page provides unified cluster, node, virtual-machine, date-range, and event-kind filtering.
Highlights By Version¶
| Version | Summary |
|---|---|
0.0.31 |
Native NetBox cluster binding, endpoint-owned SSH application services, verified Cloud Image SSH bindings with durable receipts, a working browser console after ordinary synchronization (WebSocket base in the backend context and automatic sync-state relation binding), the sync_node_interfaces option for full node network topology, integration fixes, and migrations 0107_v0_0_30_release plus 0108_v0_0_31_schema_validation. Requires proxbox-api 0.0.29, deployed first. See Version 0.0.31. |
0.0.31rc2 |
Prepares the exact intended proxbox-api 0.0.29 pairing and normal workflow defaults; preserves application and immutable 0107/0108 migration bytes. Backend publication and qualification remain required before candidate publication. See Version 0.0.31. |
0.0.31rc1 |
New 0108 fail-closed physical schema validation after the immutable 0.0.30 candidate; preserves original 0107 bytes and data. Requires proxbox-api 0.0.29 or later (the release that adds endpoint-owned cluster bindings). See Version 0.0.31. |
0.0.30rc1 |
First candidate for 0.0.30: protected native cluster binding, endpoint-owned SSH application services, and verified Cloud Image SSH bindings with durable receipts. Migration 0107_v0_0_30_release. Requires proxbox-api 0.0.29 or later (the release that adds endpoint-owned cluster bindings), deployed before the plugin. See Version 0.0.30. |
0.0.29.post6 |
Maintenance release: deterministic guest interface address and synchronization job ordering prevents paginated QuerySetNotOrdered failures, and plain-form checkboxes render with NetBox-compatible Bootstrap markup. No new migration. Pairs with proxbox-api 0.0.27.post4. See Version 0.0.29.post6. |
0.0.29.post5 |
Maintenance release: endpoint-exact HA and operational actions, grantable endpoint action permissions, capture-only operation, run-correlated WebSocket completion, atomic device ownership, token-bound remote NetBox approval, and hardened release validation. Migration 0106_device_sync_scope_and_netbox_token_approval. Pairs with proxbox-api 0.0.27.post3. See Version 0.0.29.post5. |
0.0.29.post4 |
Maintenance release: a Proxmox endpoint that uses API access only can be saved without SSH credentials, and the endpoint form shows write-enabled and SSH settings only when they apply. No new migration. See Version 0.0.29.post4. |
0.0.29.post3 |
Maintenance release: admits every NetBox 4.7 patch release (ceiling 4.7.99) and makes the OCI testing appliance image install exactly the plugin version named by its release. No new migration. See Version 0.0.29.post3. |
0.0.29.post2 |
Maintenance release: system check netbox_proxbox.W107 reports a backend token user that cannot receive the runtime encryption key. No new migration. |
0.0.29.post1 |
Maintenance release: explicit endpoint connection approval recovery, optional OpenBao operation, credential-storage settings, and migration 0105_reset_implicit_openbao_storage_default. See Version 0.0.29.post1. |
0.0.29 |
Security-hardening release: sensitive-data grants, connection-target approval, scoped HA and settings reads, Proxmox identifier validation, side-effect-free WebSocket GET, secure transport defaults, dependency security floors, endpoint-list and node-identity fixes. Ships the validated 0.0.29rc3 content. Single migration 0104_security_hardening. Pairs with proxbox-api 0.0.23.post3. See Version 0.0.29. |
0.0.29rc3 |
Third candidate for 0.0.29. Fixes an HTTP 500 on the Proxbox home page and the NetBox endpoint list caused by the new token-identity column, adds exact proxmox_node_name and proxmox_cluster_name filters to the device sync-state API so proxbox-api 0.0.23.post3 resolves a node's device without reporting duplicate claims, and lets the E2E harness accept the queued job's page as the sync redirect. RC2 failed its Page Coverage gate on that redirect before publication. See Version 0.0.29. |
0.0.29rc2 |
Second candidate for 0.0.29: the E2E and page-coverage harness now approves the exact fixture connection targets before keepalive and synchronization, as the new connection-target approval requires. RC1 failed the Page Coverage gate before publication to TestPyPI because the harness never approved its targets. No plugin code change. See Version 0.0.29. |
0.0.29rc1 |
First candidate for 0.0.29: sensitive-data grants, connection-target approval, scoped HA and settings reads, Proxmox identifier validation, side-effect-free WebSocket GET, secure transport defaults, and dependency security floors. Single migration 0104_security_hardening. Pairs with proxbox-api 0.0.23.post3. See Version 0.0.29. |
0.0.27.post1 |
Adds configurable node Device naming, isolated synchronization failures, bounded home-status polling, and documented large-estate tuning controls. Pairs with proxbox-api 0.0.23.post3. |
0.0.27 |
Promotes the fully validated RC18 content after Page Coverage, TestPyPI validation on Python 3.12 and 3.13, and all 66 Docker E2E cells passed, retaining the proxbox-api 0.0.23.post2 pairing. |
0.0.27rc18 |
Retains the proxbox-api 0.0.23.post2 pairing and installs packaging before Docker E2E backend selection, correcting RC17's pre-container failure across every matrix cell after Page Coverage and TestPyPI had passed. |
0.0.27rc17 |
Corrects RC16's failed node network synchronization gate by returning Proxmox-compatible list envelopes for the pve01, pve02, and pve03 mock endpoints while retaining the proxbox-api 0.0.23.post2 pairing. |
0.0.27rc16 |
Replaces RC15's proxbox-api 0.0.23.post1 pairing after that real-stack Page Coverage gate returned no expected backup inventory record; post2 restores backup synchronization by hydrating typed virtual-machine identity before backup filtering. |
0.0.27rc15 |
Resolves expected Proxmox VMIDs through typed sync-state identity, rejects incomplete or ambiguous responses, and verifies the linked NetBox virtual machine. |
0.0.27rc14 |
Accepts the canonical Proxbox home redirect while rejecting ambiguous redirect and job-ID forms and binding every polled Core Job resource to the authoritative response ID. |
0.0.27rc13 |
Correlates release-validation polling with the authoritative enqueued NetBox Core Job ID, preventing first-page loss and concurrent same-name false positives. |
0.0.27rc12 |
Gives disposable Page Coverage and Docker E2E Proxmox endpoints a mock-safe timeout and bounded retry budget without changing production defaults. |
0.0.27rc11 |
Makes disposable Page Coverage and Docker E2E synchronization deterministic by bounding mock-backed Proxmox fetch concurrency without changing production defaults. |
0.0.27rc10 |
Validates the all-in-one OCI appliance against the released proxbox-api 0.0.23.post1 duplicate-VM synchronization correction. |
0.0.27rc9 |
Exposes the endpoint credential-storage override through the REST serializer so disposable Page Coverage can use local encryption without changing the production OpenBao default. |
0.0.27rc7 |
Keeps disposable Page Coverage credentials local without changing the production OpenBao default, while retaining locked public validation, the all-in-one Proxbox OCI testing appliance, and earlier reviewed changes. |
0.0.27rc6 |
Runs public release metadata validation through the locked publish environment while retaining the all-in-one Proxbox OCI testing appliance and earlier reviewed changes. |
0.0.27rc5 |
Adds the all-in-one Proxbox OCI testing appliance while retaining the reviewed console recovery, compatibility, and public-boundary changes from earlier candidates. |
0.0.27rc4 |
Adds actionable VM console identity diagnostics and a permission-gated full synchronization repair action, while retaining VM list filtering and the released proxbox-api 0.0.22.post1 pairing. Current sibling source development has advanced to proxbox-api 0.0.23 and proxmox-sdk 0.0.15. |
0.0.26.post6 |
Restores migration 0083 for production deploy compatibility and ships VM list search/filtering with the proxbox-api 0.0.21.post7 pairing. |
0.0.26.post5 |
Adds NetBox-native search and filtering to the Proxbox virtual machines list while retaining the proxbox-api 0.0.21.post7 pairing and existing console, metrics, and purge surfaces. |
0.0.26.post4 |
Maintenance release that aligns the migration helper with the currently deployed production digest while retaining the soft-deleted VM purge surface and the proxbox-api 0.0.21.post7 pairing. |
0.0.26.post3 |
Maintenance release that preserves the previously deployed migration-helper history while retaining the soft-deleted VM purge surface and the proxbox-api 0.0.21.post7 pairing. |
0.0.26.post2 |
Restores the production VM/LXC browser-console handoff, adds independent Proxmox InfluxDB metrics, and adds the human-only soft-deleted VM purge surface. Pairs with proxbox-api 0.0.21.post6. |
0.0.26.post1 |
Packages the merged NetBox 4.7.0 GA compatibility classifier while retaining the Emerson-owned plugin's 4.5/4.6 backward-compatible cells and easy-upgrade path. |
0.0.25.post2 |
Source-only compatibility update that narrowed certified backward-compatible admission to exact NetBox 4.7.0 GA and synchronized the Emerson-owned Proxbox-family contract. |
0.0.25.post1 |
Post release for the official NetBox v4.7.0 GA compatibility contract. Retains the 4.5/4.6 backward-compatible cells, pins Docker evidence to the reviewed immutable image, and gives the changed compatibility behavior a new package identity. Pairs with proxbox-api 0.0.20, proxmox-sdk 0.0.13, and netbox-sdk 0.0.10. |
0.0.25 |
Certifies NetBox through official v4.7.0 GA while retaining backward-compatible 4.5/4.6 cells, repairs settings/storage and encryption-key compatibility, and introduces immutable Gitea-first artifact manifests, authenticated CI evidence, package-first deployment gating, and final-tag promotion controls. Pairs with proxbox-api 0.0.20, proxmox-sdk 0.0.13, and netbox-sdk 0.0.10. |
0.0.23.post2 |
Adds bounded backend and NetBox endpoint auto-configuration: the persisted target is the allowlist, same-site discovery derives only from the trusted NetBox origin, key establishment is automatic only when identity and backend state are proved safe, and redirects, disabled rows, unlisted hosts, or target drift fail closed. |
0.0.23.post1 |
Makes guest_os_model the universal VM interface sync default, including existing installs. Migration 0060 supersedes the 0.0.23 backward-compat backfill that kept upgrades on legacy_rename; legacy_rename remains a deprecated selectable opt-out. Pairs with a proxbox-api guest-VM-interface writer build / next release, proxmox-sdk 0.0.12, and netbox-sdk 0.0.10. |
0.0.23 |
Dual VM interface sync release: keeps Proxmox NICs as core VMInterface rows while writing guest-agent OS interfaces and their shared IP links to GuestVMInterface / GuestVMInterfaceAddress. Pairs with a proxbox-api guest-VM-interface writer build / next release, proxmox-sdk 0.0.12, and netbox-sdk 0.0.10. |
0.0.22 |
Endpoint access and certification release: adds per-endpoint API-only vs API+SSH access methods, the Proxmox endpoint Fetch host key flow, SSH credential-source selection, Proxmox-side write toggle, bulk endpoint enablement, tenant allowlists, PDM endpoint sync, SDN inventory and migration fixes, Firecracker serializer hardening, NetBox v4.6.4 certification, and read-only REST coverage for safety-gated audit resources. Pairs with backend proxbox-api 0.0.19.post5, proxmox-sdk 0.0.12, and netbox-sdk 0.0.10. |
0.0.21 |
Sync-mode filtering at source: per-record VM and VM-template filtering enforced by proxbox-api 0.0.18.post5 using sync_mode_vm/sync_mode_vm_template query params — a disabled mode no longer creates dependent NetBox objects for skipped VMs. Two-phase VM batch processing and per-VM dispatch failure isolation. Interface-dense guest alias matching by name and partial-failure stream frame. Pairs with backend proxbox-api 0.0.18.post5, proxmox-sdk 0.0.12, and netbox-sdk 0.0.10. |
0.0.20.post3 |
Endpoint enablement hardening: disabled endpoint-like rows remain visible inventory records but no longer trigger proxbox-api, NetBox, Proxmox, PBS, PDM, OpenAPI, keepalive, registration, startup/signal, or sync network attempts. Adds LLM/developer documentation and regression tests for PBSEndpoint/PDMEndpoint shared enabled-field contracts. Pairs with backend proxbox-api 0.0.17.post1, proxmox-sdk 0.0.11.post1, and netbox-sdk 0.0.9.post1. |
0.0.20.post2 |
Read-only homepage visibility patch: the Proxbox homepage now renders a Latest Sync Jobs table with the five most recent Proxbox sync jobs after the additional plugin endpoint cards, plus a View all sync jobs button. Pairs with backend proxbox-api 0.0.17.post1, proxmox-sdk 0.0.11.post1, and netbox-sdk 0.0.9.post1. |
0.0.20.post1 |
Post-release patch for the NP-F1 VM-template sync fix: sync_vm_templates() was implemented but never called, so ProxmoxVMTemplate inventory was never populated. The stage is now wired into ProxboxSyncJob through commits 0f843083 and aae76f13. Pairs with backend proxbox-api 0.0.17.post1, proxmox-sdk 0.0.11.post1, and netbox-sdk 0.0.9.post1. |
0.0.20 |
IP-address ownership safety and interface-batch settings persistence. The paired backend prevents VM-interface IP sync from taking over an address that already belongs to another interface, and plugin Settings page values for interface_batch_size / interface_batch_delay_ms now persist to the database. Pairs with backend proxbox-api 0.0.17. |
0.0.19 |
Database and integration compatibility fixes: allow_writes in ProxmoxEndpoint API, verify_ssl migration guards, FastAPI endpoint token-drift fix, PBS/PDM host/timeout_seconds bridging properties. Pairs with backend proxbox-api 0.0.16. |
0.0.18.post1 |
Certification-readiness post release: package metadata, project URLs, Apache-2.0 evidence, certification checklist, family application packet, support links, and a database-only repair migration for missing PBSEndpoint.enabled / PDMEndpoint.enabled columns on affected v0.0.18 installs. No runtime sync behavior changes. |
0.0.18 |
Full PVE 9.2 support: SDN fabric/route-map/prefix-list models and sync, custom datacenter CPU model persistence, completed per-node firewall sync (per-VM sync implemented, not yet wired automatically), HA arm/disarm action views, and ProxmoxNode.location field. Migration 0041_pve_9_2.py. Pairs with backend proxbox-api 0.0.14. |
0.0.17 |
Adds read-only Proxmox VE firewall sync (closes #326): consumes the backend's /proxmox/firewall/* surface for datacenter, node, per-VM (QEMU + LXC), and per-VNet (SDN) zones — rules, security groups, IP sets, aliases, and options. Certifies NetBox v4.6.1 alongside v4.5.8 / v4.5.9 / v4.6.0. Pairs with backend proxbox-api 0.0.13, which ships the matching twelve firewall read routes plus PUT /intent/tag-pending-deletion and PUT /intent/untag-pending-deletion intent-tag helpers and the 0.0.12.post1 / 0.0.12.post2 stability fixes. No DB migration; firewall objects are reflected read-only through HTTP and are not yet persisted as Django models. |
0.0.16 |
Fixes the operational Cluster Dashboard panel on the Proxmox endpoint detail page (issue #455): preserves API-reported nodes_total / nodes_online when live rows are a strict subset of the cluster membership, broadens build_local_node_rows to fall back to all ProxmoxNode rows under the cluster name when scoped sibling lookup is empty, and renders placeholder rows (status="unknown") for cluster members named by the API status payload that have not yet been synced. Pairs with backend proxbox-api 0.0.12. No DB migration, no model change, no NetBox compatibility rotation. |
0.0.15.post2 |
Post-release patch on stable 0.0.15: lands the PBSEndpoint / PDMEndpoint / PDMRemote Django models with ForeignKey wiring (PDMEndpoint.proxmox_endpoints M2M -> ProxmoxEndpoint, pbs_endpoints M2M -> PBSEndpoint) per #449; adds the build-pve-template REST action on ProxmoxEndpointViewSet (#452); pairs with backend proxbox-api 0.0.11.post2, which lifts the proxmox-sdk pin to 0.0.5.post1 so the new proxmox_sdk.pdm subpackage is available to the backend. Migration 0048_pdm_pbs_endpoint_models creates the three tables; UI / API surfaces land in Phase 2/3 of #449. No NetBox compatibility rotation. |
0.0.15.post1 |
Post-release patch on stable 0.0.15: VM/LXC resource API pagination (fixes 100-object truncation), PVE 9.x HA rules in the cluster HA dashboard, cloud image template PUT/PATCH support, ProxmoxEndpointBulkDeleteView bulk-delete 404 fix, NetBoxModelSerializer MRO delegation for create/update, and full-update resilience (skip optional stages on failure). Paired with backend proxbox-api 0.0.11.post1. No NetBox compatibility rotation. |
0.0.15 |
Adds the opt-in NetBox → Proxmox intent path (issue #377, twelve sub-PRs A–L): typed-confirmation master flag, branch-merge post_merge hook, plan validator, CREATE/UPDATE dispatchers, safe-delete with DeletionRequest four-eyes approval flow, cloud-init payload mapping, and the apply-job + deletion-request UIs. Also decouples HTTPS scheme from Verify SSL on FastAPIEndpoint (issue #352); adds overwrite_ip_address_dns_name so the backend can populate IPAddress.dns_name from Proxmox guest hostnames (issue #354); ships a per-VM HA tab, a cluster-wide HA Status page (issue #243), and the forward-compatible SSH hardware-discovery credential surface for issue #374. Pairs with backend proxbox-api 0.0.11, which ships both the reflection/HA surface and the /intent/* HTTP surface. With netbox_to_proxmox_enabled=False (default), no behavior changes from the read-only reflection path. |
0.0.14 |
Certification bump for the separate proxbox-api backend release 0.0.10.post2. No plugin source changes; REST / SSE / WebSocket / auth / overwrite-flag contracts remain compatible with backend 0.0.9.post2. Backend internally adopts netbox-sdk==0.0.8.post1 and supports NetBox 4.5.8, 4.5.9, and official 4.6.0. |
0.0.13.post4 |
Re-pins proxbox-api==0.0.9.post2 (fixes create_storages() TypeError regression in 0.0.9.post1); certifies NetBox 4.5.8 and 4.5.9 for issue #349. Supersedes 0.0.13.post3 which never reached PyPI due to a stale uv.lock. |
0.0.13.post2 |
Re-pins proxbox-api==0.0.9.post1; adds matrix row for the new pair; no runtime behavior change |
0.0.13.post1 |
Bumps proxbox-api==0.0.9 pin; certifies NetBox v4.6.0-beta2; documents endpoint import/export page; CI screenshot rebase fix |
0.0.13 |
Per-endpoint Settings tab on ProxmoxEndpoint detail; surfaces all overwrite_* flags in the plugin UI with tri-state semantics; VM-sync device flag enforcement (overwrite_device_*) honored end-to-end; merge-semantics label for overwrite_vm_tags; _ensure_device fix; narrowed broad except handlers in sync views and template tags |
0.0.12 |
NetBox 4.6.x support; native VirtualMachineType sync (QEMU / LXC); Clusters list page and API; site/tenant on ProxmoxEndpoint; ships with proxbox-api v0.0.8.post1 |
0.0.11 |
Backup Routines, individual sync buttons, live job panel, Backend Logs, encryption key, endpoint CSV import/export, auto-push NetBox config to backend, three-tier error severity, extended storage/replication views, and many bug fixes |
0.0.10 |
Cluster and node tracking with NetBox Cluster/Device links; Mode field fix on endpoint detail |
0.0.9.post4 |
Follow-up migration fixes for upgrade paths and storage schema issues |
0.0.9 |
Storage relationships, task history, per-VM sync, settings, dashboard, and richer live job UX |
0.0.8 |
NetBox Jobs-based scheduling, SSE-backed sync jobs, VM snapshots, virtual disk sync, and NetBox 4.5 alignment |
0.0.7 |
Historical release in the path to the modern NetBox 4.5-compatible line |
0.0.1-0.0.6 |
Early project history retained as lightweight archive pages |
Notes¶
0.0.7through0.0.9.post4are the most relevant pages for current upgrade planning.- Older pages are intentionally brief because the repository does not preserve fuller release-note prose for those versions.
Current source: netbox-proxbox
0.0.30rc1supports NetBox4.5.8-4.7.99, including official v4.7.0 GA and later 4.7 patch releases. It requires proxbox-api 0.0.29 or later (the release that adds endpoint-owned cluster bindings), with proxmox-sdk 0.0.15 and netbox-sdk 0.0.13. The netbox-sdk dependency is REST-only and does not provide the semantic MCP bridge.
Current release-candidate runtime requirement: deploy proxbox-api 0.0.29 or later (the release that adds endpoint-owned cluster bindings) before netbox-proxbox 0.0.30rc1. The proxmox-sdk and netbox-sdk versions remain 0.0.15 and 0.0.13 respectively. The netbox-sdk dependency is REST-only and does not provide the semantic MCP bridge.