# netbox-proxbox v0.0.13

netbox-proxbox v0.0.13

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.13 |
| Tag | v0.0.13 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-28 23:10 UTC |
| Published | 2026-04-28 23:15 UTC |
| Target | main |
| Synced | 2026-08-25 14:03 UTC |
| Assets | 0 |

## Release notes

## netbox-proxbox v0.0.13

Compatible with **proxbox-api v0.0.8.post1** and **NetBox ≥ 4.6.0**.

### Highlights

#### Controlled fields settings for Device/VM sync (closes #335, #337)

Five new `ProxboxPluginSettings` boolean fields let operators opt out of overwriting specific NetBox fields during sync when those fields carry manually-assigned values:

| Setting | Default | Effect when `False` |
|---------|---------|---------------------|
| `overwrite_device_role` | `True` | Device role is never overwritten after initial creation |
| `overwrite_device_type` | `True` | Device type is never overwritten after initial creation |
| `overwrite_device_tags` | `True` | Existing device tags are not replaced by the Proxbox tag set |
| `overwrite_vm_role` | `True` | VM role is never overwritten after initial creation |
| `overwrite_vm_tags` | `True` | Existing VM tags are merged with Proxbox tags instead of replaced |

All defaults are `True` so existing sync behaviour is unchanged. When set to `False`, the corresponding field is excluded from the patch payload before any NetBox write, meaning user-assigned values are preserved on every subsequent sync. Fields are still populated at object creation time.

Settings are forwarded to proxbox-api as query parameters and take effect immediately without a plugin restart.

**Migration:** `0033` adds the five columns via `ADD COLUMN IF NOT EXISTS` — safe to re-run on partially-upgraded installs.

#### Security fixes

- **`encryption_key` no longer returned in API responses** — marked `write_only` in `ProxboxPluginSettingsSerializer`, consistent with the pattern already applied to `ProxmoxEndpoint` credentials. `GET /api/plugins/proxbox/settings/` no longer leaks the key.
- **URL-encoded VM name and node in Proxmox console links** — `#` and `&` characters in VM names or node names could previously truncate or inject extra parameters into the rendered console `href`. Both values are now percent-encoded before interpolation.

### Bug fixes

- Fix `overwrite_*` settings view: the five new fields were present in the model, form, and migration but were never read back into the form on `GET` or written to the database on `POST`, making the Issue #335 UI completely non-functional. All five fields are now included in the `initial` dict and `update_fields` list.

### Dependencies

- Bump `pydantic` 2.12.5 → **2.13.3** and regenerate lock (no source changes needed — codebase already uses v2-only APIs).
- Pin `fastapi==0.136.1` in the `e2e` optional extra to match the exact version running inside `proxbox-api`.

### Compatibility

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|--------|----------------|-------------|------------|-------------|
| ≥4.6.0 | **v0.0.13** | v0.0.8.post1 | v0.0.7.post6 | v0.0.3.post1 |
| ≥4.6.0 | v0.0.12 | v0.0.8.post1 | v0.0.7.post6 | v0.0.3.post1 |
| ≥4.5.7 | v0.0.11 | v0.0.7 | v0.0.7.post4 | v0.0.2.post2 |

### Installation

```
pip install netbox-proxbox==0.0.13
```

See the [installation docs](https://emersonfelipesp.github.io/netbox-proxbox/) for full setup instructions.

## Assets

No binary assets attached.

Source archives:

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