github emersonfelipesp/netbox-proxbox v0.0.11

11 hours ago

Summary

Version 0.0.11 is a major feature release. It adds Backup Routines, individual per-object sync buttons, a live job panel, a Backend Logs page, non-blocking live log streaming, encryption key storage, extended storage and replication views, endpoint CSV import/export, auto-push of NetBox endpoint config to the backend, three-tier error severity in sync output, and dozens of bug fixes and stability improvements.

Compatibility

NetBox netbox-proxbox proxbox-api netbox-sdk proxmox-sdk
>=4.5.7 v0.0.11 v0.0.7 v0.0.7.post4 v0.0.2.post2

NetBox compatibility range: 4.5.04.5.99 (verified on v4.5.7 with django-rq 4.0).


New Features

Backup Routines

Proxbox now discovers and stores Proxmox vzdump backup schedules as BackupRoutine objects in NetBox. Each routine captures the job ID, enabled state, schedule (cron expression), storage target, compression mode, and retention policies (keepLast, keepHourly, keepDaily, keepWeekly, keepMonthly, keepYearly). Routines can be synced individually or as part of a Full Update. Bulk edit and bulk import are supported.

Individual Sync Buttons on All Objects

Every NetBox plugin object (virtual machines, containers, clusters, nodes, backups, snapshots, replications, backup routines, storage) now shows a Sync Now button on its detail page. Clicking the button enqueues a targeted sync job for that single object without triggering a full update.

Live Job Panel and Real-Time Polling

The sync UI now streams job progress through a live panel with stage-by-stage status, log entries, and error counts. Jobs can be followed in real time from the NetBox UI without reloading the page.

Errors Tab in Live Job Panel

A dedicated Errors tab appears in the live job panel when any non-fatal error occurs. Errors are classified into three severity tiers — critical, error, and warning — each shown with a distinct badge colour.

Backend Logs Page

A new Backend Logs page under Plugins → Proxbox streams log output directly from the proxbox-api process via SSE with level-based colouring and filters for log level and date range.

Encryption Key Storage

ProxboxPluginSettings gains an encryption_key field for storing a secret used to encrypt sensitive Proxmox API tokens at rest, surfaced in a new Encryption card on /proxbox/settings/.

Configurable Primary IP Preference

A new setting in ProxboxPluginSettings lets operators choose which IP address Proxbox assigns as the primary IP for synced virtual machines.

Auto-Push NetBox Endpoint Config to Backend

Proxbox now automatically pushes the active NetBoxEndpoint (URL + API token) to proxbox-api on save, startup, keepalive, and before every sync job — removing the manual backend configuration step.

Per-Stage Runtime Breakdown

The sync card now shows wall-clock time spent in each pipeline stage after a sync completes.

Extended Storage Detail Tabs

ProxmoxStorage detail page now has dedicated tabs for Virtual Disks, Backups, and Snapshots with extended fields (content types, shared flag, active status, disk counts).

Extended Replication Fields

Replication objects now expose endpoint, status, and raw_config. Bulk edit and bulk import are supported with a centralised status enum.

Snapshot Bulk Edit and Bulk Import

VM Snapshots now support bulk edit and bulk import from CSV/JSON/YAML.

Endpoint CSV/JSON Import and Export

All three endpoint types support export (safe and sensitive modes) and bulk import. Import auto-creates IPAddress objects from plain strings and strips the id column to prevent cross-instance conflicts.

Token Export Modal Improvements

The export-secrets modal now supports v1/v2 token formats via a selector and includes a Quick Add shortcut.

Task History as a Sync Stage

Task history records from proxbox-api are now fetched and stored as part of the full sync pipeline.

Retry on 5xx Backend Errors

Sync stages that receive a 5xx response are automatically retried up to two times before being marked as failed.

Run Now for Scheduled Jobs

Scheduled jobs in a terminal state now show a Run now button that immediately re-enqueues the same parameters on the high-priority RQ queue.


Bug Fixes

Area Fix
Security Fixed IDOR in sensitive endpoint export — token lookup now scoped to requesting user
WebSocket websocket_port now defaults to configured HTTP port instead of hardcoded 8800
Backend handshake wait_for_backend_ready passes on any HTTP 200 regardless of init_ok field
Backend handshake Fail fast with clear log message when proxbox-api bootstrap is incomplete
API key push Registers API key with backend before each NetBoxEndpoint push
RQ queue Run Now uses high-priority queue for immediate pickup
Templates Fixed NoReverseMatchcore:job_reruncore:job_proxbox_run
Templates Fixed TemplateSyntaxErrorhyperlinked_objectlinkify
Templates Fixed schedule page TemplateSyntaxError that hid recurring jobs
Migrations Fixed pstart migration cast error on PostgreSQL
Migrations Lowered dcim migration dependency to support NetBox 4.5.0+
Migrations Added state_operations to squashed migration to remove stale unique_together
Models Fixed Proxmox API type mismatches for encrypted and pstart fields
API serializers WritableNestedSerializer for nested endpoint/cluster/node fields
API serializers Added display, tags, custom_fields, encryption_key to settings serializer
API serializers select_related chains added; fixed backup routine node URL N+1
CSV import Fixed id-column stripping override in create_and_update_objects
CSV import Fixed circular import with lazy sync_cluster_and_nodes load
Reinstall Run migrations in reinstall.sh to prevent missing-column HTTP 500

Database Migrations

Migration 0022 (squashed) consolidates schema changes for this release cycle including BackupRoutine, extended Replication fields, encryption_key on settings, and removal of stale unique_together constraints.

python manage.py migrate netbox_proxbox

Full release notes: https://emersonfelipesp.github.io/netbox-proxbox/release-notes/version-0.0.11/

Don't miss a new netbox-proxbox release

NewReleases is sending notifications on new releases.