# netbox-proxbox v0.0.11

v0.0.11

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.11 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.11 |
| Tag | v0.0.11 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-14 04:15 UTC |
| Published | 2026-04-13 20:43 UTC |
| Target | main |
| Synced | 2026-08-24 06:53 UTC |
| Assets | 0 |

## Release notes

## 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.0` – `4.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 `NoReverseMatch` — `core:job_rerun` → `core:job_proxbox_run` |
| Templates | Fixed `TemplateSyntaxError` — `hyperlinked_object` → `linkify` |
| 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.

```bash
python manage.py migrate netbox_proxbox
```

---

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

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/netbox-proxbox/zipball/v0.0.11 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/netbox-proxbox/tarball/v0.0.11 |
