# emersonfelipesp.com full Markdown content

This file concatenates all public Markdown page equivalents.

# Source: https://emersonfelipesp.com/

Title: Emerson Felipe

Description: Software Developer & Network Automation Engineer

# Emerson Felipe

Software Developer & Network Automation Engineer

| Field |Value |
| --- | --- |
| Handle | emersonfelipesp |
| Location | Cotia, São Paulo, Brazil |
| Company | @N-MultiFibra |
| Communities | @netbox-community, @netdevopsbr |
| Email | emerson@netdevopsbr.com |

## Bio

I've been passionate about programming since childhood. When I discovered networking, I found the perfect combination: Network Automation.

I'm focused on gaining deep knowledge of Service Provider networks (MPLS, BGP) while automating everything possible.

I love processes, workflows, building APIs, and seeing systems communicate. But in the end, it's all about solving problems.

Currently managing ASN 265234 and ASN 268881.

Automating networks, one commit at a time.

## Featured projects

- [netbox-proxbox](https://emersonfelipesp.com/netbox-proxbox) - NetBox plugin syncing Proxmox infra into NetBox. [ flagship · 539+ ★ ]
- [netbox-sdk](https://emersonfelipesp.com/netbox-sdk) - Modern NetBox toolkit: SDK + CLI + TUI. [ python · async ]
- [proxmox-sdk](https://emersonfelipesp.com/proxmox-sdk) - Schema-driven FastAPI SDK for the Proxmox API. [ fastapi · openapi ]

## Project architecture

// how my projects fit together

- NetBox: Open-source source-of-truth platform for network infrastructure (DCIM / IPAM / virtualization).
- netbox-proxbox: NetBox plugin that surfaces Proxmox infra (clusters, nodes, VMs, backups) inside NetBox and triggers syncs.
- proxbox-api: FastAPI backend that orchestrates the NetBox ↔ Proxmox sync workflow over HTTP, SSE, and WebSocket.
- netbox-sdk: Python async SDK + CLI (nbx) + Textual TUI for the NetBox REST API. Used by proxbox-api to read/write NetBox.
- NetBox REST API: NetBox's REST API — the data target where Proxmox infrastructure ends up.
- proxmox-sdk: Schema-driven FastAPI SDK for the Proxmox VE API: 646 generated endpoints, dual mock/real modes, CLI + TUI.
- Proxmox REST API: Proxmox VE's REST API — the data source for clusters, nodes, VMs, storage, and backups.

Flow: NetBox -> plugin -> netbox-proxbox -> HTTP / SSE / WS -> proxbox-api -> REST -> NetBox REST API / Proxmox REST API.

## Skills

### languages

- Python
- JavaScript
- TypeScript
- Go
- HTML
- CSS

### frameworks

- Django
- FastAPI
- Next.js
- Bootstrap
- Jinja2

### databases

- PostgreSQL
- MongoDB
- SQLite

### platforms

- NetBox
- Proxmox
- Docker
- Zabbix
- Grafana
- Linux

### vendors

- Cisco
- Huawei
- Mikrotik
- Dell
- A10 Networks

### domains

- DCIM/IPAM
- BGP
- MPLS L2VPN
- GPON
- RPKI
- Network Automation

## Social links

- [github](https://github.com/emersonfelipesp)
- [linkedin](https://www.linkedin.com/in/emersonfelipesp/)
- [email](mailto:emerson@netdevopsbr.com)
- [telegram](https://t.me/emersonfelipesp)
- [instagram](https://www.instagram.com/emersonfelipesp/)
- [n-multifibra](https://nmultifibra.com.br)

## Contact

Use the contact form at https://emersonfelipesp.com/ or email emerson@netdevopsbr.com.


---

# Source: https://emersonfelipesp.com/netbox-proxbox

Title: netbox-proxbox

Description: NetBox plugin that synchronizes Proxmox infrastructure into NetBox via a FastAPI backend.

# netbox-proxbox

NetBox plugin that synchronizes Proxmox infrastructure into NetBox via a FastAPI backend.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox |
| GitHub | https://github.com/emersonfelipesp/netbox-proxbox |
| Developer guide | https://emersonfelipesp.com/netbox-proxbox/developer |
| Roadmap | https://emersonfelipesp.com/netbox-proxbox/roadmap |
| Releases | https://emersonfelipesp.com/netbox-proxbox/releases |
| Stars | 601 |
| Forks | 65 |
| Latest release | v0.0.29 |

## Overview

netbox-proxbox keeps your DCIM in sync with real Proxmox clusters by streaming clusters, nodes, VMs, containers, storage, snapshots and backups straight into NetBox.

It pairs a NetBox plugin (Django) with a dedicated FastAPI service called proxbox-api that does the heavy lifting and pushes progress live over Server-Sent Events.

## Features

- Automatic sync: clusters, nodes, VMs, containers, storage, snapshots, backups
- Real-time progress via Server-Sent Events (SSE) streaming
- Granular per-VM and per-endpoint sync flags
- InfluxDB metrics integration through a bounded proxbox-api query proxy
- Live backend log viewer pulled from proxbox-api
- Endpoint configuration via CSV / JSON / YAML import & export
- Read-only discovery — never mutates resources on Proxmox
- Network interface and IP assignment tracking inside NetBox

## Stack

- NetBox plugin (Django / Python 3.12+)
- proxbox-api (FastAPI backend)
- Server-Sent Events for streaming
- MkDocs Material for docs

## Install

Primary command:

```shell
pip install netbox-proxbox
```

Plus the proxbox-api backend (Docker image or standalone). See docs.

## Source install path

### 1. Clone the repository into NetBox's plugins directory



On the NetBox host, drop the plugin source next to NetBox itself.



```shell
cd /opt/netbox/netbox/
sudo git clone https://github.com/emersonfelipesp/netbox-proxbox.git
```

### 2. Activate the NetBox virtualenv



Every NetBox install ships its own venv — use it so the plugin links against NetBox's exact dependencies.



```shell
source /opt/netbox/venv/bin/activate
```

### 3. Install the plugin in editable mode



Editable install means future `git pull`s pick up new code without re-installing.



```shell
pip install -e /opt/netbox/netbox/netbox-proxbox
```

### 4. Enable the plugin in NetBox configuration



Edit `/opt/netbox/netbox/netbox/configuration.py` and append `"netbox_proxbox"` to the `PLUGINS` list.



```configuration.py
PLUGINS = [
    "netbox_proxbox",
]
```

### 5. Run database migrations



Creates the plugin's tables (endpoints, plugin settings, sync history).



```shell
python3 /opt/netbox/netbox/manage.py migrate netbox_proxbox
```

### 6. Collect static assets



Required so the plugin's CSS/JS are served by NetBox.



```shell
python3 /opt/netbox/netbox/manage.py collectstatic --no-input
```

### 7. Restart NetBox services



Picks up the new plugin and serves it under Plugins → Proxbox.



```shell
sudo systemctl restart netbox netbox-rq
```

### 8. Verify



Open the NetBox web UI, navigate to Plugins → Proxbox. The home page should load with three empty endpoint lists — that means installation is healthy.

## Docker install path

### 1. Add the plugin to plugin_requirements.txt



On netbox-community/netbox-docker, plugin requirements live alongside the compose file.



```shell
echo 'netbox-proxbox' >> plugin_requirements.txt
```

### 2. Enable the plugin in configuration/plugins.py



Mirrors the venv flow but inside the docker config directory.



```configuration/plugins.py
PLUGINS = [
    "netbox_proxbox",
]
```

### 3. Rebuild and start NetBox



The build pulls the plugin from PyPI into the image; up -d boots NetBox + workers.



```shell
docker compose build --no-cache netbox
docker compose up -d
```

### 4. Run migrations inside the container



Same `manage.py migrate` as venv install, but routed through the running container.



```shell
docker compose exec netbox /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py migrate netbox_proxbox
```

### 5. Verify



Browse to NetBox → Plugins → Proxbox. If the page renders, you are ready to add endpoints.

## Backend install path

### 1. Pull the proxbox-api Docker image



The backend is the FastAPI service that actually talks to Proxmox and pushes streaming progress to the plugin.



```shell
docker pull emersonfelipesp/proxbox-api:latest
```

### 2. Run the backend on port 8800



Map host 8800 → container 8000. The plugin will reach this URL via the FastAPI endpoint object you create next.



```shell
docker run -d \
  --name proxbox-api \
  -p 8800:8000 \
  --restart unless-stopped \
  emersonfelipesp/proxbox-api:latest
```

### 3. Verify health



A 200 OK from /health means the backend is up. Need TLS or a non-Docker install? See the upstream backend docs.



```shell
curl -sf http://localhost:8800/health && echo OK
```

## Endpoint configuration

### 1. Create the Proxmox API endpoint

- In NetBox, go to Plugins → Proxbox → Proxmox Endpoints → Add.
- Fill in the Proxmox host or VIP, port (usually 8006), and either user/password or an API token. Toggle TLS verification according to your environment.

### 2. Create the NetBox API endpoint

- Plugins → Proxbox → NetBox Endpoints → Add.
- Point this at the same NetBox you are configuring (yes, NetBox calls itself), with port 443 and a NetBox API token that has write permissions on DCIM/Virtualization.

### 3. Create the ProxBox API (FastAPI) endpoint

- Plugins → Proxbox → FastAPI Endpoints → Add.
- Hostname or IP of the proxbox-api service, port 8800 (or whatever you mapped). This is the bridge that performs the actual sync and streams progress back over SSE.

### 4. Run a Full Update

From Plugins → Proxbox home page, click "Full Update". The page streams live SSE progress as clusters, nodes, VMs, containers, storage, snapshots and backups appear in NetBox.

## Plugin settings

### 1. Tune plugin settings

- Plugins → Proxbox → Plugin Settings exposes a singleton settings object.
- Useful knobs: guest-agent interface naming, Proxmox fetch concurrency, IPv6 link-local filtering, NetBox concurrency + retry policy, bulk-batch sizing, VM sync parallelism.

### 2. Configure SSRF protection

Same settings page. Enable / disable SSRF protection, allow specific private IPs or CIDRs. Keep the default unless you intentionally point endpoints at link-local or private addresses.

### 3. Set sync overwrite flags

- Every `overwrite_*` flag is configurable globally on plugin settings or per-endpoint on the Settings tab of each Proxmox endpoint.
- Per-endpoint flags use a tri-state: Use plugin default / Always overwrite / Never overwrite. This lets you treat one cluster as authoritative while merging from another.

## Screenshots

### Plugin home & dashboard

- Plugin home — endpoint status cards and quick-sync actions. (Proxbox plugin home page inside NetBox) - https://emersonfelipesp.com/netbox-proxbox/screenshots/home.png
- Operational dashboard — cluster and node summaries at a glance. (Proxbox operational dashboard) - https://emersonfelipesp.com/netbox-proxbox/screenshots/dashboard.png

### Endpoint configuration

- Proxmox API endpoints — every cluster Proxbox can reach. (List of configured Proxmox API endpoints) - https://emersonfelipesp.com/netbox-proxbox/screenshots/proxmox-endpoints.png
- Proxmox endpoint detail — credentials, TLS, mode of access. (Single Proxmox endpoint detail page) - https://emersonfelipesp.com/netbox-proxbox/screenshots/proxmox-endpoint-detail.png
- Per-endpoint sync settings — tri-state overwrite flags. (Per-endpoint Proxmox sync settings) - https://emersonfelipesp.com/netbox-proxbox/screenshots/proxmox-endpoint-settings.png
- FastAPI endpoints — the proxbox-api backend Proxbox talks to. (List of FastAPI / proxbox-api endpoints) - https://emersonfelipesp.com/netbox-proxbox/screenshots/fastapi-endpoints.png
- FastAPI endpoint detail — host, port, TLS verify. (FastAPI endpoint detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/fastapi-endpoint-detail.png
- NetBox endpoints — the self-referential write target. (List of NetBox endpoints (self-referential)) - https://emersonfelipesp.com/netbox-proxbox/screenshots/netbox-endpoints.png
- NetBox endpoint detail — token & API base URL. (NetBox endpoint detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/netbox-endpoint-detail.png

### Clusters, nodes, storage

- Clusters — every Proxmox cluster surfaced in NetBox. (Proxmox clusters synchronized into NetBox) - https://emersonfelipesp.com/netbox-proxbox/screenshots/clusters.png
- Nodes — devices that make up each Proxmox cluster. (Proxmox nodes per cluster) - https://emersonfelipesp.com/netbox-proxbox/screenshots/nodes.png
- Storage — pools discovered from Proxmox. (Proxmox storage pools) - https://emersonfelipesp.com/netbox-proxbox/screenshots/storage.png
- Storage detail — type, capacity, content classes. (Single storage pool detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/storage-detail.png

### Virtual machines & LXC containers

- Virtual machines — full inventory across all clusters. (All Proxmox VMs synchronized into NetBox) - https://emersonfelipesp.com/netbox-proxbox/screenshots/virtual-machines.png
- VM detail — Proxmox config tab plus NetBox-native fields. (Single virtual machine detail page) - https://emersonfelipesp.com/netbox-proxbox/screenshots/virtual-machine-detail.png
- LXC containers — discovered alongside KVM guests. (LXC containers managed by Proxmox) - https://emersonfelipesp.com/netbox-proxbox/screenshots/lxc-containers.png
- Container detail — config, network, snapshots. (Single LXC container detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/lxc-container-detail.png

### Backups, snapshots, replications

- Backups — vzdump archives discovered on each storage. (VM backup jobs discovered from storage) - https://emersonfelipesp.com/netbox-proxbox/screenshots/backups.png
- Backup detail — guest, size, mode, timestamp. (Single backup detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/backup-detail.png
- Snapshots — across VMs and containers. (VM and container snapshots) - https://emersonfelipesp.com/netbox-proxbox/screenshots/snapshots.png
- Snapshot detail — parent, RAM, description. (Single snapshot detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/snapshot-detail.png
- Backup routines — vzdump schedules + targets. (Backup routine definitions) - https://emersonfelipesp.com/netbox-proxbox/screenshots/backup-routines.png
- Backup routine detail — selection, retention, mailto. (Single backup routine detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/backup-routine-detail.png
- Replications — Proxmox replication jobs & status. (Replication job status and config) - https://emersonfelipesp.com/netbox-proxbox/screenshots/replications.png

### Task history

- Task history — Proxmox jobs surfaced inside NetBox. (VM task history) - https://emersonfelipesp.com/netbox-proxbox/screenshots/task-history.png
- Task detail — status, log output, duration. (Individual task detail) - https://emersonfelipesp.com/netbox-proxbox/screenshots/task-history-detail.png

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-proxbox |
| docs | https://emersonfelipesp.com/netbox-proxbox/docs/ |
| backendRepo | https://github.com/emersonfelipesp/proxbox-api |
| Proxmox Forum | https://forum.proxmox.com/threads/proxbox-netbox-plugin-for-syncing-proxmox-ve-inventory-into-netbox.183646/ |
| Reddit r/Proxmox | https://www.reddit.com/r/Proxmox/comments/1tglo8y/proxbox_netbox_plugin_for_syncing_proxmox_ve/ |
| Reddit r/Netbox | https://www.reddit.com/r/Netbox/comments/1tglnow/proxbox_netbox_plugin_for_syncing_proxmox_ve/ |


---

# Source: https://emersonfelipesp.com/netbox-proxbox/developer

Title: netbox-proxbox developer guide

Description: Developer guide for netbox-proxbox.

# netbox-proxbox developer guide

Developer guide — architecture, integrations, contribution workflow and end-to-end testing.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/developer |
| Showcase | https://emersonfelipesp.com/netbox-proxbox |
| GitHub | https://github.com/emersonfelipesp/netbox-proxbox |
| Releases | https://emersonfelipesp.com/netbox-proxbox/releases |
| Release snapshot synced | 2026-10-07T04:19:19.349Z |

## Intro

netbox-proxbox is a Django plugin shipped on top of NetBox 4.5.x / 4.6.x. It runs inside the NetBox process and orchestrates all real Proxmox traffic through a sibling FastAPI service called proxbox-api.

This page documents the moving parts a contributor has to understand: how a Full Update click in the NetBox UI ends up streaming clusters, nodes, VMs, snapshots and backups into the source-of-truth, where the code that does it lives, and how the test suite proves the wiring works.

## Architecture

- Plugin entry: netbox_proxbox/__init__.py registers the NetBoxPluginConfig (currently certified against NetBox v4.5.8 → v4.6.x).
- Persisted models: ProxmoxEndpoint, NetBoxEndpoint (singleton), FastAPIEndpoint (singleton), ProxmoxCluster, ProxmoxNode, ProxmoxStorage, BackupRoutine, Replication, VMBackup, VMSnapshot, VMTaskHistory, ProxboxPluginSettings.
- URL routing: netbox_proxbox/urls.py wires every CRUD and operational view; views in netbox_proxbox/views/ extend NetBoxModelViewSet and use register_model_view for related-object panels.
- REST API: netbox_proxbox/api/ exposes DRF NetBoxModelViewSet routes for every persisted model.
- Sync workflow: a Full Update enqueues ProxboxSyncJob on NetBox's RQ default queue (7200s job timeout, 3600s HTTP read timeout). The job calls proxbox-api's full-update/stream endpoint and replays each SSE event back to the browser via netbox_proxbox/services/backend_proxy.py.
- Live log viewer: a separate WebSocket bridge keeps proxbox-api's log buffer streaming inside the plugin UI. Browser-side parsing lives in netbox_proxbox/static/netbox_proxbox/js/.
- Security model: CRUD views use ObjectPermissionRequiredMixin; custom views use ConditionalLoginRequiredMixin (respects NetBox's LOGIN_REQUIRED); operational endpoints use ContentTypePermissionRequiredMixin.
- Companion CLI: proxbox_cli/ ships the pxb command (declared in pyproject.toml [project.scripts]) for headless sync triggers.

## Integrations

| Target |Protocol |Library |Notes |
| --- | --- | --- | --- |
| proxbox-api | HTTP REST + Server-Sent Events + WebSocket | requests + websockets + a small SSE reader in services/backend_proxy.py | Resolved at runtime via FastAPIEndpoint.objects.first() — never imported as a Python dependency. |
| NetBox core (Django ORM + DRF) | in-process | NetBox plugin framework | Plugin lives inside NetBox; persists its own models in NetBox's database and renders inside NetBox's templates. |
| Proxmox VE | indirect | — | The plugin never talks to Proxmox directly; everything goes through proxbox-api. |

## Contributing

Development install:

```shell
pip install -e '.[dev,test,cli]'
```

Pre-PR checks:

- syntax compile: `python -m compileall netbox_proxbox tests`
- lint: `rtk ruff check .`
- type check (cli): `rtk ty check proxbox_cli`
- unit + integration: `rtk pytest tests/`

Code style:

- Linter: ruff (line length 88, select E/F/W).
- Formatter: black.
- Type checker: ty (>=0.0.1a19).
- Pre-commit hooks: .pre-commit-config.yaml (run before opening a PR).
- PRs reference the closing issue with `Closes #<id>`. Contribution guide: CONTRIBUTING.md.

Issues: https://github.com/emersonfelipesp/netbox-proxbox/issues

## CI

The CI surface is split between fast package checks, a reusable Docker E2E stack, documentation automation, nightly contract checks, and staged package publishing.

Release validation keeps the plugin and backend on matching package indexes: TestPyPI plugin validation uses TestPyPI proxbox-api, while PyPI candidate and final validation use PyPI proxbox-api.

| Workflow |Trigger |Purpose |
| --- | --- | --- |
| ci.yml | push + pull_request | Runs lint, ty, compile checks, pytest coverage, and package metadata contract tests. |
| e2e-docker.yml | workflow_call + manual + nightly | Runs NetBox, rqworker, proxbox-api, PostgreSQL, Redis, and a Proxmox mock in Docker. |
| publish-testpypi.yml | version tags + GitHub releases + manual | Publishes immutable TestPyPI/PyPI package versions and gates them with exact install and E2E validation. |
| docs.yml | docs changes | Builds and publishes the MkDocs site. |
| nightly-contracts.yml | schedule + manual | Checks cross-repo contracts that must stay aligned with proxbox-api. |

- Never retry a consumed package version with --skip-existing; publish the next .postN or rcN instead.
- The E2E workflow accepts install_source, dependency_mode, proxbox_api_version, netbox_image, and proxmox_service for focused validation.
- Each matrix cell pulls a dedicated proxmox-sdk image tag — emersonfelipesp/proxmox-sdk:latest-pve, :latest-pbs, :latest-pdm — so the three Proxmox surfaces run in parallel with fail-fast disabled.
- The public MkDocs source of truth is docs/developer/ci-e2e-workflows.md (parallel mock matrix detailed in docs/features/e2e-docker-testing.md).

## End-to-end tests

Framework: Plain Python requests + Docker Compose stack (NetBox + PostgreSQL + Redis + proxbox-api + a per-cell proxmox-sdk mock chosen from latest-pve / latest-pbs / latest-pdm).

There is no pytest E2E target — the suite is a runnable Python script that brings the whole stack up, drives a Full Update, and asserts the resulting NetBox state.

The Docker matrix fans out across NetBox versions × proxmox_service so PVE, Proxmox Backup Server, and Proxmox Datacenter Manager surfaces are exercised in parallel. PVE-only assertions are gated by a stack helper and auto-skip on pbs/pdm cells; the proxbox-api /health smoke runs on every cell.

The same suite is wired into GitHub Actions for nightly coverage and for staged package releases: TestPyPI runs install the plugin and proxbox-api from TestPyPI, while PyPI candidate and final runs install both from PyPI.

Commands:

- run E2E locally (default pve): `python tests/e2e/e2e_stack_check.py`
- run E2E against PBS mock: `PROXMOX_SERVICE=pbs python tests/e2e/e2e_stack_check.py`
- run E2E against PDM mock: `PROXMOX_SERVICE=pdm python tests/e2e/e2e_stack_check.py`

Coverage:

- Spec files: tests/e2e/e2e_stack_check.py, stack_setup.py, stack_sync.py, stack_common.py, mock_proxmox_api.py.
- Stack: NetBox image netboxcommunity/netbox:v4.5.8 / v4.5.9 / v4.6.0 + Postgres + Redis + proxbox-api + proxmox-sdk:latest-{pve,pbs,pdm} chosen per matrix cell.
- Mock data: tests/e2e/proxmox_openapi_mock_data.json mounted into the proxmox-sdk mock container; the requested service tag drives which OpenAPI surface (PVE / PBS / PDM) is served.
- Matrix axes: netbox_image (3) × install_source ∈ {local, pypi, container, testpypi} × dependency_mode ∈ {dev, published, testpypi-package, pypi-package} × proxmox_service ∈ {pve, pbs, pdm}, with fail-fast disabled.
- Release gate: publish-testpypi.yml publishes to TestPyPI first, validates exact package installs, then promotes PyPI rc/final versions only after E2E passes with the matching proxbox-api package index.
- Schedule: nightly cron 31 2 * * * exercises the full matrix unattended.

CI workflow: .github/workflows/e2e-docker.yml (https://github.com/emersonfelipesp/netbox-proxbox/blob/main/.github/workflows/e2e-docker.yml)

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-proxbox |
| docs | https://emersonfelipesp.com/netbox-proxbox/docs/ |
| backendRepo | https://github.com/emersonfelipesp/proxbox-api |
| issues | https://github.com/emersonfelipesp/netbox-proxbox/issues |
| contributing | https://github.com/emersonfelipesp/netbox-proxbox/blob/main/CONTRIBUTING.md |


---

# Source: https://emersonfelipesp.com/netbox-proxbox/roadmap

Title: netbox-proxbox roadmap

Description: Roadmap for netbox-proxbox.

# netbox-proxbox roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/roadmap |
| Repository | emersonfelipesp/netbox-proxbox |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 3 |
| Closed issues | 359 |
| Dependency edges | 93 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #686, #685, #684, #681, #683, #682, #673, #671, #669, #672, #670, #651, #662, #649, #657, #641, #640, #635, #633, #620, #634, #623, #626, #629, #625, #624, #617, #614, #618, #616, #619, #615, #610, #593, #609, #606, #599, #598, #597, #596, #595, #594, #591, #589, #207, #586, #582, #576, #577, #574, #566, #431, #433, #434, #436, #435, #567, #563, #565, #564, #432, #561, #560, #558, #557, #551, #556, #554, #552, #544, #541, #545, #537, #519, #536, #533, #529, #531, #527, #525, #485, #476, #522, #520, #517, #514, #513, #483, #479, #484, #482, #481, #480, #478, #477, #511, #508, #491, #504, #502, #499, #500, #486, #490, #326, #474, #176, #472, #468, #449, #463, #462, #461, #460, #459, #458, #456, #457, #454, #455, #325, #451, #445, #423, #438, #421, #424, #429, #430, #428, #417, #377, #389, #388, #387, #386, #385, #384, #383, #382, #381, #380, #379, #378, #369, #367, #374, #362, #372, #406, #376, #375, #364, #370, #373, #363, #371, #366, #365, #368, #358, #359, #361, #357, #360, #350, #391, #390, #243, #356, #354, #352, #355, #349, #342, #343, #337, #241, #335, #336, #332, #331, #330, #327, #323, #315, #316, #314, #313, #312, #219, #310, #228, #203, #101, #40, #105, #145, #308, #309, #49, #283, #86, #204, #267, #104, #88, #32, #251, #281, #279, #282, #242, #17, #258, #111, #112, #21, #97, #2, #189, #157, #215, #175, #239, #277, #285, #286, #284, #289, #288, #290, #293, #292, #274, #136, #210, #265, #110, #156, #121, #166, #148, #116, #107, #106, #26, #120, #115, #5, #41, #13, #124, #143, #4, #160, #31, #140, #18, #278, #227, #250, #213, #236, #234, #252, #266, #264, #263, #255, #261, #256, #195, #254, #247, #246, #244, #237, #233, #231, #202, #229, #224, #172, #35, #208, #149, #206, #194, #159, #173, #71, #16, #129, #144, #162, #169, #170, #125, #163, #165, #167, #200, #198, #196, #192, #150, #180, #174, #146, #130, #138, #132, #89, #123, #33, #117, #119, #108, #96, #98, #75, #27, #94, #1, #23, #52, #65, #90, #85, #63, #59, #74, #73, #64, #72, #62, #58, #43, #37, #54, #46, #45, #39, #42, #36, #34, #15, #14, #28, #24, #20, #3, #12, #11, #10, #9, #8, #6

### Phase 1 (open)

start anywhere

Issues: #602, #687, #688

## Milestones

| Milestone |State |Due |Open |Closed |URL |
| --- | --- | --- | --- | --- | --- |
| Plugin creation | closed | 2021-04-20 | 0 | 6 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/2 |
| v1.0.0 | open | 2022-05-01 | 0 | 10 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/1 |
| v0.0.5 | closed | 2022-05-21 | 0 | 2 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/4 |
| v0.0.6b2 | closed | 2025-03-31 | 0 | 10 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/10 |
| v0.0.7 | closed | 2025-04-15 | 0 | 6 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/6 |
| v0.0.8 | closed | 2025-04-30 | 0 | 5 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/7 |
| v0.0.10 | closed | n/a | 0 | 11 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/11 |
| v0.0.11 | closed | n/a | 0 | 2 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/12 |
| v0.0.12 | closed | n/a | 0 | 3 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/13 |
| v0.0.13 | closed | n/a | 0 | 6 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/14 |
| v0.0.15 | closed | n/a | 0 | 26 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/16 |
| v0.0.15.post1 | closed | n/a | 0 | 1 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/22 |
| v0.0.16 | closed | n/a | 0 | 5 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/17 |
| v0.0.16.post5 | closed | n/a | 0 | 1 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/24 |
| v0.0.17 | closed | n/a | 0 | 3 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/18 |
| v0.0.18 | closed | n/a | 0 | 1 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/19 |
| v0.0.20 | open | n/a | 0 | 2 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/21 |
| v0.0.21 | open | n/a | 0 | 1 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/26 |
| v0.0.4 | closed | n/a | 0 | 2 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/3 |
| v0.0.6 | closed | n/a | 0 | 22 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/5 |
| v0.0.9 | closed | n/a | 0 | 15 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/8 |
| v0.1.0 | open | n/a | 0 | 16 | https://github.com/emersonfelipesp/netbox-proxbox/milestone/9 |

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #688 | open | Connections to the Proxmox endpoints are being lost |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/688 |
| #687 | open | Netbox 4.7.2 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/687 |
| #686 | closed | Can't create new proxmox API endpoint |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/686 |
| #685 | closed | plugin settings readable by any authenticated user |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/685 |
| #684 | closed | insecure transport defaults + process-wide trust-store swap + no-KDF key |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/684 |
| #683 | closed | device name flows unsanitized into an authenticated backend request path |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/683 |
| #682 | closed | HA arm/disarm checks the wrong permission and acts on every endpoint |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/682 |
| #681 | closed | GET to the websocket sync route triggers a backend sync |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/681 |
| #673 | closed | Error when delete multiple virtual machines at once |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/673 |
| #672 | closed | Large multi-cluster tuning guide and wiring of ignored settings |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/672 |
| #671 | closed | Full sync fails almost immediately with many Proxmox endpoints; one failing cluster aborts the whole run |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/671 |
| #670 | closed | Home page shows reachable clusters as Error for 1-2 minutes when many endpoints are configured |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/670 |
| #669 | closed | Configurable node device name template (FQDN) for Proxmox nodes reused across clusters |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/669 |
| #662 | closed | Redundant connections on the Proxmox Endpoints page |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/662 |
| #657 | closed | ProxBox backend returned an unexpected response |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/657 |
| #651 | closed | RuntimeError("Stage 'devices' failed (HTTP 400): Error ensuring Proxbox tag") |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/651 |
| #649 | closed | Proxmox status request failed |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/649 |
| #641 | closed | Docs: backend encryption key and Compose networking are missing from the install guide |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/641 |
| #640 | closed | Sync job completes successfully even when all NetBox writes were rejected |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/640 |
| #635 | closed | can't add system - authentication issues |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/635 |
| #634 | closed | SND dispay server error |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/634 |
| #633 | closed | Multiple bugs in non-Docker (venv/systemd) install: DATABASE_URL ignored, dual encryption-key systems crash forms on rotation, auth-lockout self-triggers with legitimate traffic |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/633 |
| #629 | closed | Title: overwrite_vm_role=No is not respected, role is reset on every sync regardless of proxmox_last_synced_role_id |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/629 |
| #626 | closed | Error when creating SSH Credentials |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/626 |
| #625 | closed | Proxmox task status request timed out |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/625 |
| #624 | closed | Error ensuring Proxbox tag |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/624 |
| #623 | closed | UI error when click Sync Now from Cluster page |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/623 |
| #620 | closed | Some VM not sync in custer |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/620 |
| #619 | closed | Custom Field missing |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/619 |
| #618 | closed | UI error in cluster view |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/618 |
| #617 | closed | VM name and status do not change during synchronization |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/617 |
| #616 | closed | Error with sync single VM |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/616 |
| #615 | closed | Issues with Node/VM Sync |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/615 |
| #614 | closed | Some VM from cluster do not synchronised in proxbox |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/614 |
| #610 | closed | Multiple interfaces with conflicts are not created |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/610 |
| #609 | closed | Add optional netbox-bgp SDN sync mode to Proxbox plugin |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/609 |
| #606 | closed | Finalize full Proxmox SDN release: bump to 0.0.22, release notes, proxbox-api 0.0.19 compat pin |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/606 |
| #602 | open | Cabling documentation |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/602 |
| #599 | closed | SDN plugin inventory |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/599 |
| #598 | closed | NetBox L2VPN sync |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/598 |
| #597 | closed | Docs, tests, and lifecycle evidence for SDN sync |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/597 |
| #596 | closed | Optional SDN sync controls |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/596 |
| #595 | closed | SDN schema and collectors |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/595 |
| #594 | closed | EVPN/VXLAN | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/594 |
| #593 | closed | BGP | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/593 |
| #591 | closed | Proxbox 'Homepage' menu item stays highlighted on every plugin page |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/591 |
| #589 | closed | Plugin list pages render raw paginator template comment instead of pagination controls |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/589 |
| #586 | closed | Synchronization of interfaces with the initial 'net1' |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/586 |
| #582 | closed | vm-disks sync stage processes VMs sequentially with multiple per-VM API roundtrips |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/582 |
| #577 | closed | sync_mode_vm_template=disabled does not filter templates from VIRTUAL_MACHINES stage |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/577 |
| #576 | closed | VM interfaces with large payload aren't syncing |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/576 |
| #574 | closed | VM_INTERFACES stage ignores sync_mode_ip_address=disabled | v0.0.21 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/574 |
| #567 | closed | Duplicate import path netbox_pbs(?) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/567 |
| #566 | closed | Virtual Server interfaces is wrong matched |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/566 |
| #565 | closed | When opening proxmox summary on the cluster node, it throws error |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/565 |
| #564 | closed | Proxbox -> Virtualization -> Virtual Machines only display the first 100 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/564 |
| #563 | closed | Issue with multiple proxmox endpoints |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/563 |
| #561 | closed | importing a new cluster when physical device already exists | v0.0.20 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/561 |
| #560 | closed | Issues synchronizing a large number of virtual machine interfaces | v0.0.20 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/560 |
| #558 | closed | Synchronizing virtual machines with a large number of interfaces |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/558 |
| #557 | closed | sqlite-database "database.db" is not in repository root but in /app/.venv/lib/python3.13/site-packages/ |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/557 |
| #556 | closed | Option to disable IP address synchronization for VMs |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/556 |
| #554 | closed | Option to exclude Proxmox templates from VM sync |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/554 |
| #552 | closed | Release pipeline: PyPI idempotency check + document Gitea-first flow |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/552 |
| #551 | closed | Bug at Full-Sync via netbox-proxbox |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/551 |
| #545 | closed | Error adding server - API tokens |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/545 |
| #544 | closed | proxbox-api ignoring ssl setting |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/544 |
| #541 | closed | Sharing resolved configuration challenges and help with current issues. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/541 |
| #537 | closed | Not able to delete ip-address |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/537 |
| #536 | closed | Show PBS connection status on Proxbox homepage |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/536 |
| #533 | closed | Dashboard widgets too wide to fit three on one row |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/533 |
| #531 | closed | Fix TypeError when adding dashboard widgets to home page |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/531 |
| #529 | closed | Proxbox sync job endpoint runtime cards |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/529 |
| #527 | closed | feat: add dashboard widgets for NetBox home page |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/527 |
| #525 | closed | Expose VM reconciliation engine in Proxbox settings |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/525 |
| #522 | closed | Configure proxbox-api reconciliation engine from plugin settings |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/522 |
| #520 | closed | Add live PBS connection status to Proxbox home |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/520 |
| #519 | closed | Cannot re-import VM from PVE cluster after deletion |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/519 |
| #517 | closed | Document Firecracker inventory and APIs in NetBox Proxbox |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/517 |
| #514 | closed | Implement browser SSH terminal for Proxmox endpoints |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/514 |
| #513 | closed | Add Firecracker inventory models and API |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/513 |
| #511 | closed | Add PyO3 Rust backend to Docker E2E release gate |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/511 |
| #508 | closed | Render companion plugin endpoints on ProxBox homepage |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/508 |
| #504 | closed | Remove Discord and Telegram community links |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/504 |
| #502 | closed | Document optional Proxbox companion plugins in README |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/502 |
| #500 | closed | Prepare netbox-proxbox for NetBox plugin certification |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/500 |
| #499 | closed | Certification readiness for Proxbox plugin family |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/499 |
| #491 | closed | IP addresses not Syncing in Latest Version |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/491 |
| #490 | closed | feat: add `enabled` boolean field to ProxmoxEndpoint, NetBoxEndpoint, and FastAPIEndpoint |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/490 |
| #486 | closed | Versions >= 0.0.15 conflict with another plugin |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/486 |
| #485 | closed | PVE Firewall Sync \| NetBox > Proxmox |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/485 |
| #484 | closed | [Firewall Write] VNet/SDN Firewall Management — nftables Tech-Preview |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/484 |
| #483 | closed | [Firewall Write] Tests & CI Verification |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/483 |
| #482 | closed | [Firewall Write] Intent & Apply Workflow (Branching-Driven Intent) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/482 |
| #481 | closed | [Firewall Write] NetBox UI Write Forms & Push Actions |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/481 |
| #480 | closed | [Firewall Write] VM/LXC Container Firewall Management (NetBox → Proxmox) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/480 |
| #479 | closed | [Firewall Write] VM/QEMU Firewall Management (NetBox → Proxmox) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/479 |
| #478 | closed | [Firewall Write] Node/Host Firewall Management (NetBox → Proxmox) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/478 |
| #477 | closed | [Firewall Write] Datacenter Firewall Management (NetBox → Proxmox) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/477 |
| #476 | closed | [Firewall Write] proxbox-api Write Endpoints (POST/PUT/DELETE) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/476 |
| #474 | closed | feat: Quick Edit button on homepage endpoint cards (modal form) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/474 |
| #472 | closed | unable to open snapshot | v0.0.17 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/472 |
| #468 | closed | When a server have dual homed ipv4/ipv6 | v0.0.16.post5 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/468 |
| #463 | closed | Add Packer support | v0.0.16 | #456, #457, #458, #459, #460, #461, #462 | https://github.com/emersonfelipesp/netbox-proxbox/issues/463 |
| #462 | closed | Packer / PHASE7: proxmox-iso builder support (post-MVP) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/462 |
| #461 | closed | Packer / PHASE6: plugin settings, security gating, and operational controls |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/461 |
| #460 | closed | Packer / PHASE5: publish successful builds to CloudImageTemplate and tenant catalog |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/460 |
| #459 | closed | Packer / PHASE4: netbox_packer build job and proxbox-api SSE proxy (PackerImageBuildJob) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/459 |
| #458 | closed | Packer / PHASE3: netbox_packer UI surface (forms, tables, filtersets, navigation, templates) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/458 |
| #457 | closed | Packer / PHASE2: netbox_packer plugin scaffold (PluginConfig, models, migrations, choices, API) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/457 |
| #456 | closed | Packer / PHASE1: proxbox-api Image Factory backend foundation (schemas, routes, runner, HCL templates) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/456 |
| #455 | closed | Incorrect information on Dashboard Panel in clustering system | v0.0.16 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/455 |
| #454 | closed | Failed to upgrade to newst version | v0.0.16 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/454 |
| #451 | closed | Add 'Build PVE Template' UI action on ProxmoxEndpoint backed by a new proxbox-api endpoint |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/451 |
| #449 | closed | Proxmox Datacenter Manager Support (PDM) | v0.0.18 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/449 |
| #445 | closed | Proxmox VE 9 - Fullsync not possible - Too many requests / database is locked | v0.0.15.post1 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/445 |
| #438 | closed | Extend ProxmoxEndpoint model to allow user to inform if Proxmox VE instance is `production`, `development`, `homolog` and other useful status. | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/438 |
| #436 | closed | Ceph v2: RBD image inventory and NetBox-driven image management | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/436 |
| #435 | closed | Ceph v2: RGW/S3 inventory and NetBox-driven bucket management | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/435 |
| #434 | closed | Ceph v2: RBD image inventory and NetBox-driven image management | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/434 |
| #433 | closed | Ceph v2: v0.1.0 release hardening, docs, and smoke validation | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/433 |
| #432 | closed | Ceph v2: NetBox desired-state models, UI, and API | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/432 |
| #431 | closed | Ceph v2: NetBox-only Ceph control plane | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/431 |
| #430 | closed | Ceph support: branch-aware sync job and UI integration |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/430 |
| #429 | closed | Ceph support: release, docs, container, and smoke validation |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/429 |
| #428 | closed | Ceph support: netbox_ceph package and domain models |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/428 |
| #424 | closed | Ceph support | v0.0.17 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/424 |
| #423 | closed | Creation on Virtual Machine or Container on Proxmox via NetBox must automatically append NetBox Metadata on description. | v0.0.16 | #377 | https://github.com/emersonfelipesp/netbox-proxbox/issues/423 |
| #421 | closed | Sync Proxmox Tags to NetBox Tags | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/421 |
| #417 | closed | Issues connecting to Proxmox VE9 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/417 |
| #406 | closed | Port NetBox Branching (#370) into v0.0.15/v0.0.11 and bridge with SyncContext (#375) | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/406 |
| #391 | closed | Proxbox -> Virtual Machines & LXC Containers are not able to open in netbox 4.5.9 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/391 |
| #390 | closed | Netbox/Proxbox does not respect Tenant/Site definition |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/390 |
| #389 | closed | Sub-PR L — UI / docs / polish |  | #378, #379, #380, #381, #382, #383, #384, #385, #386, #387, #388 | https://github.com/emersonfelipesp/netbox-proxbox/issues/389 |
| #388 | closed | Sub-PR K — Cloud-Init |  | #363, #383, #384 | https://github.com/emersonfelipesp/netbox-proxbox/issues/388 |
| #387 | closed | Sub-PR J — Audit + four-eyes enforcement tests |  | #378, #379, #380, #381, #382, #383, #384, #385, #386 | https://github.com/emersonfelipesp/netbox-proxbox/issues/387 |
| #386 | closed | Sub-PR I — Deletion Requests UI + executor (the second-eye gate) |  | #378, #379, #380, #381, #382, #383, #384, #385 | https://github.com/emersonfelipesp/netbox-proxbox/issues/386 |
| #385 | closed | Sub-PR H — DELETE → safe-delete (DeletionRequest creation) |  | #378, #379, #380, #381, #382, #383, #384 | https://github.com/emersonfelipesp/netbox-proxbox/issues/385 |
| #384 | closed | Sub-PR G — UPDATE path |  | #378, #379, #380, #381, #382, #383 | https://github.com/emersonfelipesp/netbox-proxbox/issues/384 |
| #383 | closed | Sub-PR F — CREATE path |  | #357, #358, #378, #379, #380, #381, #382 | https://github.com/emersonfelipesp/netbox-proxbox/issues/383 |
| #382 | closed | Sub-PR E — post_merge hook (no-op execution) |  | #378, #379, #380, #381 | https://github.com/emersonfelipesp/netbox-proxbox/issues/382 |
| #381 | closed | Sub-PR D — Plan validator (no apply path) |  | #370, #378, #379, #380 | https://github.com/emersonfelipesp/netbox-proxbox/issues/381 |
| #380 | closed | Sub-PR C — Bootstrap fields |  | #358, #378 | https://github.com/emersonfelipesp/netbox-proxbox/issues/380 |
| #379 | closed | Sub-PR B — Gate (master flag + typed confirmation) |  | #378 | https://github.com/emersonfelipesp/netbox-proxbox/issues/379 |
| #378 | closed | Sub-PR A — Design doc |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/378 |
| #377 | closed | NetBox > Proxmox Integration using netbox-branching #1 | v0.0.15 | #357, #358, #367, #370, #376 | https://github.com/emersonfelipesp/netbox-proxbox/issues/377 |
| #376 | closed | Strictly opt-in operational verbs as REST endpoints (start/stop/snapshot/migrate) | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/376 |
| #375 | closed | Optional ProxboxSession-style backend refactor | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/375 |
| #374 | closed | Hardware discovery via SSH + dmidecode + ethtool | v0.0.15 | #357, #358 | https://github.com/emersonfelipesp/netbox-proxbox/issues/374 |
| #373 | closed | pxb sync run CLI subcommand with manage.py auto-locate | v0.0.15 | #360 | https://github.com/emersonfelipesp/netbox-proxbox/issues/373 |
| #372 | closed | Standalone scheduler container with PROXBOX_MODE (off/continuous/interval/cron) | v0.0.15 | #360 | https://github.com/emersonfelipesp/netbox-proxbox/issues/372 |
| #371 | closed | Add docker-compose-single-exec.yml one-shot pattern | v0.0.15 | #360 | https://github.com/emersonfelipesp/netbox-proxbox/issues/371 |
| #370 | closed | Optional NetBox Branching support (X-NetBox-Branch header) | v0.0.15 | #357 | https://github.com/emersonfelipesp/netbox-proxbox/issues/370 |
| #369 | closed | Plugin Roadmap - v0.0.15 | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/369 |
| #368 | closed | Duplicate VM-name suffix + duplicate_name_resolved SSE frame | v0.0.15 | #357 | https://github.com/emersonfelipesp/netbox-proxbox/issues/368 |
| #367 | closed | latest_job UUID stamp + delete_orphans (3 sub-PRs) | v0.0.15 | #357, #358, #362 | https://github.com/emersonfelipesp/netbox-proxbox/issues/367 |
| #366 | closed | description-field parsing (4 new overwrite flags) - NetBox Metadata on Proxmox VM/CT | v0.0.15 | #357 | https://github.com/emersonfelipesp/netbox-proxbox/issues/366 |
| #365 | closed | Tenant assignment by VM-name regex | v0.0.15 | #357 | https://github.com/emersonfelipesp/netbox-proxbox/issues/365 |
| #364 | closed | Role pinning by VM type (default_role_qemu / default_role_lxc) | v0.0.15 | #358 | https://github.com/emersonfelipesp/netbox-proxbox/issues/364 |
| #363 | closed | Cloud-init read-side reflection (3 read-only custom fields) | v0.0.15 | #357, #358 | https://github.com/emersonfelipesp/netbox-proxbox/issues/363 |
| #362 | closed | Discovery-tag pattern (proxmox-vm-discovered, proxmox-lxc-discovered) | v0.0.15 | #357, #358 | https://github.com/emersonfelipesp/netbox-proxbox/issues/362 |
| #361 | closed | IPv6 link-local skip + zone-ID strip in IP reconciler | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/361 |
| #360 | closed | Add proxbox_sync Django management command | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/360 |
| #359 | closed | Spot-check dcim.mac_addresses linkage; rewrite if legacy string field is in use | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/359 |
| #358 | closed | Idempotent NetBox-side bootstrap of supporting objects | v0.0.15 | #357 | https://github.com/emersonfelipesp/netbox-proxbox/issues/358 |
| #357 | closed | Add drift-detecting writes (`createOrUpdate` helper) | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/357 |
| #356 | closed | Proxbox fails to pull VM IPs |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/356 |
| #355 | closed | Home Page UI missing Logos |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/355 |
| #354 | closed | dns_name is not set in netbox | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/354 |
| #352 | closed | Proxbox fastapi setup, is failing when using the nginx docker container |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/352 |
| #350 | closed | "Role," "Type," and "Tags" device fields overwritten |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/350 |
| #349 | closed | proxmox_last_updated custom field scope is incomplete and VM sync can fail on disk validation | v0.0.13 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/349 |
| #343 | closed | No overwrite_* in settings view | v0.0.13 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/343 |
| #342 | closed | Syncing Devices Reverts Device Type | v0.0.13 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/342 |
| #337 | closed | Syncing machines erases tags | v0.0.13 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/337 |
| #336 | closed | Controlled Devices fields |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/336 |
| #335 | closed | Controlled Devices fields | v0.0.13 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/335 |
| #332 | closed | Improve per-endpoint Proxmox configuration options, such as SSL verification, timeout, retry count, etc. | v0.0.12 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/332 |
| #331 | closed | Add the ability to append site+tenant to PVE endpoint | v0.0.12 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/331 |
| #330 | closed | Sync tasks supports no more than 255 characters | v0.0.12 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/330 |
| #327 | closed | NetBox 4.5.x compatibility fixes for netbox-proxbox + proxbox-api | v0.0.11 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/327 |
| #326 | closed | PVE Firewall sync | v0.0.17 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/326 |
| #325 | closed | Proxmox Backup Server (PBS) support. | v0.0.16 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/325 |
| #323 | closed | Bug: Internal Server Error when creating or viewing Proxmox Endpoint (AttributeError in tabs) | v0.0.11 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/323 |
| #316 | closed | Create a `Backend Logs` page on plugin. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/316 |
| #315 | closed | Add Replication page on plugin that automatically sync Proxmox Replication data. | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/315 |
| #314 | closed | Add a Backup Routines page on plugin that shows Datacenter > Backup scheduled backups. | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/314 |
| #313 | closed | Showing live job updates on core/jobs even when job is not running (scheduled) | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/313 |
| #312 | closed | Add a Console button tha redirects to console on Proxmox. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/312 |
| #310 | closed | Add /proxbox/interfaces Page to list only plugin-related NetBox /virtualization/interfaces. | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/310 |
| #309 | closed | Render OpenAPI schema from Backend on ProxboxEndpoint (/plugins/proxbox/endpoints/fastapi/<pk>) Object Details. | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/309 |
| #308 | closed | Improve /plugins/proxbox/endpoints/proxmox/<pk> Object View with details of Proxmox Cluster and its Nodes. | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/308 |
| #293 | closed | Install / test blocker on the published v4 beta builds |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/293 |
| #292 | closed | Plugin can't connect to proxmox or netbox |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/292 |
| #290 | closed | Proxbox api Docker on other Host |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/290 |
| #289 | closed | Link to instructions for docker alternative does not exist |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/289 |
| #288 | closed | Error after install |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/288 |
| #286 | closed | NetBox API connection not found despite valid configuration |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/286 |
| #285 | closed | Cant get api-backend to connect to Netbox, UNIQUE constraint failed: netboxendpoint.id |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/285 |
| #284 | closed | Error with proxbox-api when installing Proxbox 0.0.6.b2 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/284 |
| #283 | closed | Automatically create VLANs of network interfaces. | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/283 |
| #282 | closed | False-positive with GUI when RawNetBoxSession is sucessful, but NetBoxBase not. | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/282 |
| #281 | closed | Style Sync Process table and add logs to each Sync Process object view. | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/281 |
| #279 | closed | Hide Proxmox Token on NetBox Plugin GUI | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/279 |
| #278 | closed | Add domain field to ProxmoxEndpoint model. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/278 |
| #277 | closed | Fix GUI bug when NetBox HTMX is disabled causing to render layout.html instead of just the desired element. | v0.0.8 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/277 |
| #274 | closed | Implement Backup and Snapshot django modelling and integrate it with Proxmox. | v0.0.7 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/274 |
| #267 | closed | FR: Add to each Endpoints view page a basic validation of the API's connection | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/267 |
| #266 | closed | Error in Nodes and Virtual Machines: class 'django.template.exceptions.TemplateDoesNotExist'  netbox_proxbox/nodes_table/script.html netbox_proxbox/virtual_machine_table/script.html |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/266 |
| #265 | closed | Promox API and Netbox API only accessible via IP address | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/265 |
| #264 | closed | Implement Sync Routines using Django Models to trigger and follow sync progress. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/264 |
| #263 | closed | Change websocket communication to server-only and on client, work with pulling. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/263 |
| #261 | closed | Create Domain fields for NetBox and FastAPI endpoints and manual mkcert cert generation already working with the provided domain. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/261 |
| #258 | closed | Automatically create a self-signed certificate with local-CA with mkcert to Proxbox Backend | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/258 |
| #256 | closed | Fix template error when there's no object created. Also update 'Nodes' and 'Virtual Machines' templates to use new WebSocket client. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/256 |
| #255 | closed | Generate CORS origins based on user provided information at NetBox Endpoint. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/255 |
| #254 | closed | [0.0.6b1] only first call to fastapi application works after that application freezes |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/254 |
| #252 | closed | Allow GUI sync buttons to be clicked only when Websocket is sucessfully connected with backend. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/252 |
| #251 | closed | Ensure Cluster object exists before creating Device, otherwise raise error or skip device creation. | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/251 |
| #250 | closed | Hide Token values on NetBox Models. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/250 |
| #247 | closed | Move to use pynetbox-api NetBox endpoint (session) instead of current one. Basically the same, but proxbox will not have a SQL table anymore. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/247 |
| #246 | closed | Refine websocket client/server code, making it more reliable. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/246 |
| #244 | closed | Move backend communication with NetBox to use pynetbox-api. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/244 |
| #243 | closed | Add HA status in Proxmox to Netbox | v0.0.15 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/243 |
| #242 | closed | Add a last updated timestamp to objects the plugin makes changes to | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/242 |
| #241 | closed | Allow a choice in how the type of virtualization, qemu or lxc, is stored in Netbox | v0.0.13 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/241 |
| #239 | closed | "New Documentation Available!" link in the front page readme 404s | v0.0.7 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/239 |
| #237 | closed | Change Proxbox API to get info from plugin Models instead of configuration.py |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/237 |
| #236 | closed | Change 'netbox_proxbox' package (django app) to 'uv' package manager. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/236 |
| #234 | closed | Allow only one object for NetBoxEndpoint and FastAPIEndpoint on API | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/234 |
| #233 | closed | Allow only one object for NetBoxEndpoint and FastAPIEndpoint on GUI |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/233 |
| #231 | closed | Move 'backend' package to parent folder and renames it to 'proxbox_api' and use 'uv' on this new package. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/231 |
| #229 | closed | Changes 'Full Update' Page to render config from Models instead of Netbox configuration.py |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/229 |
| #228 | closed | Automatically populate NetBoxEndpoint and FastAPIEndpoint models and starts Proxbox Backend service. | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/228 |
| #227 | closed | Move Proxbox current configuration to Django Models to allow GUI and API CRUD operations. | v0.0.6b2 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/227 |
| #224 | closed | Expose Proxbox configuration on Netbox API for CRUD operations. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/224 |
| #219 | closed | Create command-line tool for managing Proxmox VM with Netbox as Source of Truth | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/219 |
| #215 | closed | Refactor Javascript Vanilla to Alpine.js/HTMX | v0.0.8 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/215 |
| #213 | closed | Changes package installation and CI/CD from 'pip' to 'uv' |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/213 |
| #210 | closed | Full Update fails on advanced qemu_guest_agent options |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/210 |
| #208 | closed | Refactor "netbox_proxbox.backend.routes.netbox.generic" subpackage and split it into smaller subpackages. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/208 |
| #207 | closed | Support for Proxmox v8.3.0 Webhook feature. | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/207 |
| #206 | closed | Start using Ruff or other Python Linter |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/206 |
| #204 | closed | The Proxbox Backend default port is already in use. Try to use another port and inform user on GUI. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/204 |
| #203 | closed | Enable FastAPI HTTPS Connection |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/203 |
| #202 | closed | Add keepalive status for all Proxbox services (Netbox API, Proxbox API and Proxmox API) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/202 |
| #200 | closed | Provide sudo-enabled linux user on 'fastapi' section at Netbox 'configuration.py' file. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/200 |
| #198 | closed | Remove all code related to previous Django backend. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/198 |
| #196 | closed | Customize Proxbox Backend systemd Status Page (systemctl status proxbox) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/196 |
| #195 | closed | Proxbox backend docker support | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/195 |
| #194 | closed | Handle corner cases on "Let Proxbox fix it" button at Probox Plugin Homepage. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/194 |
| #192 | closed | Create service buttons on FastAPI card at Proxbox Plugin Homepage and "Fix it" button |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/192 |
| #189 | closed | Fix bug when the first cluster is not communicating, the status of other clusters remain unknown. | v0.0.8 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/189 |
| #180 | closed | project still a live ? |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/180 |
| #176 | closed | Support for netbox >4.6.x | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/176 |
| #175 | closed | pynetbox.core.query.RequestError - The specified disk size (53) must match the aggregate size of assigned virtual disks (55) | v0.0.8 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/175 |
| #174 | closed | errors python3 manage.py migrate |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/174 |
| #173 | closed | object has no attribute "slug" |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/173 |
| #172 | closed | Dynamic Proxmox configuration |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/172 |
| #170 | closed | migration error .. and SSL.. Of course. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/170 |
| #169 | closed | How are you supposed to use this without SSL? |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/169 |
| #167 | closed | Full update does not work |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/167 |
| #166 | closed | full update from netbox gives error |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/166 |
| #165 | closed | Support version 3.7.1 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/165 |
| #163 | closed | Support for  Netbox 3.2.x |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/163 |
| #162 | closed | dont show token value on proxbox plugin page |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/162 |
| #160 | closed | CLOSED |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/160 |
| #159 | closed | Refactor all backend to FastAPI framework | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/159 |
| #157 | closed | Unable to add PVE nodes to Netbox | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/157 |
| #156 | closed | multiple proxmox clusters - support setting site_id on each cluster config | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/156 |
| #150 | closed | Can't add multiple proxmox clusters to proxbox PLUGINS_CONFIG block. Issue with dict vs list |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/150 |
| #149 | closed | Compatibility for Netbox 3.6.1 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/149 |
| #148 | closed | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/148 |
| #146 | closed | Migration error |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/146 |
| #145 | closed | Different site_id for different clusters possible? | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/145 |
| #144 | closed | SSL certificate verify failed |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/144 |
| #143 | closed | AttributeError while running Proxmox Full Update for the first time |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/143 |
| #140 | closed | Interfaces from all VMs are deleted when executing Proxmox Full Update | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/140 |
| #138 | closed | im getting this error whentrying to run the migrate command part of install |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/138 |
| #136 | closed | <class 'TypeError'> While full Update proxmox \| Proxbox | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/136 |
| #132 | closed | AttributeError: module 'netbox_proxbox.proxbox_api' has no attribute 'update | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/132 |
| #130 | closed | Deploy Standalone version of Proxbox plugin (independent of NetBox source-code) | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/130 |
| #129 | closed | OS error: 'coroutine' object has no attribute 'id' |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/129 |
| #125 | closed | Full Upgrade Fail on Netbox 3.5.4 | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/125 |
| #124 | closed | Add CSV code to ease Custom Fields import. | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/124 |
| #123 | closed | Multiple Proxmox Clusters | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/123 |
| #121 | closed | Missing IP Address and some basic information. |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/121 |
| #120 | closed | name=iface['name'] - string indices must be integers | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/120 |
| #119 | closed | [  SOLVED ] proxmox_cluster['name']: object has no attribute 'name' |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/119 |
| #117 | closed | Missing curly bracket in the install procedure |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/117 |
| #116 | closed | Flap Mac address and interface | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/116 |
| #115 | closed | Change from 'pynetbox' to 'netbox-plugin' | v0.0.8 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/115 |
| #112 | closed | Auto Maintain source of truth by having scheduled routine sync | v0.0.7 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/112 |
| #111 | closed | Automatic Full Update | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/111 |
| #110 | closed | 'NoneType' object has no attribute 'id' |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/110 |
| #108 | closed | Custom BASE_PATH support |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/108 |
| #107 | closed | Stuck when full request |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/107 |
| #106 | closed | 'NoneType' object has no attribute 'lower' |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/106 |
| #105 | closed | Option to Ignore IPv6 Link Local Addresses | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/105 |
| #104 | closed | Use interface name from qemu-guest-agent | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/104 |
| #101 | closed | Adapt remove functions so that it works with duplicated devices. | v0.0.10 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/101 |
| #98 | closed | Proxbox plugin crashing when adding an extra network interface to generated devices |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/98 |
| #97 | closed | Assign device into virtual machine view | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/97 |
| #96 | closed | Change print() to python logging library | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/96 |
| #94 | closed | Interfaces are updated event though it's not needed |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/94 |
| #90 | closed | Change how tables are displayed using django_tables2 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/90 |
| #89 | closed | Increase performance by reduncing HTTP requests and using asynchronous code | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/89 |
| #88 | closed | [ERROR] 500 Internal Server Error: QEMU guest agent is not running | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/88 |
| #86 | closed | Automatically fill Virtual Machine Primary Field when syncing. | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/86 |
| #85 | closed | VM info for ethernet device and IP and other VM information not automatically created and associated |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/85 |
| #75 | closed | Error creating PVE node when there's existing Netbox device with the same name (duplicate) |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/75 |
| #74 | closed | 'str' object has no attribute 'id' |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/74 |
| #73 | closed | The problem with the template footer.html |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/73 |
| #72 | closed | netbox-proxbox and netbox 3.4.x |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/72 |
| #71 | closed | сannot create new vm/ct |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/71 |
| #65 | closed | Multiple datacenter configuratrion |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/65 |
| #64 | closed | Problem open template |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/64 |
| #63 | closed | problem : /plugins/proxbox/full_update/ |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/63 |
| #62 | closed | ModuleNotFoundError: No module named 'proxmoxer' \| On python3 manage.py migrate |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/62 |
| #59 | closed | Running into Error when starting the Proxmox Full Update |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/59 |
| #58 | closed | Plugin isn't recognized by netbox |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/58 |
| #54 | closed | Proxbox cannot be found, yet is installed | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/54 |
| #52 | closed | Get Network information from Proxmox (IP address from VM's and Containers, MAC address, etc...) | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/52 |
| #49 | closed | New Views: 'LXC Container', 'Nodes', 'Resource Pool', 'Virtual Machine' and 'Storage' | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/49 |
| #46 | closed | VM info for ethernet device and IP and other VM information not automatically created and associated |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/46 |
| #45 | closed | footer.html error django.template.exceptions.TemplateDoesNotExist |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/45 |
| #43 | closed | Improve Proxbox documentation | v0.0.5 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/43 |
| #42 | closed | ImportError: cannot import name 'BaseTable' | v0.0.4 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/42 |
| #41 | closed | Full Update class 'KeyError' | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/41 |
| #40 | closed | Allow to be used with netbox docker containers | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/40 |
| #39 | closed | Does not work on netbox-3.1.10 |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/39 |
| #37 | closed | PIP Repo Must be updated | v0.0.5 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/37 |
| #36 | closed | Support Netbox v3.2.0 | v0.0.4 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/36 |
| #35 | closed | Enable user to edit PLUGINS_CONFIG in configuration.py through GUI | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/35 |
| #34 | closed | Create custom footer of Proxbox for all templates | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/34 |
| #33 | closed | Add multi-cluster support | v0.0.7 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/33 |
| #32 | closed | Add SSL verification on creating NETBOX_SESSION at plugins_config using pynetbox | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/32 |
| #31 | closed | Temporary failure in name resolution | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/31 |
| #28 | closed | Server Error | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/28 |
| #27 | closed | ValueError at /plugins/proxbox/full_update/ | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/27 |
| #26 | closed | im getting this error whentrying to run the migrate command part of install | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/26 |
| #24 | closed | Translate repository from portuguese to english | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/24 |
| #23 | closed | Raise Exception to errors instead of returning error | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/23 |
| #21 | closed | Add action to basic validation such as syntax code | v0.1.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/21 |
| #20 | closed | Add contributing section to README.md explaining how users should contribute with the code | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/20 |
| #18 | closed | Automatically create Node devices, as it happens with Virtual Machines and Cluster | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/18 |
| #17 | closed | Add individual VM update | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/17 |
| #16 | closed | Use websocket to VM/CT updates | v0.0.7 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/16 |
| #15 | closed | HTTP Code 504 - page: /proxbox/proxbox/full_update/ | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/15 |
| #14 | closed | Style '/plugins/proxbox/full_update/' result using base.html provided by Netbox | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/14 |
| #13 | closed | Migrate "custom_fields" value to "proxmox" table created using template_content.py | v0.0.7 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/13 |
| #12 | closed | 6. Makes integration between plugin and Proxmox using proxmoxer and pynetbox | Plugin creation |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/12 |
| #11 | closed | 5. Permissions and API | Plugin creation |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/11 |
| #10 | closed | 4. Small improvements | Plugin creation |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/10 |
| #9 | closed | 3. Adding search panel | Plugin creation |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/9 |
| #8 | closed | 2. Add web UI pages | Plugin creation |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/8 |
| #6 | closed | 1. Setup and initial build | Plugin creation |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/6 |
| #5 | closed | 'custom_fields' not filled because there was no previous configuration done | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/5 |
| #4 | closed | 'status' returning False because the status is 'Offline' and the status field was not changed | v0.0.6 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/4 |
| #3 | closed | Automatically create Netbox Cluster ID and Role ID to make it possible the creation of default VMs | v1.0.0 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/3 |
| #2 | closed | Add doctstring to all functions and classess |  |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/2 |
| #1 | closed | Change log structure. | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-proxbox/issues/1 |


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases

Title: netbox-proxbox releases

Description: Release index for netbox-proxbox.

# netbox-proxbox releases

NetBox plugin that synchronizes Proxmox infrastructure into NetBox via a FastAPI backend.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases |
| GitHub releases | https://github.com/emersonfelipesp/netbox-proxbox/releases |
| Repository | emersonfelipesp/netbox-proxbox |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 40 |
| Stars | 601 |
| Forks | 65 |

## Release index

- [v0.0.29](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.29) - v0.0.29 - 2026-10-05 - latest
- [netbox-proxbox 0.0.27](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.27) - v0.0.27 - 2026-09-24 - stable
- [v0.0.26.post9](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post9) - v0.0.26.post9 - 2026-09-17 - stable
- [v0.0.26.post10](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post10) - v0.0.26.post10 - 2026-09-17 - stable
- [v0.0.26.post8](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post8) - v0.0.26.post8 - 2026-09-17 - stable
- [v0.0.26.post7](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post7) - v0.0.26.post7 - 2026-09-16 - stable
- [v0.0.18](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.18) - v0.0.18 - 2026-05-22 - stable
- [v0.0.17](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.17) - v0.0.17 - 2026-05-20 - stable
- [v0.0.16.post6](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post6) - v0.0.16.post6 - 2026-05-18 - stable
- [v0.0.16.post5](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post5) - v0.0.16.post5 - 2026-05-18 - stable
- [v0.0.16.post4](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post4) - v0.0.16.post4 - 2026-05-18 - stable
- [v0.0.16.post3](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post3) - v0.0.16.post3 - 2026-05-18 - stable
- [v0.0.15.post2](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15.post2) - v0.0.15.post2 - 2026-05-16 - stable
- [netbox-proxbox v0.0.15.post1](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15.post1) - v0.0.15.post1 - 2026-05-16 - stable
- [v0.0.15](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15) - v0.0.15 - 2026-05-15 - stable
- [netbox-proxbox v0.0.14](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.14) - v0.0.14 - 2026-05-05 - stable
- [v0.0.13.post4](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post4) - v0.0.13.post4 - 2026-05-01 - stable
- [netbox-proxbox v0.0.13.post2](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post2) - v0.0.13.post2 - 2026-05-01 - stable
- [netbox-proxbox v0.0.13.post1](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post1) - v0.0.13.post1 - 2026-04-28 - stable
- [netbox-proxbox v0.0.13](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13) - v0.0.13 - 2026-04-28 - stable
- [netbox-proxbox v0.0.12](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.12) - v0.0.12 - 2026-04-23 - stable
- [v0.0.11.post1 — Settings permission fix & sync improvements](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.11.post1) - v0.0.11.post1 - 2026-04-17 - stable
- [v0.0.11](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.11) - v0.0.11 - 2026-04-13 - stable
- [v0.0.10](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.10) - v0.0.10 - 2026-04-03 - stable
- [v0.0.9.post4](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post4) - v0.0.9.post4 - 2026-04-01 - stable
- [v0.0.9.post3](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post3) - v0.0.9.post3 - 2026-04-01 - stable
- [v0.0.9.post2](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post2) - v0.0.9.post2 - 2026-04-01 - stable
- [v0.0.9.post1](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post1) - v0.0.9.post1 - 2026-04-01 - stable
- [netbox-proxbox v0.0.9](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9) - v0.0.9 - 2026-04-01 - stable
- [NetBox Proxbox v0.0.8](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.8) - v0.0.8 - 2026-03-30 - stable
- [v0.0.7](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.7) - v0.0.7 - 2026-03-29 - stable
- [v0.0.6b2.post1 - 2025-04-16](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.6b2.post1) - v0.0.6b2.post1 - 2025-04-16 - stable
- [v0.0.6b2 - 2025-04-08](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.b2) - v0.0.b2 - 2025-04-08 - stable
- [v0.0.6b1 - 2025-03-01](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.6b1) - v0.0.6b1 - 2025-03-01 - pre-release
- [v0.0.5 - 2023-03-17](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.5) - v0.0.5 - 2023-03-17 - stable
- [v0.0.5-beta1 - 2022-05-21](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.5-beta1) - v0.0.5-beta1 - 2022-05-21 - pre-release
- [v0.0.4 - 2022-05-07](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.4) - v0.0.4 - 2022-05-07 - stable
- [v0.0.3 - 2022-03-04](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.3) - v0.0.3 - 2022-03-05 - pre-release
- [v0.0.2](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.2) - v0.0.2 - 2021-04-24 - pre-release
- [v0.0.1 - 2021-04-23](https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.1) - v0.0.1 - 2021-04-24 - pre-release


---

# Source: https://emersonfelipesp.com/netbox-proxbox/community

Title: netbox-proxbox community threads

Description: Community discussion threads for netbox-proxbox on the Proxmox Forum and Reddit.

# netbox-proxbox Community

> Community discussion threads for netbox-proxbox across the Proxmox Forum and Reddit.

## Proxmox Forum

Platform: Proxmox Community Forum (XenForo)
Thread: Proxbox – NetBox plugin for syncing Proxmox VE inventory into NetBox
URL: https://forum.proxmox.com/threads/proxbox-netbox-plugin-for-syncing-proxmox-ve-inventory-into-netbox.183646/

Discussion thread on the official Proxmox community forum covering installation,
configuration, troubleshooting, and feature requests for netbox-proxbox.

## Reddit r/Proxmox

Platform: Reddit r/Proxmox
Post: Proxbox – NetBox plugin for syncing Proxmox VE inventory into NetBox
URL: https://www.reddit.com/r/Proxmox/comments/1tglo8y/proxbox_netbox_plugin_for_syncing_proxmox_ve/

Announcement and discussion thread for netbox-proxbox on the r/Proxmox subreddit,
targeting the Proxmox VE user community.

## Reddit r/Netbox

Platform: Reddit r/Netbox
Post: Proxbox – NetBox plugin for syncing Proxmox VE inventory into NetBox
URL: https://www.reddit.com/r/Netbox/comments/1tglnow/proxbox_netbox_plugin_for_syncing_proxmox_ve/

Announcement and discussion thread for netbox-proxbox on the r/Netbox subreddit,
targeting the NetBox DCIM/IPAM community.

## Related pages

- [netbox-proxbox showcase](https://emersonfelipesp.com/netbox-proxbox)
- [netbox-proxbox developer guide](https://emersonfelipesp.com/netbox-proxbox/developer)
- [netbox-proxbox releases](https://emersonfelipesp.com/netbox-proxbox/releases)
- [GitHub](https://github.com/emersonfelipesp/netbox-proxbox)


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.29

Title: netbox-proxbox v0.0.29

Description: v0.0.29

# netbox-proxbox v0.0.29

v0.0.29

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.29 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.29 |
| Tag | v0.0.29 |
| State | latest |
| Author | emersonfelipesp |
| Created | 2026-10-05 12:49 UTC |
| Published | 2026-10-05 12:54 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-proxbox 0.0.29 — security hardening

Supports NetBox 4.5.8 through 4.7.0. Pairs with proxbox-api 0.0.23.post3, proxmox-sdk 0.0.15, and netbox-sdk 0.0.13.

### Security
- **Sensitive data:** credential export, SSH credential secret reads, and the settings runtime key require an active superuser or an explicit per-user sensitive-data grant. Change-log snapshots of credential-bearing objects are redacted.
- **Connection-target approval:** credentials are sent only to a Proxmox or NetBox endpoint whose exact connection target was approved; editing the target clears the approval.
- **Scoped reads and actions:** plugin settings reads require view permission; HA data covers only endpoints the caller may view; HA arm/disarm requires the grantable `run_proxmox_action` action, skips endpoints with writes disabled, and reports per-cluster backend errors as failures.
- **WebSocket sync:** the server-side sync route no longer starts work on GET; syncs require an authorized, CSRF-protected POST.
- **Input validation:** Proxmox node, storage, guest type, VM ID, and firewall identifiers are validated before they reach backend request paths.
- **Secure defaults:** new endpoints default to HTTPS and TLS verification, the process-wide certificate bundle override is removed, and new encryption keys must be canonical Fernet keys. System checks `netbox_proxbox.W100`–`W105` report insecure existing configuration.
- **Dependencies:** raised security floors for Django, oauthlib, PyJWT, social-auth-core, urllib3, and virtualenv.

### Fixes
- The Proxbox home page and the NetBox endpoint list no longer fail with a server error on NetBox 4.7.
- Virtual-machine synchronization no longer stops with a duplicate node-device claim when paired with proxbox-api 0.0.23.post3.
- Cluster virtual-machine bulk deletion is limited to the active cluster and reports missing or mismatched records.

### Upgrade notes
- Apply the single migration `0104_security_hardening`. Existing endpoints keep their stored transport settings.
- Approve each endpoint's connection target before synchronization resumes.
- Grant `run_proxmox_action` to operators who use HA arm/disarm.
- Automation that creates plain-HTTP backend endpoints must send `use_https: false`.
- Rotate legacy raw encryption keys (`netbox_proxbox.W104`).

### Known limitation
Node device identity is not yet scoped by Proxmox endpoint. If two Proxmox endpoints use the same cluster name and node name, give them distinct names until a later release adds endpoint scoping.

### Version note
Version 0.0.28 is not used: its only published candidate predates this release's schema change, and each release ships exactly one migration.

Full notes: [docs/release-notes/version-0.0.29.md](https://github.com/emersonfelipesp/netbox-proxbox/blob/main/docs/release-notes/version-0.0.29.md)

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.27

Title: netbox-proxbox v0.0.27

Description: netbox-proxbox 0.0.27

# netbox-proxbox v0.0.27

netbox-proxbox 0.0.27

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.27 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.27 |
| Tag | v0.0.27 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-24 23:32 UTC |
| Published | 2026-09-24 23:40 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# Version 0.0.27

## Standalone virtual machine consoles and hardened synchronization

Current backend-runtime pairing: netbox-proxbox 0.0.27 <-> proxbox-api 0.0.23.post2 <-> proxmox-sdk 0.0.15 <-> netbox-sdk 0.0.13. This netbox-sdk version is proxbox-api's REST dependency only and does not provide the semantic MCP bridge.

This release adds a permission-gated Console tab directly to synchronized NetBox virtual machines. QEMU guests support noVNC and terminal sessions, and LXC guests support terminal sessions. The browser connects through the public proxbox-api relay without receiving Proxmox credentials, private topology, or reusable upstream tickets.

RC15 paired with `proxbox-api 0.0.23.post1` and failed the real-stack Page
Coverage gate because the expected backup inventory record was missing. RC16
pairs with post2, which restores that record, but its next Page Coverage run
failed because the mock returned no list-shaped node network response. RC17
retains post2 and adds Proxmox-compatible `{"data": [...]}` network envelopes
for `pve01`, `pve02`, and `pve03`. RC17 passed Page Coverage and TestPyPI but
failed all Docker E2E cells before container startup because `packaging` was
not installed for backend selection. RC18 installs it before that script runs.

- Restores Docker E2E setup across the complete matrix by installing
  `packaging` before the backend-selection script imports it.
- Promotes the RC18 package after Page Coverage, TestPyPI validation on Python
  3.12 and 3.13, and all 66 Docker E2E cells passed.

- Restores node network synchronization in the real-stack Page Coverage gate
  by returning list-shaped Proxmox network data for every fixture node.

- Restores backup synchronization in the real-stack Page Coverage gate with
  `proxbox-api 0.0.23.post2`, which hydrates typed virtual-machine identity
  before filtering backup records.
- Resolves expected Proxmox VMIDs through the typed sync-state API during
  release validation, rejects incomplete, malformed, ambiguous, or
  ignored-filter responses, and verifies the linked NetBox virtual machine.
- Validates the canonical Proxbox home redirect during release checks, rejects
  ambiguous redirect and job-ID forms, and requires every polled Core Job
  resource to match the authoritative response header ID.
- Exposes the exact NetBox Core Job ID on successful Proxbox sync enqueue
  responses and uses that identity during release validation, avoiding
  first-page loss and concurrent same-name false positives under one bounded
  monotonic deadline.
- Gives disposable Page Coverage and Docker E2E Proxmox endpoints an explicit
  60-second request timeout and one bounded retry, avoiding hosted mock-server
  timeouts without changing production endpoint defaults.
- Bounds Proxmox fetch concurrency at one in disposable Page Coverage and
  Docker E2E stacks through the supported plugin settings API, preventing the
  lightweight mock server from dropping simultaneous VM configuration requests
  without changing production defaults.
- Exposes the existing endpoint `credential_storage_backend` field through the
  REST serializer, allowing an explicit `legacy_encrypted` override when
  netbox-openbao is unavailable without changing the global OpenBao setting.
- Keeps the disposable Page Coverage stack self-contained by selecting local
  encrypted storage on its singleton settings before any endpoint credentials,
  without weakening the OpenBao default used by production configuration.
- Runs public release metadata validation with the locked publish virtual
  environment, preventing hosted runners from selecting an unprovisioned
  system interpreter before TestPyPI or PyPI publication.
- Authorizes each console request against the exact NetBox virtual machine and Proxbox endpoint.
- Restores durable endpoint bindings and fails closed when a target cannot be proved.
- Supports the certified NetBox 4.5.8 through 4.7.0 GA matrix with real-Django compatibility coverage.
- Adds pull-based Proxmox metrics and deterministic reconciliation with the existing InfluxDB source.
- Preserves bounded session lifetimes, origin checks, redacted diagnostics, and server-side TLS policy.
- Restores the published `0085_remove_vm_reflection_custom_fields` migration byte-for-byte so package deployment preserves immutable migration history.
- Keeps public release promotion limited to exact repository-linked package provenance; deployment authorization and host evidence remain outside this public repository.
- Adds `credential_reference_id` additively for existing schemas, copies populated historical references without dropping the downgrade-compatible column, and fails closed on structurally ambiguous predecessors. Fresh installs receive the generic field from the sanitized `0064` migration source.
- Resolves the companion RPC plugin's selected backend before considering the sole-backend fallback and refuses to create monitoring rows when selection remains ambiguous.
- Removes the retired external SSH-credential fallback. Every enabled API + SSH node must have a local `NodeSSHCredential`; disabled and API-only nodes are reported separately and do not block the upgrade. Run `python manage.py audit_node_ssh_credentials --fail-on-missing`, create local credentials for every blocker, and do not restart NetBox until the command exits successfully with zero blockers. Requests for nodes without a local credential now return HTTP 404 with an actionable provisioning message.
- Replaces the generic VM console endpoint-unavailable response with stable diagnostics that distinguish backend connectivity from missing, disabled, drifted, or inconsistent NetBox endpoint and node relations.
- Shows exact administrator remedies and, when the caller has core Job add permission, a CSRF-protected **Repair all enabled endpoints** action with an explicit warning that the full synchronization can reconcile stale NetBox inventory outside the displayed VM.

Deploy `proxbox-api 0.0.23.post2` before installing this plugin release. This
backend preserves the earlier duplicate virtual-machine reconciliation fix and
restores backup records by hydrating typed VM identity before backup filtering.

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|---|---|---|---|---|
| 4.5.8-4.7.0 GA | v0.0.27 | v0.0.23.post2 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc18 | v0.0.23.post2 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc17 | v0.0.23.post2 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc16 | v0.0.23.post2 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc15 | v0.0.23.post1 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc14 | v0.0.23.post1 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc13 | v0.0.23.post1 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc12 | v0.0.23.post1 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc11 | v0.0.23.post1 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc10 | v0.0.23.post1 | v0.0.13 | v0.0.15 |
| 4.5.8-4.7.0 GA | v0.0.27rc9 | v0.0.22.post1 | v0.0.13 | v0.0.13 |
| 4.5.8-4.7.0 GA | v0.0.27rc8 | v0.0.22.post1 | v0.0.13 | v0.0.13 |
| 4.5.8-4.7.0 GA | v0.0.27rc7 | v0.0.22.post1 | v0.0.13 | v0.0.13 |
| 4.5.8-4.7.0 GA | v0.0.27rc6 | v0.0.22.post1 | v0.0.13 | v0.0.13 |
| 4.5.8-4.7.0 GA | v0.0.27rc5 | v0.0.22.post1 | v0.0.13 | v0.0.13 |
| 4.5.8-4.7.0 GA | v0.0.27rc4 | v0.0.22.post1 | v0.0.13 | v0.0.13 |

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post9

Title: netbox-proxbox v0.0.26.post9

Description: v0.0.26.post9

# netbox-proxbox v0.0.26.post9

v0.0.26.post9

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post9 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.26.post9 |
| Tag | v0.0.26.post9 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-17 01:44 UTC |
| Published | 2026-09-17 01:45 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

> **Not published to PyPI.** The release validation run for this tag failed at the validation gate; it is superseded by 0.0.26.post10, the first 0.0.26-line build on PyPI.

# Version 0.0.26.post9

## Release-validation page-coverage gate aligned with its backend

The public release validation workflow runs a page-coverage gate that drives a
full Proxmox synchronization through a pinned PyPI backend (proxbox-api
0.0.18.post5). That backend is certified through NetBox 4.6.6, but the gate had
moved to the NetBox 4.7.0 image, so every virtual-machine creation failed and
the gate blocked publication. The gate now runs the NetBox 4.6.6 image pinned by digest, the last green
baseline for this backend; NetBox 4.7.0 GA certification continues to be
carried by the Django compatibility matrix and the end-to-end matrix.

No plugin runtime changes. This release exists so the 0.0.26 line can be
published publicly.

## Compatibility

Identical runtime to 0.0.26.post8.

Current backend-runtime pairing: netbox-proxbox 0.0.26.post9 <-> proxbox-api 0.0.21.post7 <-> proxmox-sdk 0.0.13 <-> netbox-sdk 0.0.10. This netbox-sdk version is proxbox-api's REST dependency only and does not provide the semantic MCP bridge.

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|---|---|---|---|---|
| 4.5.8-4.7.0 GA | v0.0.26.post9 | v0.0.21.post7 | v0.0.10 | v0.0.13 |

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post10

Title: netbox-proxbox v0.0.26.post10

Description: v0.0.26.post10

# netbox-proxbox v0.0.26.post10

v0.0.26.post10

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post10 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.26.post10 |
| Tag | v0.0.26.post10 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-17 03:09 UTC |
| Published | 2026-09-17 03:10 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# Version 0.0.26.post10

## Release-validation end-to-end matrix scoped to its backend

The public release validation workflow runs an end-to-end Docker matrix that
installs a published backend (proxbox-api from PyPI, TestPyPI, or Docker Hub).
That backend is certified through NetBox 4.6.6: on the NetBox 4.7.0 image its
PVE synchronization fails at NetBox object creation while the PBS and PDM
services pass, so the two PVE cells on 4.7.0 blocked publication on every
attempt.

Those two cells are now excluded only in the published-backend dependency
modes. Runs that build the backend from source (pull requests, scheduled runs,
and manual dev-backend runs) keep every NetBox 4.7.0 cell, and the 4.7.0 PBS
and PDM cells stay in the release lane.

End-to-end PVE synchronization on NetBox 4.7.0 with the published backend this
line pairs with is known-broken (observed failures in NetBox object creation)
and is not validated by this release. The Django compatibility matrix still
runs the plugin's own test suite on NetBox 4.7.0; it does not exercise the
backend-to-NetBox synchronization path. The NetBox 4.7.0 certification entry
therefore covers plugin/Django compatibility only; operators on NetBox 4.7.0
should treat PVE synchronization through proxbox-api 0.0.19.post5 through
0.0.21.post7 as known-broken.

No plugin runtime changes. This release exists so the 0.0.26 line can be
published publicly.

Limitation: end-to-end PVE synchronization on NetBox 4.7.0 through the published backend this line pairs with (proxbox-api 0.0.19.post5 through 0.0.21.post7) is known-broken and excluded from the release-validation matrix; the NetBox 4.7.0 entry covers plugin/Django compatibility only.

## Compatibility

Identical runtime to 0.0.26.post9.

Current backend-runtime pairing: netbox-proxbox 0.0.26.post10 <-> proxbox-api 0.0.21.post7 <-> proxmox-sdk 0.0.13 <-> netbox-sdk 0.0.10. This netbox-sdk version is proxbox-api's REST dependency only and does not provide the semantic MCP bridge.

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|---|---|---|---|---|
| 4.5.8-4.7.0 GA | v0.0.26.post10 | v0.0.21.post7 | v0.0.10 | v0.0.13 |

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post8

Title: netbox-proxbox v0.0.26.post8

Description: v0.0.26.post8

# netbox-proxbox v0.0.26.post8

v0.0.26.post8

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post8 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.26.post8 |
| Tag | v0.0.26.post8 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-16 23:55 UTC |
| Published | 2026-09-17 01:04 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

> **Not published to PyPI.** The release validation run for this tag failed at the validation gate; it is superseded by 0.0.26.post10, the first 0.0.26-line build on PyPI.

# Version 0.0.26.post8

## Public release validation lane restored

The GitHub release validation workflow runs an end-to-end Docker matrix and a
page-coverage gate before anything is published to PyPI. Both create the mock
Proxmox endpoint through the plugin API, and since 0.0.26 that request resolved
to OpenBao credential storage, which the validation stack does not provide. The
endpoint create failed closed and no 0.0.26 build reached PyPI.

The plugin settings singleton predates the credential-storage column, so it
kept that migration's `openbao` default. The validation harness now pins the
plugin setting to `legacy_encrypted` before it creates any endpoint. Explicit
selections never fall back to OpenBao, so the gates run without
`netbox-openbao`. The plugin's
write-mode OpenBao rule and every runtime behaviour are unchanged; this release
exists so the 0.0.26 line can be published publicly.

Continuous integration now also runs for `release-*` branches, which carry
post-release repairs for an already-superseded integration line.

## Compatibility

Identical runtime to 0.0.26.post7.

Current backend-runtime pairing: netbox-proxbox 0.0.26.post8 <-> proxbox-api 0.0.21.post7 <-> proxmox-sdk 0.0.13 <-> netbox-sdk 0.0.10. This netbox-sdk version is proxbox-api's REST dependency only and does not provide the semantic MCP bridge.

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|---|---|---|---|---|
| 4.5.8-4.7.0 GA | v0.0.26.post8 | v0.0.21.post7 | v0.0.10 | v0.0.13 |

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post7

Title: netbox-proxbox v0.0.26.post7

Description: v0.0.26.post7

# netbox-proxbox v0.0.26.post7

v0.0.26.post7

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.26.post7 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.26.post7 |
| Tag | v0.0.26.post7 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-11 22:41 UTC |
| Published | 2026-09-16 23:05 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

> **Not published to PyPI.** The release validation run for this tag failed at the validation gate; it is superseded by 0.0.26.post10, the first 0.0.26-line build on PyPI.

# Version 0.0.26.post7

## Import path fix for VM list filter helpers

Export `get_proxbox_tagged_virtual_machines_queryset` and
`apply_virtual_machine_list_filters` from `netbox_proxbox.utils` (the package
`__init__`) so production imports resolve correctly when both `utils.py` and
`utils/` are present in the wheel.

## Production deploy compatibility for VM list filters

Restores migration `0083_openbao_credential_storage.py` to the byte-identical
history already installed in production so package-first deploys pass the
migration-preservation gate. The OpenBao default change remains in migration
`0094_automatic_credential_storage_default`.

## Proxbox virtual machines list search and filtering

Current backend-runtime pairing: netbox-proxbox 0.0.26.post7 <-> proxbox-api 0.0.21.post7 <-> proxmox-sdk 0.0.13 <-> netbox-sdk 0.0.10. This netbox-sdk version is proxbox-api's REST dependency only and does not provide the semantic MCP bridge.

This maintenance release ships NetBox-native search and filtering on the Proxbox virtual machines list. The page reuses `VirtualMachineFilterSet`, exposes the standard Results and Filters tabs, and keeps sync actions and pagination. The list and API views share the same proxbox-tagged queryset helper so filter behavior stays aligned.

No compatibility floor or ceiling changes in this release. NetBox `4.5.8` through official `4.7.0` GA remains supported.

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|---|---|---|---|---|
| 4.5.8-4.7.0 GA | v0.0.26.post7 | v0.0.21.post7 | v0.0.10 | v0.0.13 |

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.18

Title: netbox-proxbox v0.0.18

Description: v0.0.18

# netbox-proxbox v0.0.18

v0.0.18

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.18 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.18 |
| Tag | v0.0.18 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-21 23:50 UTC |
| Published | 2026-05-22 02:21 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# Version 0.0.18

## Summary

Version `0.0.18` adds **full Proxmox VE 9.2 support** to the plugin, including
persisted Django models for SDN fabrics, route maps, prefix lists, and custom
datacenter CPU models; automated sync services for these new objects; completed
node-level firewall sync; and HA arm/disarm action views. It pairs with
backend [`proxbox-api 0.0.14`](https://github.com/emersonfelipesp/proxbox-api),
which ships the SDN, CPU-model, and datacenter-options endpoints that power
the new sync services.

The NetBox compatibility range remains `4.5.8` – `4.6.99` (`min_version` /
`max_version` unchanged). Django migration `0041_pve_9_2.py` adds four tables
and one new column; run `manage.py migrate netbox_proxbox` after upgrade.

## What's New In The Plugin

- **SDN model scaffolding.** Three new Django models persist Proxmox VE SDN
  objects: `ProxmoxSdnFabric` (WireGuard / BGP / VXLAN / OSPF fabrics),
  `ProxmoxSdnRouteMap`, and `ProxmoxSdnPrefixList`. Full CRUD views, REST API
  viewsets, and a new **SDN** navigation group are included.
- **Datacenter CPU model scaffolding.** New `ProxmoxDatacenterCpuModel` model
  with full CRUD and REST API; listed under the **Infrastructure** navigation
  group.
- **SDN and CPU-model sync services.** `services/sync_sdn.py` calls
  `GET /proxmox/sdn/fabrics`, `/sdn/route-maps`, and `/sdn/prefix-lists`.
  `services/sync_datacenter.py` calls `GET /proxmox/datacenter/cpu-models`.
  Both upsert records and mark removed rows stale.
- **Completed node-level firewall sync.** `services/sync_firewall.py` gains
  `sync_node_firewall()` (calls `GET /proxmox/firewall/nodes/{node}/rules`)
  so per-node `ProxmoxFirewallRule` rows are populated automatically during
  the sync job. `sync_vm_firewall()` is also implemented and available for
  per-VM rule ingestion, but is not yet wired into the automatic sync job.
- **HA arm/disarm action views.** `HaArmView` and `HaDisarmView` proxy to
  `POST /proxmox/cluster/ha/arm` and `POST /proxmox/cluster/ha/disarm` on
  the backend. Both require `change_proxmoxendpoint` permission and return
  JSON for AJAX callers.
- **`ProxmoxNode.location` field.** Stores the geographic or physical location
  of a node as reported by PVE 9.2+.

## What's New In The Backend (`proxbox-api 0.0.14`)

The plugin requires `proxbox-api >= 0.0.14`. The backend release adds:

- `GET /proxmox/sdn/fabrics`, `GET /proxmox/sdn/route-maps`,
  `GET /proxmox/sdn/prefix-lists` — per-cluster SDN topology reads.
- `GET /proxmox/datacenter/cpu-models` — custom CPU model enumeration.
- `GET /proxmox/datacenter/options` — datacenter-level options including
  CRS (Cluster Resource Scheduling) settings.
- `POST /proxmox/cluster/ha/arm` and `POST /proxmox/cluster/ha/disarm` —
  cluster HA arm/disarm verbs (write-gated by `allow_writes`).
- `GET /proxmox/cluster/ha/manager-status` — HA manager state endpoint.
- Extended node config: `location` field in node config responses.
- Access token management endpoints.

## Compatibility

| NetBox   | netbox-proxbox | proxbox-api | netbox-sdk     | proxmox-sdk    |
|----------|----------------|-------------|----------------|----------------|
| >=4.5.8  | v0.0.18 | v0.0.14 | v0.0.8.post1 | v0.0.3.post1 |
| >=4.5.8  | v0.0.17 | v0.0.13 | v0.0.8.post1 | v0.0.3.post1 |

NetBox compatibility range: `4.5.8` – `4.6.99` (unchanged). Certified
simultaneously against NetBox `v4.5.8`, `v4.5.9`, `v4.6.0`, and `v4.6.1`.

## Upgrade Notes

- **Run `manage.py migrate netbox_proxbox`** — migration `0041_pve_9_2.py`
  creates the `proxmoxsdnfabric`, `proxmoxsdnroutemap`, `proxmoxsdnprefixlist`,
  and `proxmoxdatacentercpumodel` tables and adds the `location` column to
  `proxmoxnode`.
- **Upgrade the backend to `proxbox-api 0.0.14`** before the plugin so the
  `/proxmox/sdn/*` and `/proxmox/datacenter/cpu-models` routes are available.
- Restart the NetBox WSGI process after migration and static-file collection.
- The read-only reflection path for existing objects is unchanged.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.17

Title: netbox-proxbox v0.0.17

Description: v0.0.17

# netbox-proxbox v0.0.17

v0.0.17

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.17 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.17 |
| Tag | v0.0.17 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-20 18:32 UTC |
| Published | 2026-05-20 18:41 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# Version 0.0.17

## Summary

Version `0.0.17` adds **read-only Proxmox VE firewall sync** to the plugin
(closes issue [#326](https://github.com/emersonfelipesp/netbox-proxbox/issues/326))
and certifies the plugin against the newest patch release of NetBox 4.6.x.
It pairs with backend
[`proxbox-api 0.0.13`](https://github.com/emersonfelipesp/proxbox-api), which
ships the matching read-only `/proxmox/firewall/*` HTTP surface plus
operational tag helpers and stability fixes carried over from
`0.0.12.post2`.

There is **no DB migration** required for the firewall surface in this
release — firewall data is reflected through schemas exposed by the backend
and not yet persisted in NetBox. The NetBox compatibility range remains
`4.5.8` – `4.6.99` (`min_version` / `max_version` unchanged).

## What's New In The Plugin

- **Read-only PVE firewall sync (#326).** The plugin now consumes the
  backend's firewall surface for all Proxmox firewall zones — datacenter,
  per-node, per-VM (QEMU and LXC), and per-VNet (SDN). It surfaces
  firewall rules, security groups, IP sets, aliases, and zone options as
  read-only data without writing back to Proxmox.
- **NetBox `v4.6.1` certified.** Added to the certified support matrix
  alongside `v4.5.8`, `v4.5.9`, and `v4.6.0`. CI matrix updated.
- **Quick Edit button on the plugin home cards (#474).** Endpoint cards
  on the Proxbox home page now expose a Quick Edit modal so operators can
  fix endpoint URLs / tokens without leaving the dashboard.
- **`idna` upgraded to `3.15`** to clear Dependabot alert #75
  (CVE-2024-3651 bypass).

## What's New In The Backend (`proxbox-api 0.0.13`)

The plugin requires `proxbox-api >= 0.0.13`. The backend release adds:

- **`/proxmox/firewall/*` read routes** for every PVE firewall zone:
  datacenter (`/cluster/firewall/{rules,groups,ipset,aliases,options}`),
  per-node (`/nodes/{node}/firewall/{rules,options,log}`), per-VM
  (`/nodes/{node}/qemu|lxc/{vmid}/firewall/{rules,aliases,ipset,options,log,refs}`),
  and per-VNet (`/cluster/sdn/vnets/{vnet}/firewall/{rules,options}`).
  Twelve endpoints total. All read-only.
- **`PUT /intent/tag-pending-deletion` and
  `PUT /intent/untag-pending-deletion`** intent-tag helpers used by the
  plugin's safe-delete flow to mark Proxmox VMs with the
  `proxbox-pending-deletion` tag before authorized destruction.
- **Stability fixes** carried over from `0.0.12.post1` / `0.0.12.post2`:
  skip bootstrap when no NetBox endpoint is configured (#130), replace
  deprecated nginx `listen ... http2` with the `http2` directive (#137),
  add `PROXBOX_LOG_LEVEL` env var and suppress `netbox_sdk.client`
  verbosity at non-DEBUG levels (#133), bypass `cluster_status`
  preflight in `resolve_vm_config` (#134), and guard against
  FastAPI `Query` defaults leaking as `run_id` (#132).

## Compatibility

| NetBox   | netbox-proxbox | proxbox-api | netbox-sdk     | proxmox-sdk    |
|----------|----------------|-------------|----------------|----------------|
| >=4.5.8  | v0.0.17 | v0.0.13 | v0.0.8.post1 | v0.0.3.post1 |
| >=4.5.8  | v0.0.16 | v0.0.12 | v0.0.8.post1 | v0.0.3.post1 |

NetBox compatibility range: `4.5.8` – `4.6.99` (unchanged). Certified
simultaneously against NetBox `v4.5.8`, `v4.5.9`, `v4.6.0`, and
official `v4.6.1`.

## Upgrade Notes

- **No database migration** for the firewall surface — it is reflected
  read-only through the backend HTTP routes.
- **Upgrade the backend to `proxbox-api 0.0.13`** before the plugin so
  the `/proxmox/firewall/*` routes are available when the plugin asks
  for them.
- Restart the NetBox WSGI process so the updated plugin views and any
  bundled static assets are picked up.
- The read-only reflection path is unchanged for non-firewall objects.
  The opt-in NetBox → Proxmox intent path introduced in `0.0.15` is
  unchanged in `0.0.17`; the firewall surface is reflection-only and
  does not extend the intent path.

## Known Gaps

- Firewall objects are surfaced from the backend but are **not yet
  persisted** as Django models on the NetBox side. A follow-up release
  will add a `FirewallRule` / `SecurityGroup` model plus full bulk-import
  and CSV/JSON/YAML export parity with the existing endpoint pages.
- Write-back to Proxmox firewall objects is **out of scope** for
  `0.0.17`; the firewall integration is read-only by design and is not
  routed through the `/intent/*` apply path.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post6

Title: netbox-proxbox v0.0.16.post6

Description: v0.0.16.post6

# netbox-proxbox v0.0.16.post6

v0.0.16.post6

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post6 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.16.post6 |
| Tag | v0.0.16.post6 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 19:54 UTC |
| Published | 2026-05-18 21:44 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

**Full Changelog**: https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.16.post5...v0.0.16.post6

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post5

Title: netbox-proxbox v0.0.16.post5

Description: v0.0.16.post5

# netbox-proxbox v0.0.16.post5

v0.0.16.post5

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post5 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.16.post5 |
| Tag | v0.0.16.post5 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 18:59 UTC |
| Published | 2026-05-18 19:04 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

**Full Changelog**: https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.16.post4...v0.0.16.post5

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post4

Title: netbox-proxbox v0.0.16.post4

Description: v0.0.16.post4

# netbox-proxbox v0.0.16.post4

v0.0.16.post4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post4 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.16.post4 |
| Tag | v0.0.16.post4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 11:51 UTC |
| Published | 2026-05-18 12:20 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* docs(claude): document release procedure and duplicate-run cancellation by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/469
* test(migrations): retarget v0.0.16 squash assertions by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/470


**Full Changelog**: https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.16.post3...v0.0.16.post4

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post3

Title: netbox-proxbox v0.0.16.post3

Description: v0.0.16.post3

# netbox-proxbox v0.0.16.post3

v0.0.16.post3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.16.post3 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.16.post3 |
| Tag | v0.0.16.post3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 06:04 UTC |
| Published | 2026-05-18 10:23 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* feat(ceph): introduce netbox-ceph 0.0.1 read-only plugin (v0.0.17 line) by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/443
* release: v0.0.15.post2 by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/453
* fix(dashboard): preserve API node totals when cluster panel rows are partial (#455) by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/465
* fix(migrations): make 0037-0046 idempotent and add replaces (#454) by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/464
* feat(packer): scaffold netbox_packer sibling plugin (PHASE2) by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/466
* feat(packer): netbox_packer UI surface (#458) by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/467


**Full Changelog**: https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.15.post2...v0.0.16.post3

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15.post2

Title: netbox-proxbox v0.0.15.post2

Description: v0.0.15.post2

# netbox-proxbox v0.0.15.post2

v0.0.15.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15.post2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.15.post2 |
| Tag | v0.0.15.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-16 22:43 UTC |
| Published | 2026-05-16 23:45 UTC |
| Target | release/v0.0.15.post2 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Post-release patch on stable `0.0.15`. Pairs with backend [`proxbox-api 0.0.11.post2`](https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.11.post2).

### Highlights
- **PDM / PBS endpoint models + ForeignKey wiring** — Lands `PBSEndpoint`, `PDMEndpoint`, and `PDMRemote` Django models for Proxmox Datacenter Manager support per [#449](https://github.com/emersonfelipesp/netbox-proxbox/issues/449). `PDMEndpoint` carries `proxmox_endpoints` (M2M → `ProxmoxEndpoint`) and `pbs_endpoints` (M2M → `PBSEndpoint`) so operators can declare which PVE/PBS instances each PDM federates. `PDMRemote` mirrors PDM's `/pdm/remotes` and has nullable FKs back to the matching `ProxmoxEndpoint` / `PBSEndpoint` row when discovery resolves it. Migration `0048_pdm_pbs_endpoint_models` creates the three tables. UI / forms / API serializers / sync wiring intentionally land in Phase 2/3 (`v0.0.16.x`).
- **`build-pve-template` REST action** — `ProxmoxEndpointViewSet` exposes a `build-pve-template` action so operators can build PVE-installer cloud-init templates against an endpoint from the plugin REST API; mirrors the new `/cloud/templates/pve` route in `proxbox-api 0.0.11.post2` (#452).
- **Backend pickup of `proxmox-sdk 0.0.5.post1`** — The paired `proxbox-api 0.0.11.post2` lifts its `proxmox-sdk` pin from `0.0.4.post3` to `0.0.5.post1`, picking up the new `proxmox_sdk.pdm` subpackage (full PDM SDK + CLI + TUI + mock server) shipped via [proxmox-sdk#17](https://github.com/emersonfelipesp/proxmox-sdk/issues/17).
- Carries forward every fix from `v0.0.15.post1`.

### Compatibility

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|--------|----------------|-------------|------------|-------------|
| >=4.5.8 | v0.0.15.post2 | v0.0.11.post2 | v0.0.8.post1 | v0.0.5.post1 |
| >=4.5.8 | v0.0.15.post1 | v0.0.11.post1 | v0.0.8.post1 | v0.0.3.post1 |
| >=4.5.8 | v0.0.15 | v0.0.11 | v0.0.8.post1 | v0.0.3.post1 |

NetBox compatibility range unchanged: `4.5.8` - `4.6.99`.

### Release notes
[docs/release-notes/version-0.0.15.post2.md](https://github.com/emersonfelipesp/netbox-proxbox/blob/release/v0.0.15.post2/docs/release-notes/version-0.0.15.post2.md)

### PyPI
https://pypi.org/project/netbox-proxbox/0.0.15.post2/

PR: #453
Tracks: #449

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15.post1

Title: netbox-proxbox v0.0.15.post1

Description: netbox-proxbox v0.0.15.post1

# netbox-proxbox v0.0.15.post1

netbox-proxbox v0.0.15.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.15.post1 |
| Tag | v0.0.15.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-16 20:31 UTC |
| Published | 2026-05-16 20:31 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Post-release patch on stable `v0.0.15`. Pairs with backend `proxbox-api v0.0.11.post1`.

## Fixes

- **VM/LXC resource API pagination** — `/api/plugins/proxbox/resources/virtual-machines/` and `/api/plugins/proxbox/resources/lxc-containers/` now filter the full proxbox-tagged VM set before applying optional `limit` / `offset` pagination (fixes the 100-object truncation regression). Both endpoints order by VM name and preserve fully-unpaginated responses when no pagination parameters are supplied. (#444)
- **PVE 9.x HA rules** — Cluster HA dashboard renders the new `rules` field exposed by `proxbox-api`'s `/proxmox/cluster/ha/summary`. PVE 9.x clusters (where `cluster/ha/groups` was replaced by `cluster/ha/rules`) now show populated HA info instead of an empty view. Backward compatible — the card is hidden on pre-9.x clusters. (Fixes #111)
- **Cloud image template updates** — REST API accepts PUT/PATCH on cloud image templates via `CloudImageTemplateSerializer` delegation through `NetBoxModelSerializer`. (#444)
- **Bulk-delete fix** — `ProxmoxEndpointBulkDeleteView` wired in `urls.py` so the bulk-delete action no longer 404s. (#446)
- **Serializer MRO** — `fix(api): delegate create/update through NetBoxModelSerializer MRO` ensures create/update payloads flow through the documented pipeline.
- **Full-update resilience** — backups, snapshots, and task history can now fail individually without aborting the whole sync; required stages still raise errors. (#448)

## Compatibility

No NetBox compatibility rotation. NetBox compatibility range `4.5.8` – `4.6.99` unchanged.

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|--------|----------------|-------------|------------|-------------|
| >=4.5.8 | v0.0.15.post1 | v0.0.11.post1 | v0.0.8.post1 | v0.0.3.post1 |
| >=4.5.8 | v0.0.15 | v0.0.11 | v0.0.8.post1 | v0.0.3.post1 |

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

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15

Title: netbox-proxbox v0.0.15

Description: v0.0.15

# netbox-proxbox v0.0.15

v0.0.15

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.15 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.15 |
| Tag | v0.0.15 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-15 10:43 UTC |
| Published | 2026-05-15 10:50 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# netbox-proxbox v0.0.15

> Compatibility: NetBox **4.5.8 → 4.6.99**. Pairs with **proxbox-api 0.0.11** for reflection, HA, and the NetBox → Proxmox intent path.

## Highlights

- **NetBox → Proxmox intent path (#377)** — opt-in second integration direction. Twelve sub-PRs (A–L: design, gate, custom fields, plan validator, post-merge hook, CREATE/UPDATE/DELETE dispatch, deletion-request UI, four-eyes regression suite, cloud-init, UI polish). Default-off; existing reflection behavior unchanged.
- **Cluster HA dashboard + per-VM HA tab (#243)** — `HAClusterView` at `/plugins/proxbox/ha/` and `ProxmoxVMHATabView` on each VM detail page, live from `proxbox-api 0.0.11`.
- **Operational verbs (#376)** — strictly opt-in start / stop / snapshot / migrate REST endpoints, gated by `ProxmoxEndpoint.allow_writes`.
- **SSH-driven hardware discovery (#374)** — `dmidecode` + `ethtool` reflected into NetBox device custom fields.
- **NetBox Branching integration (#370, #406)** — `X-NetBox-Branch` header awareness on the reflection surface.
- **Headless `proxbox_sync` Django management command (#360)** — fire-and-forget or `--wait --timeout` for cron / systemd timers / CI smoke.
- **Standalone scheduler container (#372)** — `PROXBOX_MODE=off|continuous|interval|cron`.
- **Cloud-init read-side reflection (#363)** — three read-only custom fields.
- **NetBox-metadata description parsing (#366)** — four new overwrite flags.
- **Tenant assignment by VM-name regex (#365)** and **default-role pinning by VM type (#364)**.
- **Discovery-tag pattern (#362)** — `proxbox-discovered-{qemu,lxc,cluster,node}` stamped on create-branch only.
- **`overwrite_vm_proxmox_tags` flag + VM tag pills (#421)**.
- **Idempotent NetBox-side bootstrap (#358)** of supporting objects.

## Safety Model — four mandatory invariants

The intent path enforces four invariants. Bypassing any of these is a regression:

1. **Default direction is Proxmox → NetBox (read-only).** Intent path is opt-in at every level.
2. **Master flag is locked behind a typed confirmation phrase.** `netbox_to_proxmox_enabled=True` requires `netbox_to_proxmox_typed_confirmation == "allow-edit-and-add-actions"` to pass `ProxboxPluginSettingsForm.clean()`.
3. **Every Proxmox-side DELETE goes through a `DeletionRequest`.** Branch merges containing DELETE diffs never call Proxmox destroy at merge time.
4. **Authorization permission is held separately from `intent_delete_*`.** Self-approval rejected unless `intent_apply_authorization_self_approve_allowed=True` (default `False`).

## Issues closed

| # | Title |
|---|---|
| [#243](https://github.com/emersonfelipesp/netbox-proxbox/issues/243) | Add HA status in Proxmox to NetBox |
| [#352](https://github.com/emersonfelipesp/netbox-proxbox/issues/352) | `Use HTTPS` toggle decoupled from `Verify SSL` |
| [#354](https://github.com/emersonfelipesp/netbox-proxbox/issues/354) | IPAM `dns_name` populated from Proxmox guest hostnames |
| [#357](https://github.com/emersonfelipesp/netbox-proxbox/issues/357) | Drift-detecting writes (`createOrUpdate` helper) |
| [#358](https://github.com/emersonfelipesp/netbox-proxbox/issues/358) | Idempotent NetBox-side bootstrap of supporting objects |
| [#359](https://github.com/emersonfelipesp/netbox-proxbox/issues/359) | dcim.mac_addresses linkage for VM interfaces |
| [#360](https://github.com/emersonfelipesp/netbox-proxbox/issues/360) | `proxbox_sync` Django management command |
| [#361](https://github.com/emersonfelipesp/netbox-proxbox/issues/361) | IPv6 link-local skip + zone-ID strip in IP reconciler |
| [#362](https://github.com/emersonfelipesp/netbox-proxbox/issues/362) | Discovery-tag pattern |
| [#363](https://github.com/emersonfelipesp/netbox-proxbox/issues/363) | Cloud-init read-side reflection |
| [#364](https://github.com/emersonfelipesp/netbox-proxbox/issues/364) | Default-role pinning by VM type |
| [#365](https://github.com/emersonfelipesp/netbox-proxbox/issues/365) | Tenant assignment by VM-name regex |
| [#366](https://github.com/emersonfelipesp/netbox-proxbox/issues/366) | NetBox metadata description parsing (4 overwrite flags) |
| [#367](https://github.com/emersonfelipesp/netbox-proxbox/issues/367) | `latest_job` UUID stamp + `delete_orphans` |
| [#368](https://github.com/emersonfelipesp/netbox-proxbox/issues/368) | Duplicate VM-name suffix + `duplicate_name_resolved` SSE frame |
| [#369](https://github.com/emersonfelipesp/netbox-proxbox/issues/369) | Plugin Roadmap — v0.0.15 |
| [#370](https://github.com/emersonfelipesp/netbox-proxbox/issues/370) | Optional NetBox Branching support |
| [#371](https://github.com/emersonfelipesp/netbox-proxbox/issues/371) | `docker-compose-single-exec.yml` one-shot pattern |
| [#372](https://github.com/emersonfelipesp/netbox-proxbox/issues/372) | Standalone scheduler container with `PROXBOX_MODE` |
| [#373](https://github.com/emersonfelipesp/netbox-proxbox/issues/373) | `pxb sync run` CLI subcommand |
| [#374](https://github.com/emersonfelipesp/netbox-proxbox/issues/374) | Hardware discovery via SSH + dmidecode + ethtool |
| [#375](https://github.com/emersonfelipesp/netbox-proxbox/issues/375) | Optional ProxboxSession-style backend refactor |
| [#376](https://github.com/emersonfelipesp/netbox-proxbox/issues/376) | Strictly opt-in operational verbs as REST endpoints |
| [#377](https://github.com/emersonfelipesp/netbox-proxbox/issues/377) | NetBox → Proxmox integration using netbox-branching |
| [#391](https://github.com/emersonfelipesp/netbox-proxbox/issues/391) | NetBox 4.6 `VirtualMachineType` relation auto-detect |
| [#406](https://github.com/emersonfelipesp/netbox-proxbox/issues/406) | Port NetBox Branching into v0.0.15 + bridge with SyncContext |
| [#421](https://github.com/emersonfelipesp/netbox-proxbox/issues/421) | Sync Proxmox tags to NetBox tags |
| [#438](https://github.com/emersonfelipesp/netbox-proxbox/issues/438) | Operator-selected environment field on `ProxmoxEndpoint` |

## Compatibility matrix

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|--------|----------------|-------------|------------|-------------|
| ≥ 4.5.8 | **v0.0.15** | **v0.0.11** (reflection + HA + intent) | v0.0.8.post1 | v0.0.3.post1 |
| ≥ 4.5.8 | v0.0.14 | v0.0.10.post2 | v0.0.8.post1 | v0.0.3.post1 |

NetBox compatibility range: `4.5.8` – `4.6.99` (unchanged from v0.0.14).

## Upgrade notes

- Run `python manage.py migrate netbox_proxbox`. Migrations are additive: one-time backfill (#352), new columns on `ProxboxPluginSettings` / `ProxmoxEndpoint` (#354), default-off `delete_orphans` flag (#367), and the intent migrations `0038_intent_permissions`, `0039_intent_custom_fields`, `0040_apply_job_full`, `0041_deletion_request_full`. The custom-field migration is a no-op for the two Branch CFs when `netbox_branching` is not installed.
- If you operate the proxbox-api `*-nginx` image and previously could not connect, edit the FastAPI endpoint after upgrade and tick **Use HTTPS** (and untick **Verify SSL** if you use the bundled mkcert cert).
- For the `dns_name` fix, pair with `proxbox-api ≥ 0.0.11`. `proxbox-api 0.0.10.post2` is wire-compatible for the `Use HTTPS` fix but does not populate `dns_name`.
- Default for `netbox_to_proxmox_enabled` is `False`. Existing installs see no behavior change unless an operator explicitly opts in. See `docs/operations/netbox-to-proxmox.md` and `docs/operations/deletion-requests.md` to opt in.
- The `Deletion Requests` UI lives at `/plugins/proxbox/intent/deletion-requests/`. The apply-job UI lives at `/plugins/proxbox/intent/apply-jobs/`.

## Full release notes

See [`docs/release-notes/version-0.0.15.md`](https://github.com/emersonfelipesp/netbox-proxbox/blob/v0.0.15/docs/release-notes/version-0.0.15.md) for the section-by-section breakdown of every change.

**Full diff:** [`v0.0.14...v0.0.15`](https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.14...v0.0.15)

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.14

Title: netbox-proxbox v0.0.14

Description: netbox-proxbox v0.0.14

# netbox-proxbox v0.0.14

netbox-proxbox v0.0.14

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.14 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.14 |
| Tag | v0.0.14 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-05 18:08 UTC |
| Published | 2026-05-05 18:35 UTC |
| Target | 27ce8ef3d22325f882e70c265f942bed069e20a9 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# Version 0.0.14

## Summary

Version `0.0.14` is a certification bump that pairs the plugin with the separate `proxbox-api` backend release `0.0.10.post2`. There are no plugin runtime code changes: the REST routes consumed by the plugin, SSE event vocabulary, WebSocket auth handshake, `X-Proxbox-API-Key` auth header, and the cross-repo `SyncOverwriteFlags` contract (22 fields, captured in `contracts/overwrite_flags.json`) remain compatible with the previous `0.0.13.post4` / backend `0.0.9.post2` pair.

`proxbox-api` is not a direct Python dependency of `netbox-proxbox`. The plugin installs independently and communicates with the backend over REST, SSE, and WebSocket.

## Compatibility

| NetBox         | netbox-proxbox  | proxbox-api  | netbox-sdk   | proxmox-sdk    |
|----------------|-----------------|--------------|--------------|----------------|
| >=4.5.8         | v0.0.14         | v0.0.10.post2 | v0.0.8.post1 | v0.0.3.post1   |
| >=4.5.8         | v0.0.13.post4   | v0.0.9.post2 | v0.0.7.post6 | v0.0.3.post1   |
| >=4.6.0-beta2  | v0.0.13.post2   | v0.0.9.post1 | v0.0.7.post6 | v0.0.3.post1   |
| >=4.6.0-beta2  | v0.0.13.post1   | v0.0.9       | v0.0.7.post6 | v0.0.3.post1   |
| >=4.6.0-beta1  | v0.0.13         | v0.0.9       | v0.0.7.post6 | v0.0.3.post1   |

NetBox compatibility range: `4.5.8` – `4.6.99` (unchanged). This line is certified simultaneously against NetBox `v4.5.8`, `v4.5.9`, and official `v4.6.0`.

The `netbox-sdk` column reflects the version bundled inside the `proxbox-api` backend (`0.0.8.post1` in backend release `0.0.10.post2`, up from `0.0.7.post6`); it is not a plugin-side dependency.

---

## What Changed in `proxbox-api` 0.0.9.post2 → 0.0.10.post2

This release certifies the plugin against the new backend release so operators can upgrade both services in lockstep. Notable upstream changes (none of which require plugin code changes):

- **Backend security fix.** `X-Forwarded-For` is no longer trusted unless the operator explicitly opts in via `PROXBOX_TRUSTED_PROXIES` on the backend container. If you run `proxbox-api` behind a reverse proxy and want per-client rate-limiting / brute-force lockout to track real client IPs, set `PROXBOX_TRUSTED_PROXIES` to a CIDR list. Otherwise rate limits and lockouts are computed against the proxy's IP. This is a backend-side configuration; the plugin itself does not care.
- **Backend `VM_ROLE_MAPPINGS` slug normalization.** The fallback role slug shifted from `virtual-machine` to `unknown`, and `qemu` / `lxc` gain colors plus `vm_role: True`. The plugin's three remaining `"virtual-machine"` literals (`sync_stages.py`, `views/sync.py`) are NetBox content-type discriminators in `dependencies_synced` payloads, not device-role slugs, so they are unaffected.
- **Live NetBox version gates.** The backend detects NetBox via `/api/status/` and gates 4.6-only `VirtualMachineType` sync, so one backend release supports NetBox `4.5.8`, `4.5.9`, and `4.6.0`.
- **Internal `netbox-sdk` bump.** `0.0.7.post6` → `0.0.8.post1` is internal to the backend image and not a plugin dependency.
- **REST retry override precedence.** Explicit `PROXBOX_NETBOX_*` environment overrides now take precedence over backend-stored retry settings.

Routes, SSE event types (`step` / `discovery` / `substep` / `item_progress` / `phase_summary` / `error_detail` / `error` / `complete`), `SseCompletePayload`, and the WebSocket frame protocol are all unchanged.

---

## CI / Release Pipeline

- `e2e-docker.yml` and `docs-screenshots.yml` now pin the runtime backend image version to `0.0.10.post2`.
- `nightly-contracts.yml` validates committed REST/SSE/overwrite-flag wire contracts without installing or importing `proxbox-api`.
- The two Docker-pulling workflows depend on the `emersonfelipesp/proxbox-api:0.0.10.post2` image being on Docker Hub. If the image lags PyPI publication, those workflows will fail until the image lands.
- Docker-based CI passes a deterministic `PROXBOX_ENCRYPTION_KEY` because the backend refuses to start without an encryption key or explicit plaintext opt-in.
- `nightly-contracts.yml` validates local plugin contracts and is unaffected by Docker Hub timing.

## Database Migrations

None. No model or schema changes ship in `0.0.14`.

## Upgrade Guidance

Standard upgrade flow ([`installation/upgrading.md`](../installation/upgrading.md)):

```bash
cd /opt/netbox/netbox
source /opt/netbox/venv/bin/activate
pip install -U netbox-proxbox
sudo systemctl restart netbox
```

Then upgrade the backend image / package to `0.0.10.post2`. There are no migrations to run for the plugin.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post4

Title: netbox-proxbox v0.0.13.post4

Description: v0.0.13.post4

# netbox-proxbox v0.0.13.post4

v0.0.13.post4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post4 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.13.post4 |
| Tag | v0.0.13.post4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-01 03:51 UTC |
| Published | 2026-05-01 03:54 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Re-pins `proxbox-api==0.0.9.post2` (fixes `create_storages()` `TypeError` regression in `0.0.9.post1`).

Supersedes `v0.0.13.post3` which never reached PyPI: that publish run failed `validate-testpypi` due to a stale `uv.lock` (lockfile pinned `0.0.13.post2` while `pyproject.toml` was `0.0.13.post3`, breaking `uv sync --locked`). This release regenerates the lockfile and bumps to `.post4` to avoid any TestPyPI republish ambiguity.

No runtime behavior change — packaging/compat-pin bump only.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post2

Title: netbox-proxbox v0.0.13.post2

Description: netbox-proxbox v0.0.13.post2

# netbox-proxbox v0.0.13.post2

netbox-proxbox v0.0.13.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.13.post2 |
| Tag | v0.0.13.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-01 02:33 UTC |
| Published | 2026-05-01 02:13 UTC |
| Target | b0bc51f627785bf819ba500f2d08cd0bea47888d |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-proxbox v0.0.13.post2

Post-release of **v0.0.13.post1** — packaging/compat-pin bump only, no runtime behavior change.

Compatible with **proxbox-api v0.0.9.post1** and **NetBox ≥ 4.6.0** (certified against `v4.6.0-beta2`).

### What changed from v0.0.13.post1

- **proxbox-api pin moves to `0.0.9.post1`** across `e2e-docker.yml`, `docs-screenshots.yml`, and `nightly-contracts.yml`. The plugin's runtime behavior is unchanged; only the version it is certified against moves forward.
- **Plugin source version bump** in `pyproject.toml` and `netbox_proxbox/__init__.py` to `0.0.13.post2`. The `tests/test_version.py` AST pin moves with it so future drift fails loudly.
- **Compatibility matrix row added** in `docs/index.md`, `README.md`, `docs/release-notes/index.md`, and `docs/release-notes/version-0.0.13.md` for the new `v0.0.13.post2 / proxbox-api v0.0.9.post1 / NetBox 4.6.0-beta2` triple.
- **Installation docs refreshed** (`docs/installation/upgrading.md`, `docs/installation/2-installing-plugin-git.md`) to reflect the new current source version.

### Compatibility

| NetBox          | netbox-proxbox    | proxbox-api    | netbox-sdk    | proxmox-sdk    |
|-----------------|-------------------|----------------|---------------|----------------|
| ≥4.6.0-beta2    | **v0.0.13.post2** | v0.0.9.post1   | v0.0.7.post6  | v0.0.3.post1   |
| ≥4.6.0-beta2    | v0.0.13.post1     | v0.0.9         | v0.0.7.post6  | v0.0.3.post1   |
| ≥4.6.0-beta1    | v0.0.13           | v0.0.9         | v0.0.7.post6  | v0.0.3.post1   |
| ≥4.6.0-beta1    | v0.0.12           | v0.0.8.post1   | v0.0.7.post6  | v0.0.3.post1   |

### Installation

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

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

### Pull request

- #347 — chore: bump to 0.0.13.post2 / proxbox-api 0.0.9.post1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post1

Title: netbox-proxbox v0.0.13.post1

Description: netbox-proxbox v0.0.13.post1

# netbox-proxbox v0.0.13.post1

netbox-proxbox v0.0.13.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.13.post1 |
| Tag | v0.0.13.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-28 23:53 UTC |
| Published | 2026-04-28 23:31 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-proxbox v0.0.13.post1

Post-release of **v0.0.13** — no code changes, CI and packaging fixes only.

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

### What changed from v0.0.13

- **proxbox-api image pinned to `0.0.9`** — the `0.0.8` / `0.0.8.post1` tags referenced in the E2E and screenshot workflows were never published to Docker Hub; `0.0.9` is the current published image. All E2E jobs (local/pypi/container) pass end-to-end.
- **NetBox test image updated to `v4.6.0-beta2`** in both `e2e-docker.yml` and `docs-screenshots.yml` to match the latest beta used on the `develop` branch.
- **`uv.lock` regenerated** for the `v0.0.13.post1` version entry.

### Compatibility

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk | proxmox-sdk |
|--------|----------------|-------------|------------|-------------|
| ≥4.6.0 | **v0.0.13.post1** | v0.0.9 | v0.0.7.post6 | v0.0.3.post1 |
| ≥4.6.0 | v0.0.13 | v0.0.9 | 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 |

### Installation

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

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.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/netbox-proxbox/tarball/v0.0.13.post1 |


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.13

Title: netbox-proxbox v0.0.13

Description: netbox-proxbox v0.0.13

# 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-10-07 04:19 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 |


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.12

Title: netbox-proxbox v0.0.12

Description: netbox-proxbox v0.0.12

# netbox-proxbox v0.0.12

netbox-proxbox v0.0.12

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.12 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.12 |
| Tag | v0.0.12 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-23 17:20 UTC |
| Published | 2026-04-23 18:03 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-proxbox v0.0.12

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

### Highlights

#### NetBox 4.6 compatibility
- Native `VirtualMachineType` support — QEMU and LXC VMs are now typed separately instead of using a shared generic type
- Nullable cluster field on `VirtualMachine` (required by NetBox 4.6)
- Replace removed NetBox nested serializers with the new `nested=True` pattern across all serializers
- Use `_site` instead of `site` for NetBox 4.6 `CachedScopeMixin` compatibility in cluster queries
- Extend `min_version` to `4.5.0` so the plugin continues to work on NetBox 4.5.x

#### New features
- **Clusters list page and API endpoint** — `/plugins/proxbox/clusters/` now renders a full NetBox-style table view with filters and export
- **Top-level API paths** — nodes, clusters, and virtual machines are now accessible at `/api/plugins/proxbox/nodes/`, `/api/plugins/proxbox/clusters/`, and `/api/plugins/proxbox/virtual-machines/`
- **Site and Tenant fields on ProxmoxEndpoint** — closes issue #331
- **Automated documentation screenshot pipeline** — CI captures live screenshots of the plugin UI for docs

#### Bug fixes
- Fix N+1 cluster COUNT queries and deduplicate `vm_type` resolution in sync coordinator
- Widen `VMTaskHistory.status` and `exitstatus` to `TextField` to handle long Proxmox values (issue #330)
- Migration 0032 is now idempotent (`ADD COLUMN IF NOT EXISTS`) so re-running migrations on an existing database does not fail
- Expose `device_status` and Proxmox node metrics in `NodesAPIView` and `ProxmoxNode` serializer responses
- Custom fields cache is warmed before VM sync so `proxmox_last_updated` always exists when device prerequisites are written

#### CI / testing
- Bump proxbox-api E2E image to `0.0.8` and NetBox image to `v4.6.0-beta1`
- Replace local editable proxbox-api source with the published PyPI package in the lockfile
- SSE schema contract tests for VM interface stream routes
- Fix E2E custom-fields endpoint URL and ordering so device sync succeeds reliably

### Compatibility

| NetBox | netbox-proxbox | proxbox-api | netbox-sdk     | proxmox-sdk    |
|--------|----------------|-------------|----------------|----------------|
| ≥4.6.0 | **v0.0.12**    | v0.0.8      | v0.0.7.post4   | v0.0.2.post3   |

### Installation

```
pip install netbox-proxbox==0.0.12
```

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.12 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/netbox-proxbox/tarball/v0.0.12 |


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.11.post1

Title: netbox-proxbox v0.0.11.post1

Description: v0.0.11.post1 — Settings permission fix & sync improvements

# netbox-proxbox v0.0.11.post1

v0.0.11.post1 — Settings permission fix & sync improvements

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.11.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.11.post1 |
| Tag | v0.0.11.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-17 18:32 UTC |
| Published | 2026-04-17 18:43 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed

### Bug Fixes

- **fix(api):** `ProxboxPluginSettingsViewSet` now overrides `get_permissions()` so GET/HEAD/OPTIONS require only `IsAuthenticated` instead of `ObjectPermissionRequiredMixin`. Any valid NetBox API token (v1 or v2) can read plugin settings without needing `view_proxboxpluginsettings` explicitly granted in NetBox admin. ([proxbox-api #45](https://github.com/emersonfelipesp/proxbox-api/issues/45))
- **fix(backend_sync):** Use `effective_token_value` for v1 token extraction in `_netbox_endpoint_backend_payload`; add fallback to FK token key for v2 when CharFields are empty; log warnings on missing credentials instead of silently sending an empty token.
- **fix(import):** Accept `version` and `repoid` headers in `ProxmoxEndpoint` CSV import.
- **fix(sync):** Retry on HTTP 429 (rate limit) responses during stage sync.
- **fix(api):** Add explicit `url` field to `NestedProxmoxStorageSerializer`.
- **fix(api):** Disable auto-generated `UniqueTogetherValidator` on `NestedProxmoxStorageSerializer` to prevent false validation errors.

### CI

- Gate PyPI publish on `validate-testpypi` (install + test matrix) instead of `e2e-docker-local`, so a pre-existing Docker infrastructure issue no longer blocks package release.
- Switch Proxmox mock container to `proxmox-sdk:dev-nginx` for HTTPS support in E2E stack.
- Various E2E mock data fixes: LXC mp0 disk, VM config types, cluster/resources id fields, snapshot subtype comparison.

### Root Cause (proxbox-api [#45](https://github.com/emersonfelipesp/proxbox-api/issues/45))

Two independent bugs caused HTTP 403 on `GET /api/plugins/proxbox/settings/`:

1. **This repo** — `ProxboxPluginSettingsViewSet` required explicit `view_proxboxpluginsettings` permission. Standard API tokens don't carry this by default. Fixed by overriding `get_permissions()` for safe HTTP methods.
2. **proxbox-api** — v2 auth header was built incorrectly (`nbt <key>:<secret>` instead of `Bearer nbt_<key>.<secret>`). Fixed in [proxbox-api v0.0.7.post1](https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.7.post1).

Both fixes together restore automatic token exchange between the plugin and the backend so `proxbox-api` can fetch `ProxboxPluginSettings` without manual permission setup.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.11

Title: netbox-proxbox v0.0.11

Description: v0.0.11

# 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-10-07 04:19 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 |


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.10

Title: netbox-proxbox v0.0.10

Description: v0.0.10

# netbox-proxbox v0.0.10

v0.0.10

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.10 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.10 |
| Tag | v0.0.10 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-03 15:16 UTC |
| Published | 2026-04-03 15:17 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# netbox-proxbox v0.0.10

## Added

- A dedicated `Errors` tab in Backend Logs.
- Backend log filtering by date range and log level.
- One-click copy for the visible backend log list.
- Live job polling and a live job panel.
- `Sync Now` actions across plugin objects.
- A Console button on VirtualMachine detail pages.
- Batch sync support in ProxBox lists.
- Backup Routines with full sync support.
- Replication page support and a VM tab.

## Changed

- Logs now appear newest-first with live updates.
- Sync waits for the backend to be ready before it starts.
- Queued jobs now have clearer state handling and copy.
- Live job state is shared more consistently across the UI.
- `/full-update` now targets the correct backend endpoint.

## Fixed

- Sync stream payload parsing and recursion issues.
- Missing actions and routing for sync-related views.
- Sync button behavior in the UI.
- CI formatting and contract issues.
- Docs deployment node warnings.
- Service and sync helper error handling.

## Notes

- The release passed CI before publishing.
- Full release history is covered by the `v0.0.9` to `v0.0.10` comparison.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post4

Title: netbox-proxbox v0.0.9.post4

Description: v0.0.9.post4

# netbox-proxbox v0.0.9.post4

v0.0.9.post4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post4 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.9.post4 |
| Tag | v0.0.9.post4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-01 13:33 UTC |
| Published | 2026-04-01 13:36 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Fixes the remaining ProxmoxStorage upgrade bug by updating migration 0014 to apply the final uniqueness with explicit SQL and state-only migration changes, avoiding the stale cluster_old field reference after 0013.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post3

Title: netbox-proxbox v0.0.9.post3

Description: v0.0.9.post3

# netbox-proxbox v0.0.9.post3

v0.0.9.post3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post3 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.9.post3 |
| Tag | v0.0.9.post3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-01 13:17 UTC |
| Published | 2026-04-01 13:18 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Fixes the release workflow by regenerating uv.lock to match the tagged package version, allowing the locked validation environment to sync successfully before PyPI publish.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post2

Title: netbox-proxbox v0.0.9.post2

Description: v0.0.9.post2

# netbox-proxbox v0.0.9.post2

v0.0.9.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.9.post2 |
| Tag | v0.0.9.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-01 13:10 UTC |
| Published | 2026-04-01 13:11 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Fixes the remaining v0.0.7 to v0.0.9 upgrade failure by backfilling the missing VMSnapshot table during 0010_squashed_plugin_settings_and_storage, so Django can continue the migration path without manual schema edits.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post1

Title: netbox-proxbox v0.0.9.post1

Description: v0.0.9.post1

# netbox-proxbox v0.0.9.post1

v0.0.9.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.9.post1 |
| Tag | v0.0.9.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-01 12:58 UTC |
| Published | 2026-04-01 12:58 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Fixes the broken migration squash boundary so upgrades from v0.0.7 and v0.0.8 can migrate cleanly to v0.0.9.post1 without manual django_migrations edits.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9

Title: netbox-proxbox v0.0.9

Description: netbox-proxbox v0.0.9

# netbox-proxbox v0.0.9

netbox-proxbox v0.0.9

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.9 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.9 |
| Tag | v0.0.9 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-01 03:09 UTC |
| Published | 2026-04-01 03:04 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## 🎉 v0.0.9 Release

### New Features

#### Storage Management
- **ProxmoxStorage Model**: New data model for tracking Proxmox storage datastores in NetBox
  - Links to virtual disks, backups, and snapshots
  - Storage usage tracking with live updates
  - Enhanced storage detail page with related objects

#### VM Snapshots & Backups
- **VMSnapshot Model**: Sync Proxmox VM snapshots into NetBox
  - Timestamp and size tracking
  - Linked to parent VMs and storage
  - CRUD views and list filtering

- **VMBackup Model**: Sync Proxmox VM backup jobs and restore points
  - Backup metadata and scheduling info
  - Storage location tracking
  - Backup status and size monitoring

#### Task History
- **VMTaskHistory Model**: Track Proxmox async tasks and operations
  - Task execution logs and status
  - Detailed error tracking
  - Full CRUD views for audit trails

#### Sync Enhancements
- **Per-VM Sync**: Added "Sync Now" action on individual VM detail pages
  - Selective syncing of specific virtual machines
  - Improved UI responsiveness with per-VM actions
  
- **Snapshots in Full Update**: Added snapshots to the full synchronization pipeline
  - Complete Proxmox infrastructure discovery
  - Multi-stage sync orchestration

- **Configurable Fetch Concurrency**: New plugin setting to tune backend sync performance
  - Balance between throughput and resource usage
  - Per-endpoint configuration support

#### Job UI & Real-time Progress
- **Live SSE Streaming**: Real-time job progress via Server-Sent Events
  - Live log streaming to NetBox UI
  - Stage-based progress tracking
  - Better visibility into long-running sync operations

- **Stage Progress Bar**: Visual progress indication for multi-stage sync jobs
  - Clear breakdown of sync phases (Devices → Storage → Snapshots → Backups)
  - Real-time status updates

### Improvements & Fixes

#### UI/UX
- Improved job progress bar layout and styling
- Fixed storage detail page empty Summary card handling
- Added links to all dashboard count values for quick navigation
- Enhanced endpoint status badges with connectivity details
- Removed redundant log message divs from plugin pages

#### Data Integrity
- Fixed serializer, viewset, and error handling issues
- Improved error handling and backpressure management
- Enhanced thread-safety in job processing
- Better timeout configuration for long-running operations

#### Backend Integration
- Fixed URL namespace errors in job live polling alerts
- Improved error detection and reporting for backend failures
- Better connection status tracking for endpoints

#### Code Quality
- Fixed F541 ruff violations (unnecessary f-strings)
- Ruff formatting compliance across codebase
- Enhanced test contracts for frontend/backend parity

### Models Added
- `ProxmoxStorage` - Storage datastore tracking
- `VMSnapshot` - VM snapshot management
- `VMBackup` - Backup job and restore point tracking
- `VMTaskHistory` - Async task and operation logging
- `ProxboxPluginSettings` - Configurable plugin behavior

### API Additions
- New REST endpoints for Storage, Snapshots, Backups, and Task History
- Writable nested serializers for related object assignment
- Bulk import and CSV export for Proxmox endpoints

### Migration Notes
- Migration squashing consolidated storage migrations
- Raw SQL used for `pstart` column timestamp migration
- Fully backwards-compatible with NetBox 4.5.x

### Testing
- 124 tests passing
- Enhanced contract tests for frontend/backend alignment
- Improved sync pipeline testing

**Full Changelog**: https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.8...v0.0.9

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.8

Title: netbox-proxbox v0.0.8

Description: NetBox Proxbox v0.0.8

# netbox-proxbox v0.0.8

NetBox Proxbox v0.0.8

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.8 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.8 |
| Tag | v0.0.8 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-30 22:28 UTC |
| Published | 2026-03-30 22:28 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

v0.0.8: Jobs-first Proxbox sync, multi-stage streams (incl. VM snapshots), squashed migrations, CI/test alignment, Pygments bump on develop tip.

## NetBox Proxbox v0.0.8

This release moves Proxbox synchronization onto **NetBox Jobs**, expands **“full” / ALL** sync into **ordered multi-stage streams** (including **VM snapshots**), and tightens **CI**, **migrations**, and **UI** behavior around the new flow. The `develop` branch at tag time (`a7f702d`) passed **test**, **lint**, **compile**, and **build-and-deploy** workflows.

---

### Highlights

- **Jobs-first sync** — `SyncProcess` is removed; sync runs through **`ProxboxSyncJob`** and the NetBox Jobs / RQ integration, with queue naming aligned to plugin configuration and CI expectations.
- **Multi-stage `ALL` sync** — Choosing **ALL** no longer maps to a single `full-update/stream` call. The job runs **five** ordered stages: devices, virtual machines, VM disks, VM backups, and **VM snapshots** (`VIRTUAL_MACHINES_SNAPSHOTS`), each via the appropriate **create/stream** path. Job results expose a structured **`stages`** array instead of a single `{"full": true}` payload.
- **Enqueue + WebSocket UX** — The sync view **enqueues** work and returns quickly; the home experience uses **WebSocket** / client polling patterns consistent with NetBox Jobs rather than tying the browser to a long-lived HTTP/SSE stream. Templates and **`home.js`** were updated accordingly.
- **Migration hygiene** — Post-`v0.0.6b2` migrations **`0009`–`0015` are squashed** into a single migration to simplify upgrades and reduce migration noise for fresh installs.
- **Scheduling & forms** — Quick schedule layout fixes (first row field alignment) and **checkbox widget** rendering so **`form-check-input`** applies correctly for Proxbox sync type selection.
- **CI & quality** — **`ruff format --check`** is part of the gate alongside **`ruff check`**, **`compileall`**, and **`pytest`**. Contract and job tests were rewritten to match **multi-stage** behavior, **vm-snapshots** in `SyncTypeChoices`, and the **enqueue** view (no `sync.py` / `home.html` assumptions tied to the old SSE URL attribute).

---

### Upgrade notes

- After pulling **`develop`** (or installing from this tag), run **Django migrations** as usual. If you previously applied intermediate migrations in the squashed range, follow NetBox/Django guidance for squashed migration history in your environment.
- Ensure your **Proxbox / FastAPI** side remains compatible with the **per-type stream** endpoints used by the job runner.
- Confirm **RQ / NetBox Jobs** workers are running and listening on the configured **Proxbox sync** queue.

---

### Merged work

- **PR #302** — *Release v0.0.8: multi-stage sync, vm snapshots, CI test alignment* (`24132e1`).
- **PR #301** — Dependency update: **Pygments** (`a7f702d`, tip at tag time).

---

### Links

- [Compare `v0.0.7`…`v0.0.8`](https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.7...v0.0.8)
- Full commit history: GitHub **Commits** on `develop` through `a7f702d` (tag target).

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.7

Title: netbox-proxbox v0.0.7

Description: v0.0.7

# netbox-proxbox v0.0.7

v0.0.7

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.7 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.7 |
| Tag | v0.0.7 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-29 03:38 UTC |
| Published | 2026-03-29 03:38 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* Release v0.0.5 by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/92
* Merge pull request #92 from netdevopsbr/develop by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/93
* Close #94 - Fix duplicate update due to case sensitive mismatch by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/95
* Closes #27 and #75 - Create duplicate object with (2) appended if it already exist on Netbox. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/100
* Close #98 - Correcting missing MTU and wrong identifier by @MrBE4R in https://github.com/emersonfelipesp/netbox-proxbox/pull/99
* Bump gitpython from 3.1.14 to 3.1.30 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/81
* Close #96 - Start using 'logging' library by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/102
* Fixed the mgmt_only and proxmox_keep_interface bool logic by @RWL-Dittrich in https://github.com/emersonfelipesp/netbox-proxbox/pull/103
* Close #108 - Support for custom BASE_URL by @ugenk in https://github.com/emersonfelipesp/netbox-proxbox/pull/109
* Initial Deploy of new Docs by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/114
* Fix #117 Missing curly bracket in the install procedure  by @Langlais115 in https://github.com/emersonfelipesp/netbox-proxbox/pull/118
* Add multi-cluster support by @devopstales in https://github.com/emersonfelipesp/netbox-proxbox/pull/122
* Closes #33 and #123 - Add multi cluster support by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/126
* Fixed README missing code snippet markdown formatting by @CodeBleu in https://github.com/emersonfelipesp/netbox-proxbox/pull/133
* Closes #89 - Implement API communication with Proxmox using FastAPI by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/134
* Revert proxbox_api/__init__.py change from #07799d2 by @CodeBleu in https://github.com/emersonfelipesp/netbox-proxbox/pull/135
* Standalone Initial Deploy by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/142
* small readme.md fixes by @lug-gh in https://github.com/emersonfelipesp/netbox-proxbox/pull/139
* Bump gitpython from 3.1.30 to 3.1.34 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/147
* Deploy basic Next.js app to start Standalone version of Proxbox with FastAPI backend by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/158
* Optimize performance by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/178
* Update main.py by @Uzoma8Chi in https://github.com/emersonfelipesp/netbox-proxbox/pull/181
* Hide sensitive data in web view by @q3k in https://github.com/emersonfelipesp/netbox-proxbox/pull/171
* fix: attempt to fix #150 by @alryaz in https://github.com/emersonfelipesp/netbox-proxbox/pull/153
* Bump urllib3 from 2.0.4 to 2.0.7 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/155
* Bump gitpython from 3.1.34 to 3.1.37 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/154
* Bump braces from 3.0.2 to 3.0.3 in /standalone by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/182
* Bump black from 20.8b1 to 24.3.0 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/183
* Bump certifi from 2023.7.22 to 2024.7.4 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/184
* Bump cryptography from 42.0.8 to 43.0.1 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/185
* Bump urllib3 from 2.0.7 to 2.2.2 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/186
* Bump idna from 3.4 to 3.7 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/187
* Bump starlette from 0.37.2 to 0.40.0 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/188
* Bump starlette from 0.38.6 to 0.40.0 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/190
* Bump starlette from 0.38.6 to 0.40.0 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/191
* Closes #192 - Create service buttons on FastAPI card and 'Fix it' button. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/193
* Closes #196 - Customize Proxbox Backend systemd Status Page (systemctl status proxbox) by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/197
* Closes #198 - Remove all code related to previous Django backend.  by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/199
* Closes #200 - Provide sudo-enabled linux user on 'fastapi' section at Netbox 'configuration.py' file. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/201
* Close #194 - Handle corner cases on "Let Proxbox fix it" button at Probox Plugin Homepage. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/205
* Closes #208 - Refactor "netbox_proxbox.backend.routes.netbox.generic" subpackage and split it into smaller subpackages. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/209
* Bump django from 5.0.9 to 5.0.10 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/212
* Bump nanoid from 3.3.7 to 3.3.8 in /standalone by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/214
* Bump python-multipart from 0.0.12 to 0.0.18 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/216
* Minor updates to GUI and improve package organization by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/220
* Bump jinja2 from 3.1.4 to 3.1.5 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/218
* Bump next from 14.2.11 to 14.2.15 in /standalone by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/217
* Bump strawberry-graphql from 0.243.1 to 0.257.0 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/223
* Bump jinja2 from 3.1.4 to 3.1.5 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/222
* Bump django from 5.0.10 to 5.0.11 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/225
* Bump next from 14.2.15 to 14.2.21 in /standalone by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/221
* Closes #224 - Expose Proxbox configuration on Netbox API for CRUD operations. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/226
* Closes #229 - Changes 'Full Update' Page to render config from Models instead of Netbox configuration.py by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/230
* Closes #202 and #231 - Add keepalive status verification for each Proxbox service (NetBox, Proxmox and FastAPI) by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/232
* Closes #233 - Allow only one object for NetBoxEndpoint and FastAPIEndpoint on GUI by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/235
* Closes #237 - Change Proxbox API to get info from plugin Models instead of configuration.py by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/238
* Closes #244 - Move backend communication with NetBox to use pynetbox-api. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/245
* Closes #246 - Refine websocket client/server code, making it more reliable. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/248
* Fully using only dict messagens instead of pydantic schemas and optim… by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/249
* Closes #256 - Fix template error when there's no object created. Also update 'Nodes' and 'Virtual Machines' templates to use new WebSocket client. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/257
* Closes #261 - Create Domain fields for NetBox and FastAPI endpoints and manual mkcert cert generation already working with the provided domain. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/262
* Closes #264 - Implement Sync Routines using Django Models to trigger and follow sync progress. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/269
* Closes #252 - Allow GUI sync buttons to be clicked only when Websocket is sucessfully connected with backend. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/270
* Bump cryptography from 43.0.1 to 44.0.1 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/240
* Bump django from 5.0.11 to 5.0.13 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/260
* Bump gunicorn from 22.0.0 to 23.0.0 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/268
* Closes #234 - Allow only one object for NetBoxEndpoint and FastAPIEndpoint to be created using API. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/275
* Closes #278 - Add domain field to ProxmoxEndpoint model. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/280
* Closes #274 - Implement Backup and Snapshot django modelling and integrate it with Proxmox. by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/287
* test: add mocked plugin contract coverage by @emersonfelipesp in https://github.com/emersonfelipesp/netbox-proxbox/pull/296
* Bump setuptools from 75.3.2 to 78.1.1 by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/297
* Bump @babel/runtime from 7.23.2 to 7.27.0 in /standalone by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/271
* Bump next from 14.2.21 to 14.2.25 in /standalone by @dependabot[bot] in https://github.com/emersonfelipesp/netbox-proxbox/pull/272

## New Contributors
* @dependabot[bot] made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/81
* @RWL-Dittrich made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/103
* @ugenk made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/109
* @Langlais115 made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/118
* @devopstales made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/122
* @CodeBleu made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/133
* @lug-gh made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/139
* @Uzoma8Chi made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/181
* @q3k made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/171
* @alryaz made their first contribution in https://github.com/emersonfelipesp/netbox-proxbox/pull/153

**Full Changelog**: https://github.com/emersonfelipesp/netbox-proxbox/compare/v0.0.5...v0.0.7

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.6b2.post1

Title: netbox-proxbox v0.0.6b2.post1

Description: v0.0.6b2.post1 - 2025-04-16

# netbox-proxbox v0.0.6b2.post1

v0.0.6b2.post1 - 2025-04-16

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.6b2.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.6b2.post1 |
| Tag | v0.0.6b2.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2025-04-16 21:10 UTC |
| Published | 2025-04-16 21:15 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Basically removed proxbox-api as a direct dependency, as the communication between the services are fully using API.

**Full Changelog**: https://github.com/netdevopsbr/netbox-proxbox/compare/v0.0.b2...v0.0.6b2.post1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.b2

Title: netbox-proxbox v0.0.b2

Description: v0.0.6b2 - 2025-04-08

# netbox-proxbox v0.0.b2

v0.0.6b2 - 2025-04-08

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.b2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.b2 |
| Tag | v0.0.b2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2025-04-08 19:33 UTC |
| Published | 2025-04-08 19:40 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* Closes #256 - Fix template error when there's no object created. Also update 'Nodes' and 'Virtual Machines' templates to use new WebSocket client. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/257
* Closes #261 - Create Domain fields for NetBox and FastAPI endpoints and manual mkcert cert generation already working with the provided domain. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/262
* Closes #264 - Implement Sync Routines using Django Models to trigger and follow sync progress. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/269
* Closes #252 - Allow GUI sync buttons to be clicked only when Websocket is sucessfully connected with backend. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/270
* Bump cryptography from 43.0.1 to 44.0.1 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/240
* Bump django from 5.0.11 to 5.0.13 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/260
* Bump gunicorn from 22.0.0 to 23.0.0 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/268
* Closes #234 - Allow only one object for NetBoxEndpoint and FastAPIEndpoint to be created using API. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/275
* Closes #278 - Add domain field to ProxmoxEndpoint model. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/280


**Full Changelog**: https://github.com/netdevopsbr/netbox-proxbox/compare/v0.0.6b1...v0.0.b2

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.6b1

Title: netbox-proxbox v0.0.6b1

Description: v0.0.6b1 - 2025-03-01

# netbox-proxbox v0.0.6b1

v0.0.6b1 - 2025-03-01

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.6b1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.6b1 |
| Tag | v0.0.6b1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2025-03-01 22:27 UTC |
| Published | 2025-03-01 22:46 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* Release v0.0.5 by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/92
* Merge pull request #92 from netdevopsbr/develop by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/93
* Close #94 - Fix duplicate update due to case sensitive mismatch by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/95
* Closes #27 and #75 - Create duplicate object with (2) appended if it already exist on Netbox. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/100
* Close #98 - Correcting missing MTU and wrong identifier by @MrBE4R in https://github.com/netdevopsbr/netbox-proxbox/pull/99
* Bump gitpython from 3.1.14 to 3.1.30 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/81
* Close #96 - Start using 'logging' library by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/102
* Fixed the mgmt_only and proxmox_keep_interface bool logic by @RWL-Dittrich in https://github.com/netdevopsbr/netbox-proxbox/pull/103
* Close #108 - Support for custom BASE_URL by @ugenk in https://github.com/netdevopsbr/netbox-proxbox/pull/109
* Initial Deploy of new Docs by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/114
* Fix #117 Missing curly bracket in the install procedure  by @Langlais115 in https://github.com/netdevopsbr/netbox-proxbox/pull/118
* Add multi-cluster support by @devopstales in https://github.com/netdevopsbr/netbox-proxbox/pull/122
* Closes #33 and #123 - Add multi cluster support by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/126
* Fixed README missing code snippet markdown formatting by @CodeBleu in https://github.com/netdevopsbr/netbox-proxbox/pull/133
* Closes #89 - Implement API communication with Proxmox using FastAPI by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/134
* Revert proxbox_api/__init__.py change from #07799d2 by @CodeBleu in https://github.com/netdevopsbr/netbox-proxbox/pull/135
* Standalone Initial Deploy by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/142
* small readme.md fixes by @lug-gh in https://github.com/netdevopsbr/netbox-proxbox/pull/139
* Bump gitpython from 3.1.30 to 3.1.34 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/147
* Deploy basic Next.js app to start Standalone version of Proxbox with FastAPI backend by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/158
* Optimize performance by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/178
* Update main.py by @Uzoma8Chi in https://github.com/netdevopsbr/netbox-proxbox/pull/181
* Hide sensitive data in web view by @q3k in https://github.com/netdevopsbr/netbox-proxbox/pull/171
* fix: attempt to fix #150 by @alryaz in https://github.com/netdevopsbr/netbox-proxbox/pull/153
* Bump urllib3 from 2.0.4 to 2.0.7 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/155
* Bump gitpython from 3.1.34 to 3.1.37 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/154
* Bump braces from 3.0.2 to 3.0.3 in /standalone by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/182
* Bump black from 20.8b1 to 24.3.0 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/183
* Bump certifi from 2023.7.22 to 2024.7.4 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/184
* Bump cryptography from 42.0.8 to 43.0.1 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/185
* Bump urllib3 from 2.0.7 to 2.2.2 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/186
* Bump idna from 3.4 to 3.7 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/187
* Bump starlette from 0.37.2 to 0.40.0 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/188
* Bump starlette from 0.38.6 to 0.40.0 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/190
* Bump starlette from 0.38.6 to 0.40.0 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/191
* Closes #192 - Create service buttons on FastAPI card and 'Fix it' button. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/193
* Closes #196 - Customize Proxbox Backend systemd Status Page (systemctl status proxbox) by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/197
* Closes #198 - Remove all code related to previous Django backend.  by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/199
* Closes #200 - Provide sudo-enabled linux user on 'fastapi' section at Netbox 'configuration.py' file. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/201
* Close #194 - Handle corner cases on "Let Proxbox fix it" button at Probox Plugin Homepage. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/205
* Closes #208 - Refactor "netbox_proxbox.backend.routes.netbox.generic" subpackage and split it into smaller subpackages. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/209
* Bump django from 5.0.9 to 5.0.10 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/212
* Bump nanoid from 3.3.7 to 3.3.8 in /standalone by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/214
* Bump python-multipart from 0.0.12 to 0.0.18 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/216
* Minor updates to GUI and improve package organization by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/220
* Bump jinja2 from 3.1.4 to 3.1.5 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/218
* Bump next from 14.2.11 to 14.2.15 in /standalone by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/217
* Bump strawberry-graphql from 0.243.1 to 0.257.0 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/223
* Bump jinja2 from 3.1.4 to 3.1.5 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/222
* Bump django from 5.0.10 to 5.0.11 by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/225
* Bump next from 14.2.15 to 14.2.21 in /standalone by @dependabot in https://github.com/netdevopsbr/netbox-proxbox/pull/221
* Closes #224 - Expose Proxbox configuration on Netbox API for CRUD operations. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/226
* Closes #229 - Changes 'Full Update' Page to render config from Models instead of Netbox configuration.py by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/230
* Closes #202 and #231 - Add keepalive status verification for each Proxbox service (NetBox, Proxmox and FastAPI) by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/232
* Closes #233 - Allow only one object for NetBoxEndpoint and FastAPIEndpoint on GUI by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/235
* Closes #237 - Change Proxbox API to get info from plugin Models instead of configuration.py by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/238
* Closes #244 - Move backend communication with NetBox to use pynetbox-api. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/245
* Closes #246 - Refine websocket client/server code, making it more reliable. by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/248
* Fully using only dict messagens instead of pydantic schemas and optim… by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/249

## New Contributors
* @dependabot made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/81
* @RWL-Dittrich made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/103
* @ugenk made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/109
* @Langlais115 made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/118
* @devopstales made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/122
* @CodeBleu made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/133
* @lug-gh made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/139
* @Uzoma8Chi made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/181
* @q3k made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/171
* @alryaz made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/153

**Full Changelog**: https://github.com/netdevopsbr/netbox-proxbox/compare/v0.0.5...v0.0.6b1
**Package on PyPi: https://pypi.org/project/netbox-proxbox/0.0.6b1/

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.5

Title: netbox-proxbox v0.0.5

Description: v0.0.5 - 2023-03-17

# netbox-proxbox v0.0.5

v0.0.5 - 2023-03-17

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.5 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.5 |
| Tag | v0.0.5 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2023-03-17 12:24 UTC |
| Published | 2023-03-17 12:28 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* Fix conditional from 'remove' part of Full Update script by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/47
* Release v0.0.4 by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/48
* Remove numpy and matplotlib - they do not seem to be in use by @klaernie in https://github.com/netdevopsbr/netbox-proxbox/pull/57
* Document when username and password are required by @klaernie in https://github.com/netdevopsbr/netbox-proxbox/pull/56
* Closes #37 - Automatically publish the package on PyPI by @klaernie in https://github.com/netdevopsbr/netbox-proxbox/pull/55
* Update virtualmachine choices - Fixes #72 by @Chankster in https://github.com/netdevopsbr/netbox-proxbox/pull/76
* Fix footer path - Fixes #73, fixes #64 by @Chankster in https://github.com/netdevopsbr/netbox-proxbox/pull/78
* Update version and add dependencies - Fixes #62, fixes #24 by @Chankster in https://github.com/netdevopsbr/netbox-proxbox/pull/79
* Clarify pynetbox config in README.md - Fixes #74, fixes #63, fixes #59 by @Chankster in https://github.com/netdevopsbr/netbox-proxbox/pull/77
* Get Network information from Proxmox by @MrBE4R in https://github.com/netdevopsbr/netbox-proxbox/pull/84
* Adding missing use of PROXMOX_PORT by @MrBE4R in https://github.com/netdevopsbr/netbox-proxbox/pull/83
* Fix Virtual Machine ID selection and minor bug by @Gskill75 in https://github.com/netdevopsbr/netbox-proxbox/pull/87
* Close #90 - Change how tables are displayed using django_tables2 by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/91

## New Contributors
* @klaernie made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/57
* @Chankster made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/76
* @MrBE4R made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/84
* @Gskill75 made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/87

**Full Changelog**: https://github.com/netdevopsbr/netbox-proxbox/compare/v0.0.4...v0.0.5

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.5-beta1

Title: netbox-proxbox v0.0.5-beta1

Description: v0.0.5-beta1 - 2022-05-21

# netbox-proxbox v0.0.5-beta1

v0.0.5-beta1 - 2022-05-21

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.5-beta1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.5-beta1 |
| Tag | v0.0.5-beta1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2022-05-21 21:21 UTC |
| Published | 2022-05-21 21:23 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* fix conditional from 'remove' part of Full Update script by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/47
* Release v0.0.4 by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/48
* remove numpy and matplotlib - they do not seem to be in use by @klaernie in https://github.com/netdevopsbr/netbox-proxbox/pull/57
* document when username and password are required by @klaernie in https://github.com/netdevopsbr/netbox-proxbox/pull/56
* Closes #37 - Automatically publish the package on PyPI by @klaernie in https://github.com/netdevopsbr/netbox-proxbox/pull/55

## New Contributors
* @klaernie made their first contribution in https://github.com/netdevopsbr/netbox-proxbox/pull/57

**Full Changelog**: https://github.com/netdevopsbr/netbox-proxbox/compare/v0.0.4...v0.0.5-beta1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.4

Title: netbox-proxbox v0.0.4

Description: v0.0.4 - 2022-05-07

# netbox-proxbox v0.0.4

v0.0.4 - 2022-05-07

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.4 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.4 |
| Tag | v0.0.4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2022-05-07 20:54 UTC |
| Published | 2022-05-07 20:57 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* Closes #36 and #42 - Add support to Netbox >v3.2 by @emersonfelipesp in https://github.com/netdevopsbr/netbox-proxbox/pull/44


**Full Changelog**: https://github.com/netdevopsbr/netbox-proxbox/compare/v0.0.3...v0.0.4

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.3

Title: netbox-proxbox v0.0.3

Description: v0.0.3 - 2022-03-04

# netbox-proxbox v0.0.3

v0.0.3 - 2022-03-04

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.3 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.3 |
| Tag | v0.0.3 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2022-03-04 21:57 UTC |
| Published | 2022-03-05 02:53 UTC |
| Target | develop |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Enhancements
- #34 - Create custom footer of Proxbox for all templates
  - Also contributed to Netbox itself to make it easy to create custom links on [Issue #8733](https://github.com/netbox-community/netbox/issues/8733)
- Commit https://github.com/N-Multifibra/netbox-proxbox/commit/48031a49bfa777079d8b47e49396bc0d889f5234 - Add ProxmoxFullUpdate view, allowing to render though Jinja2 the returning JSON containing all Proxmox sync.

## Bug Fixes
- #28 and #29  - Fix template path error for Netbox 3.x

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.2

Title: netbox-proxbox v0.0.2

Description: v0.0.2

# netbox-proxbox v0.0.2

v0.0.2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.2 |
| Tag | v0.0.2 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2021-04-23 23:33 UTC |
| Published | 2021-04-24 01:17 UTC |
| Target | baa113f7031c35fcdc82b3f1c1e9ab96e7029c0e |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

### Removes 'dotenv' package.

It was used when the proxmox and netbox config was gotten from .env, but it now comes from **configuration.py** Netbox file at **PLUGIN_CONFIG** section

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.1

Title: netbox-proxbox v0.0.1

Description: v0.0.1 - 2021-04-23

# netbox-proxbox v0.0.1

v0.0.1 - 2021-04-23

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-proxbox/releases/v0.0.1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.1 |
| Tag | v0.0.1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2021-04-23 23:24 UTC |
| Published | 2021-04-24 00:53 UTC |
| Target | c1c82b36fc79c3bac5f5b627aca3c67670174bcb |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

### Initial plugin deploy

It is currently able to get the following information from Proxmox:

- Cluster name
- VM/CTs:
  - Status (online / offline)
  - Name
  - ID
  - CPU
  - Disk
  - Memory
  - Node (Server)

**OBS:** To Netbox correctly get Node, ID and Type information from Proxmox, it is necessary to previous configure custom_fields following the specifications on README.md

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api

Title: proxbox-api

Description: FastAPI orchestrator that bridges Proxmox VE and NetBox for the Proxbox suite.

# proxbox-api

FastAPI orchestrator that bridges Proxmox VE and NetBox for the Proxbox suite.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api |
| GitHub | https://github.com/emersonfelipesp/proxbox-api |
| Developer guide | https://emersonfelipesp.com/proxbox-api/developer |
| Roadmap | https://emersonfelipesp.com/proxbox-api/roadmap |
| Releases | https://emersonfelipesp.com/proxbox-api/releases |
| Stars | 9 |
| Forks | 7 |
| Latest release | v0.0.15 |

## Overview

proxbox-api is the FastAPI service that powers the Proxbox stack. It is the engine behind every Full Update click you see inside the netbox-proxbox NetBox plugin.

It exposes REST, Server-Sent Events and WebSocket endpoints so the plugin can discover, sync and stream live progress for clusters, nodes, VMs, containers, storage, snapshots and backups.

Internally it stands on two SDKs: netbox-sdk talks to the NetBox REST API as the write target, and proxmox-sdk talks to Proxmox VE as the read source. proxbox-api is the only place where both worlds are reconciled.

## Features

- FastAPI orchestrator with Swagger UI at /docs
- REST + Server-Sent Events + WebSocket sync streams
- Bcrypt-hashed API key auth (X-Proxbox-API-Key) with brute-force lockout
- Encrypted credentials at rest (Fernet) — PROXBOX_ENCRYPTION_KEY required
- SQLModel + SQLite for endpoint and key storage
- Per-VM and per-endpoint sync flags driven by the netbox-proxbox plugin
- Read-only Proxmox discovery — never mutates the source cluster
- Bundled Next.js admin UI for endpoint configuration (nextjs-ui/)

## Stack

- Python 3.11+ / FastAPI 0.136 + uvicorn
- SQLModel 0.0.38 + aiosqlite
- Pydantic 2.13
- bcrypt + cryptography (Fernet)
- netbox-sdk 0.0.8.post1 (NetBox REST client)
- proxmox-sdk 0.0.3.post1 (Proxmox VE SDK)
- Next.js admin UI (nextjs-ui/)

## Install

Primary command:

```shell
docker pull emersonfelipesp/proxbox-api:latest
```

Then run with -p 8800:8000. The netbox-proxbox plugin will reach this URL via its FastAPI endpoint object.

## Integrations

### netbox-proxbox · NetBox plugin

| Field |Value |
| --- | --- |
| Role | consumer (frontend) |
| Transport | HTTP / SSE / WebSocket |
| Direction | netbox-proxbox → proxbox-api |
| Page | https://emersonfelipesp.com/netbox-proxbox |

netbox-proxbox is a Django plugin that lives inside NetBox and never talks to Proxmox itself. Every cluster, node and VM you see in NetBox got there because the plugin asked proxbox-api to fetch it.

The plugin stores three endpoint objects (Proxmox, NetBox, FastAPI) and dispatches sync requests to the FastAPI endpoint (this service). Progress comes back over Server-Sent Events and the live log viewer is fed by a WebSocket from proxbox-api.

- Triggers Full Update / per-VM / per-endpoint syncs over REST
- Streams progress to the plugin's UI via SSE (real-time bars)
- Pushes the proxbox-api log buffer back to the plugin via WebSocket
- Honours per-endpoint overwrite flags set in the plugin's UI
- Authenticates with the X-Proxbox-API-Key configured on the FastAPI endpoint object

### netbox-sdk · NetBox REST SDK

| Field |Value |
| --- | --- |
| Role | downstream — write target |
| Transport | HTTP (NetBox REST API) |
| Direction | proxbox-api → netbox-sdk → NetBox REST |
| Page | https://emersonfelipesp.com/netbox-sdk |

netbox-sdk is the async Python toolkit for the NetBox REST API. proxbox-api uses it as the write side of every sync — clusters become NetBox cluster groups, nodes become devices, VMs become virtual machines, network interfaces and IP assignments are reconciled in place.

Reusing netbox-sdk means proxbox-api inherits its session pooling, typed responses, retry policy and concurrency knobs (PROXBOX_NETBOX_MAX_CONCURRENT, PROXBOX_NETBOX_GET_CACHE_TTL) without reinventing the HTTP layer.

- Pinned dependency: netbox-sdk 0.0.8.post1
- Single source of NetBox session creation in proxbox_api/session/
- Drives every DCIM, IPAM and Virtualization write the plugin asks for
- Cached GET layer (60s default) shared across the sync workflow
- Compatible with NetBox 4.5.x and 4.6.x — version detection lives here

### proxmox-sdk · Proxmox VE SDK

| Field |Value |
| --- | --- |
| Role | downstream — read source |
| Transport | HTTP (Proxmox VE REST API) |
| Direction | proxbox-api → proxmox-sdk → Proxmox VE |
| Page | https://emersonfelipesp.com/proxmox-sdk |

proxmox-sdk is the schema-driven SDK that mirrors the Proxmox VE 8.1 API as 646 typed endpoints. proxbox-api uses it as the read side of every sync — clusters, nodes, storage, VMs, containers, snapshots and backups are all queried through it.

Because proxmox-sdk supports a mock mode out of the box, proxbox-api can be developed and tested end-to-end against a fake Proxmox cluster, with the same schema the production proxy validates. The proxmox-mock sub-package shipped under proxbox-api-repo at tag v0.0.7 is the integration-test counterpart.

- Pinned dependency: proxmox-sdk 0.0.3.post1
- Read-only — proxbox-api never POSTs, PUTs or DELETEs into Proxmox
- Async client used inside the SSE-driven sync workflow
- Mock mode enables offline integration tests with realistic schemas
- Concurrency capped by PROXBOX_VM_SYNC_MAX_CONCURRENCY

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/proxbox-api |
| docs | https://emersonfelipesp.com/proxbox-api/docs/ |
| plugin | https://github.com/emersonfelipesp/netbox-proxbox |
| netbox-sdk | https://github.com/emersonfelipesp/netbox-sdk |
| proxmox-sdk | https://github.com/emersonfelipesp/proxmox-sdk |


---

# Source: https://emersonfelipesp.com/proxbox-api/developer

Title: proxbox-api developer guide

Description: Developer guide for proxbox-api.

# proxbox-api developer guide

Developer guide — FastAPI orchestration, SDK boundaries, contribution workflow and the Docker E2E matrix.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/developer |
| Showcase | https://emersonfelipesp.com/proxbox-api |
| GitHub | https://github.com/emersonfelipesp/proxbox-api |
| Releases | https://emersonfelipesp.com/proxbox-api/releases |
| Release snapshot synced | 2026-10-07T04:19:19.207Z |

## Intro

proxbox-api is the FastAPI service that bridges Proxmox VE and NetBox. It owns the sync workflow that the netbox-proxbox plugin triggers from inside NetBox and exposes REST + Server-Sent Events + WebSocket endpoints to stream live progress back.

This page covers the layered architecture, what proxbox-api takes as a dependency vs. proxies at runtime, the contribution workflow, and the multi-mode E2E matrix that exercises every transport before a release ships.

## Architecture

- ASGI entrypoint: uvicorn proxbox_api.main:app. The app is assembled by proxbox_api.app.factory.create_app() — initializes the SQLite database (sqlmodel + aiosqlite), builds the default NetBox session, and registers the generated Proxmox proxy routes.
- Layers: routes/ (FastAPI routers — auth, dcim, extras, netbox, proxbox, proxmox, sync, virtualization) → services/sync/ (workflow orchestration) → schemas/ + enum/ (Pydantic 2 validation at every I/O boundary) → proxmox_to_netbox/ (transformation) → session/ (NetBox + Proxmox client factories as FastAPI dependencies).
- Sync runs stream Server-Sent Events plus optional WebSocket progress. /full-update/stream drives the complete chain: devices → storage → VMs → disks → backups → snapshots → interfaces → IPs → backup routines → replications.
- Auth: bcrypt-hashed API key in the X-Proxbox-API-Key header with brute-force lockout (proxbox_api/auth.py). Credentials at rest are Fernet-encrypted (PROXBOX_ENCRYPTION_KEY required in production).
- Persistence: SQLModel + aiosqlite for endpoint and key storage; no PostgreSQL dependency on the proxbox-api side.
- Concurrency knobs: PROXBOX_NETBOX_TIMEOUT (120s), PROXBOX_NETBOX_MAX_CONCURRENT (default 1, intentionally low), PROXBOX_VM_SYNC_MAX_CONCURRENCY, PROXBOX_NETBOX_GET_CACHE_TTL (60s GET cache, 0 disables), PROXBOX_RATE_LIMIT (60 req/min/IP via SlowAPI).
- Embedded admin UI: nextjs-ui/ — a Next.js frontend used to administer endpoints, separate build target.
- Generated proxy routes: proxbox_api/generated/ holds 646 typed Proxmox endpoints crawled from the Proxmox API Viewer. Do not edit by hand — regenerate from proxbox-api/proxmox_codegen/.

## Integrations

| Target |Protocol |Library |Notes |
| --- | --- | --- | --- |
| netbox-proxbox (NetBox plugin) | HTTP REST + SSE + WebSocket (inbound) | consumer — auth via X-Proxbox-API-Key | Every Full Update click in the plugin lands here as a request to /full-update/stream. |
| NetBox REST API (write target) | HTTP | netbox-sdk==0.0.8.post1 | Async aiohttp client sessions in proxbox_api/session/ + helpers in proxbox_api/netbox_rest.py. Cached GET layer (60s TTL) shared across the workflow. |
| Proxmox VE (read source) | HTTP | proxmox-sdk==0.0.3.post1 | Read-only — the workflow never POST/PUT/DELETEs back into Proxmox. Mock backend (MockBackend) used for fast tests. |
| Next.js admin UI | embedded | nextjs-ui/ (separate build) | Manages bcrypt API keys, encrypted credentials and endpoint records via the same FastAPI surface. |

## Contributing

Development install:

```shell
uv sync --extra test --group dev
```

Pre-PR checks:

- lint: `uv run ruff check .`
- format: `uv run ruff format --check .`
- syntax compile: `uv run python -m compileall proxbox_api tests`
- type check (focused): `uv run ty check proxbox_api/types proxbox_api/utils/retry.py proxbox_api/schemas/sync.py`
- unit + integration: `uv run pytest tests`
- Next.js admin UI: `cd nextjs-ui && npm run lint && npm run build`

Code style:

- Linter: ruff (select E4/E7/E9/F/I/ANN201/D103/W/C90, max complexity 10).
- Formatter: ruff format.
- Type checker: ty.
- PRs must include a passing run of all the checks above; the CI core job runs pytest tests/ -v --ignore=tests/e2e on every push and PR.

Issues: https://github.com/emersonfelipesp/proxbox-api/issues

## CI

The backend CI is layered: fast Python checks, Docker image startup checks, generated E2E matrix setup, NetBox image fallback handling, and full NetBox-backed sync validation.

The publish workflow validates TestPyPI first, promotes PyPI release candidates only after candidate checks, then publishes Docker images and runs post-publish E2E against the released artifacts.

| Workflow |Trigger |Purpose |
| --- | --- | --- |
| ci.yml | push + pull_request + release + manual | Runs core pytest checks, Python 3.11 floor checks, free-threaded smoke, Docker bind smoke, and the NetBox E2E matrix. |
| publish-testpypi.yml | version tags + GitHub releases + manual | Publishes TestPyPI, PyPI rc/final, Docker images, and validates exact installs plus pre/post-publish E2E. |
| docker-hub-publish.yml | workflow_call + manual | Builds and publishes raw, nginx, and granian Docker image variants. |
| release-docker-verify.yml | release + manual | Pulls published Docker tags and verifies each container variant starts. |
| nightly-schema-refresh.yml | schedule + manual | Refreshes generated Proxmox schemas and opens a PR when artifacts change. |

- E2E jobs wait up to 20 minutes for NetBox migrations/search indexing and require /api/status/ before token setup.
- The E2E job pulls public NetBox images first and downloads the source-built artifact only when registry pull fails.
- Docker-backed Proxmox E2E uses mock_http and rotates proxmox-sdk service tags (pve, pbs, pdm) per matrix cell; the in-process MockBackend pass uses mock_backend and runs once on the main × pve cell.
- The public MkDocs source of truth is docs/development/e2e-proxmox-service-matrix.md (pt-BR mirror under docs/pt-BR/).

## End-to-end tests

Framework: pytest + pytest-asyncio + httpx.AsyncClient. Two marker modes — mock_backend (in-process, no HTTP) and mock_http (against a running proxmox-sdk container).

The fast loop runs entirely in-process against MockBackend; no Docker, no network. The full loop fans out across a three-axis GitHub Actions matrix — transport × NetBox version × proxmox_service — pulling a dedicated proxmox-sdk mock per cell.

Each proxmox_service value (pve, pbs, pdm) pulls the matching tag — emersonfelipesp/proxmox-sdk:latest-pve, :latest-pbs, :latest-pdm — so PVE clusters, Proxmox Backup Server, and Proxmox Datacenter Manager surfaces are exercised in parallel.

PVE-only specs (VM sync, device sync, backup sync) are gated behind the requires_pve_schema session fixture and auto-skip on pbs/pdm cells; the test_proxmox_mock_health.py smoke runs against /health on every cell so a broken mock image fails fast.

The release workflow is staged: normal and post tags publish to TestPyPI, PyPI release candidates use vX.Y.ZrcN, and the final PyPI package plus Docker images publish only after package reinstall validation and E2E gates pass.

Commands:

- all unit + integration: `uv run pytest tests`
- E2E (mock backend, fast): `uv run pytest tests/e2e -m mock_backend`
- E2E (mock HTTP, PVE service): `PROXMOX_SERVICE=pve docker compose up -d && uv run pytest tests/e2e -m mock_http`
- E2E (PBS service, schema-gated tests skipped): `PROXMOX_SERVICE=pbs docker compose up -d && uv run pytest tests/e2e -m mock_http`
- E2E (PDM service, schema-gated tests skipped): `PROXMOX_SERVICE=pdm docker compose up -d && uv run pytest tests/e2e -m mock_http`

Coverage:

- Spec files: tests/e2e/conftest.py, test_vm_sync.py, test_devices_sync.py, test_backups_sync.py, test_demo_auth.py, test_proxmox_mock_health.py.
- Markers: @pytest.mark.mock_backend (in-process MockBackend) and @pytest.mark.mock_http (proxmox-sdk Docker container on ports 8006/8007). The requires_pve_schema session fixture auto-skips PVE-only tests on pbs/pdm cells.
- Auth helpers in proxbox_api/e2e/ are the only place Playwright is used in the backend; the proxmox_sdk_mock fixture switches container tags based on the PROXMOX_SERVICE env var.
- CI: ci.yml runs the core test job (pytest excluding tests/e2e) plus a 7 × 3 × 3 (transport × NetBox × service) E2E Docker matrix with fail-fast disabled. The mock_backend pass is gated to main + pve so it runs exactly once.
- Release gate: publish-testpypi.yml validates TestPyPI installs first, then PyPI rc/final installs, Docker image publish, and post-publish E2E across the same service matrix.

CI workflow: .github/workflows/ci.yml (https://github.com/emersonfelipesp/proxbox-api/blob/main/.github/workflows/ci.yml)

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/proxbox-api |
| docs | https://emersonfelipesp.com/proxbox-api/docs/ |
| plugin | https://github.com/emersonfelipesp/netbox-proxbox |
| netbox-sdk | https://github.com/emersonfelipesp/netbox-sdk |
| proxmox-sdk | https://github.com/emersonfelipesp/proxmox-sdk |
| issues | https://github.com/emersonfelipesp/proxbox-api/issues |


---

# Source: https://emersonfelipesp.com/proxbox-api/roadmap

Title: proxbox-api roadmap

Description: Roadmap for proxbox-api.

# proxbox-api roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/roadmap |
| Repository | emersonfelipesp/proxbox-api |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 1 |
| Closed issues | 79 |
| Dependency edges | 0 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #267, #264, #265, #263, #266, #261, #262, #260, #258, #243, #255, #254, #249, #248, #238, #223, #97, #98, #94, #96, #226, #224, #95, #218, #211, #208, #201, #204, #205, #199, #197, #193, #191, #192, #188, #186, #184, #165, #174, #173, #172, #171, #170, #169, #168, #167, #166, #162, #145, #158, #157, #152, #150, #143, #144, #140, #130, #131, #133, #134, #120, #132, #126, #121, #116, #111, #112, #92, #71, #61, #60, #51, #52, #45, #44, #37, #1, #3, #4

### Phase 1 (open)

start anywhere

Issues: #268

## Milestones

| Milestone |State |Due |Open |Closed |URL |
| --- | --- | --- | --- | --- | --- |
| v0.0.3 | open | 2025-04-20 | 0 | 1 | https://github.com/emersonfelipesp/proxbox-api/milestone/1 |
| v0.0.11.post1 | open | n/a | 0 | 2 | https://github.com/emersonfelipesp/proxbox-api/milestone/8 |
| v0.0.12.post1 | open | n/a | 0 | 2 | https://github.com/emersonfelipesp/proxbox-api/milestone/10 |
| v0.0.13 | open | n/a | 0 | 2 | https://github.com/emersonfelipesp/proxbox-api/milestone/11 |
| v0.0.7.post1 | open | n/a | 0 | 1 | https://github.com/emersonfelipesp/proxbox-api/milestone/2 |
| v0.1.0 | open | n/a | 0 | 5 | https://github.com/emersonfelipesp/proxbox-api/milestone/7 |

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #268 | open | Ambiguous Proxmox node device identity |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/268 |
| #267 | closed | Ambiguous Proxmox node device identity |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/267 |
| #266 | closed | full-update ignores sync_node_interfaces: behavior_flags not passed to create_all_device_interfaces, so node bridges never get their hwaddress MAC |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/266 |
| #265 | closed | Muitiple warnings and errors during endpoint synchronization |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/265 |
| #264 | closed | Netbox ID and VMID are mixed up |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/264 |
| #263 | closed | Orphan VMs don't deleted |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/263 |
| #262 | closed | VM description from Proxmox is replaced by the "Synced from Proxmox node" placeholder |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/262 |
| #261 | closed | Feature request: populate the NetBox `platform` field from the guest OS |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/261 |
| #260 | closed | Sync fails when the `devices` stage runs first: NetBox bootstrap is not triggered |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/260 |
| #258 | closed | feat(sync): set physical-NIC MACs on node interfaces via the hardware-discovery path |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/258 |
| #255 | closed | # Bug Report: Duplicate VMIDs across standalone endpoints break VM interface/IP sync and cause VM-create failures |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/255 |
| #254 | closed | Implement optional netbox-bgp projection for Proxbox SDN sync |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/254 |
| #249 | closed | Promote Proxmox SDN backend to develop/production, expand SDN tests, release 0.0.19 |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/249 |
| #248 | closed | VM interface bulk reconciliation intermittently fails on confirmed-duplicate idempotency race |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/248 |
| #243 | closed | feat(sync): optionally sync full node network topology (/nodes/{node}/network) into dcim.Interface |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/243 |
| #238 | closed | VM sync: Proxmox API timeouts caused by event-loop starvation during `_prepare_vm_state` |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/238 |
| #226 | closed | Ceph v2: accept the netbox-ceph CephOperation payload shape in /ceph/v2 plan/apply |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/226 |
| #224 | closed | Ceph v2: Proxmox-backed write executor (wire ProxmoxCephProviderAdapter to CephWrite) |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/224 |
| #223 | closed | If the virtualserver_id is the same across different proxmox clusters |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/223 |
| #218 | closed | Release pipeline: add Gitea publish workflow idempotency and PyPI pre-check |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/218 |
| #211 | closed | Errors when syncing virutal disks |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/211 |
| #208 | closed | Add Gitea provisioner recipe to image factory |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/208 |
| #205 | closed | Make VM reconciliation engine selection plugin-controlled |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/205 |
| #204 | closed | Make image factory stateless — drop ImageBuildRun persistence |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/204 |
| #201 | closed | feat: add Firecracker host VM template images (Debian 12 + Ubuntu 24.04) |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/201 |
| #199 | closed | Read reconciliation engine from NetBox plugin settings |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/199 |
| #197 | closed | Document Firecracker host-agent provisioning in proxbox-api |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/197 |
| #193 | closed | Add AsyncSSH WebSocket gateway for Proxbox terminal sessions |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/193 |
| #192 | closed | Add Firecracker host-agent and Cloud provisioning API |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/192 |
| #191 | closed | Pin proxbox-api to proxmox-sdk 0.0.9 |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/191 |
| #188 | closed | Handle VM disk aggregate drift during sync |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/188 |
| #186 | closed | Publish experimental PyO3 Rust Docker images |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/186 |
| #184 | closed | Document Rust reconciliation engine in agent guides |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/184 |
| #174 | closed | Add CI, wheels, docs, and rollout for Rust reconciliation |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/174 |
| #173 | closed | Add VM reconciliation parity fixtures and benchmarks |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/173 |
| #172 | closed | Wire Python Rust bridge and reconciliation engine modes |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/172 |
| #171 | closed | Implement Rust VM queue reconciliation parity |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/171 |
| #170 | closed | Scaffold proxbox-reconcile-rs sibling package |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/170 |
| #169 | closed | Evaluate Python-only serialization and Pydantic optimization |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/169 |
| #168 | closed | Extract VM queue builder into a pure reconciliation service |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/168 |
| #167 | closed | Lock and correct Python VM queue reconciliation contract |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/167 |
| #166 | closed | Measure VM reconciliation cost before Rust work |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/166 |
| #165 | closed | Rust-backed VM reconciliation queue engine |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/165 |
| #162 | closed | docs(readme): add Integrations Architecture section with netbox-dark SVG |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/162 |
| #158 | closed | Error when syncing virtualmachines |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/158 |
| #157 | closed | Error when syncing virtual-disks |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/157 |
| #152 | closed | feat: Proxmox VE 9.2 compatibility — bump proxmox-sdk to v0.0.6 |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/152 |
| #150 | closed | feat: implement FastAPI TestClient fixtures and migrate inline client creation |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/150 |
| #145 | closed | Possible to parse the cdrom added to vms |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/145 |
| #144 | closed | Error getting vmconfig |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/144 |
| #143 | closed | Error fetching Virtualdisks |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/143 |
| #140 | closed | feat: respect `enabled` field on ProxmoxEndpoint and NetBoxEndpoint |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/140 |
| #134 | closed | Vm get config is throwing error from proxmox |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/134 |
| #133 | closed | proxbox-api is really chatty in log_level: info |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/133 |
| #132 | closed | Issue #120 still an issue in the newest version of proxbox | v0.0.13 |  | https://github.com/emersonfelipesp/proxbox-api/issues/132 |
| #131 | closed | nginx config deprecated | v0.0.13 |  | https://github.com/emersonfelipesp/proxbox-api/issues/131 |
| #130 | closed | api tries to bootstart netbox even before netbox endpoint is connected |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/130 |
| #126 | closed | docker using customer certs for: *-nginx images |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/126 |
| #121 | closed | netbox-exception: tag with this name already exists. | v0.0.12.post1 |  | https://github.com/emersonfelipesp/proxbox-api/issues/121 |
| #120 | closed | Failed to stamp proxbox_last_run_id on VM id= | v0.0.12.post1 |  | https://github.com/emersonfelipesp/proxbox-api/issues/120 |
| #116 | closed | Add /cloud/templates/pve endpoint to build a PVE-installer cloud-init template on a registered ProxmoxEndpoint |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/116 |
| #112 | closed | Can`t delete Proxmox Endpoints | v0.0.11.post1 |  | https://github.com/emersonfelipesp/proxbox-api/issues/112 |
| #111 | closed | proxmox_sdk.sdk.exceptions.ResourceException: HTTP 500 cannot index groups: ha groups have been migrated to rules | v0.0.11.post1 |  | https://github.com/emersonfelipesp/proxbox-api/issues/111 |
| #98 | closed | Ceph v2: direct Ceph Dashboard API integration | v0.1.0 |  | https://github.com/emersonfelipesp/proxbox-api/issues/98 |
| #96 | closed | Ceph v2: direct Ceph Dashboard API integration | v0.1.0 |  | https://github.com/emersonfelipesp/proxbox-api/issues/96 |
| #97 | closed | Ceph v2: external non-Proxmox Ceph cluster support | v0.1.0 |  | https://github.com/emersonfelipesp/proxbox-api/issues/97 |
| #95 | closed | Ceph v2: orchestration API, plan/apply engine, and operation runs | v0.1.0 |  | https://github.com/emersonfelipesp/proxbox-api/issues/95 |
| #94 | closed | Ceph v2: Prometheus metric ingestion and health snapshots | v0.1.0 |  | https://github.com/emersonfelipesp/proxbox-api/issues/94 |
| #92 | closed | Ceph support: backend API module |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/92 |
| #71 | closed | Add /sync/active endpoint and join-or-fast-fail mode for concurrent syncs |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/71 |
| #61 | closed | settings_client in proxbox-api does not honor ssl_verify false |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/61 |
| #60 | closed | Container fails to start due to wanting PROXBOX_ENCRYPTION_KEY |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/60 |
| #52 | closed | proxbox-api is not able to listen on ipv6 interface |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/52 |
| #51 | closed | Fail to sync, the field: proxmox_last_updated does not have the correct object_types added |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/51 |
| #45 | closed | Issue connecting to Proxmox cluster | v0.0.7.post1 |  | https://github.com/emersonfelipesp/proxbox-api/issues/45 |
| #44 | closed | Alternative to NGINX and Python slim |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/44 |
| #37 | closed | Implement proxbox_api/services/sync/individual package/subpackage. |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/37 |
| #4 | closed | Proxmox Backup Integration |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/4 |
| #3 | closed | Docker container does not respond |  |  | https://github.com/emersonfelipesp/proxbox-api/issues/3 |
| #1 | closed | Create endpoints to retrieve Backup and Snapshot information from Proxmox. | v0.0.3 |  | https://github.com/emersonfelipesp/proxbox-api/issues/1 |


---

# Source: https://emersonfelipesp.com/proxbox-api/releases

Title: proxbox-api releases

Description: Release index for proxbox-api.

# proxbox-api releases

FastAPI orchestrator that bridges Proxmox VE and NetBox for the Proxbox suite.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases |
| GitHub releases | https://github.com/emersonfelipesp/proxbox-api/releases |
| Repository | emersonfelipesp/proxbox-api |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 27 |
| Stars | 9 |
| Forks | 7 |

## Release index

- [v0.0.15](https://emersonfelipesp.com/proxbox-api/releases/v0.0.15) - v0.0.15 - 2026-05-23 - stable
- [v0.0.14](https://emersonfelipesp.com/proxbox-api/releases/v0.0.14) - v0.0.14 - 2026-05-22 - stable
- [v0.0.13](https://emersonfelipesp.com/proxbox-api/releases/v0.0.13) - v0.0.13 - 2026-05-20 - stable
- [v0.0.12.post2](https://emersonfelipesp.com/proxbox-api/releases/v0.0.12.post2) - v0.0.12.post2 - 2026-05-18 - stable
- [v0.0.12.post1](https://emersonfelipesp.com/proxbox-api/releases/v0.0.12.post1) - v0.0.12.post1 - 2026-05-18 - stable
- [v0.0.12](https://emersonfelipesp.com/proxbox-api/releases/v0.0.12) - v0.0.12 - 2026-05-18 - stable
- [proxbox-api v0.0.11.post1](https://emersonfelipesp.com/proxbox-api/releases/v0.0.11.post1) - v0.0.11.post1 - 2026-05-16 - stable
- [proxbox-api v0.0.11](https://emersonfelipesp.com/proxbox-api/releases/v0.0.11) - v0.0.11 - 2026-05-15 - stable
- [v0.0.10.post2](https://emersonfelipesp.com/proxbox-api/releases/v0.0.10.post2) - v0.0.10.post2 - 2026-05-05 - stable
- [v0.0.10.post1](https://emersonfelipesp.com/proxbox-api/releases/v0.0.10.post1) - v0.0.10.post1 - 2026-05-05 - stable
- [v0.0.10](https://emersonfelipesp.com/proxbox-api/releases/v0.0.10) - v0.0.10 - 2026-05-04 - stable
- [v0.0.9.post2 — fix create_storages import in full-update](https://emersonfelipesp.com/proxbox-api/releases/v0.0.9.post2) - v0.0.9.post2 - 2026-05-01 - stable
- [v0.0.9.post1 — Docs, tests & CI sync](https://emersonfelipesp.com/proxbox-api/releases/v0.0.9.post1) - v0.0.9.post1 - 2026-05-01 - stable
- [v0.0.9](https://emersonfelipesp.com/proxbox-api/releases/v0.0.9) - v0.0.9 - 2026-04-28 - stable
- [proxbox-api v0.0.8.post1](https://emersonfelipesp.com/proxbox-api/releases/v0.0.8.post1) - v0.0.8.post1 - 2026-04-23 - stable
- [proxbox-api v0.0.8](https://emersonfelipesp.com/proxbox-api/releases/v0.0.8) - v0.0.8 - 2026-04-23 - stable
- [v0.0.7.post1 — Settings auth fix & sync correctness](https://emersonfelipesp.com/proxbox-api/releases/v0.0.7.post1) - v0.0.7.post1 - 2026-04-17 - stable
- [v0.0.7](https://emersonfelipesp.com/proxbox-api/releases/v0.0.7) - v0.0.7 - 2026-04-13 - stable
- [v0.0.6.post4](https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post4) - v0.0.6.post4 - 2026-04-04 - stable
- [v0.0.6.post3](https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post3) - v0.0.6.post3 - 2026-04-04 - stable
- [v0.0.6.post2](https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post2) - v0.0.6.post2 - 2026-04-04 - stable
- [proxbox-api v0.0.6.post1](https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post1) - v0.0.6.post1 - 2026-04-03 - stable
- [proxbox-api v0.0.6](https://emersonfelipesp.com/proxbox-api/releases/v0.0.6) - v0.0.6 - 2026-04-03 - stable
- [proxbox-api v0.0.5 - C901 Complexity Fixes](https://emersonfelipesp.com/proxbox-api/releases/v0.0.5) - v0.0.5 - 2026-04-01 - stable
- [v0.0.4](https://emersonfelipesp.com/proxbox-api/releases/v0.0.4) - v0.0.4 - 2026-03-31 - stable
- [v0.0.3](https://emersonfelipesp.com/proxbox-api/releases/v0.0.3) - v0.0.3 - 2026-03-29 - stable
- [v0.0.2- 2025-04-12](https://emersonfelipesp.com/proxbox-api/releases/v0.0.2) - v0.0.2 - 2025-04-12 - stable


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.15

Title: proxbox-api v0.0.15

Description: v0.0.15

# proxbox-api v0.0.15

v0.0.15

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.15 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.15 |
| Tag | v0.0.15 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-23 19:41 UTC |
| Published | 2026-05-23 20:59 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* docs: advance companion consumer reference to netbox-proxbox v0.0.18 by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/155
* fix: use _parse_proxmox_kv_flag for QEMU agent checks in sync_vm (#491) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/156
* fix: sync CD-ROM drives to NetBox with size=0; fix fallback lookup filter (#157) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/159
* fix: silence HTTP 501 noise on PVE < 9.2 SDN/CPU-model endpoints by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/160
* fix: prevent CD-ROM PATCH storm, fix bulk reconcile counter and strict lookup by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/161
* docs(readme): add Integrations Architecture section with hosted SVG by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/163
* chore: bump proxmox-sdk pin to 0.0.7 by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/164


**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.14...v0.0.15

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.14

Title: proxbox-api v0.0.14

Description: v0.0.14

# proxbox-api v0.0.14

v0.0.14

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.14 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.14 |
| Tag | v0.0.14 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-21 23:44 UTC |
| Published | 2026-05-22 02:37 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* feat: add enabled field to ProxmoxEndpoint and NetBoxEndpoint by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/142
* fix: represent CD-ROM drives as nullable-size VirtualDisk entries by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/146
* fix(schemas): expand VMConfig static fields and dynamic-key whitelist (closes #144) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/147
* fix(virtual_disks): remove stale cluster_status kwarg from resolve_vm_config (closes #143) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/148
* feat: add Proxmox VE 9.2 to cloud-init template version catalog by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/149
* feat(tests): implement FastAPI TestClient fixtures across test suite by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/151
* feat: Proxmox VE 9.2 compatibility — bump proxmox-sdk to v0.0.6 by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/153
* chore: update netbox-proxbox install target to v0.0.17 in CI workflow by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/154


**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.13...v0.0.14

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.13

Title: proxbox-api v0.0.13

Description: v0.0.13

# proxbox-api v0.0.13

v0.0.13

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.13 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.13 |
| Tag | v0.0.13 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-20 13:42 UTC |
| Published | 2026-05-20 15:40 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* docs(claude): document release procedure and duplicate-run cancellation by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/122
* fix: set both primary_ip4 and primary_ip6 for dual-stack VMs by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/123
* fix: recover from concurrent tag creation race in ensure_tag_async (#121) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/124
* fix: stop merging existing custom_fields into stamp PATCH payload by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/125
* fix: skip mkcert when custom certs are already present (closes #126) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/127
* docs(pt-BR): sync installation guide with EN version including custom cert section by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/128
* feat(intent): add PUT /intent/tag-pending-deletion and /untag-pending-deletion routes by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/129
* fix: guard against FastAPI Query default leaking as run_id (closes #132) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/135
* fix: bypass cluster_status preflight in resolve_vm_config by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/138
* fix: logging verbosity control and netbox_sdk.client suppression (#133) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/136
* fix: replace deprecated listen...http2 with standalone http2 on directive by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/137
* fix: skip bootstrap when no NetBox endpoint is configured (closes #130) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/139
* Release v0.0.13 by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/141


**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.12...v0.0.13

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.12.post2

Title: proxbox-api v0.0.12.post2

Description: v0.0.12.post2

# proxbox-api v0.0.12.post2

v0.0.12.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.12.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.12.post2 |
| Tag | v0.0.12.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 19:07 UTC |
| Published | 2026-05-18 21:20 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.12.post1...v0.0.12.post2

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.12.post1

Title: proxbox-api v0.0.12.post1

Description: v0.0.12.post1

# proxbox-api v0.0.12.post1

v0.0.12.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.12.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.12.post1 |
| Tag | v0.0.12.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 18:59 UTC |
| Published | 2026-05-18 18:41 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* docs(claude): document release procedure and duplicate-run cancellation by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/122
* fix: set both primary_ip4 and primary_ip6 for dual-stack VMs by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/123
* fix: recover from concurrent tag creation race in ensure_tag_async (#121) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/124
* fix: stop merging existing custom_fields into stamp PATCH payload by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/125


**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.12...v0.0.12.post1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.12

Title: proxbox-api v0.0.12

Description: v0.0.12

# proxbox-api v0.0.12

v0.0.12

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.12 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.12 |
| Tag | v0.0.12 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 04:03 UTC |
| Published | 2026-05-18 10:23 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* feat(cloud): build Proxmox template images by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/109
* fix(cloud): validate image_url against SSRF protection before download by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/110
* fix(ha): degrade gracefully on PVE 9.x cluster/ha/groups HTTP 500 (#111) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/113
* fix: resolve SQLite locking, rate-limit 429, and vm-backups 503 (issue #445) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/114
* refactor(ha): deduplicate group/rule handlers and add _str helper by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/115
* feat(cloud): /cloud/templates/pve — build PVE-installer cloud-init templates by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/117
* release: v0.0.11.post2 by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/118
* feat(cloud): add Packer image factory backend (PHASE1) by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/119


**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.11...v0.0.12

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.11.post1

Title: proxbox-api v0.0.11.post1

Description: proxbox-api v0.0.11.post1

# proxbox-api v0.0.11.post1

proxbox-api v0.0.11.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.11.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.11.post1 |
| Tag | v0.0.11.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-16 20:35 UTC |
| Published | 2026-05-16 20:36 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Post-release patch on stable `v0.0.11`. Pairs with `netbox-proxbox v0.0.15.post1`.

This release restores the package metadata that was inadvertently downgraded from `0.0.11` to `0.0.9.post1` in commit c07c864 (the PVE 9.x HA-groups graceful-degradation fix), and ships the post-release fixes that have accumulated on `main` since `v0.0.11`.

## Features

- **Cloud template image builder** — `feat(cloud): build Proxmox template images (#109)`. Adds the endpoint that downloads cloud images and prepares them as Proxmox templates.

## Fixes

- **PVE 9.x HA rules support** — `cluster/ha/groups` was removed in PVE 9.x in favour of `cluster/ha/rules`. `get_ha_groups()` now catches HTTP 500 + "migrated to rules" and degrades to `[]` at DEBUG level instead of an ERROR-level traceback on every HA poll cycle. Adds:
  - `get_ha_rules()` helper for PVE 9.x.
  - `HaRuleSchema` (rule, type, affinity, nodes, resources, strict, disable, comment).
  - `GET /proxmox/cluster/ha/rules`.
  - `HaSummarySchema.rules` (optional, defaults to `[]` for backward compatibility).
  - Parallel gathering of rules in `ha_summary`.
  - 4 new tests. (Fixes #111)
- **HA handler refactor** — `refactor(ha): deduplicate group/rule handlers and add _str helper (#115)`.
- **SQLite locking + rate-limit + vm-backups regressions** — `fix: resolve SQLite locking, rate-limit 429, and vm-backups 503 (issue #445) (#114)`. SQLite WAL/busy-timeout active in `proxbox_api/database.py`; `Retry-After` returned on 429 in `proxbox_api/app/factory.py`; empty backups complete cleanly in `backups_vm.py`.
- **SSRF guards** — `fix(codegen): block SSRF via source_url and require explicit SSL bypass`. `fix(cloud): validate image_url against SSRF protection before download`.

## Compatibility

NetBox: `4.5.x` and official `4.6.0` (unchanged).

| component | version |
|-----------|---------|
| proxbox-api | v0.0.11.post1 |
| netbox-proxbox (consumer floor) | v0.0.15.post1 |
| proxmox-sdk | 0.0.4.post3 |
| netbox-sdk | 0.0.8.post1 |

## Workflow

This release triggers the standard `TestPyPI → PyPI → Docker Hub` publishing chain.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.11

Title: proxbox-api v0.0.11

Description: proxbox-api v0.0.11

# proxbox-api v0.0.11

proxbox-api v0.0.11

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.11 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.11 |
| Tag | v0.0.11 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-15 14:08 UTC |
| Published | 2026-05-15 17:17 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxbox-api v0.0.11

This production release is the backend/API half of the Proxbox release train paired with `netbox-proxbox v0.0.15`. It was validated against NetBox `v4.5.8`, `v4.5.9`, and `v4.6.0`, and publishes both the Python package and Docker image variants used by the plugin.

### Highlights

- Adds HA cluster read APIs for the NetBox Proxbox HA tab and cluster page.
- Adds opt-in Proxmox operational verb routes for start, stop, snapshot, and migrate, guarded by endpoint write permissions.
- Adds cloud-init and cloud provisioning support, including `/cloud/vm/provision` and `/cloud/templates`.
- Adds NetBox Branching support by forwarding `X-NetBox-Branch` through full and individual sync flows.
- Adds idempotent NetBox bootstrap, drift-detecting writes, run stamps, orphan sweep support, duplicate-name resolution, discovery tags, and sync-active probing.
- Improves VM sync fidelity: primary MAC writes through `dcim.mac_addresses`, IPv6 link-local filtering, Proxmox tag sync, description metadata parsing, cloud-init reflection, endpoint placement, and role preservation.
- Adds hardware discovery support through netbox-proxbox credentials, plus Ceph and read-only PBS route surfaces.
- Improves PVE 9 authentication diagnostics and closes abandoned SDK sessions.
- Improves Docker/CI release reliability across raw, nginx, and granian image variants.

### Compatibility

- Python: `>=3.11`
- NetBox validation matrix: `v4.5.8`, `v4.5.9`, `v4.6.0`
- Required companion plugin: `netbox-proxbox >= 0.0.15`
- SDK pins: `proxmox-sdk==0.0.4.post3`, `netbox-sdk==0.0.8.post1`

### Closed Issues

- [proxbox-api#61](https://github.com/emersonfelipesp/proxbox-api/issues/61) - `settings_client` now honors `ssl_verify=false`.
- [netbox-proxbox#352](https://github.com/emersonfelipesp/netbox-proxbox/issues/352) - fixed FastAPI setup failures when using the nginx Docker container.
- [netbox-proxbox#357](https://github.com/emersonfelipesp/netbox-proxbox/issues/357) - added drift-detecting writes with a `createOrUpdate` helper.
- [netbox-proxbox#358](https://github.com/emersonfelipesp/netbox-proxbox/issues/358) - made NetBox-side supporting object bootstrap idempotent.
- [netbox-proxbox#359](https://github.com/emersonfelipesp/netbox-proxbox/issues/359) - migrated/verified primary MAC linkage through `dcim.mac_addresses`.
- [netbox-proxbox#361](https://github.com/emersonfelipesp/netbox-proxbox/issues/361) - skips IPv6 link-local addresses and strips zone IDs during IP reconciliation.
- [netbox-proxbox#362](https://github.com/emersonfelipesp/netbox-proxbox/issues/362) - added Proxmox discovery tag patterns for VMs and LXCs.
- [netbox-proxbox#363](https://github.com/emersonfelipesp/netbox-proxbox/issues/363) - added read-side cloud-init reflection fields.
- [netbox-proxbox#364](https://github.com/emersonfelipesp/netbox-proxbox/issues/364) - added role pinning by VM type.
- [netbox-proxbox#365](https://github.com/emersonfelipesp/netbox-proxbox/issues/365) - added tenant assignment by VM-name regex.
- [netbox-proxbox#366](https://github.com/emersonfelipesp/netbox-proxbox/issues/366) - added description metadata parsing and overwrite controls.
- [netbox-proxbox#367](https://github.com/emersonfelipesp/netbox-proxbox/issues/367) - added latest job UUID stamping and orphan deletion support.
- [netbox-proxbox#368](https://github.com/emersonfelipesp/netbox-proxbox/issues/368) - resolves duplicate VM names and emits duplicate-name SSE frames.
- [netbox-proxbox#370](https://github.com/emersonfelipesp/netbox-proxbox/issues/370) - added optional NetBox Branching support.
- [netbox-proxbox#372](https://github.com/emersonfelipesp/netbox-proxbox/issues/372) - added scheduler container mode support.
- [netbox-proxbox#374](https://github.com/emersonfelipesp/netbox-proxbox/issues/374) - added hardware discovery via SSH, `dmidecode`, and `ethtool`.
- [netbox-proxbox#375](https://github.com/emersonfelipesp/netbox-proxbox/issues/375) - introduced the backend session refactor foundation.
- [netbox-proxbox#376](https://github.com/emersonfelipesp/netbox-proxbox/issues/376) - added strictly opt-in operational REST endpoints.
- [netbox-proxbox#390](https://github.com/emersonfelipesp/netbox-proxbox/issues/390) - fixed tenant/site definition handling.
- [netbox-proxbox#391](https://github.com/emersonfelipesp/netbox-proxbox/issues/391) - fixed Proxbox VM/LXC object links for NetBox `v4.5.9`.
- [netbox-proxbox#406](https://github.com/emersonfelipesp/netbox-proxbox/issues/406) - ported Branching and SyncContext support into this release train.
- [netbox-proxbox#417](https://github.com/emersonfelipesp/netbox-proxbox/issues/417) - improved Proxmox VE 9 connection/authentication handling.
- [netbox-proxbox#421](https://github.com/emersonfelipesp/netbox-proxbox/issues/421) - syncs Proxmox tags into NetBox tags.
- [N-MultiCloud/nms#12](https://github.com/N-MultiCloud/nms/issues/12) - supports cloud-init workflows used by the NMS surface.

### Verification

- `v0.0.11rc8` completed the full release lane across PyPI, Docker Hub, and post-publish E2E.
- PR #108 completed green on the final release commit.
- Main merge commit `c3641ab` completed docs and CI successfully.
- Tag validation run `25923332054` completed green for `v0.0.11`.
- Production release run `25931295148` completed green:
  - PyPI publish completed at `2026-05-15T18:59:33Z`.
  - PyPI install validation passed on Python `3.11`, `3.12`, and `3.13`.
  - Docker Hub publish passed for raw, nginx, and granian image variants.
  - Post-publish E2E passed against NetBox `v4.5.8`, `v4.5.9`, and `v4.6.0`.
- Release Docker verification run `25931295149` completed green after the images were published.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.10.post2

Title: proxbox-api v0.0.10.post2

Description: v0.0.10.post2

# proxbox-api v0.0.10.post2

v0.0.10.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.10.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.10.post2 |
| Tag | v0.0.10.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-05 15:27 UTC |
| Published | 2026-05-05 15:28 UTC |
| Target | 350b5d7fd43b3942d497c066d685376fccc4a5fb |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Release v0.0.10.post2.\n\n- Pin netbox-sdk to 0.0.8.post1.\n- Bump proxbox-api package version to 0.0.10.post2.\n- Let explicit PROXBOX_NETBOX_* environment overrides take precedence for REST retry settings.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.10.post1

Title: proxbox-api v0.0.10.post1

Description: v0.0.10.post1

# proxbox-api v0.0.10.post1

v0.0.10.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.10.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.10.post1 |
| Tag | v0.0.10.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-05 14:17 UTC |
| Published | 2026-05-05 14:18 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Summary
- Bump proxbox-api to 0.0.10.post1.
- Certify the NetBox matrix against v4.5.8, v4.5.9, and stable v4.6.0.
- Gate NetBox VirtualMachineType sync on live NetBox 4.6+ detection so 4.5.x keeps the existing VM role fallback.
- Include the Docker release-smoke encryption-key fix already merged on main.

## Validation
- `git diff --check`
- `ruff check .`
- `ruff format --check .`
- `pytest -q -o addopts="" tests/test_netbox_version.py tests/test_vm_sync.py tests/test_patchable_fields.py tests/test_custom_field_object_types_union_netbox_versions.py`
- `python -m compileall proxbox_api tests`
- `python -c "import proxbox_api.main"`
- `python -c "from proxbox_api.proxmox_to_netbox.proxmox_schema import load_proxmox_generated_openapi; assert load_proxmox_generated_openapi().get('paths')"`
- `ty check proxbox_api/types proxbox_api/utils/retry.py proxbox_api/schemas/sync.py`

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.10

Title: proxbox-api v0.0.10

Description: v0.0.10

# proxbox-api v0.0.10

v0.0.10

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.10 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.10 |
| Tag | v0.0.10 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-04 23:21 UTC |
| Published | 2026-05-04 23:22 UTC |
| Target | 60bc92f738b3929e7883166ad1deeee5179c259d |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Summary
- Bump proxbox-api to 0.0.10 and pin netbox-sdk to 0.0.8.
- Certify Docker E2E CI across NetBox v4.5.8, v4.5.9, and v4.6.0-beta2.
- Centralize the supported NetBox version list in .github/netbox-versions.json and reuse it from CI and release workflows.
- Align FastAPI/OpenAPI info.version with the packaged proxbox_api __version__ value.

## Validation
- PR #58 CI completed successfully with 29/29 jobs green.
- Post-merge main CI completed successfully with 29/29 jobs green.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.9.post2

Title: proxbox-api v0.0.9.post2

Description: v0.0.9.post2 — fix create_storages import in full-update

# proxbox-api v0.0.9.post2

v0.0.9.post2 — fix create_storages import in full-update

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.9.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.9.post2 |
| Tag | v0.0.9.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-01 03:08 UTC |
| Published | 2026-05-01 03:09 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Summary

Ships a one-line import fix that unblocks every full-update sync run.

`proxbox_api/app/full_update.py` was importing `create_storages` from `proxbox_api.routes.virtualization.virtual_machines.storages_vm` — a thin HTTP route wrapper whose signature only accepts `fetch_max_concurrency` and does not accept `overwrite_flags`. The caller passes both `fetch_concurrency=...` and `overwrite_flags=...`, so every non-trivial sync raised:

```
TypeError: create_storages() got an unexpected keyword argument 'fetch_concurrency'.
Did you mean 'fetch_max_concurrency'?
```

Switched the import to `proxbox_api.services.sync.storages.create_storages` — the real reconcile service that already accepts both kwargs.

Caught by netbox-proxbox `v0.0.13.post2` post-publish E2E. Was a regression from 4f33e70 (`feat(sync): honor expanded overwrite_* flags via SyncOverwriteFlags schema`), shipped silently in `0.0.9.post1`.

## Compatibility

| Component | Version |
|-----------|---------|
| proxbox-api | `0.0.9.post2` |
| netbox-proxbox | `>=0.0.13.post2` |
| netbox-sdk | `0.0.7.post6` |
| proxmox-sdk | `0.0.3.post1` |

## Upgrade

```
pip install --upgrade proxbox-api==0.0.9.post2
# or
docker pull emersonfelipesp/proxbox-api:0.0.9.post2
```

## Changes

- fd395a1 fix(full-update): import create_storages from services, not routes
- 8ec7d52 chore: bump version to 0.0.9.post2

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.9.post1

Title: proxbox-api v0.0.9.post1

Description: v0.0.9.post1 — Docs, tests & CI sync

# proxbox-api v0.0.9.post1

v0.0.9.post1 — Docs, tests & CI sync

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.9.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.9.post1 |
| Tag | v0.0.9.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-01 01:59 UTC |
| Published | 2026-05-01 01:59 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Summary

Maintenance release that aligns the documentation, test suite, and GitHub Actions pipelines with the current state of the v0.0.9 codebase. No runtime/API behavior changes versus v0.0.9.

## What's Changed

### Documentation
- Root `CLAUDE.md` and `tests/CLAUDE.md` brought back in sync with the actual subpackage layout, env vars, and CLI entry points (`proxbox-proxmox-codegen`, `proxbox-schema`).
- New env var documentation: `PROXBOX_BULK_BATCH_SIZE`, `PROXBOX_BULK_BATCH_DELAY_MS`, `PROXBOX_GENERATED_DIR`.
- MkDocs reference updated:
  - `GET /cache/metrics` and `GET /cache/metrics/prometheus` added to the HTTP reference.
  - `overwrite_*` and `sync_vm_network` query params documented on VM stream endpoints.
  - Tag-preservation behavior added to the VM sync workflow.
  - Phantom benchmark block in the caching architecture page replaced with the real cache-metrics endpoints.
- pt-BR mirror pages added as stubs (with a "Tradução pendente" admonition + EN body) so `mkdocs build --strict` is green: `sync/overwrite-flags.md`, `development/refactoring-summary.md`, `development/sync-fix-summary.md`.

### Tests
- New focused suites:
  - `tests/test_auth_lockout.py` — 9 tests covering the full `proxbox_api/auth.py` lockout state machine (valid key, missing key, no keys configured, attempt counting, lockout-on-cap, success-clears-attempts, lockout expiry, persistence across sessions, async path).
  - `tests/test_schema_cli.py` — 8 tests for the argparse-based `proxbox-schema` CLI (list/status/generate, `--force`, pipeline failure exit code).
- Removed the dead `image_http` pytest marker (plus its CI filter and shell-script reference); the test it referenced no longer exists.
- `tests/CLAUDE.md` test inventory replaced with the current 47-file layout; e2e description corrected (httpx, not Playwright).

### GitHub Actions / CI
- Fixed non-existent action pins (`upload-artifact@v7`, `download-artifact@v8` → `@v4`) in `nightly-schema-refresh.yml` and `publish-testpypi.yml`.
- Aligned `ty check` scope across `ci.yml`, `nightly-schema-refresh.yml`, `docker-hub-publish.yml`, `publish-testpypi.yml`, and `.pre-commit-config.yaml` to include `proxbox_api/schemas/sync.py`.
- `nightly-schema-refresh.yml` now installs the `playwright` extra it actually needs.
- New `test-py311-floor` job in `ci.yml` exercises the declared `requires-python = ">=3.11"` floor (heavy E2E matrix stays on 3.12).
- Removed dead `PROXBOX_E2E_NETBOX_TOKEN_VERSION` env var.

### Style
- `proxbox_api/app/full_update.py` and `proxbox_api/session/netbox.py` reformatted with `ruff format` to clear pre-existing format drift that was blocking CI.

## Compatibility

- Python ≥ 3.11 (3.11 floor is now actually exercised in CI)
- NetBox v4.6.0-beta2 schema certification carried over from v0.0.9
- `proxmox-sdk == 0.0.3.post1`, `netbox-sdk == 0.0.7.post6` (unchanged)

**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.9...v0.0.9.post1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.9

Title: proxbox-api v0.0.9

Description: v0.0.9

# proxbox-api v0.0.9

v0.0.9

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.9 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.9 |
| Tag | v0.0.9 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-28 22:21 UTC |
| Published | 2026-04-28 22:37 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed

### New Features

#### Controlled field sync with `overwrite_*` parameters (closes #335)
Added `overwrite_vm_name`, `overwrite_vm_status`, `overwrite_vm_cluster`, `overwrite_vm_role`, `overwrite_vm_vcpus`, `overwrite_vm_memory`, `overwrite_vm_disk`, `overwrite_vm_platform` and corresponding device variants. When set to `false`, proxbox-api skips updating that field if a value already exists in NetBox, giving operators full control over which fields Proxmox is allowed to overwrite.

The parameters are forwarded through all VM stream endpoints (`/virtualization/virtual-machines/full-update/stream`, individual sync, and bulk sync paths) — closes the gap where previously only the top-level endpoint honoured them.

#### VM role left free when `VirtualMachineType` is available (closes #241)
When Proxmox provides a VM type (e.g. `qemu`, `lxc`) that maps to a NetBox `VirtualMachineType`, the `role` field on the VM is now intentionally left unset. Previously a generic fallback role was always written, which polluted NetBox with low-value data. NetBox 4.6 native VM-type support makes the role field redundant for type classification.

#### Python 3.14t (free-threaded) CI job
A dedicated `test-free-threaded` job (Python 3.14t, GIL disabled) now runs in CI alongside the standard 3.12 job. It runs `continue-on-error: true` so it is non-blocking today, but serves as an early-warning signal for compatibility issues as the free-threaded CPython ecosystem matures.

### Bug Fixes

#### VM tags preserved during sync (closes #337)
Proxmox sync no longer overwrites existing NetBox VM tags. Previously, each sync cycle reset the `tags` list to only what Proxmox reported, silently removing any tags that operators had manually added in NetBox. Tags written by proxbox-api (e.g. `Proxmox`, node/cluster labels) are now merged with the existing tag set rather than replacing it.

#### `sync_vm_network` and `overwrite_vm_*` forwarded to all stream endpoints
The `sync_vm_network` flag and all `overwrite_vm_*` params were previously only respected at the top-level sync entry point. They are now forwarded correctly through the internal dispatch chain to the individual VM sync service, ensuring consistent behaviour across direct calls, SSE streams, and WebSocket paths.

#### XSS vulnerability fixed in admin UI dependency (postcss)
`postcss` in `nextjs-ui/` bumped to 8.5.10 via npm overrides to address a high-severity XSS vulnerability in the prior version.

#### NetBox image pull-or-build fallback in E2E publish gates
`netboxcommunity/netbox:v4.6.0-beta2` is not yet published on Docker Hub. Both `e2e-pre-publish` and `e2e-post-publish` CI jobs now fall back to building the NetBox image from source (same logic already present in `ci.yml`) so the publish E2E gates do not fail with docker exit code 125.

### Dependency Updates

| Package | Old | New | Notes |
|---|---|---|---|
| `fastapi[standard]` | unpinned | `==0.136.1` | Pinned for reproducible builds |
| `bcrypt` | `~=4.x` | `>=5.0.0,<6.0.0` | Major version bump, API-compatible |
| `sqlmodel` | `0.0.22` | `0.0.38` | Latest upstream release |
| `postcss` (nextjs-ui) | `<8.5.10` | `8.5.10` | Security fix via npm override |

### NetBox Compatibility

- **Certified compatible with NetBox 4.6.0-beta1 and 4.6.0-beta2.** Full API audit confirmed no breaking changes between the two beta releases.
- NetBox OpenAPI schema snapshots in `proxbox_api/generated/netbox/` refreshed for both beta releases. These snapshots drive runtime contract validation and the Pydantic model generator.

### CI/CD Improvements

- **Pre- and post-publish E2E gates** added to the release workflow (`publish-testpypi.yml`). Before uploading to PyPI the pipeline spins up the full Docker stack (NetBox + Proxmox mock + proxbox-api) and verifies end-to-end connectivity. After publishing to Docker Hub, a second gate pulls the published images and smoke-tests them.
- **Docker Hub publish wired to release workflow.** `docker-hub-publish.yml` is now called as a `workflow_call` from the release pipeline, ensuring images are always built from the exact release commit and pushed atomically with the PyPI package.
- E2E matrix upgraded to test against NetBox 4.6.0-beta1 (and beta2 built from source when not yet on Docker Hub).
- CI reliability fixes: ubuntu:24.04 base for NetBox image build (26.04 missing `libxmlsec1-openssl`), PEP 508 name prefix stripping in `DEV_OVERRIDES` to fix `uv` parse errors, fallback source-build path for NetBox images not yet published to Docker Hub.

### Full Changelog

[v0.0.8.post1...v0.0.9](https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.8.post1...v0.0.9)

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.8.post1

Title: proxbox-api v0.0.8.post1

Description: proxbox-api v0.0.8.post1

# proxbox-api v0.0.8.post1

proxbox-api v0.0.8.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.8.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.8.post1 |
| Tag | v0.0.8.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-23 18:02 UTC |
| Published | 2026-04-23 18:02 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxbox-api v0.0.8.post1

Patch release on top of v0.0.8 fixing the API documentation UI.

### What's fixed

- **Self-hosted Swagger UI and ReDoc assets** — `swagger-ui-bundle.js`, `swagger-ui.css`, and `redoc.standalone.js` are now served from `/static/swagger-ui/` instead of loading from external CDNs (`cdn.jsdelivr.net`, `fonts.googleapis.com`). This fixes blank documentation pages in network-isolated environments and resolves CSP violations caused by `SecurityHeadersMiddleware`.

- **Docs-specific Content Security Policy** — `/docs` and `/redoc` now receive a targeted CSP (`script-src 'unsafe-inline'`, `style-src 'unsafe-inline'`, `img-src data:`) that allows Swagger UI's inline initialisation script and ReDoc's React inline styles to execute. All other endpoints retain the strict `default-src 'self'` policy.

- **ReDoc Google Fonts removed** — `with_google_fonts=False` is set on the custom `/redoc` route, eliminating the `fonts.googleapis.com` and `fonts.gstatic.com` requests that were blocked by the CSP.

### Upgrade notes

No database migrations or configuration changes required. Restart the server after upgrading.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.8

Title: proxbox-api v0.0.8

Description: proxbox-api v0.0.8

# proxbox-api v0.0.8

proxbox-api v0.0.8

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.8 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.8 |
| Tag | v0.0.8 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-23 12:14 UTC |
| Published | 2026-04-23 12:31 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxbox-api v0.0.8

Compatible with **netbox-proxbox v0.0.12**.

### What's new
- proxmox-sdk 0.0.3 integration and sync bug fixes
- New SSE routes for VM interfaces (netbox-proxbox v0.0.12 compatibility)
- `proxmox_endpoint_ids` query parameter alias for plugin scoping
- `fetch_max_concurrency` wiring for storage and task-history streams
- Harden sync reliability and async test mocks

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.7.post1

Title: proxbox-api v0.0.7.post1

Description: v0.0.7.post1 — Settings auth fix & sync correctness

# proxbox-api v0.0.7.post1

v0.0.7.post1 — Settings auth fix & sync correctness

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.7.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.7.post1 |
| Tag | v0.0.7.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-17 18:15 UTC |
| Published | 2026-04-17 18:17 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed

### Bug Fixes

- **fix(settings_client):** Replace hand-rolled `Authorization` header with `authorization_header_value()` from `netbox_sdk.config`. The old code produced `nbt <key>:<secret>` for v2 tokens instead of the correct `Bearer nbt_<key>.<secret>`, causing every v2-token request to be treated as anonymous and rejected with 403 by NetBox. ([#45](https://github.com/emersonfelipesp/proxbox-api/issues/45))
- **fix(replications):** Use `base_query=` keyword argument in `rest_list_paginated_async` call — previously the wrong keyword `query=` was silently ignored, so active-replication filtering never applied.
- **fix(backups):** Allow `compute_backup_payload` to look up Proxmox storage without a `cluster_name` — prevents KeyError when cluster name is absent.
- **fix(vm_network):** Use `primary_ip4_id` filter in `_clear_primary_ip_on_parent` to correctly target the VM's primary IP assignment.
- **fix(tests):** Fix `test_mark_stale_replications` fake to capture `base_query=` instead of `query=`, matching the real `rest_list_paginated_async` signature (the test was always asserting `None`).

### Chores

- Pin `proxmox-sdk` to `0.0.2.post3`.
- Commit pending schema updates, tag normalization fix, and Proxmox 9.1 generated artifacts.

### Root Cause (issue [#45](https://github.com/emersonfelipesp/proxbox-api/issues/45))

Two independent bugs caused HTTP 403 on `GET /api/plugins/proxbox/settings/`:

1. **This repo** — `settings_client.py` built the v2 auth header incorrectly (`nbt <key>:<secret>` instead of `Bearer nbt_<key>.<secret>`). NetBox parsed it as anonymous and returned 403.
2. **netbox-proxbox** — `ProxboxPluginSettingsViewSet` required an explicit `view_proxboxpluginsettings` object permission that standard API tokens don't carry. Fixed in [netbox-proxbox v0.0.11.post1](https://github.com/emersonfelipesp/netbox-proxbox/releases/tag/v0.0.11.post1).

Both fixes together restore automatic token exchange between the plugin and the backend.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.7

Title: proxbox-api v0.0.7

Description: v0.0.7

# proxbox-api v0.0.7

v0.0.7

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.7 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.7 |
| Tag | v0.0.7 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-13 20:15 UTC |
| Published | 2026-04-13 20:16 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed

### Features
- Bundle Proxmox OpenAPI schemas for PVE 8.1/8.2/8.3 with auto-generation support
- Auto-allow endpoint IPs in SSRF during create/update
- Add duration_seconds to SSE step-completed events in full-update stream

### Bug Fixes
- Handle primary IP reassignment block in `ensure_ip_assigned_to_vm`
- Fix VM primary IP assignment for IPv4/IPv6 and disk retry
- Fix VM disk aggregate handling and primary IP patch fallback
- Fix interface lookup collision and backup duplicate-create errors
- Deduplicate cluster resources when multiple Proxmox sessions share a cluster
- Prevent cross-VM interface theft during concurrent sync
- Prevent SSE stream 502 with keepalive and consistent error handling
- Fix task-history vmid, bridge cache, and route ordering sync errors
- Reduce /openapi.json size to fix Swagger UI blank page
- Prevent full VM result-list log from crashing stream
- Send bulk DELETE as JSON body instead of query params
- Pass ProxmoxSession wrapper to get_vm_snapshots correctly
- Fix backup fields, backup routine fields, and task-history stream integration
- Downgrade HTTP 501 snapshot errors to debug level
- Apply ruff formatting to 12 files missed by CI background-job check

### CI/CD
- Fix ci.yml ruff step: run format check sequentially with `uv run` to catch formatting failures reliably

### Dependencies
- Pin `netbox-sdk==0.0.7.post4` and `proxmox-sdk==0.0.2.post2`
- Patch Dependabot vulnerabilities (pytest, next.js)

### Documentation
- Resolve MkDocs build failure in schema-management.md
- Add encryption settings test coverage and documentation

### Refactoring
- Rename proxmox-openapi dependency to proxmox-sdk
- Consolidate duplicate sync utilities and simplify IP sync
- Improve type hints across proxbox_api — eliminate Any, add return types

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post4

Title: proxbox-api v0.0.6.post4

Description: v0.0.6.post4

# proxbox-api v0.0.6.post4

v0.0.6.post4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post4 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.6.post4 |
| Tag | v0.0.6.post4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-04 16:35 UTC |
| Published | 2026-04-04 16:35 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

- fix stale cached NetBox tag lookups by reconciling Proxbox tag creation through the REST reconcile helper\n- add regression coverage for duplicate tag create after stale empty lookups

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post3

Title: proxbox-api v0.0.6.post3

Description: v0.0.6.post3

# proxbox-api v0.0.6.post3

v0.0.6.post3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post3 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.6.post3 |
| Tag | v0.0.6.post3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-04 15:40 UTC |
| Published | 2026-04-04 15:41 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Fix Proxmox cluster status parsing for sparse cluster/status payloads so NetBox E2E device sync reaches the stream instead of failing dependency validation.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post2

Title: proxbox-api v0.0.6.post2

Description: v0.0.6.post2

# proxbox-api v0.0.6.post2

v0.0.6.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.6.post2 |
| Tag | v0.0.6.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-04 15:01 UTC |
| Published | 2026-04-04 15:02 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What changed
- fix /health to report live bootstrap readiness instead of a stale imported value
- add a regression test covering readiness state changes

## Why
- unblocks the NetBox plugin E2E job flow, which polls /health before starting sync streams

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post1

Title: proxbox-api v0.0.6.post1

Description: proxbox-api v0.0.6.post1

# proxbox-api v0.0.6.post1

proxbox-api v0.0.6.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.6.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.6.post1 |
| Tag | v0.0.6.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-03 15:32 UTC |
| Published | 2026-04-03 15:32 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

See changelog

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.6

Title: proxbox-api v0.0.6

Description: proxbox-api v0.0.6

# proxbox-api v0.0.6

proxbox-api v0.0.6

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.6 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.6 |
| Tag | v0.0.6 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-03 14:40 UTC |
| Published | 2026-04-03 03:50 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What\'s Changed
* Ignore generated Proxmox runtime cache by @emersonfelipesp
* Fix VM interface bridge lookup and guest IP handling by @emersonfelipesp
* fix: add retry backoff with jitter and connection refused detection by @emersonfelipesp
* feat: add /health endpoint for backend readiness checks by @emersonfelipesp
* Fix backend logs cursor pagination by @emersonfelipesp
* fix: add missing error handling wrapper to rest_patch_async by @emersonfelipesp
* fix: add retry with backoff and concurrency limit for NetBox requests by @emersonfelipesp
* fix: handle Pydantic models in _record_to_dict for storage index by @emersonfelipesp
* fix: use unique lookup for bridge to allow same name across VMs by @emersonfelipesp
* fix: handle bridge reuse across VMs with renamed interface by @emersonfelipesp
* fix: allow bridge interface reuse across VMs by @emersonfelipesp
* ci: add failing test deselect to workflow by @emersonfelipesp

## Bug Fixes
- **Retry backoff**: Sleep now happens outside the semaphore to avoid holding concurrency slots while waiting. Adds jitter and minimum 5s delay for connection refused (NetBox completely down).
- **Bridge lookup**: Fixed edge case where a bridge name could match an interface on a different VM.
- **Guest IP sync**: Fixed IP address handling during VM interface reconciliation.
- **REST pagination**: Fixed cursor pagination in backend logs endpoint.

## New Features
- **/health endpoint**: Backend readiness check endpoint for orchestrators.

**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.5...v0.0.6

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.5

Title: proxbox-api v0.0.5

Description: proxbox-api v0.0.5 - C901 Complexity Fixes

# proxbox-api v0.0.5

proxbox-api v0.0.5 - C901 Complexity Fixes

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.5 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.5 |
| Tag | v0.0.5 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-01 03:43 UTC |
| Published | 2026-04-01 03:53 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Release v0.0.5 - C901 Complexity Fixes

**Key Changes:**
- Added noqa: C901 comments for 30 legitimate complex functions
- Resolved all C901 (McCabe complexity) linting violations
- All CI validation checks passing
- Ready for PyPI and Docker Hub publishing

**Build Status:**
- ✅ CI checks passing
- ✅ All tests passing  
- ✅ Ruff linting validated
- ✅ Ready for production release

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.4

Title: proxbox-api v0.0.4

Description: v0.0.4

# proxbox-api v0.0.4

v0.0.4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.4 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.4 |
| Tag | v0.0.4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-31 00:35 UTC |
| Published | 2026-03-31 00:42 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Release proxbox-api **0.0.4** (sync endpoints, snapshots/disks/backups, CI, release workflow).

Published artifacts: PyPI `proxbox-api`, Docker Hub `emersonfelipesp/proxbox-api`.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.3

Title: proxbox-api v0.0.3

Description: v0.0.3

# proxbox-api v0.0.3

v0.0.3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.3 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.3 |
| Tag | v0.0.3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-29 03:46 UTC |
| Published | 2026-03-29 03:47 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed
* Closes #4 - Proxmox Backup Integration  by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/5
* Refactor by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/6
* make changes by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/7
* refactor: replace pynetbox-api with netbox-sdk v0.0.5 and preserve API behavior by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/8
* feat: add async Proxmox API viewer codegen with retries/checkpoints by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/9
* feat: add integration refactor for Proxmox->NetBox schema-driven mapping by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/10
* feat: add endpoint CRUD backend and Next.js management UI by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/11
* docs: add MkDocs Material docs with pt-BR option by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/12
* test: add schema-driven coverage and CI by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/13
* feat: support versioned Proxmox OpenAPI artifacts by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/14
* [codex] Fix Proxmox typed schemas and sync helpers by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/15
* [codex] Fix Ruff import ordering after PR #15 by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/16
* Release v0.0.3 by @emersonfelipesp in https://github.com/emersonfelipesp/proxbox-api/pull/17

## New Contributors
* @emersonfelipesp made their first contribution in https://github.com/emersonfelipesp/proxbox-api/pull/5

**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.2...v0.0.3

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxbox-api/releases/v0.0.2

Title: proxbox-api v0.0.2

Description: v0.0.2- 2025-04-12

# proxbox-api v0.0.2

v0.0.2- 2025-04-12

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.2 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.2 |
| Tag | v0.0.2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2025-04-08 19:25 UTC |
| Published | 2025-04-12 19:14 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

This release has no notes.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk

Title: netbox-sdk

Description: Modern NetBox toolkit: async SDK, Typer CLI, and Textual TUI for infrastructure automation.

# netbox-sdk

Modern NetBox toolkit: an async SDK plus a CLI and a TUI for faster automation.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk |
| GitHub | https://github.com/emersonfelipesp/netbox-sdk |
| Developer guide | https://emersonfelipesp.com/netbox-sdk/developer |
| Roadmap | https://emersonfelipesp.com/netbox-sdk/roadmap |
| Releases | https://emersonfelipesp.com/netbox-sdk/releases |
| Stars | 18 |
| Forks | 0 |
| Latest release | v0.0.13 |

## Overview

netbox-sdk is an SDK-first NetBox toolkit built on a single async runtime, exposing the same surface as a Python client, a Typer-powered CLI and a Textual-powered TUI.

It ships with a mock API for tests, GraphQL support, dynamic CLI commands and several Textual UIs for browsing and debugging your NetBox infrastructure.

## Features

- Standalone async NetBox REST API SDK
- Typer-based command-line interface
- Textual-based terminal UI for interactive browsing
- Async REST client with token authentication
- Dynamic CLI commands with GraphQL support
- Built-in mock API with full CRUD for local testing
- Multiple Textual TUIs for browsing and debugging infra

## Stack

- Python (async)
- Typer (CLI)
- Textual (TUI)
- Pydantic (validation)
- Material for MkDocs (docs)

## Install

Primary command:

```shell
pip install 'netbox-sdk[all]'
```

Pin a specific version: pip install 'netbox-sdk[all]==0.0.8.post1'

### Installer flow

```
┌─────────────────────────────────────────┐
  │        netbox-sdk  installer            │
  │  API-first NetBox CLI + Textual TUI     │
  │  github.com/emersonfelipesp/netbox-sdk  │
  └─────────────────────────────────────────┘
```

- Checking for uv package manager

- Updating uv: uv is up to date  (uv 0.5.20)

- Installing netbox-sdk from official PyPI

  - package: netbox-sdk

- Downloading and installing netbox-sdk: netbox-sdk installed

  - binary: ~/.local/bin/nbx

- Installing Playwright Chromium

  - required for 'nbx init'  (browser-based token retrieval)

- Downloading Chromium browser (this may take a minute): Playwright Chromium ready

```
┌─────────────────────────────────────────┐
  │   ✔  netbox-sdk is installed!       │
  └─────────────────────────────────────────┘
```

- `nbx init` - # authenticate with demo.netbox.dev

- `nbx dcim devices list` - # list devices

- `nbx demo tui` - # launch the interactive TUI

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-sdk |
| docs | https://emersonfelipesp.com/netbox-sdk/docs/ |


---

# Source: https://emersonfelipesp.com/netbox-sdk/developer

Title: netbox-sdk developer guide

Description: Developer guide for netbox-sdk.

# netbox-sdk developer guide

Developer guide — three packages, one async runtime, OpenAPI-driven CLI, and a Textual TUI test harness.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/developer |
| Showcase | https://emersonfelipesp.com/netbox-sdk |
| GitHub | https://github.com/emersonfelipesp/netbox-sdk |
| Releases | https://emersonfelipesp.com/netbox-sdk/releases |
| Release snapshot synced | 2026-10-07T04:19:19.389Z |

## Intro

netbox-sdk is a single-repo, three-package toolkit: an async Python SDK, a Typer-powered CLI (nbx), and a Textual TUI. They share one runtime and a strict import boundary.

This page documents the layout, the OpenAPI-driven dynamic command system, the contribution workflow, and the headless Textual pilot harness used to run the TUI suite end-to-end without a real terminal.

## Architecture

- Three co-published packages: netbox_sdk/ (standalone API layer, no CLI/TUI deps), netbox_cli/ (Typer CLI, entry point nbx), netbox_tui/ (Textual TUI, lazy-loaded). Build backend: setuptools.
- Import boundary (enforced by convention + tests): netbox_sdk must NOT import netbox_cli or netbox_tui. Absolute imports only.
- SDK core: netbox_sdk/client.py wraps aiohttp.ClientSession and exposes three layers — raw NetBoxApiClient, async facade api(), versioned typed client typed_api() (4.3 / 4.4 / 4.5 / 4.6).
- Bundled OpenAPI: netbox_sdk/reference/openapi/*.json holds shipped schemas for every supported NetBox release.
- CLI dynamic command generation: netbox_cli/dynamic.py registers Typer commands at import time from the OpenAPI schema. netbox_cli/runtime.py owns config / index / client factories. Docs are generated by netbox_cli/docgen*.
- TUI: netbox_tui/app.py is the main app. netbox_tui/theme_registry.py auto-discovers JSON themes from netbox_tui/themes/*.json. TCSS files are runtime assets; tests/test_no_hardcoded_colors.py forbids hex literals in TCSS.
- Mock layer: netbox_sdk/mock_main.py serves a local FastAPI mock (entry point nbx-mock) for offline tests and demos. CRUD-complete in-memory state.
- Demo flow: netbox_sdk/demo_auth.py uses Playwright to authenticate against demo.netbox.dev so portfolio captures (DemoInitRunner / DemoDevicesListRunner on the showcase site) reflect real CLI output.

## Integrations

| Target |Protocol |Library |Notes |
| --- | --- | --- | --- |
| NetBox REST API | HTTPS (REST + GraphQL) | aiohttp via NetBoxApiClient | Token authentication; pagination, filter validation and lazy related-object loading handled in the client. |
| demo.netbox.dev | HTTPS | Playwright (netbox_sdk/demo_auth.py) | Used by the demo profile to obtain a valid token without hard-coding credentials. |
| Local mock NetBox | HTTP | FastAPI (netbox_sdk/mock_main.py) | Spawned via the nbx-mock entry point. Same routes the SDK exercises in tests. |
| proxbox-api | imported | downstream consumer | proxbox-api pins netbox-sdk==0.0.8.post1 as its NetBox write target. |

## Contributing

Development install:

```shell
uv sync --dev --extra cli --extra tui --extra demo
```

Pre-PR checks:

- install hooks: `uv run pre-commit install --hook-type pre-commit --hook-type pre-push`
- all hooks: `uv run pre-commit run --all-files`
- tests: `uv run pytest`

Code style:

- Linter: ruff (select E/F/I/UP/W/ANN201/ANN202).
- Type checker: ty.
- Pre-commit gates both pre-commit and pre-push events — install both hook types.
- Hard rule: no hex color literals in TCSS (enforced by tests/test_no_hardcoded_colors.py).

Issues: https://github.com/emersonfelipesp/netbox-sdk/issues

## End-to-end tests

Framework: pytest + pytest-asyncio (asyncio_mode=auto) + Textual's App.run_test() Pilot — TUI tests run headless, no real terminal needed.

TUI tests mount each app in a virtual terminal via async with App.run_test() as pilot, then drive keys/mouse with the Pilot API. SDK tests run the live API matrix on push to main against a NetBox Docker container.

The two test suites are separated by pytest markers so each can be run in isolation in CI.

Commands:

- TUI suite (headless): `uv run pytest -m suite_tui`
- SDK suite (live NetBox in Docker): `uv run pytest -m suite_sdk`
- everything: `uv run pytest`

Coverage:

- Spec files: tests/test_cli_tui.py (NbxCliTuiApp navigation + command execution), test_tui_interaction.py (breadcrumb, filtering, cable trace, theme tokens), test_dev_tui.py, test_graphql_tui.py.
- Screenshot harness: test_tui_screenshots.py captures fixtures used by the portfolio site's docgen pipeline.
- Live NetBox matrix: .github/workflows/test.yml × {v4.5.8, v4.5.9, v4.6.0} runs suite_sdk against a real API including auth / pagination / GraphQL.
- Hex-literal guard: tests/test_no_hardcoded_colors.py keeps theme values out of TCSS.

CI workflow: .github/workflows/test.yml (https://github.com/emersonfelipesp/netbox-sdk/blob/main/.github/workflows/test.yml)

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-sdk |
| pypi | https://pypi.org/project/netbox-sdk/ |
| docs | https://emersonfelipesp.com/netbox-sdk/docs/ |
| issues | https://github.com/emersonfelipesp/netbox-sdk/issues |


---

# Source: https://emersonfelipesp.com/netbox-sdk/roadmap

Title: netbox-sdk roadmap

Description: Roadmap for netbox-sdk.

# netbox-sdk roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/roadmap |
| Repository | emersonfelipesp/netbox-sdk |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 0 |
| Closed issues | 14 |
| Dependency edges | 0 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #49, #42, #40, #38, #36, #32, #33, #30, #27, #23, #18, #15, #12, #14

## Milestones

| Milestone |State |Due |Open |Closed |URL |
| --- | --- | --- | --- | --- | --- |
| v0.0.8 | open | n/a | 0 | 2 | https://github.com/emersonfelipesp/netbox-sdk/milestone/1 |
| v0.0.9 | open | n/a | 0 | 2 | https://github.com/emersonfelipesp/netbox-sdk/milestone/2 |

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #49 | closed | security: bump starlette to >=1.0.1 (CVE — missing Host header validation) |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/49 |
| #42 | closed | Fix CLI startup when default log path is unwritable |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/42 |
| #40 | closed | Align README for netbox-sdk v0.0.9 release |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/40 |
| #38 | closed | Refresh recursive agent guidance |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/38 |
| #36 | closed | Refactor dev HTTP input validation helpers |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/36 |
| #33 | closed | Refactor branching CLI command decorator defaults |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/33 |
| #32 | closed | Prepare netbox-sdk for integration package certification |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/32 |
| #30 | closed | Refactor CLI and SDK reusable decorators |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/30 |
| #27 | closed | fix(branching): address 15 correctness bugs from code review |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/27 |
| #23 | closed | netbox-branching v1.0.3 support | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-sdk/issues/23 |
| #18 | closed | Support Cursor-based pagination on REST API and GraphQL | v0.0.9 |  | https://github.com/emersonfelipesp/netbox-sdk/issues/18 |
| #15 | closed | How do you handle plugins/custom objects ? | v0.0.8 |  | https://github.com/emersonfelipesp/netbox-sdk/issues/15 |
| #14 | closed | Fetch user NetBox OpenAPI schema /api/schema/swagger-ui/ or /api/schema/ if version is different than the default ones. |  |  | https://github.com/emersonfelipesp/netbox-sdk/issues/14 |
| #12 | closed | Create a Login Modal on TUI to allow user to login into TUI with NetBox user credentials | v0.0.8 |  | https://github.com/emersonfelipesp/netbox-sdk/issues/12 |


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases

Title: netbox-sdk releases

Description: Release index for netbox-sdk.

# netbox-sdk releases

Modern NetBox toolkit: async SDK, Typer CLI, and Textual TUI for infrastructure automation.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases |
| GitHub releases | https://github.com/emersonfelipesp/netbox-sdk/releases |
| Repository | emersonfelipesp/netbox-sdk |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 22 |
| Stars | 18 |
| Forks | 0 |

## Release index

- [netbox-sdk v0.0.13](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.13) - v0.0.13 - 2026-09-04 - latest
- [netbox-sdk v0.0.12](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.12) - v0.0.12 - 2026-09-01 - stable
- [netbox-sdk v0.0.11](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.11) - v0.0.11 - 2026-08-19 - stable
- [netbox-sdk v0.0.10](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.10) - v0.0.10 - 2026-06-16 - stable
- [netbox-sdk v0.0.9.post2](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9.post2) - v0.0.9.post2 - 2026-06-08 - stable
- [netbox-sdk v0.0.9.post1](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9.post1) - v0.0.9.post1 - 2026-06-07 - stable
- [netbox-sdk v0.0.9](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9) - v0.0.9 - 2026-05-22 - stable
- [netbox-sdk v0.0.8.post1](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.8.post1) - v0.0.8.post1 - 2026-05-05 - stable
- [netbox-sdk v0.0.8](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.8) - v0.0.8 - 2026-05-04 - stable
- [netbox-sdk v0.0.7.post6](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post6) - v0.0.7.post6 - 2026-04-22 - stable
- [netbox-sdk v0.0.7.post5](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post5) - v0.0.7.post5 - 2026-04-22 - stable
- [netbox-sdk v0.0.7.post4](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post4) - v0.0.7.post4 - 2026-04-13 - stable
- [netbox-sdk v0.0.7.post3](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post3) - v0.0.7.post3 - 2026-04-07 - stable
- [netbox-sdk v0.0.7.post2](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post2) - v0.0.7.post2 - 2026-04-06 - stable
- [netbox-sdk v0.0.7.post1](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post1) - v0.0.7.post1 - 2026-03-30 - stable
- [netbox-sdk v0.0.7](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7) - v0.0.7 - 2026-03-30 - stable
- [netbox-cli v0.0.6](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.6) - v0.0.6 - 2026-03-28 - stable
- [netbox-sdk v0.0.5](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.5) - v0.0.5 - 2026-03-28 - stable
- [netbox-sdk v0.0.4](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.4) - v0.0.4 - 2026-03-27 - stable
- [netbox-sdk v0.0.3](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.3) - v0.0.3 - 2026-03-24 - stable
- [netbox-sdk v0.0.2](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.2) - v0.0.2 - 2026-03-23 - stable
- [netbox-sdk v0.0.1](https://emersonfelipesp.com/netbox-sdk/releases/v0.0.1) - v0.0.1 - 2026-03-21 - stable


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.13

Title: netbox-sdk v0.0.13

Description: netbox-sdk v0.0.13

# netbox-sdk v0.0.13

netbox-sdk v0.0.13

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.13 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.13 |
| Tag | v0.0.13 |
| State | latest |
| Author | emersonfelipesp |
| Created | 2026-09-04 18:37 UTC |
| Published | 2026-09-04 18:52 UTC |
| Target | 04f02f4df29784aa72843aa1e29a4d6ef8811c96 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

netbox-sdk 0.0.13 adds support for the official NetBox 4.7.0 release and makes
the 4.7 typed client the default.

## NetBox 4.7 support

The bundled 4.7 OpenAPI document, Pydantic models, and typed bindings are built
from the official NetBox 4.7.0 release, and the committed document is
byte-identical to the upstream file. 4.7 is now a first-class stable release
line rather than a preview, so it is the default bundled contract for clients
that do not pin a version. Servers on 4.3 through 4.6 continue to resolve to
their own release line through live version detection, and every older line has
regression coverage.

Two compatibility shims were re-evaluated against the released schema. The
Service write-compatibility shim is gone, because the release exposes
`protocol`, `ports`, and `port_mappings` directly on the writable Service and
Service template request bodies. The background bulk shim remains, because the
released schema still does not describe the `background` query parameter or its
accepted response — and background response selection now runs before
synchronous response-model handling, so a bulk delete issued with that flag
returns the job reference model instead of an unvalidated dictionary.

## Mock API

The bundled mock server reproduces the 4.7 response shapes:

- Services round-trip through both the legacy protocol and ports pair and the
  new port mappings, and a conflicting pair is rejected instead of silently
  resolved.
- Selection and multiple-selection custom fields serialize as value and label
  objects, while null values stay null.
- Failed bulk operations return structured per-index errors atomically.
- Bulk writes accept a background flag that returns an observable job rather
  than committing.

Mock behaviour is now declared per release line, so the mock and its tests
cannot drift apart, and mock application state — including branching data, jobs,
reset, and route metadata — belongs to the application instance rather than to
module globals, so two mock applications in one process no longer share state.

## Command-line behaviour

Dry runs no longer read profile configuration, construct a client, or reach the
network, and the preview they print is the exact request that would be sent,
including repeated query parameters and headers, with redaction preserved. When
no client is configured, the command tree is built from the static registration
contract instead of falling back to a bundled default, so an unreachable or
unknown server can no longer be operated through a mismatched command surface.

## Supply-chain integrity

Verification of the bundled release artifacts no longer trusts the provenance
record it is checking. It resolves the recorded upstream object, hashes its
bytes, compares the result against both the generator's record and the
provenance file, and deterministically regenerates the models and typed bindings
for a byte comparison. An artifact altered together with a matching provenance
hash is rejected.

The live test matrix targets the released NetBox image pinned to its reviewed
digest, verifies the digest actually pulled, and verifies that any source
fallback checked out the exact release commit, failing closed on either
mismatch.

## Compatibility

Typed clients ship for NetBox 4.7, 4.6, 4.5, 4.4 and 4.3. Python 3.11 through
3.13 are supported. Live integration tests run against NetBox 4.7.0, 4.6.6,
4.6.3, 4.6.2 and 4.5.10, with an additional bundled-schema job per release line.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.12

Title: netbox-sdk v0.0.12

Description: netbox-sdk v0.0.12

# netbox-sdk v0.0.12

netbox-sdk v0.0.12

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.12 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.12 |
| Tag | v0.0.12 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-01 01:50 UTC |
| Published | 2026-09-01 11:14 UTC |
| Target | 595ba6a5a10fafc9c2c860d3f8ea3646fea0d198 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

netbox-sdk 0.0.12 adds bundled support for the NetBox 4.7.0-beta2 preview while keeping NetBox 4.6 as the default line. Existing 4.3 through 4.6 typed surfaces remain bundled.

## Compatibility
- Default schema line: 4.6
- Bundled schema lines: 4.3, 4.4, 4.5, 4.6, and 4.7 preview (4.7.0-beta2)

## Validation
- Release is bound to canonical main commit 595ba6a5a10fafc9c2c860d3f8ea3646fea0d198
- Live preview jobs accept only the pinned 4.7.0-beta2 image digest; the default line is unchanged

## Install
```
pip install netbox-sdk==0.0.12
```

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.11

Title: netbox-sdk v0.0.11

Description: netbox-sdk v0.0.11

# netbox-sdk v0.0.11

netbox-sdk v0.0.11

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.11 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.11 |
| Tag | v0.0.11 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-08-19 21:10 UTC |
| Published | 2026-08-19 21:21 UTC |
| Target | 920a9c76cd0e2ef1a97de9ccde62f58f324d9ae4 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

netbox-sdk 0.0.11 is a large release. It adds NetBox 4.7 support, a Model Context Protocol server so AI agents can operate NetBox through a typed, gated tool surface, and a set of correctness fixes in the typed client and runtime discovery.

## NetBox 4.7 support

- Bundled OpenAPI schema, Pydantic models, and typed bindings for the 4.7 release line, alongside 4.3 through 4.6.
- Release-line resolution is now a single shared registry consumed by the SDK, CLI, TUI, and MCP server, so every surface agrees on which contract it is speaking.
- Typed callers can request 4.7 background bulk operations with `background=True`, receiving the job reference the server returns instead of a validation error.

## Model Context Protocol server

- New optional `netbox_mcp` package and `nbx-mcp` entry point (`pip install 'netbox-sdk[mcp]'`), exposing a narrow typed tool surface over the same schema index, request resolver, and client the SDK and CLI use.
- Mutations are denied by default and require an explicit opt-in; dry runs preview a request without constructing a client or sending anything.
- A versioned plugin bridge lets a NetBox plugin advertise semantic tools backed by its own REST endpoints, with strict manifest, schema, argument, and size validation, and no second credential store.
- `nbx capabilities` emits the whole reachable surface as one structured document.

## Correctness fixes

- **Bulk mutations no longer report success as failure.** Posting a list committed the batch but validated the list response against the single-object model, raising after the server had already applied every object and inviting a duplicate retry.
- **An unpinned MCP server now answers for the instance it is connected to**, resolving the connected release line once on first use and failing closed rather than answering from the default bundled contract.
- **Capability discovery probes a real record.** It previously sent OPTIONS to a literal `{id}` placeholder, which routers reject, so supported PATCH, PUT, and DELETE methods were silently reported as unavailable.
- **The shared schema document is read-only**, so one consumer can no longer corrupt it for every other consumer in the process.
- Runtime discovery pagination preserves repeated query parameters and terminates on a repeated or excessive page.

## Packaging and telemetry

- Django model-build catalogs now ship inside the distribution and are read through package resources, so an installed wheel exposes them; generated builds are written to a user-writable location instead of alongside the installed package.
- Optional OpenTelemetry request metrics: set an OTLP endpoint and the client emits request counts and durations with bounded-cardinality attributes. Failed requests are counted, and telemetry never raises into the caller.

## Compatibility

No breaking API changes. Supports Python 3.11+ and NetBox 4.3 through 4.7.

```
pip install 'netbox-sdk[all]==0.0.11'
```

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.10

Title: netbox-sdk v0.0.10

Description: netbox-sdk v0.0.10

# netbox-sdk v0.0.10

netbox-sdk v0.0.10

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.10 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.10 |
| Tag | v0.0.10 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-15 15:51 UTC |
| Published | 2026-06-16 17:35 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

NetBox SDK 0.0.10 finalizes the CLI and SDK updates from the 0.0.10 release line.

Highlights:
- Adds CLI bulk update, bulk patch, and bulk delete operations for writable list endpoints.
- Adds auto-pagination support with --all and --max-records for dynamic list commands.
- Adds filter discovery so users can inspect supported query parameters from the CLI.
- Adds versioned NetBox schema selection for CLI usage.
- Adds live integration coverage against demo NetBox workflows.
- Pins the Starlette dependency floor to include upstream Host header validation fixes.
- Avoids eager demo TUI profile prompts.

Compatibility and validation:
- Package: netbox-sdk 0.0.10
- Distribution: PyPI package netbox-sdk==0.0.10
- Python validation covered the release workflow test matrix before package publication.
- No migration step is required for existing CLI or SDK users.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9.post2

Title: netbox-sdk v0.0.9.post2

Description: netbox-sdk v0.0.9.post2

# netbox-sdk v0.0.9.post2

netbox-sdk v0.0.9.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9.post2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.9.post2 |
| Tag | v0.0.9.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-08 15:22 UTC |
| Published | 2026-06-08 15:23 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-sdk v0.0.9.post2

Packaging fix release.

### Fixed
- **`pip install netbox-sdk[cli]` produced a broken `nbx`** (`ModuleNotFoundError: No module named 'click'`). Typer 0.26.0 vendored Click and dropped its standalone `click` dependency, but `netbox_cli` imports `click` directly. The `cli` (and `all`/`dev`) dependency sets now declare `click>=8.1.0` explicitly. `nbx` installs and runs correctly again.

No SDK/CLI/TUI behavior changes beyond the dependency fix.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9.post1

Title: netbox-sdk v0.0.9.post1

Description: netbox-sdk v0.0.9.post1

# netbox-sdk v0.0.9.post1

netbox-sdk v0.0.9.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.9.post1 |
| Tag | v0.0.9.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-07 19:43 UTC |
| Published | 2026-06-07 19:43 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Bug fix release.

- Fix filter() str-coercing list values: `filter(tag=["a","b"])` now emits repeated query params (`?tag=a&tag=b`) that NetBox expects, instead of a single stringified-list param. The same fix is applied to DetailEndpoint.list(); query types widened to `dict[str, str | list[str]]` through the pagination path.

PEP 440 post-release on 0.0.9.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9

Title: netbox-sdk v0.0.9

Description: netbox-sdk v0.0.9

# netbox-sdk v0.0.9

netbox-sdk v0.0.9

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.9 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.9 |
| Tag | v0.0.9 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-22 19:41 UTC |
| Published | 2026-05-22 19:59 UTC |
| Target | f178936e1f7da027d49d8e64ff95c41fc78f82da |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

netbox-sdk v0.0.9

Highlights:
- Adds reusable branching command decorators and aligns repeated CLI command wiring behind shared helpers.
- Improves CLI startup robustness when the default log path is unwritable.
- Refreshes agent documentation and release metadata for 0.0.9.

Validation:
- Main branch CI is green for f178936e1f7da027d49d8e64ff95c41fc78f82da.
- TestPyPI candidate 0.0.9rc2 passed GitHub Actions validation on Python 3.11, 3.12, and 3.13.
- Independent clean-venv TestPyPI smoke verified SDK import, branching import, and nbx --help.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.8.post1

Title: netbox-sdk v0.0.8.post1

Description: netbox-sdk v0.0.8.post1

# netbox-sdk v0.0.8.post1

netbox-sdk v0.0.8.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.8.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.8.post1 |
| Tag | v0.0.8.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-05 14:30 UTC |
| Published | 2026-05-05 14:39 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Post-release publishing bump for netbox-sdk 0.0.8.post1 based on GitHub main. Updates package metadata, docs snippets, and lock metadata from 0.0.8 to 0.0.8.post1.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.8

Title: netbox-sdk v0.0.8

Description: netbox-sdk v0.0.8

# netbox-sdk v0.0.8

netbox-sdk v0.0.8

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.8 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.8 |
| Tag | v0.0.8 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-04 20:28 UTC |
| Published | 2026-05-04 20:29 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# netbox-sdk v0.0.8

The first minor-stable release on the new schema-driven foundation. v0.0.8
finalises everything that landed across the v0.0.7.post1 → post6 series: a
typed SDK that knows about NetBox 4.6, a schema-driven mock server, a
TUI login modal, hardened async lifecycle and connection pooling, a
migration to `ty` for type checking, and a CI matrix that now lives-tests
against the three currently supported NetBox releases.

## Highlights

### NetBox 4.6 is a first-class supported release line

- `typed_api()` now selects between NetBox `4.6`, `4.5`, `4.4`, and `4.3`.
- Bundled OpenAPI schema (`netbox_sdk/reference/openapi/netbox-openapi-4.6.json`),
  Pydantic models (`netbox_sdk.models.v4_6`), and typed endpoint bindings
  (`netbox_sdk.typed_versions.v4_6`) ship with the package.
- Pre-releases such as `4.6.0-beta2` normalise to the `4.6` typed client.
- Version-aware OpenAPI schema selection at runtime; graceful 4.5 fallback
  when the requested release line is unknown.

### Live-NetBox CI matrix rotated to v4.5.8 / v4.5.9 / v4.6.0-beta2

- `.github/workflows/test.yml` now spins up real NetBox containers via
  `ghcr.io/netbox-community/netbox` for `v4.5.8`, `v4.5.9`, and
  `v4.6.0-beta2`, replacing the previous `v4.3.4 / v4.4.9 / v4.5.7`
  matrix.
- Mock-API mode is still exercised on Python 3.11 / 3.12 / 3.13 in
  parallel.
- Matching docs and `CLAUDE.md` guidance updated end-to-end (EN + PT)
  so the supported-release set advertised to users matches the runtime
  surface and the CI gate.

### Schema-driven in-memory mock server

- New `nbx mock` / `netbox-sdk[mock]` extra: schema-driven FastAPI mock
  server with reset endpoints and per-version routes.
- Examples and MkDocs guides under `docs/mock-api/`.
- Pytest-integration cookbook page updated to parametrise across all
  four supported release lines.
- Fixed list-seeding bug so custom data lands in `_collections` (and not
  `_objects`).

### Typed SDK ergonomics and lifecycle

- Async connection pooling and lifecycle hardening on
  `NetBoxApiClient` (graceful close, retry kwargs, simpler session
  fast-path, casts removed).
- Tolerant of mock sessions without a `closed` attribute.
- Logging-runtime tweaks and structured-output safety improvements.
- Runtime plugin resource discovery: the SDK can now walk a live NetBox
  instance to discover plugin API surfaces.

### TUI

- New `LoginModal` for username/password sign-in (closes #12).
- TUI lifecycle module split out for cleaner Pilot tests.
- TCSS / theme cleanups.

### Tooling and security

- Migrated type checks from `mypy` to `ty` across dev and CI.
- Pinned `pydantic==2.13.3`; bumped `aiohttp>=3.13.4` and added
  `requests` to address Dependabot alerts.
- Security: timing-safe token comparison, demo password no longer
  persisted to disk, mock server now binds to loopback by default.
- `.dockerignore` per-service for tighter build contexts.

### Documentation

- New developer guide section: SDK internals, architecture diagrams,
  proxbox-api integration notes, Claude/agent reference index.
- Install docs aligned with the package version snippets and guard
  against drift.
- Full Portuguese mirror coverage for every doc page touched in this
  series.

## Compatibility

- Python: 3.11, 3.12, 3.13
- NetBox typed support: 4.6, 4.5, 4.4, 4.3
- Live CI gate: `v4.5.8`, `v4.5.9`, `v4.6.0-beta2`

## Full changelog

[v0.0.7...v0.0.8](https://github.com/emersonfelipesp/netbox-sdk/compare/v0.0.7...v0.0.8)

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post6

Title: netbox-sdk v0.0.7.post6

Description: netbox-sdk v0.0.7.post6

# netbox-sdk v0.0.7.post6

netbox-sdk v0.0.7.post6

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post6 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.7.post6 |
| Tag | v0.0.7.post6 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-22 21:22 UTC |
| Published | 2026-04-22 21:22 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Changes

- **Official NetBox 4.6.0 support** — bundles real `netbox-openapi-4.6.json` (NetBox 4.6.0-beta1, 360 paths) instead of falling back to the 4.5 schema
- **Generated typed bindings** — `TypedApiV4_6` client with full Pydantic models for all NetBox 4.6 API endpoints
- `typed_api(..., netbox_version="4.6")` now returns `TypedApiV4_6` with proper type overloads
- Removed temporary 4.6→4.5 fallback guard from `versioning.py`

## Install

```bash
pip install netbox-sdk==0.0.7.post6
```

```bash
uv add netbox-sdk==0.0.7.post6
```

## Usage

```python
from netbox_sdk import typed_api

api = typed_api("https://netbox.example.com", token="...", netbox_version="4.6")
# api is TypedApiV4_6 — full typed access to all NetBox 4.6 endpoints
```

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post5

Title: netbox-sdk v0.0.7.post5

Description: netbox-sdk v0.0.7.post5

# netbox-sdk v0.0.7.post5

netbox-sdk v0.0.7.post5

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post5 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.7.post5 |
| Tag | v0.0.7.post5 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-22 21:10 UTC |
| Published | 2026-04-22 21:10 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Changes

- Add NetBox 4.6.x to `SupportedNetBoxVersion` with graceful fallback to the bundled 4.5 schema until a 4.6 JSON is shipped
- Bumped `__version__` in `netbox_sdk/__init__.py` and all docs/snippet files accordingly

## Install

```bash
pip install netbox-sdk==0.0.7.post5
```

```bash
uv add netbox-sdk==0.0.7.post5
```

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post4

Title: netbox-sdk v0.0.7.post4

Description: netbox-sdk v0.0.7.post4

# netbox-sdk v0.0.7.post4

netbox-sdk v0.0.7.post4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post4 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.7.post4 |
| Tag | v0.0.7.post4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-13 19:19 UTC |
| Published | 2026-04-13 19:20 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Changes

- Fixed CI: corrected multi-line GitHub Actions output expansion in `django-model-builds` workflow (shell syntax error with `for TAG in ${{ }}` — switched to `env:` + `while read` loop).
- Fixed CI: replaced non-existent `ghcr.io/netbox-community/netbox:v4.4.10` with `v4.4.9` in the live NetBox test matrix.
- Fixed CI: resolved lint failures, live container startup race conditions, and NetBox image tag issues across multiple prior pushes.
- Added schema-driven in-memory FastAPI mock server, examples, and CI test matrix.
- Added developer documentation with SDK internals and proxbox-api integration guide.
- Security: stopped persisting demo_password to disk; bound mock server to loopback only.
- Bumped `pytest` dev dependency (Dependabot).
- Synced release metadata and documentation for version `0.0.7.post4`.

## Included commits

- c1545b5 chore(release): bump version to 0.0.7.post4
- fe2c450 build(deps-dev): bump pytest (Dependabot #13)
- 63113fa fix(ci): fix multi-line tag expansion and missing v4.4.10 image
- eb51c96 fix(ci): start netbox in a step to eliminate DB race condition
- 38bd354 fix(ci): switch live tests to official netbox-community image
- 7df7e7e fix(ci): resolve lint failures and live container timeout
- 74fb0cb fix(ci): use full patch version tags for live NetBox containers
- 1d1a75a fix: exclude examples/ from return annotation scan
- 9a4cd0a security: stop persisting demo_password to disk, bind mock server to loopback
- 06f4f76 Add mock FastAPI server, examples, CI test matrix, and MkDocs docs
- ba9c4ca feat: add schema-driven in-memory FastAPI mock server
- 5ecc5f2 docs: add developer documentation with SDK internals
- e44df60 refactor: simplify session fast-path, retry kwargs, and cast cleanup

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post3

Title: netbox-sdk v0.0.7.post3

Description: netbox-sdk v0.0.7.post3

# netbox-sdk v0.0.7.post3

netbox-sdk v0.0.7.post3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post3 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.7.post3 |
| Tag | v0.0.7.post3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-07 18:05 UTC |
| Published | 2026-04-07 18:12 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Changes

- Fixed CI test failures by making session lifecycle checks tolerant of mocked sessions that do not expose a `closed` attribute.
-  Hardened async session pooling and lifecycle behavior in the API client.
- Added connection pooling and async lifecycle management improvements to `NetBoxApiClient`.
- Migrated type-checking workflow/tooling to `ty` across development and CI.
- Synced release metadata and documentation for version `0.0.7.post3` (project version, package metadata, docs snippets, and lockfile). 

## Included commits - 12cdb32 chore(release): bump version to 0.0.7.post3
- 9c6875b fix: tolerate mock sessions without closed attribute
- 3273c37 fix: update version string to match tag and pyproject.toml
- 435eee0 Migrate type checks to ty across dev and CI
- a6d934f fix: harden async session pooling and lifecycle safety
- 7623ff2 feat: add connection pooling and async lifecycle management to NetBoxApiClient

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post2

Title: netbox-sdk v0.0.7.post2

Description: netbox-sdk v0.0.7.post2

# netbox-sdk v0.0.7.post2

netbox-sdk v0.0.7.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.7.post2 |
| Tag | v0.0.7.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-06 18:14 UTC |
| Published | 2026-04-06 18:19 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Summary

- **Security**: Updated dependencies to address dependabot vulnerabilities
  - `aiohttp` updated to >=3.13.4 (fixes 11 CVEs)
  - `requests` added >=2.33.0 (fixes temp file reuse vulnerability)
  - Transitive updates: pygments 2.20.0 (ReDoS fix)

- **Security Hardening**: Added timing-safe token comparison using `hmac.compare_digest()`
- **Security Documentation**: Added security considerations to core module docstrings

## What's Changed

- fix: update aiohttp to 3.13.4+ and add requests to address dependabot security alerts
- security: add timing-safe token comparison and security docs
- docs: update version references for v0.0.7.post2

**Full Changelog**: https://github.com/emersonfelipesp/netbox-sdk/compare/v0.0.7.post1...v0.0.7.post2

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post1

Title: netbox-sdk v0.0.7.post1

Description: netbox-sdk v0.0.7.post1

# netbox-sdk v0.0.7.post1

netbox-sdk v0.0.7.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.7.post1 |
| Tag | v0.0.7.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-30 16:15 UTC |
| Published | 2026-03-30 18:00 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-sdk v0.0.7.post1

Post-release build (PEP 440 `0.0.7.post1`) published to **TestPyPI** and **PyPI** via the release workflow.

### Highlights
- CI revalidation after flaky TUI test fix and publish-job `setup-uv` warning cleanup
- Doc version snippets under `docs/snippets/` aligned with this release line

Install: `pip install netbox-sdk==0.0.7.post1` (or use extras as documented on the [docs site](https://emersonfelipesp.github.io/netbox-sdk/)).

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7

Title: netbox-sdk v0.0.7

Description: netbox-sdk v0.0.7

# netbox-sdk v0.0.7

netbox-sdk v0.0.7

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.7 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.7 |
| Tag | v0.0.7 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-30 15:48 UTC |
| Published | 2026-03-30 15:49 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# netbox-sdk v0.0.7

**Release date:** 2026-03-30  
**Commit:** [`864a07c`](https://github.com/emersonfelipesp/netbox-sdk/commit/864a07cff6aaa4ea058b9b3d5b51fdc322421687) (merge of PR [#10](https://github.com/emersonfelipesp/netbox-sdk/pull/10))

This release focuses on **SDK quality**: shared error types, structured logging across SDK/CLI/TUI, tighter HTTP and config error handling, generated OpenAPI module documentation, and **CI lockfile** alignment after the version bump.

---

## Installation

```bash
pip install "netbox-sdk==0.0.7"
# optional extras
pip install "netbox-sdk[cli,tui,demo]==0.0.7"
```

With **uv**:

```bash
uv add "netbox-sdk==0.0.7"
```

---

## Highlights

### Centralized exceptions (`netbox_sdk.exceptions`)

- **`RequestError`** — HTTP-layer failures (moved from `client`; still importable from `netbox_sdk.client` and `netbox_sdk`).
- **`ContentError`**, **`AllocationError`**, **`ParameterValidationError`** — facade-level errors (previously defined only in `facade`).
- **`JsonPayloadError`** — invalid or conflicting `--body-json` / `--body-file` usage (subclass of `ValueError`).

This makes it easier for callers and tests to branch on failure type without parsing message strings.

### Logging

- **Dual file logging roots** in `logging_runtime`: both `netbox_cli` and `netbox_sdk` trees attach to the same rotating JSON log file, so `logging.getLogger("netbox_sdk....")` records persist like CLI/TUI logs.
- **Module-level loggers** added or expanded across SDK modules (`config`, `schema`, `http_cache`, `services`, `plugin_discovery`, `django_models.store`, etc.), CLI (`dynamic`, `runtime`, `support`), and TUI (`app`, `django_model_app`, `graphql_app`, `ssl_verify_support`).
- **Policy** documented in `netbox_sdk/CLAUDE.md` and `netbox_tui/CLAUDE.md`: no secrets in logs; prefer structured `extra` (e.g. `nbx_event`, `request_path`, `http_method`).

### HTTP, payloads, and discovery

- **`NetBoxApiClient`**: more precise typing (`CacheEntry`, `aiohttp.ClientSession` under `TYPE_CHECKING`); safer OpenAPI version parsing; `create_token` only reads `key` when JSON body is an object.
- **`load_json_payload`**: **`FileNotFoundError`** for missing `--body-file`; **`JSONDecodeError`** preserved for malformed inline JSON (security tests); logging on decode/read issues.
- **`plugin_discovery`**: logs DEBUG for request/JSON failures; catches typed transport errors plus a final **`Exception`** path with DEBUG + `exc_info` so strict test mocks do not break the TUI.
- **`http_ssl`**: accurate return type for `connector_for_config`; narrowed import guard when classifying TLS errors.

### CLI runtime

- **`_VERIFY_REQUEST_ERRORS`** for status checks (`RuntimeError`, `OSError`, `aiohttp.ClientError`) with ERROR logs before re-raise where appropriate.
- Demo token repair: narrower catches for refresh/save with structured logging.
- **`dynamic`**: return types **`ApiResponse`** / **`ApiResponse | None`**; registration and dispatch logging.

### TUI

- **`graphql_app`**: parse failures narrowed to **`TypeError`**, **`ValueError`**, **`json.JSONDecodeError`** with DEBUG logging.
- **`django_model_app`**: DEBUG/WARNING logs instead of silent **`pass`** in several optional UI paths.
- **`ssl_verify_support`**: logs when syncing SSL choice to CLI runtime cache fails.

### Codegen and bundled OpenAPI artifacts

- **`scripts/generate_typed_sdk.py`**: module docstring for generated typed bindings; docstrings on generated app/endpoint/root classes; **`_prepend_models_module_doc`** after datamodel-codegen.
- **Committed `models/v4_*` and `typed_versions/v4_*`**: top-level module docstrings for generated files.

### Packaging and CI

- **`pyproject.toml` / `netbox_sdk.__version__`**: **0.0.7**.
- **`uv.lock`**: refreshed so **`uv sync --locked`** (used in GitHub Actions) succeeds after the version bump.
- **Ruff format**: `http_cache.py` adjusted for pre-commit.

---

## Upgrade notes

- Imports such as `from netbox_sdk import RequestError` and `from netbox_sdk.client import RequestError` continue to work.
- Code that relied on **`load_json_payload`** raising only **`ValueError`** for missing files should expect **`FileNotFoundError`** for a non-existent `--body-file` path.
- Mutual exclusion and wrong-shape payloads may raise **`JsonPayloadError`** (still a **`ValueError`** subclass where applicable).

---

## Verification (upstream CI)

For commit **`864a07cff6aaa4ea058b9b3d5b51fdc322421687`**, the following workflows completed successfully:

- Lint and Format  
- Tests  
- Security Tests  
- Main Post-Merge Validation  
- Build and deploy documentation  
- Dependabot Updates (workflow run associated with the push)

---

## Links

- **PyPI:** https://pypi.org/project/netbox-sdk/  
- **Documentation:** https://emersonfelipesp.github.io/netbox-sdk/  
- **Repository:** https://github.com/emersonfelipesp/netbox-sdk  
- **Full changelog (compare):** https://github.com/emersonfelipesp/netbox-sdk/compare/v0.0.6...v0.0.7  

---

## Thanks

Thanks to everyone reporting issues and trying the SDK, CLI, and Textual TUIs. Feedback on logging noise levels and exception ergonomics is welcome for the next patch release.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.6

Title: netbox-sdk v0.0.6

Description: netbox-cli v0.0.6

# netbox-sdk v0.0.6

netbox-cli v0.0.6

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.6 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.6 |
| Tag | v0.0.6 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-28 02:04 UTC |
| Published | 2026-03-28 02:05 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Highlights

This release promotes the project's SDK-first direction while keeping the existing `nbx` command surface intact.

- Reorganized the codebase and documentation around clear package boundaries for `netbox_sdk`, `netbox_cli`, and `netbox_tui`.
- Rebranded user-facing docs and help output from the old NetBox CLI naming to NetBox SDK where appropriate.
- Refactored doc generation so captured reference output is split cleanly between CLI command output and TUI launch/help output.
- Restricted docgen to demo-only NetBox usage and aligned generated command examples with the `nbx demo ...` form.

## Included Changes Since v0.0.5

### Architecture and Packaging
- Refactored runtime and command module layering to better separate SDK, CLI, and TUI responsibilities.
- Improved internal app runtime structure and documentation alignment with the current package layout.

### Documentation and Docgen
- Reorganized MkDocs navigation into dedicated SDK, CLI, and TUI sections.
- Refactored command-capture generation around CLI and TUI surfaces.
- Updated generated reference output so CLI captures and TUI launch examples are published separately.
- Tightened release-title conventions and post-merge documentation behavior.

### CI and Reliability
- Fixed post-merge validation and test behavior around version-branch merges.
- Corrected the CLI Builder copy output expectation used in automated tests.
- Applied formatting and cleanup needed to keep CI green.

## Upgrade Notes

- Package version is now `0.0.6`.
- The `nbx` executable name remains unchanged.
- Generated documentation should be refreshed from the current checkout, not from any globally installed `nbx` binary.
- Doc generation must continue to run only against demo NetBox instances, never production.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.5

Title: netbox-sdk v0.0.5

Description: netbox-sdk v0.0.5

# netbox-sdk v0.0.5

netbox-sdk v0.0.5

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.5 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.5 |
| Tag | v0.0.5 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-28 00:12 UTC |
| Published | 2026-03-28 00:13 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-sdk v0.0.5

`v0.0.5` is the first release where the standalone SDK work that lived on `v6` is published from `main`. Compared with `v0.0.4`, this release turns the repository into a real `netbox-sdk` package with a dedicated API client surface, versioned typed models, a PyNetBox-style facade, expanded documentation, and CI/doc publishing updates to support the split.

## Highlights

### Standalone SDK extraction

- Extracts the SDK into the dedicated `netbox_sdk` package and reorganizes the repo around an SDK-first layout instead of keeping the code embedded inside the older CLI package structure.
- Splits package and test suite boundaries so the SDK, TUI, and legacy CLI concerns are easier to maintain independently.
- Publishes the release from the `main` branch after bringing forward the full `v6` branch history that introduced the SDK split.

### Async client and facade improvements

- Adds a standalone async `NetBoxApiClient` implementation under `netbox_sdk.client`.
- Introduces a PyNetBox-style parity facade in `netbox_sdk.facade`, including higher-level API/App/Endpoint abstractions for more ergonomic resource access.
- Keeps compatibility-focused behavior in supporting modules such as config loading, schema helpers, demo auth refresh, request resolution, cache handling, and plugin discovery while moving those capabilities under SDK-owned namespaces.

### Bundled typed SDK support

- Adds generated typed models for NetBox `4.3`, `4.4`, and `4.5`.
- Adds typed version dispatch/runtime support so callers can select a supported NetBox version explicitly.
- Bundles OpenAPI reference documents used to generate and validate the typed SDK surface.
- Expands SDK completeness, import, parity, and typed-version tests to cover the generated client stack.

### Documentation and developer guidance

- Adds dedicated SDK docs for authentication, request execution, facade usage, schema handling, typed usage, and error handling.
- Refreshes repository branding and docs so installation and quickstart flows align with `netbox-sdk` rather than the earlier CLI-centric framing.
- Adds PyNetBox reference material and more command examples for local development and schema exploration.

### CI, quality, and maintenance

- Updates docs publishing and release-related workflows to align with the SDK split.
- Incorporates multiple rounds of Ruff, pre-commit, and Copilot review fixes after the large package move.
- Improves return typing coverage and generated code quality across the repository.

## Upgrade Notes

- The primary package surface is now `netbox_sdk`, not `netbox_cli`.
- If you were importing internal modules from the previous CLI-oriented layout, expect import path changes due to the SDK/TUI package split.
- This release is best treated as a structural upgrade focused on packaging, API ergonomics, and typed SDK support rather than a small patch-only drop.

## Commit Summary Since v0.0.4

- `ce31958` feat: extract standalone sdk package from `netbox_cli`
- `7c0b23b` reorganize packages and split package test suites
- `42f18cd` add PyNetBox reference and refresh docs
- `f34edd6` add async PyNetBox-style parity facade to `netbox_sdk`
- `04f3f9c` add bundled versioned typed NetBox SDK
- `c17a18f` document facade and typed SDK usage
- `67cf236` complete repo-wide return typing and typed client generation
- `7c145c7` align docs branding and guidance with `netbox-sdk`
- `3a0015e` keep docs publishing aligned with `netbox-sdk`
- `3b6ba59` fix generated typed SDK lint for CI
- `346efc0` apply actionable Copilot review fixes
- `b253976` apply remaining Ruff fixes from CI
- `a008e07` fix final pre-commit issues on CLI and TUI modules
- `7d1bd9e` apply latest Copilot review fixes
- `cab14e1` release: bump version to `v0.0.5`

## Full Compare

- Compare changes: https://github.com/emersonfelipesp/netbox-sdk/compare/v0.0.4...v0.0.5

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.4

Title: netbox-sdk v0.0.4

Description: netbox-sdk v0.0.4

# netbox-sdk v0.0.4

netbox-sdk v0.0.4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.4 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.4 |
| Tag | v0.0.4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-27 14:06 UTC |
| Published | 2026-03-27 14:06 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's New in v0.0.4

### New CLI Options
- Added `--select` to pick specific fields from API responses
- Added `--columns` and `--max-columns` to control table output width
- Added `--dry-run` to preview the API call (URL, headers, payload) without making a request — no NetBox connection required
- Improved `BadParameter` error message when `--columns` receives an invalid value

### GraphQL Support
- New `nbx graphql` command for running raw GraphQL queries against NetBox
- Supports `--query` (inline or file) and repeatable `--variables / -v key=value` pairs
- Fixed `graphql --help` display that previously required a live NetBox connection

### Django Model TUI
- Added `nbx demo dev django-model tui` command with an interactive view selector and live transitions between Django model views

### TUI Screenshots Gallery
- Added 25 automated screenshots (5 TUI views × 5 built-in themes) to the documentation site
- New `scripts/tui_screenshots.py` capture script for regenerating screenshots on demand
- Documentation pages with MkDocs content tabs for side-by-side theme comparison

### Bug Fixes
- Fixed demo TUI client and index factory overrides so they are respected in headless/test mode
- Config-free dry-run previews no longer attempt a NetBox connection on startup
- Stabilized several tests that were intermittently failing in CI due to import-time side effects

### CI/Build
- Updated publish workflow to release `netbox-console` and `netbox-sdk` packages in parallel
- Multiple CI stability fixes targeting async test isolation and monkeypatching order

### Documentation
- Added CLI commands reference page and dynamic commands guide
- Synced `llms.txt` index with current repository layout
- Fixed broken workflow links in the screenshot capture guide

---

**Full Changelog:** https://github.com/emersonfelipesp/netbox-cli/compare/v0.0.3...v0.0.4

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.3

Title: netbox-sdk v0.0.3

Description: netbox-sdk v0.0.3

# netbox-sdk v0.0.3

netbox-sdk v0.0.3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.3 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.3 |
| Tag | v0.0.3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-24 18:45 UTC |
| Published | 2026-03-24 18:45 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# netbox-cli v0.0.3

## Summary
Release `v0.0.3` includes all changes since `v0.0.2`, with major improvements across release automation, packaging metadata, docs consistency, and CI reliability.

## Highlights since v0.0.2
- Implemented staged release automation for TestPyPI and PyPI publish flows with gating and validation jobs.
- Improved package metadata in `pyproject.toml` (`license`, `license-files`, classifiers, and `project.urls`).
- Standardized install and CI references around current published package name (`netbox-console`) while preserving repo identity (`netbox-cli`).
- Updated documentation to clearly explain package naming and installation behavior.
- Fixed CI-breaking TUI selection initialization logic and related runtime behavior.
- Applied and validated pertinent Copilot review feedback before merge.

## Commit log (v0.0.2..v0.0.3)
09f15c7 release: bump version to 0.0.3
f35ba38 Merge v5 into main
71525ce build: add project URL metadata
a01606e build: add project homepage URL metadata
3bff986 build: add PyPI classifiers
29c9209 build: declare project license metadata
3b21d41 docs/ci: clarify temporary package naming and enforce netbox-console installs
5974ec8 ci: auto-publish to PyPI after TestPyPI validation
8b6fb80 Remove committed build artifacts
622c70d Publish under netbox-console
3c247d0 Gate official PyPI publish behind manual flag
fad53fc Retry install checks for package index propagation
1190f9c Fix release publish jobs environment setup
81ec627 Implement staged TestPyPI-to-PyPI release pipeline
0f907d6 Validate Playwright runtime in TestPyPI workflow
cd1d1fd Harden TestPyPI publish workflow
fdddcb9 Add GitHub Actions workflow for publishing to TestPyPI
0b474c3 Merge pull request #4 from emersonfelipesp/v4
3544628 fix: sanitize compact JSON in markdown _cell_text to prevent C1 injection
d451be6 fix: prevent spinner timer race condition in loading overlay lifecycle
f6b3b81 fix: increase delays in all timing-sensitive loading tests
dee9e20 fix: increase mock delay in loading overlay test to 0.5s
f755c7f fix: increase wait iterations for loading overlay test
251678b fix: strip ANSI codes in markdown output tests and add loading overlay wait
d067ab4 chore: update uv.lock with pytest-timeout and pytest-xdist dependencies
31f1f90 fix: add pytest-timeout and pytest-xdist to prevent test hangs
63e3306 fix: improve pytest configuration for CI stability
4c4269e fix: add proper test isolation for Django model TUI tests
ffbecd7 fix: simplify Django model TUI tests to resolve CI failures
723f476 feat: enable vertical scrolling in Django Model TUI content tabs
9aded93 feat: add Rich markup formatting for Django Model Inspector TUI
8d7b8ec feat(django-models): auto-fetch missing NetBox builds from GitHub
26a059b feat(django-models): nbx test, version selector, --cache-path, and CI workflow
ebe35e5 refactor(docgen): SOLID architecture with parallel capture via ProcessPoolExecutor
78fefbe feat(docgen): multi-format output tabs, config-error skipping, demo-only guidelines
c4711a4 feat(docgen): optional --markdown for capture runs
3ef555e feat(cli): markdown API output, CLI TUI integration, demo dev http
95448ab feat(themes): add Tokyo Night and OneDark Pro themes

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.2

Title: netbox-sdk v0.0.2

Description: netbox-sdk v0.0.2

# netbox-sdk v0.0.2

netbox-sdk v0.0.2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.2 |
| Tag | v0.0.2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-24 17:30 UTC |
| Published | 2026-03-23 02:21 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's New in v0.0.2

This release significantly expands the TUI layer, theme system, developer tooling, documentation, and test coverage since the initial v0.0.1 release.

---

## New Features

### Dev TUI Workbench
- Added a full **Dev TUI workbench** (`nbx dev`) with theme-aware NetBox branding
- Added **view switcher** to toggle between the main TUI and the Dev TUI at runtime
- Added `nbx dev http` command tree with **Pydantic v2 validation** for request/response models

### TUI Enhancements
- **ContextBreadcrumb** navigation bar for contextual path display across TUI screens
- **SupportModal** for in-app help and support information
- **NetBox wordmark + CLI suffix** branding in the TUI top bar
- Adopted **prop-driven Textual composition** for cleaner widget architecture and theme styling

### Theme System
- Promoted `netbox-dark` as the **official default theme**
- Extended ANSI theming support for the Dev TUI workbench panels

### Demo & Auth
- **Automatic demo token self-heal**: the CLI now detects and recovers from stale demo tokens automatically
- **Live plugin discovery**: plugins available on the connected NetBox instance are detected at runtime

### Documentation Generation
- `docgen` now produces **multi-file command examples** with full command tree coverage
- `uv` integrated into the docgen background script and CI workflow
- Generated docs include a standardized header

### Developer Tooling
- Added **Ruff + pre-commit** lint standards with `.pre-commit-config.yaml`
- Added **PROMPTING-GUIDE.md** for AI-assisted development workflows
- Added **main post-merge validation** CI workflow (`.github/workflows/main-post-merge.yml`)
- Added **lint CI workflow** (`.github/workflows/lint.yml`)

---

## Improvements

### Architecture
- **Migrated all dataclasses to Pydantic v2 models** across the codebase
- **Unified TUI theme enforcement** and shared UI helpers into a single consistent layer
- **Refactored CLI package** structure for improved stability and separation of concerns
- Unified TUI visual patterns across main and dev shells

### Documentation
- New developer guide: **Textual composition patterns** (`docs/developer/textual-composition.md`)
- New TUI docs: **themes reference** (`docs/tui/themes.md`) and TUI index (`docs/tui/index.md`)
- New `docs/NETBOX_UI_TO_TEXTUAL_GUIDELINES.md` for UI parity guidance
- Simplified **README** focused on end-user experience
- Updated architecture and developer docs to match current code state

---

## Bug Fixes

- Fixed **Dracula theme surface rendering** (background/surface contrast)
- Corrected `dracula.json` colours to match the **official Dracula palette specification**
- Fixed theme background/surface enforcement on **Dev TUI workbench panels**
- Fixed **TUI theme and instance isolation regressions** introduced in prior refactor
- Fixed **CI OpenAPI test paths** after CLI package reorganization
- Fixed main-branch CI regressions following the CLI refactor merge

---

## Tests

New test modules added since v0.0.1:
- `tests/test_dev_tui.py` — Dev TUI workbench coverage (503 lines)
- `tests/test_tui_interaction.py` — Expanded TUI navigation and interaction tests
- `tests/test_logs_tui.py` — Logs TUI screen tests
- `tests/test_logo_render.py` — Theme-aware logo rendering tests
- `tests/test_plugin_discovery.py` — Live plugin discovery tests
- `tests/test_instance_isolation.py` — Multi-instance TUI isolation tests
- `tests/test_demo_runtime_refresh.py` — Demo token refresh/self-heal tests
- `tests/test_logging_runtime.py` — Runtime logging behaviour tests
- `tests/test_docgen_paths.py` — Docgen output path validation tests

Existing test suites hardened:
- Hardened CI-sensitive CLI and TUI tests for stability across environments
- Stabilized TUI navigation selection tests

---

## Stats

106 files changed, 13,466 insertions(+), 3,264 deletions(-)

**Full Changelog**: https://github.com/emersonfelipesp/netbox-cli/compare/v0.0.1...v0.0.2

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-sdk/releases/v0.0.1

Title: netbox-sdk v0.0.1

Description: netbox-sdk v0.0.1

# netbox-sdk v0.0.1

netbox-sdk v0.0.1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-sdk/releases/v0.0.1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-sdk/releases/tag/v0.0.1 |
| Tag | v0.0.1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-03-21 15:44 UTC |
| Published | 2026-03-21 15:45 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

# First versioned release

API-first NetBox CLI and Textual TUI built on `aiohttp`, `Typer`, `Rich`, and `Textual`, driven entirely by the bundled NetBox OpenAPI schema.

## CLI and schema-driven API access

- Dynamic command routing from OpenAPI schema:
  `nbx <group> <resource> list|get|create|update|delete`
  - Example: `nbx dcim devices list`
  - Example: `nbx ipam prefixes get --id 1`
- `--filter key=value` flags resolved against schema-indexed query parameters
- Structured table output with `--json` / `--yaml` flags and a loading spinner
- `--body-file <path>` for POST/PATCH payloads
- Cable trace:
  - `--trace`
  - `--trace-only`
  - Available for DCIM interfaces and circuit terminations
  - ASCII box-drawing renderer with Unicode line styles
- Config management:
  - `nbx config setup`
  - `nbx config show`
  - `nbx config --show-token`
- Schema discovery:
  - `nbx schema groups`
  - `nbx schema resources`
  - `nbx schema fields`

## TUI features

- NetBox-style shell layout:
  - top search bar
  - collapsible left navigation tree (`group → resource`)
  - main tabbed workspace (`Results / Details / Filters`)
  - footer
- Async, non-blocking data loading with instant navigation and HTTP response cache
- Results `DataTable` with row selection, keyboard navigation, and incremental refresh
- Details panel:
  - paginated key/value attribute view
  - semantic cell rendering:
    - status badges
    - label chips
    - color swatches
    - linked-object chips
- Dependent-object navigation:
  - click a related object in the Details panel to jump directly to its detail view
- Filters panel:
  - field picker built from OpenAPI schema
  - active filters persist across navigations
- Cable trace panel inline in Details for `dcim/interfaces`
- `created` / `last_updated` columns always sort to the end of tables
- Hex color fields rendered as colored block swatches

## Themes

- Themes are JSON files auto-discovered from `netbox_cli/themes/`
- Built-in themes:
  - `default` (NetBox dark)
  - `dracula` (official palette)
- Strict schema validation on load:
  - required color and variable keys
  - `#RRGGBB` color format
  - alias/name collision detection
- Live theme switching in TUI, persisted in `~/.config/netbox-cli/tui_state.json`
- Theme commands:
  - `nbx tui --theme <name>`
  - `nbx tui --theme` (list available themes)

## Demo environment support

- `nbx demo init`
  - Playwright-based browser automation to authenticate against `demo.netbox.dev`
  - stores an API token
  - supports `--headless`, `--username`, and `--password` flags for CI use
- `nbx demo tui`
  - launches TUI against `demo.netbox.dev`
- `nbx demo <group> <resource> ...`
  - full dynamic command tree against demo
- v1 token fallback:
  - automatic retry with `Authorization: Token` on `401/403` when a v2 token is rejected

## Security and hardening

- Base URL validation rejects:
  - non-HTTP(S) schemes
  - embedded credentials
  - query strings
  - fragments
  - implemented in `config.py`
- Relative-path enforcement:
  - all outbound requests are scoped to the configured NetBox base URL
  - absolute URLs and paths with query/fragment are rejected
  - implemented in `api.py`
- Private filesystem permissions:
  - config directory/files at `0700/0600`
  - HTTP cache directory/entries at `0700/0600`
  - writes use explicit mode, not `umask`
- Cache key privacy:
  - auth token is fingerprinted with SHA-256
  - never stored in plaintext in cache file names
- Terminal output sanitization strips:
  - ANSI ESC sequences (`CSI`, `OSC`, two-character forms)
  - C1 control characters `U+0080–U+009F`
  - including C1 `CSI` (`U+009B`) and C1 `OSC` (`U+009D`)
  - raw C0 controls except newline, carriage return, and tab
- `125` automated tests covering all hardening paths

## Documentation and automation

- Material for MkDocs site with:
  - Getting Started
  - CLI Reference
  - TUI
  - Developer Guide
- `nbx docs generate-capture`
  - captures every CLI command via Typer `CliRunner`
  - generates Markdown and per-command JSON artifacts for the docs site
- GitHub Actions:
  - CI (`pytest` matrix)
  - docs deploy to GitHub Pages
  - automated docs capture with Playwright against `demo.netbox.dev`
- One-liner curl installer:
  `curl -fsSL .../install.sh | bash`
  - installs `uv` if needed
  - installs `netbox-cli` via `uv tool install git+...`
  - installs Playwright Chromium
  - POSIX-compatible
- Per-directory `CLAUDE.md` developer context documentation for every package, test, docs, workflow, and reference folder

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxmox-sdk

Title: proxmox-sdk

Description: Schema-driven FastAPI SDK for the Proxmox VE API with generated endpoints and mock/real modes.

# proxmox-sdk

Schema-driven FastAPI SDK for the Proxmox API — generated, dual-mode, OpenAPI-first.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk |
| GitHub | https://github.com/emersonfelipesp/proxmox-sdk |
| Developer guide | https://emersonfelipesp.com/proxmox-sdk/developer |
| Roadmap | https://emersonfelipesp.com/proxmox-sdk/roadmap |
| Releases | https://emersonfelipesp.com/proxmox-sdk/releases |
| Stars | 9 |
| Forks | 2 |
| Latest release | v0.0.15 |

## Overview

proxmox-sdk is a FastAPI package that mirrors the Proxmox VE API as a fully typed OpenAPI surface, with 675 endpoints generated from Proxmox VE 9.2.

It runs in two modes out of the box: a mock mode (default) with auto-generated CRUD data so you can develop without a real cluster, and a real mode that proxies validated requests to a live Proxmox host.

Beyond the server it ships a standalone async + sync Python SDK (ProxmoxSDK / SyncProxmoxSDK) with API-token and password/ticket authentication, a bring-your-own aiohttp session option, typed Ceph / PBS / PDM service clients, and an automated weekly schema-update workflow that detects upstream API drift and opens a PR.

## Features

- 675 pre-generated Proxmox VE 9.2 endpoints with full OpenAPI schema (9.1.11 retained)
- Standalone async + sync Python SDK (ProxmoxSDK / SyncProxmoxSDK) — no server required
- Dual mode: mock (default) for development, real for production
- Reliable password/ticket auth (API-prefixed ticket URL + unquoted PVEAuthCookie) plus API-token auth with TOTP
- Bring-your-own aiohttp session (session=) — reuse your connection pool, timeouts, tracing, or proxy
- Typed Ceph / PBS / PDM service clients on top of the transport backends
- Security hardening: SSRF-guarded download checksum discovery, credential redaction in logs, quoted SSH commands
- Automated weekly schema sync — detects upstream API drift and opens a PR automatically
- Multi-version CI matrix: latest, 9.2, and 9.1.11 each tested on every commit
- Per-version mock state isolation (PROXMOX_MOCK_STATE_NAMESPACE) — safe for parallel runs
- Per-service Docker tags: latest-pve, latest-pbs (Backup Server), latest-pdm (Datacenter Manager)
- Real API proxy with request/response validation
- Code generation: crawls the Proxmox API Viewer into OpenAPI
- FastAPI-generated Swagger UI at /docs
- Optional CLI / TUI extras with in-app view switching

## Stack

- Python
- FastAPI
- OpenAPI 3.0
- Pydantic

## Install

Primary command:

```shell
pip install proxmox-sdk
```

Then visit /docs on the running app for live OpenAPI / Swagger. For Docker, pull emersonfelipesp/proxmox-sdk:latest-{pve,pbs,pdm} per service surface.

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/proxmox-sdk |
| docs | https://emersonfelipesp.com/proxmox-sdk/docs/ |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/developer

Title: proxmox-sdk developer guide

Description: Developer guide for proxmox-sdk.

# proxmox-sdk developer guide

Developer guide — the codegen pipeline, dual mock/real backends, and the integration boundary that downstream stacks depend on.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/developer |
| Showcase | https://emersonfelipesp.com/proxmox-sdk |
| GitHub | https://github.com/emersonfelipesp/proxmox-sdk |
| Releases | https://emersonfelipesp.com/proxmox-sdk/releases |
| Release snapshot synced | 2026-10-07T04:19:19.318Z |

## Intro

proxmox-sdk is a schema-driven Python toolkit. It mirrors the Proxmox VE 9.2 REST surface as 675 typed endpoints, runs in either a mock or a real-proxy mode, and exposes the result as both an in-process SDK and an optional FastAPI server.

This page documents the codegen pipeline that produces the schema, the pluggable backend layer that lets every endpoint resolve against mock data or a real cluster, the contribution workflow, and the integration boundary that downstream stacks (proxbox-api, netbox-proxbox) lean on instead of running their own E2E.

## Architecture

- Single Python package proxmox_sdk. Three runtime modes: full FastAPI server (proxmox_sdk/main.py — mock or real proxy), standalone mock-only entrypoint (proxmox_sdk/mock_main.py — used by the netbox-proxbox + proxbox-api E2E stacks), and pure SDK (no server).
- Standalone SDK: proxmox_sdk/sdk/api.py is ProxmoxSDK (async). proxmox_sdk/sdk/sync.py wraps it synchronously. proxmox_sdk/sdk/resource.py adds attribute-based resource navigation.
- Pluggable backends in proxmox_sdk/sdk/backends/: https.py (aiohttp, real Proxmox), mock.py (in-memory), local.py (pvesh CLI), ssh_paramiko.py and openssh.py (two SSH transports).
- Mock layer: proxmox_sdk/mock/ uses SharedMemoryMockStore (shared-lock, file-backed) and proxmox_sdk/mock/routes.py registers CRUD handlers from the OpenAPI schema dynamically at startup. State can be reset with reset_state() between tests.
- Generated artifacts: proxmox_sdk/generated/ (675 endpoints, Pydantic models). Pre-generated for Proxmox VE 9.2 (9.1.11 retained; CI matrix: latest, 9.2, 9.1.11).
- Multi-version isolation: each schema version gets a stable mock namespace (PROXMOX_MOCK_STATE_NAMESPACE defaults to pmx_{version_tag}). A __schema_fingerprint__ guard on sys.modules prevents stale module re-exec when two versions load in the same process.
- Codegen pipeline: proxmox_sdk/proxmox_codegen/crawler.py (Playwright crawls the official Proxmox API Viewer), normalises output, and proxmox_codegen/pipeline.py emits openapi.json + pydantic_models.py. Triggered manually or via the rate-limited /codegen/generate endpoint (CODEGEN_API_KEY required).
- Automated schema sync: .github/workflows/schema-update.yml detects upstream Proxmox API drift weekly (Monday 03:00 UTC) or on workflow_dispatch, regenerates the schema, verifies SHA integrity, and opens a PR automatically.
- CLI / TUI: proxmox_sdk/proxmox_cli/ ships proxmox, pbx, and proxmox-cli entry points; pbx tui launches the Textual UI with in-app per-module view switching (PVE / PBS / PDM). Themes: proxmox_cli/themes/themes.py (DARK, LIGHT, MONOKAI).
- Rate limiting: SlowAPI on every public route (in-process; works without Redis).

## Integrations

| Target |Protocol |Library |Notes |
| --- | --- | --- | --- |
| Proxmox VE / PMG / PBS | HTTPS | aiohttp via backends/https.py | Auth: API token (auth/token.py) or password/ticket+TOTP (auth/ticket.py). Used in real-proxy mode. |
| Proxmox host (local) | exec | pvesh wrapper (backends/local.py) | Direct CLI invocation when running on a Proxmox node. |
| Proxmox host (over SSH) | SSH | Paramiko (ssh_paramiko.py) or openssh-wrapper (openssh.py) | Two interchangeable SSH transports. |
| proxbox-api | imported | downstream consumer | proxbox-api pins proxmox-sdk==0.0.5.post1; netbox-proxbox's E2E stack pulls one of the per-service image tags (latest-pve, latest-pbs, latest-pdm) of this repo as its proxmox-e2e-mock container, one per matrix cell. |

## Contributing

Development install:

```shell
uv sync
```

Pre-PR checks:

- install hooks: `uv run pre-commit install --hook-type pre-commit --hook-type pre-push`
- lint: `uv run ruff check .`
- format: `uv run ruff format --check .`
- type check: `uv run ty check proxmox_sdk tests`
- syntax compile: `uv run python -m compileall proxmox_sdk`
- tests with coverage: `uv run pytest -n auto --cov=proxmox_sdk --cov-report=term-missing tests`

Code style:

- Linter: ruff (select E4/E7/E9/F/I/ANN201/D103/W).
- Formatter: ruff format.
- Type checker: ty.
- Codegen output (proxmox_sdk/generated/) is regenerated, not edited.

Issues: https://github.com/emersonfelipesp/proxmox-sdk/issues

## End-to-end tests

Framework: pytest + pytest-xdist + pytest-cov. Integration boundary covered via tests/cli/integration/test_backend_integration.py exercising the CLI-to-SDK bridge against the mock server.

proxmox-sdk has no dedicated tests/e2e/ directory — the CLI integration suite plus the published service-tagged Docker images (latest-pve, latest-pbs, latest-pdm) act as the E2E boundary. Downstream stacks (netbox-proxbox, proxbox-api) consume those tags and run the cross-stack E2E in parallel.

v0.0.6 advances the schema to Proxmox VE 9.2 and expands the CI matrix to three versions (latest, 9.2, 9.1.11) — every commit runs the full test suite against each schema version independently, with per-version mock state namespacing to prevent inter-run bleed.

The CI pipeline lints, type-checks, runs tests with coverage, and rebuilds the service-tagged Docker variants (raw / nginx / granian × pve / pbs / pdm) on every main and testing push.

Commands:

- tests with coverage: `uv run pytest -n auto --cov=proxmox_sdk --cov-report=term-missing tests`
- CLI integration only: `uv run pytest tests/cli/integration`

Coverage:

- Spec files: tests/cli/integration/test_backend_integration.py (CLI ↔ SDK bridge against mock server).
- CI schema matrix: [latest, 9.2, 9.1.11] — each cell runs the full test suite with its own PROXMOX_MOCK_STATE_NAMESPACE to prevent shared-state collisions.
- CI jobs: lint, syntax, test, docker-images (raw / nginx / granian variants × pve / pbs / pdm service tags pushed on every main / testing commit).
- Cross-stack E2E: the latest-{pve,pbs,pdm} tags are pulled by netbox-proxbox's e2e-docker.yml and proxbox-api's ci.yml as the proxmox-e2e-mock container — one tag per matrix cell, proving the published images are consumable end-to-end.

CI workflow: .github/workflows/ci.yml (https://github.com/emersonfelipesp/proxmox-sdk/blob/main/.github/workflows/ci.yml)

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/proxmox-sdk |
| docs | https://emersonfelipesp.com/proxmox-sdk/docs/ |
| issues | https://github.com/emersonfelipesp/proxmox-sdk/issues |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/roadmap

Title: proxmox-sdk roadmap

Description: Roadmap for proxmox-sdk.

# proxmox-sdk roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/roadmap |
| Repository | emersonfelipesp/proxmox-sdk |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 0 |
| Closed issues | 62 |
| Dependency edges | 29 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #111, #12, #95, #93, #90, #89, #88, #87, #86, #65, #75, #73, #72, #74, #71, #70, #67, #66, #69, #68, #63, #59, #57, #55, #17, #50, #49, #48, #47, #46, #45, #21, #44, #43, #42, #41, #40, #39, #38, #20, #37, #36, #35, #34, #33, #32, #31, #30, #29, #28, #27, #26, #25, #24, #23, #22, #19, #18, #13, #11, #3, #1

## Milestones

| Milestone |State |Due |Open |Closed |URL |
| --- | --- | --- | --- | --- | --- |
| v0.0.5 | closed | n/a | 0 | 34 | https://github.com/emersonfelipesp/proxmox-sdk/milestone/3 |
| v0.1.0 | open | n/a | 0 | 1 | https://github.com/emersonfelipesp/proxmox-sdk/milestone/2 |

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #111 | closed | Base_url not parsed correctly? |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/111 |
| #95 | closed | Fix Dependabot alerts for idna and pymdown-extensions |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/95 |
| #93 | closed | docs: document v0.0.8 performance architecture in MkDocs |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/93 |
| #90 | closed | Add SQLite WAL mock-state store with orjson serialization |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/90 |
| #89 | closed | Generate static route metadata and lazy model shards |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/89 |
| #88 | closed | Add performance benchmarks and Granian deployment documentation |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/88 |
| #87 | closed | Use metadata-driven generated route dispatch |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/87 |
| #86 | closed | Optimize proxmox-sdk startup, generated route loading, and mock-state storage |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/86 |
| #75 | closed | S10: Coordinate proxbox-api consumer + bump pin |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/75 |
| #74 | closed | S9: Mode-dispatch registry in main.py (DIP) |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/74 |
| #73 | closed | S8: Split pdm.py (1163 LOC) and ceph.py (409 LOC) into per-resource modules (SRP) |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/73 |
| #72 | closed | S7: @with_error_translation for FastAPI/mock route closures |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/72 |
| #71 | closed | S6: Replace HTTP-verb if/elif ladders with dispatch helper |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/71 |
| #70 | closed | S5: Unify _build_backend_config into one _common.py helper |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/70 |
| #69 | closed | S4: @require_service("PVE"\|"PDM") decorator |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/69 |
| #68 | closed | S3: proxmox_cli/decorators.py — @cli_error_handler |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/68 |
| #67 | closed | S2: Split AuthStrategy Protocol + lift get_tokens off AbstractBackend (ISP/LSP) |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/67 |
| #66 | closed | S1: Use BackendFactory from sdk_bridge.py (OCP) |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/66 |
| #65 | closed | SOLID review + decorator refactor (umbrella) |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/65 |
| #63 | closed | feat: Add FastAPI TestClient tests for PVE mock and full-server entry points |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/63 |
| #59 | closed | feat: Proxmox VE 9.2 support |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/59 |
| #57 | closed | Per-module TUIs with in-app view switching |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/57 |
| #55 | closed | Create GitHub Action that published Mock API FastAPI container |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/55 |
| #50 | closed | [PDM/Mock] D6: Docker/CI integration for PDM mock server | v0.0.5 | #47 | https://github.com/emersonfelipesp/proxmox-sdk/issues/50 |
| #49 | closed | [PDM/Mock] D5: E2E test suite using PDM mock API | v0.0.5 | #47, #48 | https://github.com/emersonfelipesp/proxmox-sdk/issues/49 |
| #48 | closed | [PDM/Mock] D4: Support user-provided mock data via JSON/YAML input and state persistence | v0.0.5 | #47 | https://github.com/emersonfelipesp/proxmox-sdk/issues/48 |
| #47 | closed | [PDM/Mock] D3: Register PDM mock routes in create_pdm_mock_app() factory | v0.0.5 | #45, #46 | https://github.com/emersonfelipesp/proxmox-sdk/issues/47 |
| #46 | closed | [PDM/Mock] D2: Create PDM mock data seeder with realistic fixtures | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/46 |
| #45 | closed | [PDM/Mock] D1: Generate PDM OpenAPI schema via codegen pipeline | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/45 |
| #44 | closed | [PDM/TUI] C7: TUI headless tests via App.run_test() and Pilot | v0.0.5 | #38, #39, #40, #41, #42, #43 | https://github.com/emersonfelipesp/proxmox-sdk/issues/44 |
| #43 | closed | [PDM/TUI] C6: Implement global resources dashboard screen | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/43 |
| #42 | closed | [PDM/TUI] C5: Implement guest lifecycle action panel (start, stop, shutdown, migrate) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/42 |
| #41 | closed | [PDM/TUI] C4: Implement PBS remote detail view (datastores, snapshots) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/41 |
| #40 | closed | [PDM/TUI] C3: Implement PVE remote detail view (nodes, VMs, containers) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/40 |
| #39 | closed | [PDM/TUI] C2: Implement Remote tree navigation widget | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/39 |
| #38 | closed | [PDM/TUI] C1: Add PDMTuiApp entry point and service mode wiring | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/38 |
| #37 | closed | [PDM/CLI] B7: CLI integration tests and docgen update | v0.0.5 | #31, #32, #33, #34, #35, #36 | https://github.com/emersonfelipesp/proxmox-sdk/issues/37 |
| #36 | closed | [PDM/CLI] B6: Implement pdm access commands (users, ACL, TFA) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/36 |
| #35 | closed | [PDM/CLI] B5: Implement pdm resources, subscriptions, and metrics commands | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/35 |
| #34 | closed | [PDM/CLI] B4: Implement pdm pbs subcommands (datastores, snapshots, tasks) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/34 |
| #33 | closed | [PDM/CLI] B3: Implement pdm pve subcommands (QEMU, LXC lifecycle, nodes) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/33 |
| #32 | closed | [PDM/CLI] B2: Implement pdm remote subcommands | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/32 |
| #31 | closed | [PDM/CLI] B1: Add pdm Typer command group and SDK bridge wiring | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/31 |
| #30 | closed | [PDM/SDK] A9: Implement PDMClient + SyncPDMClient + full test suite | v0.0.5 | #22, #23, #24, #25, #26, #27, #28, #29 | https://github.com/emersonfelipesp/proxmox-sdk/issues/30 |
| #29 | closed | [PDM/SDK] A8: Run PDM codegen pipeline - auto-generate OpenAPI schema and Pydantic models | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/29 |
| #28 | closed | [PDM/SDK] A7: Implement AccessDomain (users, ACL, TFA, tokens) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/28 |
| #27 | closed | [PDM/SDK] A6: Implement GlobalResourcesDomain, SubscriptionsDomain, MetricsDomain, ViewsDomain | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/27 |
| #26 | closed | [PDM/SDK] A5: Implement PBSDomain (datastores, snapshots, tasks, RRD) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/26 |
| #25 | closed | [PDM/SDK] A4: Implement PVEDomain (QEMU/LXC lifecycle, migration, nodes, RRD) | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/25 |
| #24 | closed | [PDM/SDK] A3: Implement RemotesDomain | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/24 |
| #23 | closed | [PDM/SDK] A2: Implement Pydantic v2 models for all PDM API entities | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/23 |
| #22 | closed | [PDM/SDK] A1: Add service config, pdm extra, and package scaffold | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/22 |
| #21 | closed | [PDM] Phase 4: Mock API Support | v0.0.5 | #18 | https://github.com/emersonfelipesp/proxmox-sdk/issues/21 |
| #20 | closed | [PDM] Phase 3: TUI Support | v0.0.5 | #18 | https://github.com/emersonfelipesp/proxmox-sdk/issues/20 |
| #19 | closed | [PDM] Phase 2: CLI Support | v0.0.5 | #18 | https://github.com/emersonfelipesp/proxmox-sdk/issues/19 |
| #18 | closed | [PDM] Phase 1: SDK Support | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/18 |
| #17 | closed | Proxmox Datacenter Manager (PDM) Support | v0.0.5 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/17 |
| #13 | closed | Add Support for Ceph operations via TUI and CLI (only integrated with Proxmox for now) |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/13 |
| #12 | closed | Ceph v2: provider SDKs and write-capable Ceph clients | v0.1.0 |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/12 |
| #11 | closed | Ceph support: read-only SDK facade |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/11 |
| #3 | closed | Add Proxmox proxy option |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/3 |
| #1 | closed | Create CLI app using Typer and TUI app using Textual. |  |  | https://github.com/emersonfelipesp/proxmox-sdk/issues/1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases

Title: proxmox-sdk releases

Description: Release index for proxmox-sdk.

# proxmox-sdk releases

Schema-driven FastAPI SDK for the Proxmox VE API with generated endpoints and mock/real modes.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases |
| GitHub releases | https://github.com/emersonfelipesp/proxmox-sdk/releases |
| Repository | emersonfelipesp/proxmox-sdk |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 35 |
| Stars | 9 |
| Forks | 2 |

## Release index

- [proxmox-sdk 0.0.15](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.15) - v0.0.15 - 2026-09-16 - latest
- [proxmox-sdk 0.0.14.post3](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post3) - v0.0.14.post3 - 2026-09-08 - stable
- [proxmox-sdk 0.0.14.post2](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post2) - v0.0.14.post2 - 2026-09-08 - stable
- [proxmox-sdk v0.0.14.post1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post1) - v0.0.14.post1 - 2026-09-08 - stable
- [proxmox-sdk v0.0.14](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14) - v0.0.14 - 2026-09-08 - stable
- [v0.0.13](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.13) - v0.0.13 - 2026-07-06 - stable
- [v0.0.13rc1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.13rc1) - v0.0.13rc1 - 2026-07-06 - pre-release
- [v0.0.12](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.12) - v0.0.12 - 2026-06-15 - stable
- [proxmox-sdk v0.0.12rc1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.12rc1) - v0.0.12rc1 - 2026-06-12 - pre-release
- [v0.0.11.post2](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11.post2) - v0.0.11.post2 - 2026-06-08 - stable
- [v0.0.11.post1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11.post1) - v0.0.11.post1 - 2026-06-07 - stable
- [v0.0.11](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11) - v0.0.11 - 2026-06-06 - stable
- [v0.0.10](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.10) - v0.0.10 - 2026-06-03 - stable
- [proxmox-sdk v0.0.9](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.9) - v0.0.9 - 2026-05-24 - stable
- [v0.0.9rc1 - Release Candidate 1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.9rc1) - v0.0.9rc1 - 2026-05-24 - pre-release
- [proxmox-sdk v0.0.8](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.8) - v0.0.8 - 2026-05-24 - stable
- [v0.0.8rc1 - Release Candidate 1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.8rc1) - v0.0.8rc1 - 2026-05-24 - pre-release
- [v0.0.7](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.7) - v0.0.7 - 2026-05-22 - stable
- [v0.0.6.post1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6.post1) - v0.0.6.post1 - 2026-05-21 - stable
- [v0.0.6 — Proxmox VE 9.2 + Multi-Version Compatibility](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6) - v0.0.6 - 2026-05-21 - stable
- [v0.0.6rc1 — Release Candidate 1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6rc1) - v0.0.6rc1 - 2026-05-21 - pre-release
- [v0.0.6.post1.dev1 — TestPyPI Validation](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6.post1.dev1) - v0.0.6.post1.dev1 - 2026-05-21 - pre-release
- [v0.0.5.post1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.5.post1) - v0.0.5.post1 - 2026-05-16 - stable
- [v0.0.5 — Proxmox Datacenter Manager (PDM) support](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.5) - v0.0.5 - 2026-05-16 - stable
- [v0.0.4.post3](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post3) - v0.0.4.post3 - 2026-05-15 - stable
- [v0.0.4.post2](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post2) - v0.0.4.post2 - 2026-05-14 - stable
- [proxmox-sdk v0.0.4.post1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post1) - v0.0.4.post1 - 2026-05-13 - stable
- [proxmox-sdk v0.0.4](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4) - v0.0.4 - 2026-05-13 - stable
- [v0.0.3.post1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.3.post1) - v0.0.3.post1 - 2026-04-22 - stable
- [proxmox-sdk v0.0.3](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.3) - v0.0.3 - 2026-04-22 - stable
- [v0.0.2.post3](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post3) - v0.0.2.post3 - 2026-04-14 - stable
- [proxmox-sdk v0.0.2.post2](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post2) - v0.0.2.post2 - 2026-04-13 - stable
- [proxmox-sdk v0.0.2.post1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post1) - v0.0.2.post1 - 2026-04-11 - stable
- [v0.0.2](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2) - v0.0.2 - 2026-04-11 - stable
- [v0.0.1](https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.1) - v0.0.1 - 2026-04-04 - stable


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.15

Title: proxmox-sdk v0.0.15

Description: proxmox-sdk 0.0.15

# proxmox-sdk v0.0.15

proxmox-sdk 0.0.15

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.15 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.15 |
| Tag | v0.0.15 |
| State | latest |
| Author | emersonfelipesp |
| Created | 2026-09-16 06:03 UTC |
| Published | 2026-09-16 06:21 UTC |
| Target | 6ea5ed3a9f4b7f7d7df8bc2f2e9a8da7be8619df |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

<!-- proxmox-sdk-release-evidence:v1 -->

## Release evidence

Release version: `0.0.15`
Package-of-record manifest SHA256: `928d57c15328a6fce9df1f5110f4de2aedbf0a6c41f5bde27f1143bf895615cd`

- [x] **REQ**: Bounded JSON response reads, redirect refusal on every transport, and Proxmox VE 9.2 API coverage are each traced to unit tests and to the live certification suite, which passed 14 checks with 2 documented expected failures against Proxmox VE 9.2.20.
- [x] **ARCH**: The additive SDK read contract, transport-level redirect handling, and the release pipeline's verify-and-seal boundary were reviewed; no public interface was removed.
- [x] **IMPL**: Ruff, Ty, and Pyright standards; uv 0.11.28 with a locked dependency graph; pinned Alpine 3.24 image inputs; reproducible builds under the commit timestamp with byte-identical double builds.
- [x] **STATIC**: Ruff lint and format, Ty, Pyright, actionlint with shellcheck, compile and import contracts, and the dependency vulnerability audit passed.
- [x] **TEST**: 874 unit and integration tests passed with 19 skips; the latest, 9.2, and 9.1.11 schema regression lanes passed; the installed-wheel contract passed; the nine-cell served-artifact matrix (Python 3.11, 3.12, 3.13 across three schema versions) passed for the release candidate; raw, nginx, and granian container images built and passed smoke tests on amd64 and arm64.
- [x] **COVERAGE**: Coverage was measured at 85 percent line coverage for the feature scope; uncovered code is limited to live-only transport paths exercised by the certification suite.
- [x] **DEFECTS**: Release-lane defects found during candidate validation (test harness credential masking, verifier interpreter selection, sdist metadata selection, container package pins, reusable workflow credentials) were fixed and verified before this version; no open defects affect the published package.
- [x] **SECURITY**: Package credentials are exposed only to the final publish step of a dedicated release lane; dependency security advisories were resolved; secrets are never inherited wholesale by reusable workflows; the package of record was rebuilt and byte-compared before publication.
- [x] **OPS**: README, SDK and CLI documentation, the live certification runbook, and agent-facing guides describe the shipped behavior and the release process.
- [x] **RECOVERY**: The previous version remains installable; the release is additive with no migration; build inputs, tool versions, and validation evidence are retained with the package record for maintenance.
- [x] **APPROVAL**: Release candidates 4 and 5 were validated from the served artifacts, including a live Proxmox VE 9.2.20 session, and the final package of record was approved for promotion.

## What's new in 0.0.15

- **Bounded JSON response reads** — `ProxmoxSDK` can cap the size of JSON responses it reads, so pull-based metrics collectors cannot be stalled or exhausted by an oversized reply.
- **Redirect refusal on every transport** — 3xx responses are rejected before any body is read, on HTTPS and CLI-backed transports alike, closing a class of silent misrouting.
- **Proxmox VE 9.2.20 certified** — the live suite covers the 9.2 HA affinity rules endpoint, SDN zones, CRS options, and API token lifecycle against a real 9.2.20 node.
- **Dependency security updates** — httpx, httpcore, and mkdocs-material moved to security-patched releases.
- **Test harness** — the live certification suite now works from a whole-tree `pytest -m live` run; credentials are captured only when the live suite is selected and cleared at session end.
- **Container images** — Alpine package pins refreshed; image publication credentials are passed explicitly to the reusable publish workflow.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.15 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.15 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post3

Title: proxmox-sdk v0.0.14.post3

Description: proxmox-sdk 0.0.14.post3

# proxmox-sdk v0.0.14.post3

proxmox-sdk 0.0.14.post3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post3 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.14.post3 |
| Tag | v0.0.14.post3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-08 22:56 UTC |
| Published | 2026-09-08 23:07 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

<!-- proxmox-sdk-release-evidence:v1 -->

## Release evidence

Release version: `0.0.14.post3`
Package-of-record manifest SHA256: `0da5f6e3c8e0209e1592fc0c674b3b350bf828ca8a70b6d4b49c81c5fb8ebde3`

- [x] **REQ**: NetBox 4.7 GA dependency resolution is restored through the Pydantic 2.13 compatibility range.
- [x] **ARCH**: The release validator executes in the locked uv environment used for artifact construction.
- [x] **IMPL**: Package metadata and lockfile are consistent at `0.0.14.post3`.
- [x] **STATIC**: Formatting, lint, type, workflow, and security checks passed in the repository gates.
- [x] **TEST**: The full test suite passed with 700 tests passed and 26 skipped.
- [x] **COVERAGE**: The existing package coverage and multi-schema test matrix passed.
- [x] **DEFECTS**: The failed release validator event is superseded by this corrected release.
- [x] **SECURITY**: The locked dependency and reproducible artifact controls remain enabled.
- [x] **OPS**: The public release workflow validates metadata using the installed project tools.
- [x] **RECOVERY**: This post-release version can replace the failed publication attempt.
- [x] **APPROVAL**: The release evidence is complete for public package publication.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.14.post3 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.14.post3 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post2

Title: proxmox-sdk v0.0.14.post2

Description: proxmox-sdk 0.0.14.post2

# proxmox-sdk v0.0.14.post2

proxmox-sdk 0.0.14.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.14.post2 |
| Tag | v0.0.14.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-08 22:47 UTC |
| Published | 2026-09-08 23:00 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

<!-- proxmox-sdk-release-evidence:v1 -->

## Release evidence

Release version: `0.0.14.post2`
Package-of-record manifest SHA256: `2a6a051bcc8e11c1c47c3c4feaced4b099108ec4e2f0b468df79e081d8a747b6`

- [x] **REQ**: NetBox 4.7 GA dependency resolution is restored through the Pydantic 2.13 compatibility range.
- [x] **ARCH**: The release validator executes in the locked uv environment used for artifact construction.
- [x] **IMPL**: Package metadata, lockfile, and release validation inputs are consistent at `0.0.14.post2`.
- [x] **STATIC**: Workflow policy, formatting, lint, type, and import checks passed in the repository gates.
- [x] **TEST**: The full test suite passed with 700 tests passed and 26 skipped.
- [x] **COVERAGE**: The existing package coverage and multi-schema test matrix passed.
- [x] **DEFECTS**: The failed release validator import is fixed and the prior release remains superseded.
- [x] **SECURITY**: The locked dependency and reproducible artifact controls remain enabled.
- [x] **OPS**: The public release workflow now validates metadata using the installed project tools.
- [x] **RECOVERY**: This post-release version is independently publishable and can replace the failed candidate.
- [x] **APPROVAL**: The release evidence is complete for public package publication.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.14.post2 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.14.post2 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post1

Title: proxmox-sdk v0.0.14.post1

Description: proxmox-sdk v0.0.14.post1

# proxmox-sdk v0.0.14.post1

proxmox-sdk v0.0.14.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.14.post1 |
| Tag | v0.0.14.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-08 22:40 UTC |
| Published | 2026-09-08 22:51 UTC |
| Target | 745005f352fb07b6547995a7b03c0baa82c09fe1 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Recovery release: include packaging in the locked release tool environment so the Pydantic 2.13 compatibility release can publish.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.14.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.14.post1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14

Title: proxmox-sdk v0.0.14

Description: proxmox-sdk v0.0.14

# proxmox-sdk v0.0.14

proxmox-sdk v0.0.14

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.14 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.14 |
| Tag | v0.0.14 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-08 22:35 UTC |
| Published | 2026-09-08 22:47 UTC |
| Target | 10a18018ff7cb91ae8b3374e6e3b3aac4e49319d |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Relax Pydantic compatibility within the tested 2.13 line so netbox-pdm can coexist with NetBox 4.7 GA plugins.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.14 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.14 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.13

Title: proxmox-sdk v0.0.13

Description: v0.0.13

# proxmox-sdk v0.0.13

v0.0.13

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.13 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.13 |
| Tag | v0.0.13 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-07-06 14:46 UTC |
| Published | 2026-07-06 14:47 UTC |
| Target | 9b018d47faf61d6fdd1fd9f9b8a35c68e24221fe |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxmox-sdk v0.0.13

A correctness, robustness, and security hardening release — including community contributions that fix Proxmox password/ticket authentication and add caller-supplied session support.

### Highlights
- **Password/ticket authentication fixes** — the ticket endpoint is now built under the service API prefix (`/api2/json/access/ticket`, reverse-proxy aware) and the `PVEAuthCookie` is sent unquoted, so `user@realm` + password auth works against real Proxmox nodes. Previously it failed with a `JSONDecodeError` and then 401. Thanks @nanomad!
- **Bring-your-own `aiohttp` session** — pass `session=` to `ProxmoxSDK` / `HttpsBackend` to reuse your own connection pool, timeouts, tracing, or proxy. The SDK reuses it verbatim and never closes it (it also handles the ticket-cookie quoting for external cookie jars). Thanks @CoMPaTech!
- **Review hardening** — config CLI commands (`config-add`/`-remove`/`-set-default`/`-list`/`-show`) now load existing config before operating, fixing silent profile loss and empty list/show; `batch` uses the configured default profile; download checksum auto-discovery blocks SSRF probes to loopback/private/link-local/metadata hosts; typed `AuthenticationError` on non-JSON auth responses; negative-retry validation and a cross-event-loop `close()` leak fix; idempotent synchronous `close()`.
- Also includes opt-in OpenTelemetry tracing and Proxmox Datacenter Manager (PDM) API codegen support merged since 0.0.12.

### Pull requests in this release
- #112 — Make Proxmox password/ticket auth work (API prefix + unquoted cookie) — @nanomad
- #113 — Allow a caller-supplied aiohttp session — @CoMPaTech
- #114 — Harden config CLI, auth, downloads, and backend lifecycle — @emersonfelipesp
- #115 — Version bump to 0.0.13rc1 (release candidate) — @emersonfelipesp
- #116 — Version bump to 0.0.13 (final) — @emersonfelipesp

### Thanks to our contributors 🙏
Special thanks to **@nanomad** (Giovanni Condello) and **@CoMPaTech** (Tom Scholten) for reporting, independently reproducing, reviewing, and fixing the authentication and session issues that make this release possible.

---
Published to PyPI and Docker Hub (`raw`, `nginx`, `granian`, and per-service mock images).

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.13rc1

Title: proxmox-sdk v0.0.13rc1

Description: v0.0.13rc1

# proxmox-sdk v0.0.13rc1

v0.0.13rc1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.13rc1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.13rc1 |
| Tag | v0.0.13rc1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2026-07-06 14:40 UTC |
| Published | 2026-07-06 14:41 UTC |
| Target | 4f89509834c4b6218608d6237d0cf9dd4b10af27 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Release candidate for v0.0.13.

This RC validates a batch of correctness, robustness, and security fixes:
- Config CLI commands (add/remove/set-default/list/show) now load existing configuration before operating, fixing silent profile loss and empty list/show output.
- Batch execution uses the configured default profile.
- Download checksum auto-discovery blocks SDK-side probes to loopback/private/link-local/metadata addresses (SSRF hardening).
- Password/ticket auth returns a typed error on non-JSON gateway responses instead of a raw decode error.
- HTTPS backend rejects negative retry settings and fixes a cross-loop session-close leak.
- Synchronous SDK `close()` is now idempotent.

Published to TestPyPI for validation only; not for production use.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.12

Title: proxmox-sdk v0.0.12

Description: v0.0.12

# proxmox-sdk v0.0.12

v0.0.12

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.12 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.12 |
| Tag | v0.0.12 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-15 15:35 UTC |
| Published | 2026-06-15 15:38 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxmox-sdk v0.0.12

### What's New

- Schema updated to Proxmox VE 9.2 (675 operations / 449 endpoints)
- Ceph facade: `CephClient` / `SyncCephClient` with dashboard, RGW, and RBD domain providers
- PBS (Proxmox Backup Server) facade: `PBSClient` / `SyncPBSClient` with datastores, jobs, nodes, and snapshots domains
- PDM (Proxmox Datacenter Manager) facade: `PDMClient` / `SyncPDMClient`
- SQLite mock state backend (`PROXMOX_MOCK_STORE=sqlite`) with tombstone support
- Two-phase full-update VM batch for improved E2E reliability
- Per-VM dispatch failure isolation
- Various sync reliability improvements

### Installation

```bash
pip install proxmox-sdk==0.0.12
```

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.12 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.12 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.12rc1

Title: proxmox-sdk v0.0.12rc1

Description: proxmox-sdk v0.0.12rc1

# proxmox-sdk v0.0.12rc1

proxmox-sdk v0.0.12rc1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.12rc1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.12rc1 |
| Tag | v0.0.12rc1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2026-06-12 20:00 UTC |
| Published | 2026-06-12 20:04 UTC |
| Target | ff397ef99484ccc5deadc251d824e6bf4167d5fe |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Release candidate for v0.0.12. TestPyPI validation build.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.12rc1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.12rc1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11.post2

Title: proxmox-sdk v0.0.11.post2

Description: v0.0.11.post2

# proxmox-sdk v0.0.11.post2

v0.0.11.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.11.post2 |
| Tag | v0.0.11.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-08 13:49 UTC |
| Published | 2026-06-08 14:10 UTC |
| Target | 1e08d94255515a9fe6b985a92551204c993862a0 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Post-release hardening for the direct Ceph provider clients (Dashboard / RGW /
RBD), the Ceph write domain, and the SSL/auth layer. No breaking changes;
drop-in for v0.0.11.post1.

## Fixes

- **Capability gating no longer fails open.** `ProviderCapability.supports()`
  now reports an unknown write-like operation as *unsupported* instead of
  defaulting to "writable". Callers that gate destructive operations on
  capability detection are no longer cleared for operations a provider never
  declared. Read queries still resolve via the provider's read capability.
- **RGW quota writes sign correctly.** The S3 Signature v2 signature for
  `set_user_quota` / `set_bucket_quota` now folds the `quota` sub-resource into
  the signed canonical resource, so these requests are accepted by RGW
  deployments that validate sub-resources.
- **Injected HTTP transports are no longer closed by the provider.** A transport
  supplied by the caller (and potentially shared across clients) is left open;
  only provider-owned transports are closed on `close()`.
- **Ceph task helpers validate the returned task id.** The Proxmox VE Ceph write
  helpers verify the API returned a task UPID string and raise a clear error
  otherwise, instead of returning a mistyped value.

## Improvements

- RGW user listing fetches users concurrently for faster inventory on large
  clusters.
- The async HTTP transport builds its TLS context once instead of per request.
- The destructive-operation confirmation gate is consolidated into a single
  shared helper.
- Tighter return-type and async context-manager annotations across the provider
  clients.

## Compatibility

- Python >= 3.11. Same Proxmox VE schema support as v0.0.11 (latest / 9.2 /
  9.1.11). No API or configuration changes are required to upgrade.

Validation: lint, type-check, and the full test matrix (Python 3.11/3.12/3.13 ×
schemas latest/9.2/9.1.11) are green; the release pipeline stages and validates
the package on TestPyPI before publishing to PyPI.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11.post1

Title: proxmox-sdk v0.0.11.post1

Description: v0.0.11.post1

# proxmox-sdk v0.0.11.post1

v0.0.11.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.11.post1 |
| Tag | v0.0.11.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-07 19:06 UTC |
| Published | 2026-06-07 19:06 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Bug fix release.

- Fix MockBackend resurrecting deleted objects: a GET after DELETE now returns 404 instead of regenerating the object from the schema seed (which also cleared the tombstone). Adds an is_deleted() guard before the seed fallback in _mock_get(), plus regression tests.

PEP 440 post-release on 0.0.11.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11

Title: proxmox-sdk v0.0.11

Description: v0.0.11

# proxmox-sdk v0.0.11

v0.0.11

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.11 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.11 |
| Tag | v0.0.11 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-05 19:52 UTC |
| Published | 2026-06-06 15:23 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxmox-sdk v0.0.11

### Added
- Direct Ceph provider clients (Dashboard, RADOS Gateway admin, and RBD) for the Ceph v2 control plane, enabling direct reads against Ceph Dashboard, RGW admin, and RBD in addition to the Proxmox VE API path.
- Proxmox VE Ceph write helpers (CephWrite domain) for NetBox-driven Ceph configuration.

### Changed
- Typed SSL contexts across backends.
- Raise a clear authentication error when required auth state is missing.

Schema-driven Proxmox API SDK with dual mock/real modes, generated endpoints, CLI, and Textual TUI.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.10

Title: proxmox-sdk v0.0.10

Description: v0.0.10

# proxmox-sdk v0.0.10

v0.0.10

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.10 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.10 |
| Tag | v0.0.10 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-06-03 22:24 UTC |
| Published | 2026-06-03 22:25 UTC |
| Target | 2a56044560eaa7c7e0a3feadd398ce5ec3619f03 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxmox-sdk 0.0.10

Ships the Ceph PVE write helpers (`CephWrite` domain, #98): pool create/update/delete, cluster flag set/unset, OSD create/delete/in/out, MON/MGR/MDS lifecycle, CephFS create, and Ceph service start/stop/restart. Destructive operations require `confirm_destroy=True`; all return Proxmox task UPIDs. Wired onto `CephClient.write` (async) and `SyncCephClient.write` (sync).

Enables `proxbox-api` to bump its `proxmox-sdk` pin to 0.0.10 and activate Proxmox-backed Ceph v2 writes (NetBox → plan/apply → CephWrite).

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.10 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.10 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.9

Title: proxmox-sdk v0.0.9

Description: proxmox-sdk v0.0.9

# proxmox-sdk v0.0.9

proxmox-sdk v0.0.9

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.9 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.9 |
| Tag | v0.0.9 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-24 20:42 UTC |
| Published | 2026-05-24 20:50 UTC |
| Target | d3e73ac818a68dacf2067e29d11409b5d5b428c2 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxmox-sdk v0.0.9

Maintenance release for the schema-driven Proxmox SDK and mock runtime.

### Highlights

- Promotes the post-v0.0.8 performance architecture and generated-route documentation updates.
- Includes the Dependabot lockfile alert resolution merged after v0.0.8.
- Keeps package metadata and `uv.lock` aligned at `0.0.9`.

### Validation

- Main CI passed on commit `d3e73ac818a68dacf2067e29d11409b5d5b428c2`, including lint, syntax/import smoke checks, all schema test jobs (`latest`, `9.2`, `9.1.11`), and Docker image smoke/push jobs.
- TestPyPI release candidate `v0.0.9rc1` passed release workflow `26372086908`: artifact build, TestPyPI upload, and all 9 validation jobs across Python 3.11, 3.12, 3.13 and schemas `latest`, `9.2`, `9.1.11`.
- Clean install validation installed `proxmox-sdk==0.0.9rc1` from TestPyPI into a fresh environment; package metadata, `__version__`, packaged generated artifacts, and `pbx --version` / `proxmox-cli --version` were verified.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.9 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.9 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.9rc1

Title: proxmox-sdk v0.0.9rc1

Description: v0.0.9rc1 - Release Candidate 1

# proxmox-sdk v0.0.9rc1

v0.0.9rc1 - Release Candidate 1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.9rc1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.9rc1 |
| Tag | v0.0.9rc1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2026-05-24 20:32 UTC |
| Published | 2026-05-24 20:34 UTC |
| Target | 75bb288cd0128038ccc0da77f3723eb98f2c1579 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxmox-sdk v0.0.9rc1

Release candidate for `v0.0.9`.

### Scope

- Carries the post-v0.0.8 documentation updates for performance architecture and generated-route internals.
- Carries the Dependabot lockfile alert resolution currently on `main`.
- Bumps package metadata to `0.0.9rc1` for TestPyPI validation.

### Local validation

- `uv lock --check`
- `uv run ruff check .`
- `uv run ruff format --check .`
- `uv run ty check proxmox_sdk tests --output-format concise`
- `uv run python -m compileall proxmox_sdk tests`
- `uv run pytest tests/test_imports.py tests/test_generated_integrity.py tests/mock/test_routes.py tests/mock/test_sqlite_state.py` (64 passed)
- `uv run pre-commit run --all-files`

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.9rc1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.9rc1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.8

Title: proxmox-sdk v0.0.8

Description: proxmox-sdk v0.0.8

# proxmox-sdk v0.0.8

proxmox-sdk v0.0.8

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.8 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.8 |
| Tag | v0.0.8 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-24 16:09 UTC |
| Published | 2026-05-24 16:33 UTC |
| Target | 07efc64b0c584ac16aeeb42a6aebe72824449468 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## proxmox-sdk v0.0.8

Performance-focused release for the schema-driven Proxmox mock/SDK runtime.

### Highlights

- Uses pre-generated static route metadata for generated Proxmox routes, avoiding runtime route introspection work.
- Adds route-group lazy loading for generated Pydantic models so the mock API no longer imports the full generated model tree at startup.
- Ships generated `route_metadata.json`, `model_index.json`, and model shard artifacts in the package.
- Moves the default mock state backend to SQLite WAL while retaining the shared-memory and dict backends for compatibility.
- Adds an optional `orjson` serialization fast path before considering any custom native extension work.
- Keeps the existing Granian Docker variant for native ASGI/server wins without changing package internals.
- Adds integrity and route-loading tests for the generated artifacts across `latest`, `9.2`, and `9.1.11` schemas.

### Validation

- Main CI passed on commit `07efc64b0c584ac16aeeb42a6aebe72824449468`.
- TestPyPI release candidate `v0.0.8rc1` passed the release workflow matrix across Python 3.11, 3.12, and 3.13 with schema versions `latest`, `9.2`, and `9.1.11`.
- Clean install validation from the TestPyPI wheel confirmed package metadata, CLI startup, packaged generated artifacts, route registration, and live mock API responses.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.8 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.8 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.8rc1

Title: proxmox-sdk v0.0.8rc1

Description: v0.0.8rc1 - Release Candidate 1

# proxmox-sdk v0.0.8rc1

v0.0.8rc1 - Release Candidate 1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.8rc1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.8rc1 |
| Tag | v0.0.8rc1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2026-05-24 16:20 UTC |
| Published | 2026-05-24 16:21 UTC |
| Target | release/v0.0.8rc1 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Release candidate for proxmox-sdk v0.0.8. This candidate validates the static generated route metadata, lazy generated model loading, SQLite-backed mock state, optional orjson serialization path, and existing Granian Docker variant through the TestPyPI GitHub Actions release workflow.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.8rc1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.8rc1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.7

Title: proxmox-sdk v0.0.7

Description: v0.0.7

# proxmox-sdk v0.0.7

v0.0.7

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.7 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.7 |
| Tag | v0.0.7 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-22 21:11 UTC |
| Published | 2026-05-22 21:11 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

SOLID review + decorator refactor milestone (#65).

## Highlights

- **S1 (#78)** — Use `BackendFactory` dispatch from `ProxmoxSDKBridge` (OCP)
- **S2 (#79)** — Split `AuthStrategy` Protocol and lift `get_tokens` off `AbstractBackend` (ISP/LSP)
- **S3 (#76)** — `@cli_error_handler` decorator removes ~7 duplicate try/except blocks
- **S4 (#77)** — `ensure_service` helper consolidates `_require_pve`/`_require_pdm`
- **S5 (#80)** — Unified `_build_backend_config` in `proxmox_cli/_common.py`
- **S6 (#81)** — `dispatch_request` helper replaces HTTP-verb if/elif ladders
- **S7 (#83)** — `@with_error_translation` route decorator for FastAPI/mock closures
- **S8 (#84)** — Split `pdm.py` (1163 LOC) and `ceph.py` (409 LOC) into per-resource packages (SRP)
- **S9 (#82)** — Mode-dispatch registry in `main.py` removes if/elif on mode (DIP)

## Pre-1.0 breaking changes (S2)

- `AbstractBackend.get_tokens()` was removed. Only `HttpsBackend` implements ticket auth; callers that need tokens must accept the `TicketCapableBackend` Protocol instead.
- `AuthStrategy` Protocol narrowed to `apply_to_request(request)`; `ensure_ready(session)` moved to a new `EnsurableAuthStrategy` Protocol implemented only by `TicketAuth`.

`proxbox-api` consumer scan confirmed zero call sites referencing the changed APIs — only a pin bump is required (tracked in #75).

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.7 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.7 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6.post1

Title: proxmox-sdk v0.0.6.post1

Description: v0.0.6.post1

# proxmox-sdk v0.0.6.post1

v0.0.6.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.6.post1 |
| Tag | v0.0.6.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-21 19:22 UTC |
| Published | 2026-05-21 19:22 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's new in 0.0.6.post1

Post-release adding FastAPI TestClient HTTP smoke tests for the PVE mock and full server entry points, validated via the 0.0.6.post1.dev1 pre-release across Python 3.11–3.13 and schema versions latest / 9.1.11 / 9.2.

### Changes

- **tests/mock/test_routes.py** — TestClient smoke tests for `create_mock_app()` (PVE standalone mock): root, health, version, nodes list, node detail, 404 for unknown paths, user create with state persistence
- **tests/mock/test_app.py** — TestClient smoke tests for `create_app()` in mock mode: root, health (with `TESTING=1`), version, mode, versions list, mock sub-router, API nodes, health blocked without `TESTING=1`
- **CI** — added `proxmox_sdk.pdm_mock_main` to the `syntax` job's import smoke checks

### Validation

- TestPyPI install validated on Python 3.11, 3.12, 3.13 × schema latest / 9.1.11 / 9.2

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.6.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.6.post1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6

Title: proxmox-sdk v0.0.6

Description: v0.0.6 — Proxmox VE 9.2 + Multi-Version Compatibility

# proxmox-sdk v0.0.6

v0.0.6 — Proxmox VE 9.2 + Multi-Version Compatibility

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.6 |
| Tag | v0.0.6 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-21 17:47 UTC |
| Published | 2026-05-21 17:48 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's new

### Proxmox VE 9.2 Support
- **675 operations / 449 endpoints** — upgraded from PVE 9.1.11 to PVE 9.2 schema; `latest` tag now mirrors 9.2
- `9.1.11` schema retained for backward compatibility
- Automated weekly schema-update workflow detects upstream Proxmox API drift and opens a PR automatically (`schema-update.yml`)
- Real-mode startup probes `GET /api2/json/version` and warns when the loaded schema major.minor doesn't match the connected node version

### Multi-Version Compatibility Hardening
- **Isolated mock route state per schema version** — `_GENERATED_ROUTE_STATES` keyed by `version_tag`; parallel mock apps for different schemas no longer clobber each other
- **`sys.modules` fingerprint guard** — `load_model_module()` caches by content hash; re-importing unchanged modules is a no-op
- **Namespace isolation** — default namespace is `pmx_{version_tag}` so concurrent schema instances keep separate mock stores
- **CI matrix isolation** — `PROXMOX_MOCK_STATE_NAMESPACE: pmx_${{ matrix.proxmox_schema }}` in `ci.yml` and `publish-testpypi.yml`
- **PDM seed version** derived from `PROXMOX_MOCK_SCHEMA_VERSION` env var instead of hardcoded `"9.1.11"`

### TUI
- Per-module TUIs with in-app view switching (#57, #58)

### CI / Release Pipeline
- Release workflow now gates PyPI and Docker Hub publish on non-prerelease — RC releases publish to TestPyPI only
- Pip CDN propagation verified before service image builds

---

## Docker Hub

```bash
docker pull emersonfelipesp/proxmox-sdk:0.0.6        # uvicorn
docker pull emersonfelipesp/proxmox-sdk:0.0.6-nginx   # nginx + mkcert
docker pull emersonfelipesp/proxmox-sdk:0.0.6-granian # granian + mkcert
docker pull emersonfelipesp/proxmox-sdk:latest
```

## PyPI

```bash
pip install proxmox-sdk==0.0.6
```

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.6 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.6 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6rc1

Title: proxmox-sdk v0.0.6rc1

Description: v0.0.6rc1 — Release Candidate 1

# proxmox-sdk v0.0.6rc1

v0.0.6rc1 — Release Candidate 1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6rc1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.6rc1 |
| Tag | v0.0.6rc1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2026-05-21 17:40 UTC |
| Published | 2026-05-21 17:42 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## v0.0.6 Release Candidate 1

This is a pre-release for validation on TestPyPI. Do not use in production — install from PyPI only after the final `v0.0.6` release is published.

---

## What's new in v0.0.6

### Proxmox VE 9.2 Support
- **675 operations / 449 endpoints** — upgraded from PVE 9.1.11 to PVE 9.2 schema; `latest` tag now mirrors 9.2
- `9.1.11` schema retained for backward compatibility
- Automated weekly schema-update workflow: detects upstream Proxmox API drift and opens a PR automatically (`schema-update.yml`)
- Real-mode startup now probes `GET /api2/json/version` and warns when the loaded schema major.minor doesn't match the connected node version

### Multi-Version Compatibility Hardening
- **Isolated mock route state per schema version** — `_GENERATED_ROUTE_STATES` keyed by `version_tag`; parallel mock apps for different schemas no longer clobber each other
- **`sys.modules` fingerprint guard** — `load_model_module()` caches by content hash; re-importing unchanged modules is a no-op
- **Namespace isolation** — default namespace is `pmx_{version_tag}` so concurrent schema instances keep separate mock stores
- **CI matrix isolation** — `PROXMOX_MOCK_STATE_NAMESPACE: pmx_${{ matrix.proxmox_schema }}` added to both `ci.yml` and `publish-testpypi.yml`
- **PDM seed version** derived from `PROXMOX_MOCK_SCHEMA_VERSION` env var instead of hardcoded `"9.1.11"`

### TUI
- Per-module TUIs with in-app view switching (#57, #58)

### CI / Release Pipeline
- Release workflow now gates PyPI and Docker Hub publish on non-prerelease — RC releases publish to TestPyPI only
- Pip CDN propagation verified before service image builds

---

## Installation (TestPyPI — RC only)

```bash
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ proxmox-sdk==0.0.6rc1
```

For production use, wait for `v0.0.6`.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.6rc1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.6rc1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6.post1.dev1

Title: proxmox-sdk v0.0.6.post1.dev1

Description: v0.0.6.post1.dev1 — TestPyPI Validation

# proxmox-sdk v0.0.6.post1.dev1

v0.0.6.post1.dev1 — TestPyPI Validation

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.6.post1.dev1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.6.post1.dev1 |
| Tag | v0.0.6.post1.dev1 |
| State | pre-release |
| Author | emersonfelipesp |
| Created | 2026-05-21 19:17 UTC |
| Published | 2026-05-21 19:18 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## TestPyPI validation release for v0.0.6.post1

This developmental pre-release validates the publish pipeline before the final v0.0.6.post1 release.

### Changes in 0.0.6.post1
- FastAPI TestClient HTTP smoke tests for PVE mock server (`create_mock_app`) and full server (`create_app`) in mock mode
- CI: added `proxmox_sdk.pdm_mock_main` to import smoke checks
- All CI matrix jobs (lint, syntax, test/latest, test/9.1.11, test/9.2) green

### Validation scope
- Publishes to TestPyPI and validates install across Python 3.11–3.13
- Does **not** publish to PyPI or Docker Hub (prerelease guard active)

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.6.post1.dev1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.6.post1.dev1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.5.post1

Title: proxmox-sdk v0.0.5.post1

Description: v0.0.5.post1

# proxmox-sdk v0.0.5.post1

v0.0.5.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.5.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.5.post1 |
| Tag | v0.0.5.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-16 21:57 UTC |
| Published | 2026-05-16 21:57 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## v0.0.5.post1

Post-release fix for service-specific mock container images introduced in v0.0.5.

The v0.0.5 PyPI package was published before the `PROXMOX_MOCK_SERVICE` feature merged, so the service-specific images (`-pve`, `-pbs`, `-pdm`, `-all`) could not be built from that immutable package. This post release ships the feature-complete code on PyPI and publishes all four service images.

### Changes

- **feat**: `PROXMOX_MOCK_SERVICE` env var in `proxmox_sdk/mock/app.py` — selects PVE (full mock) vs PBS/PDM (healthy stub pending schema generation)
- **feat**: `pypi-raw` Dockerfile stage — installs `proxmox-sdk` from PyPI for service-specific containers
- **feat**: `publish-service-images` CI job — builds and pushes `{version}-{all,pve,pbs,pdm}` and `latest-{all,pve,pbs,pdm}` images after every PyPI release
- **fix**: Replace experimental `pip index versions` PyPI poll with stable `curl -fs https://pypi.org/pypi/proxmox-sdk/$VERSION/json`

### Docker images published

- `emersonfelipesp/proxmox-sdk:0.0.5.post1-all` — PVE + PBS + PDM combined (full PVE mock + stubs)
- `emersonfelipesp/proxmox-sdk:0.0.5.post1-pve` — PVE-only (full mock, 646 endpoints)
- `emersonfelipesp/proxmox-sdk:0.0.5.post1-pbs` — PBS stub (healthy, schema pending)
- `emersonfelipesp/proxmox-sdk:0.0.5.post1-pdm` — PDM stub (healthy, schema pending)

Closes #55

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.5.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.5.post1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.5

Title: proxmox-sdk v0.0.5

Description: v0.0.5 — Proxmox Datacenter Manager (PDM) support

# proxmox-sdk v0.0.5

v0.0.5 — Proxmox Datacenter Manager (PDM) support

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.5 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.5 |
| Tag | v0.0.5 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-16 21:43 UTC |
| Published | 2026-05-16 21:43 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Highlights

Full Proxmox Datacenter Manager (PDM) support delivered across four merged PRs (#51, #52, #53, #54). PDM joins PVE, PMG, and PBS as a first-class service in the SDK.

### SDK — `proxmox_sdk/pdm/`
- `PDMClient` (async) and `SyncPDMClient` composing the existing `ProxmoxSDK` transport on `service="PDM"`, port `8443`, with the `PDMAuthCookie` / `PDMAPIToken` auth flow.
- Eight typed domain helpers: `remotes`, `pve` (qemu/lxc lifecycle, migrate, remote-migrate, nodes, RRD, tasks, resources), `pbs` (datastores, snapshots with namespace filter, tasks, RRD), `resources` (global), `subscriptions`, `metrics`, `access` (users/ACL/TFA/tokens), `views`.
- Hand-coded Pydantic v2 models for every PDM API entity (`extra="allow"` so forward-compatible PDM additions don't break parsing).

### CLI — `proxmox pdm …`
Typer subcommand tree mirroring every SDK operation: `remote`, `pve.qemu/lxc/node`, `pbs.datastore/snapshot/node/tasks`, `resources`, `subscriptions`, `metrics`, `access.user/acl/tfa`, `views`, `tui`. The bridge defaults to port 8443 when `--service PDM` is used.

### TUI — `proxmox pdm tui`
Three-pane Textual app (remote tree • resource table + JSON detail • action panel) with `ConfirmModal` gating on destructive actions. Key bindings: `r` refresh, `d` dashboard, `q` quit.

### Mock — `proxmox-sdk-pdm-mock`
Hand-coded FastAPI mock server mirroring every PDM SDK code path, plus `/mock/{seed,export,import,reset}` management endpoints for tests. Bundled realistic seed: 3 remotes (2 PVE + 1 PBS), 16 VMs, 5 CTs, 2 datastores, 3 snapshots, 3 users, 5 ACLs, 2 views. Configurable via `PROXMOX_PDM_MOCK_HOST`/`PORT`/`SEED_FILE` env vars.

### Install
\`\`\`bash
pip install proxmox-sdk==0.0.5
# or with PDM extras (currently empty but reserved):
pip install 'proxmox-sdk[pdm]==0.0.5'
\`\`\`

See issue #17 for the full implementation summary and per-phase breakdown.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.5 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.5 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post3

Title: proxmox-sdk v0.0.4.post3

Description: v0.0.4.post3

# proxmox-sdk v0.0.4.post3

v0.0.4.post3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post3 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.4.post3 |
| Tag | v0.0.4.post3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-15 02:47 UTC |
| Published | 2026-05-15 02:48 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Changes

- Refactor SDK backend construction (`9c0e46b`)
- Tighten SDK backend factory and unify response helpers (`b641357`)
  - `BackendConfig` → `BackendBuildSpec`; added `BackendName` Literal
  - `BackendFactory` dispatch promoted to a `ClassVar` `_CREATORS` map with clear error on unknown backends
  - `_version.get_version()` now caches `importlib.metadata` lookup
  - `BlockingDomainProxy` wraps with `functools.wraps` to preserve metadata
  - `ProxmoxSDK.service` simplified (dead-code fallback removed)
  - PBS/Ceph response helpers consolidated into `proxmox_sdk/_response_utils.py`

**Net diff:** 15 files changed, +108 / −117

## Compatibility

- Python ≥ 3.11
- Proxmox VE 9.1.11 (`latest` mirrors 9.1.11)
- API: backwards-compatible

## Install

```bash
pip install proxmox-sdk==0.0.4.post3
```

Docker:

```bash
docker pull emersonfelipesp/proxmox-sdk:0.0.4.post3
docker pull emersonfelipesp/proxmox-sdk:0.0.4.post3-nginx
docker pull emersonfelipesp/proxmox-sdk:0.0.4.post3-granian
```

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.4.post3 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.4.post3 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post2

Title: proxmox-sdk v0.0.4.post2

Description: v0.0.4.post2

# proxmox-sdk v0.0.4.post2

v0.0.4.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.4.post2 |
| Tag | v0.0.4.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-14 20:00 UTC |
| Published | 2026-05-14 20:01 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

First release certified against **Proxmox VE 9.1.11**, plus a security-only dependency patch.

## Proxmox VE 9.1.11 certification (#9)

Re-captures the Proxmox API surface from a live 9.1.11 lab and ships it as both `proxmox_sdk/generated/proxmox/9.1.11/` and a refreshed `latest/` mirror (435 paths, 649 operations). Each artifact embeds `GENERATED_FOR_PROXMOX_VERSION`, `GENERATED_SOURCE_SHA256` (canonical-JSON hash), and `GENERATED_AT` so `test_generated_integrity.py` catches drift between `openapi.json` and `pydantic_models.py` on either tag.

- **Codegen**: `crawler.py` adds opt-in `allow_insecure_ssl` and Playwright resilience (Proxmox 9 viewer has no `<nav>`); `pipeline.py` threads a single canonical-JSON SHA-256 through `pydantic_generator`; `security.py` / `cli.py` add `--allow-private-ips` for LAN-only Proxmox lab nodes.
- **CI matrix**: `ci.yml` `test` job and `publish-testpypi.yml` `validate-testpypi` fan out across `proxmox_schema: [latest, "9.1.11"]` — the publish leg is a 6-cell 3 Python × 2 schema grid (all green on this release).
- **Tests**: `test_generated_integrity.py` and `test_loading_validation.py` parametrize over both tags via path-based module loading so non-identifier tags like `9.1.11` import cleanly. New `tests/live/` package (registered `live` marker) hits a real Proxmox node when `PROXMOX_API_URL` + token env vars are set; default `pytest` skips it.
- **Docs**: README, AGENTS, CLAUDE, `proxmox_sdk/CLAUDE.md`, plus the api-reference, architecture, codegen-pipeline, development, faq, sdk-internals, and sdk-mock guides bumped 8.1 → 9.1.11, with a new "Supported Proxmox Versions" table in README and FAQ.

## Dependency bumps (#10)

Resolves six Dependabot security alerts (#4, #5, #6, #7, #8, #9):

| Package | Before | After | Advisory |
|---|---|---|---|
| granian | 2.7.2 | 2.7.4 | GHSA-mjqr-h33h-7gwh (WS subprotocol panic), GHSA-q39c-rjg2-h7r6 (WSGI header panic) |
| paramiko | 4.0.0 | 5.0.0 | GHSA-99vp-jmw3-6q42 (SHA-1 rsakey signature) |
| python-multipart | 0.0.26 | 0.0.28 | GHSA-59g5-xgcq-4qw3 (unbounded multipart-header DoS) |
| urllib3 | 2.6.3 | 2.7.0 | decompression-bomb bypass; sensitive headers forwarded across origins |

Direct-dependency floors raised: `paramiko>=5.0.0` (`extras.ssh`, `extras.all`), `granian>=2.7.4` (`extras.granian`). Transitive pins added via `[tool.uv] constraint-dependencies` so the published library does not over-constrain downstream resolution.

**Note:** paramiko 4.x → 5.x is a major bump; the SDK's paramiko surface (`SSHClient`, `WarningPolicy`, `connect`, `exec_command`, `SFTPClient.open`) is stable across the transition.

## Full changelog

https://github.com/emersonfelipesp/proxmox-sdk/compare/v0.0.4.post1...v0.0.4.post2

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.4.post2 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.4.post2 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post1

Title: proxmox-sdk v0.0.4.post1

Description: proxmox-sdk v0.0.4.post1

# proxmox-sdk v0.0.4.post1

proxmox-sdk v0.0.4.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.4.post1 |
| Tag | v0.0.4.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-13 21:21 UTC |
| Published | 2026-05-13 21:21 UTC |
| Target | 1d0ca96720c73512e033013e6174102d12fbb3c2 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Post-release rebuild of v0.0.4 from latest main. Includes the PBS client facade plus the RemoteSSHClient primitive and node hardware discovery commit that landed after the original v0.0.4 artifact was built.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.4.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.4.post1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4

Title: proxmox-sdk v0.0.4

Description: proxmox-sdk v0.0.4

# proxmox-sdk v0.0.4

proxmox-sdk v0.0.4

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.4 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.4 |
| Tag | v0.0.4 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-13 21:07 UTC |
| Published | 2026-05-13 21:06 UTC |
| Target | ac92ad1fa0d7c4e4426168c16c5ba5710c7966c8 |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Release the read-only PBSClient facade for issue #325 phase A. Includes the proxmox_sdk.pbs namespace, the pbs package extra, generated model formatting fixes, and deterministic codegen auth tests.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.4 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.4 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.3.post1

Title: proxmox-sdk v0.0.3.post1

Description: v0.0.3.post1

# proxmox-sdk v0.0.3.post1

v0.0.3.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.3.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.3.post1 |
| Tag | v0.0.3.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-22 22:45 UTC |
| Published | 2026-04-22 22:45 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's changed

Merges all v0.0.3 branch changes into main:

- **Proxy support fix** — authentication requests now correctly go through the configured proxy (`fe7b2cb`)
- **Explicit error types** — new structured exception classes for cleaner error handling (`fe7b2cb`)
- **Timeout/retry parameters** — `PROXMOX_API_TIMEOUT`, `PROXMOX_API_CONNECT_TIMEOUT`, `PROXMOX_API_RETRIES`, `PROXMOX_API_RETRY_BACKOFF` env vars + constructor params (`fe7b2cb`)
- **Security dependency bumps** — pytest and python-multipart updated to patched versions (`2fa5987`)
- **Documentation** — CLAUDE.md and MkDocs updated to document v0.0.3 changes (`13fc9c0`)

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.3.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.3.post1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.3

Title: proxmox-sdk v0.0.3

Description: proxmox-sdk v0.0.3

# proxmox-sdk v0.0.3

proxmox-sdk v0.0.3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.3 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.3 |
| Tag | v0.0.3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-22 20:26 UTC |
| Published | 2026-04-22 21:09 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## What's Changed

### Features
- **Proxy support fix**: Correct proxy handling for HTTPS — method is normalized once and double-proxy construction is avoided
- **Explicit error types**: New error classes for clearer failure handling
- **Timeout/retry params**: Configurable timeout and retry backoff on client

### Fixes
- SSL errors now fail fast and CLI config round-trips respect `retry_backoff`
- Dependency bumps: `pytest` and `python-multipart` patched versions
- Mock server: use `replace_collection` for array endpoints in custom mock data init

### Docs
- v0.0.3 proxy fix, error types, timeout/retry documented in CLAUDE.md and MkDocs

**Full Changelog**: https://github.com/emersonfelipesp/proxmox-sdk/compare/v0.0.2.post3...v0.0.3

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.3 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.3 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post3

Title: proxmox-sdk v0.0.2.post3

Description: v0.0.2.post3

# proxmox-sdk v0.0.2.post3

v0.0.2.post3

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post3 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.2.post3 |
| Tag | v0.0.2.post3 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-14 01:18 UTC |
| Published | 2026-04-14 01:31 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Changes

- CI: add nginx image to release Docker publish workflow (`latest-nginx`, `latest-granian`)
- Fix Docker target stage name from `runtime` to `raw` in release workflow
- Bump version to 0.0.2.post3

## Docker Images

| Image | Tag |
|-------|-----|
| Raw (uvicorn) | `emersonfelipesp/proxmox-sdk:0.0.2.post3` / `latest` |
| Nginx (HTTPS) | `emersonfelipesp/proxmox-sdk:0.0.2.post3-nginx` / `latest-nginx` |
| Granian (HTTPS) | `emersonfelipesp/proxmox-sdk:0.0.2.post3-granian` / `latest-granian` |

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.2.post3 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.2.post3 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post2

Title: proxmox-sdk v0.0.2.post2

Description: proxmox-sdk v0.0.2.post2

# proxmox-sdk v0.0.2.post2

proxmox-sdk v0.0.2.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post2 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.2.post2 |
| Tag | v0.0.2.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-13 19:20 UTC |
| Published | 2026-04-13 19:20 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## v0.0.2.post2

### Fixes
- Fix nginx Docker image build failure caused by missing `docker/nginx/proxmox-sdk-map.conf` after module rename refactor in v0.0.2.post1

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.2.post2 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.2.post2 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post1

Title: proxmox-sdk v0.0.2.post1

Description: proxmox-sdk v0.0.2.post1

# proxmox-sdk v0.0.2.post1

proxmox-sdk v0.0.2.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.2.post1 |
| Tag | v0.0.2.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-11 00:44 UTC |
| Published | 2026-04-11 00:45 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## Fix: Rename Python module from proxmox_openapi to proxmox_sdk

This post-release fixes the installed Python module name to match the PyPI distribution name.

**Breaking change (import name):** After installing `proxmox-sdk`, use:

```python
from proxmox_sdk import ProxmoxSDK
from proxmox_sdk.sdk.exceptions import ResourceException
```

instead of the old `proxmox_openapi` import path.

### Changes
- Renamed Python package directory `proxmox_openapi/` → `proxmox_sdk/`
- Updated all internal imports and references
- Updated Docker config filenames and entrypoints
- Bumped version to `0.0.2.post1`

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.2.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.2.post1 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2

Title: proxmox-sdk v0.0.2

Description: v0.0.2

# proxmox-sdk v0.0.2

v0.0.2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.2 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.2 |
| Tag | v0.0.2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-10 19:50 UTC |
| Published | 2026-04-11 00:03 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

**Full Changelog**: https://github.com/emersonfelipesp/proxmox-sdk/compare/v0.0.1...v0.0.2

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.2 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.2 |


---

# Source: https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.1

Title: proxmox-sdk v0.0.1

Description: v0.0.1

# proxmox-sdk v0.0.1

v0.0.1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxmox-sdk/releases/v0.0.1 |
| GitHub URL | https://github.com/emersonfelipesp/proxmox-sdk/releases/tag/v0.0.1 |
| Tag | v0.0.1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-04-04 21:52 UTC |
| Published | 2026-04-04 21:52 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

v0.0.1 release: adds release-gated test validation before PyPI publish and publishes the initial package release.

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/zipball/v0.0.1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxmox-sdk/tarball/v0.0.1 |


---

# Source: https://emersonfelipesp.com/netbox-pbs

Title: netbox-pbs

Description: NetBox plugin for Proxmox Backup Server — tracks datastores, backup jobs, verification schedules, and retention policies.

# netbox-pbs

NetBox plugin for Proxmox Backup Server — tracks datastores, backup jobs, verification schedules, and retention policies.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pbs |
| GitHub | https://github.com/emersonfelipesp/netbox-pbs |
| Developer guide | https://emersonfelipesp.com/netbox-pbs/developer |
| Roadmap | https://emersonfelipesp.com/netbox-pbs/roadmap |
| Releases | https://emersonfelipesp.com/netbox-pbs/releases |
| Stars | 0 |
| Forks | 0 |
| Latest release | n/a |

## Overview

netbox-pbs integrates Proxmox Backup Server (PBS) inventory into NetBox, giving your DCIM a complete picture of your backup infrastructure alongside the VMs and nodes it protects.

Datastores, backup jobs, tape drives, and pruning schedules are discovered automatically and linked to the Proxmox clusters and virtual machines already managed by netbox-proxbox.

## Features

- Automatic discovery of PBS datastores and their usage metrics
- Backup job tracking: status, schedule, last run, and next run
- Verification job and garbage collection schedule visibility
- Retention policy modeling per datastore
- Links PBS objects to existing Proxmox cluster and VM records
- Read-only discovery — never mutates resources on PBS
- REST API for all plugin models

## Stack

- NetBox plugin (Django / Python 3.12+)
- Proxmox Backup Server API integration
- netbox-proxbox (companion plugin for VM and cluster context)

## Install

Primary command:

```shell
pip install netbox-pbs
```

Requires a running Proxmox Backup Server instance and netbox-proxbox for cluster context.

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-pbs |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |
| Proxmox Backup Server Docs | https://pbs.proxmox.com/docs/ |


---

# Source: https://emersonfelipesp.com/netbox-pbs/developer

Title: netbox-pbs developer guide

Description: Developer guide for netbox-pbs.

# netbox-pbs developer guide

NetBox plugin for Proxmox Backup Server — tracks datastores, backup jobs, verification schedules, and retention policies.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pbs/developer |
| Showcase | https://emersonfelipesp.com/netbox-pbs |
| GitHub | https://github.com/emersonfelipesp/netbox-pbs |
| Releases | https://emersonfelipesp.com/netbox-pbs/releases |
| Release snapshot synced | 2026-01-01T00:00:00Z |

## Intro

netbox-pbs integrates Proxmox Backup Server (PBS) inventory into NetBox, giving your DCIM a complete picture of your backup infrastructure alongside the VMs and nodes it protects.

Datastores, backup jobs, tape drives, and pruning schedules are discovered automatically and linked to the Proxmox clusters and virtual machines already managed by netbox-proxbox.

## Architecture

- NetBox plugin (Django / Python 3.12+)
- Proxmox Backup Server API integration
- netbox-proxbox (companion plugin for VM and cluster context)

## Contributing

Development install:

```shell
pip install -e ".[dev]"
```

Pre-PR checks:



Code style:

- ruff
- black

Issues: https://github.com/emersonfelipesp/netbox-pbs/issues

## End-to-end tests

Framework: pytest

Run the test suite against a live NetBox instance.

Commands:

- unit: `pytest tests/`

Coverage:

- plugin models
- REST API endpoints

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-pbs |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |
| Proxmox Backup Server Docs | https://pbs.proxmox.com/docs/ |


---

# Source: https://emersonfelipesp.com/netbox-pbs/roadmap

Title: netbox-pbs roadmap

Description: Roadmap for netbox-pbs.

# netbox-pbs roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pbs/roadmap |
| Repository | emersonfelipesp/netbox-pbs |
| Generated | 2026-05-18 18:42 UTC |
| Open issues | 0 |
| Closed issues | 0 |
| Dependency edges | 0 |


---

# Source: https://emersonfelipesp.com/netbox-pbs/releases

Title: netbox-pbs releases

Description: Release index for netbox-pbs.

# netbox-pbs releases

NetBox plugin for Proxmox Backup Server — tracks datastores, backup jobs, verification schedules, and retention policies.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pbs/releases |
| GitHub releases | https://github.com/emersonfelipesp/netbox-pbs/releases |
| Repository | emersonfelipesp/netbox-pbs |
| Synced | 2026-01-01 00:00 UTC |
| Release count | 0 |
| Stars | 0 |
| Forks | 0 |


---

# Source: https://emersonfelipesp.com/netbox-pdm

Title: netbox-pdm

Description: NetBox plugin for Proxmox Datacenter Manager — models PDM nodes, remote clusters, subscriber views, and SDN topology.

# netbox-pdm

NetBox plugin for Proxmox Datacenter Manager — models PDM nodes, remote clusters, subscriber views, and SDN topology.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pdm |
| GitHub | https://github.com/emersonfelipesp/netbox-pdm |
| Developer guide | https://emersonfelipesp.com/netbox-pdm/developer |
| Roadmap | https://emersonfelipesp.com/netbox-pdm/roadmap |
| Releases | https://emersonfelipesp.com/netbox-pdm/releases |
| Stars | 1 |
| Forks | 0 |
| Latest release | v0.0.1 |

## Overview

netbox-pdm brings Proxmox Datacenter Manager (PDM) awareness into NetBox, mapping the multi-cluster topology managed by PDM into structured DCIM objects.

PDM nodes, remote cluster registrations, subscriber assignments, and scheduled tasks are all surfaced in NetBox alongside the rest of your infrastructure inventory.

## Features

- PDM node discovery and status tracking
- Remote cluster registration and subscriber view mapping
- Scheduled task visibility per PDM node
- SDN zone and VNET topology modeled as NetBox objects
- Links PDM objects to existing Proxmox cluster records
- Read-only discovery — never mutates resources on PDM
- REST API for all plugin models

## Stack

- NetBox plugin (Django / Python 3.12+)
- Proxmox Datacenter Manager API integration
- netbox-proxbox (companion plugin for cluster context)

## Install

Primary command:

```shell
pip install netbox-pdm
```

Requires a running Proxmox Datacenter Manager instance and netbox-proxbox for cluster context.

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-pdm |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |
| Proxmox PDM Docs | https://pve.proxmox.com/pve-docs/pdm-admin-guide.html |


---

# Source: https://emersonfelipesp.com/netbox-pdm/developer

Title: netbox-pdm developer guide

Description: Developer guide for netbox-pdm.

# netbox-pdm developer guide

NetBox plugin for Proxmox Datacenter Manager — models PDM nodes, remote clusters, subscriber views, and SDN topology.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pdm/developer |
| Showcase | https://emersonfelipesp.com/netbox-pdm |
| GitHub | https://github.com/emersonfelipesp/netbox-pdm |
| Releases | https://emersonfelipesp.com/netbox-pdm/releases |
| Release snapshot synced | 2026-10-07T04:19:19.117Z |

## Intro

netbox-pdm brings Proxmox Datacenter Manager (PDM) awareness into NetBox, mapping the multi-cluster topology managed by PDM into structured DCIM objects.

PDM nodes, remote cluster registrations, subscriber assignments, and scheduled tasks are all surfaced in NetBox alongside the rest of your infrastructure inventory.

## Architecture

- NetBox plugin (Django / Python 3.12+)
- Proxmox Datacenter Manager API integration
- netbox-proxbox (companion plugin for cluster context)

## Contributing

Development install:

```shell
pip install -e ".[dev]"
```

Pre-PR checks:



Code style:

- ruff
- black

Issues: https://github.com/emersonfelipesp/netbox-pdm/issues

## End-to-end tests

Framework: pytest

Run the test suite against a live NetBox instance.

Commands:

- unit: `pytest tests/`

Coverage:

- plugin models
- REST API endpoints

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-pdm |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |
| Proxmox PDM Docs | https://pve.proxmox.com/pve-docs/pdm-admin-guide.html |


---

# Source: https://emersonfelipesp.com/netbox-pdm/roadmap

Title: netbox-pdm roadmap

Description: Roadmap for netbox-pdm.

# netbox-pdm roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pdm/roadmap |
| Repository | emersonfelipesp/netbox-pdm |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 0 |
| Closed issues | 1 |
| Dependency edges | 0 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #3

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #3 | closed | Prepare netbox-pdm for NetBox plugin certification |  |  | https://github.com/emersonfelipesp/netbox-pdm/issues/3 |


---

# Source: https://emersonfelipesp.com/netbox-pdm/releases

Title: netbox-pdm releases

Description: Release index for netbox-pdm.

# netbox-pdm releases

NetBox plugin for Proxmox Datacenter Manager — models PDM nodes, remote clusters, subscriber views, and SDN topology.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pdm/releases |
| GitHub releases | https://github.com/emersonfelipesp/netbox-pdm/releases |
| Repository | emersonfelipesp/netbox-pdm |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 1 |
| Stars | 1 |
| Forks | 0 |

## Release index

- [v0.0.1](https://emersonfelipesp.com/netbox-pdm/releases/v0.0.1) - v0.0.1 - 2026-05-18 - latest


---

# Source: https://emersonfelipesp.com/netbox-pdm/releases/v0.0.1

Title: netbox-pdm v0.0.1

Description: v0.0.1

# netbox-pdm v0.0.1

v0.0.1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-pdm/releases/v0.0.1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-pdm/releases/tag/v0.0.1 |
| Tag | v0.0.1 |
| State | latest |
| Author | emersonfelipesp |
| Created | 2026-05-18 06:39 UTC |
| Published | 2026-05-18 10:23 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

**Full Changelog**: https://github.com/emersonfelipesp/netbox-pdm/commits/v0.0.1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-ceph

Title: netbox-ceph

Description: NetBox plugin for Ceph — maps clusters, OSDs, storage pools, monitors, and CRUSH topology into NetBox DCIM.

# netbox-ceph

NetBox plugin for Ceph — maps clusters, OSDs, storage pools, monitors, and CRUSH topology into NetBox DCIM.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-ceph |
| GitHub | https://github.com/emersonfelipesp/netbox-ceph |
| Developer guide | https://emersonfelipesp.com/netbox-ceph/developer |
| Roadmap | https://emersonfelipesp.com/netbox-ceph/roadmap |
| Releases | https://emersonfelipesp.com/netbox-ceph/releases |
| Stars | 0 |
| Forks | 0 |
| Latest release | v0.0.1 |

## Overview

netbox-ceph integrates Ceph distributed storage clusters into NetBox, giving your DCIM complete visibility into your storage infrastructure alongside the servers and VMs it backs.

OSDs, storage pools, monitors, and CRUSH rules are discovered and linked to physical hosts and Proxmox clusters already managed in NetBox.

## Features

- Ceph cluster health and status tracking in NetBox
- OSD inventory with device mapping to physical hosts
- Storage pool modeling: replication factor, usage, PGs
- Monitor and manager daemon visibility
- CRUSH rule and failure domain documentation
- Links Ceph objects to existing DCIM host records
- Read-only discovery — never mutates Ceph resources
- REST API for all plugin models

## Stack

- NetBox plugin (Django / Python 3.12+)
- Ceph REST API / `ceph` CLI integration
- Proxmox Ceph API (optional, for Proxmox-hosted clusters)

## Install

Primary command:

```shell
pip install netbox-ceph
```

Requires access to a Ceph cluster via REST API or admin socket.

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-ceph |
| Ceph Documentation | https://docs.ceph.com/ |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |


---

# Source: https://emersonfelipesp.com/netbox-ceph/developer

Title: netbox-ceph developer guide

Description: Developer guide for netbox-ceph.

# netbox-ceph developer guide

NetBox plugin for Ceph — maps clusters, OSDs, storage pools, monitors, and CRUSH topology into NetBox DCIM.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-ceph/developer |
| Showcase | https://emersonfelipesp.com/netbox-ceph |
| GitHub | https://github.com/emersonfelipesp/netbox-ceph |
| Releases | https://emersonfelipesp.com/netbox-ceph/releases |
| Release snapshot synced | 2026-10-07T04:19:18.838Z |

## Intro

netbox-ceph integrates Ceph distributed storage clusters into NetBox, giving your DCIM complete visibility into your storage infrastructure alongside the servers and VMs it backs.

OSDs, storage pools, monitors, and CRUSH rules are discovered and linked to physical hosts and Proxmox clusters already managed in NetBox.

## Architecture

- NetBox plugin (Django / Python 3.12+)
- Ceph REST API / `ceph` CLI integration
- Proxmox Ceph API (optional, for Proxmox-hosted clusters)

## Contributing

Development install:

```shell
pip install -e ".[dev]"
```

Pre-PR checks:



Code style:

- ruff
- black

Issues: https://github.com/emersonfelipesp/netbox-ceph/issues

## End-to-end tests

Framework: pytest

Run the test suite against a live NetBox instance.

Commands:

- unit: `pytest tests/`

Coverage:

- plugin models
- REST API endpoints

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-ceph |
| Ceph Documentation | https://docs.ceph.com/ |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |


---

# Source: https://emersonfelipesp.com/netbox-ceph/roadmap

Title: netbox-ceph roadmap

Description: Roadmap for netbox-ceph.

# netbox-ceph roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-ceph/roadmap |
| Repository | emersonfelipesp/netbox-ceph |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 0 |
| Closed issues | 2 |
| Dependency edges | 0 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #9, #3

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #9 | closed | Ceph v2: align netbox-ceph response parsing with proxbox-api PlanResponse/OperationRun |  |  | https://github.com/emersonfelipesp/netbox-ceph/issues/9 |
| #3 | closed | Prepare netbox-ceph for NetBox plugin certification |  |  | https://github.com/emersonfelipesp/netbox-ceph/issues/3 |


---

# Source: https://emersonfelipesp.com/netbox-ceph/releases

Title: netbox-ceph releases

Description: Release index for netbox-ceph.

# netbox-ceph releases

NetBox plugin for Ceph — maps clusters, OSDs, storage pools, monitors, and CRUSH topology into NetBox DCIM.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-ceph/releases |
| GitHub releases | https://github.com/emersonfelipesp/netbox-ceph/releases |
| Repository | emersonfelipesp/netbox-ceph |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 1 |
| Stars | 0 |
| Forks | 0 |

## Release index

- [v0.0.1](https://emersonfelipesp.com/netbox-ceph/releases/v0.0.1) - v0.0.1 - 2026-05-18 - latest


---

# Source: https://emersonfelipesp.com/netbox-ceph/releases/v0.0.1

Title: netbox-ceph v0.0.1

Description: v0.0.1

# netbox-ceph v0.0.1

v0.0.1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-ceph/releases/v0.0.1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-ceph/releases/tag/v0.0.1 |
| Tag | v0.0.1 |
| State | latest |
| Author | emersonfelipesp |
| Created | 2026-05-18 06:39 UTC |
| Published | 2026-05-18 10:23 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

**Full Changelog**: https://github.com/emersonfelipesp/netbox-ceph/commits/v0.0.1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-packer

Title: netbox-packer

Description: NetBox plugin for HashiCorp Packer — links image builds, template versions, and artifact metadata to NetBox virtual machine records.

# netbox-packer

NetBox plugin for HashiCorp Packer — links image builds, template versions, and artifact metadata to NetBox virtual machine records.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-packer |
| GitHub | https://github.com/emersonfelipesp/netbox-packer |
| Developer guide | https://emersonfelipesp.com/netbox-packer/developer |
| Roadmap | https://emersonfelipesp.com/netbox-packer/roadmap |
| Releases | https://emersonfelipesp.com/netbox-packer/releases |
| Stars | 0 |
| Forks | 0 |
| Latest release | v0.0.2.post1 |

## Overview

netbox-packer connects HashiCorp Packer build pipelines to NetBox, creating a traceable link between golden image templates and the virtual machines that run them.

Packer templates, build runs, artifact versions, and platform metadata are stored in NetBox and associated with the VM records managed by netbox-proxbox.

## Features

- Packer template registry with version tracking
- Build run history: status, duration, artifact output
- Artifact version linked to NetBox VM and platform records
- Builder and provisioner metadata documentation
- Image ancestry: which VM was built from which template version
- REST API for all plugin models
- Webhook-ready for CI/CD pipeline integration

## Stack

- NetBox plugin (Django / Python 3.12+)
- HashiCorp Packer HCL2 template parsing
- netbox-proxbox (companion plugin for VM context)

## Install

Primary command:

```shell
pip install netbox-packer
```

Requires netbox-proxbox for VM context. Packer builds push metadata via the plugin REST API.

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-packer |
| HashiCorp Packer Docs | https://developer.hashicorp.com/packer/docs |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |


---

# Source: https://emersonfelipesp.com/netbox-packer/developer

Title: netbox-packer developer guide

Description: Developer guide for netbox-packer.

# netbox-packer developer guide

NetBox plugin for HashiCorp Packer — links image builds, template versions, and artifact metadata to NetBox virtual machine records.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-packer/developer |
| Showcase | https://emersonfelipesp.com/netbox-packer |
| GitHub | https://github.com/emersonfelipesp/netbox-packer |
| Releases | https://emersonfelipesp.com/netbox-packer/releases |
| Release snapshot synced | 2026-10-07T04:19:19.040Z |

## Intro

netbox-packer connects HashiCorp Packer build pipelines to NetBox, creating a traceable link between golden image templates and the virtual machines that run them.

Packer templates, build runs, artifact versions, and platform metadata are stored in NetBox and associated with the VM records managed by netbox-proxbox.

## Architecture

- NetBox plugin (Django / Python 3.12+)
- HashiCorp Packer HCL2 template parsing
- netbox-proxbox (companion plugin for VM context)

## Contributing

Development install:

```shell
pip install -e ".[dev]"
```

Pre-PR checks:



Code style:

- ruff
- black

Issues: https://github.com/emersonfelipesp/netbox-packer/issues

## End-to-end tests

Framework: pytest

Run the test suite against a live NetBox instance.

Commands:

- unit: `pytest tests/`

Coverage:

- plugin models
- REST API endpoints

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-packer |
| HashiCorp Packer Docs | https://developer.hashicorp.com/packer/docs |
| netbox-proxbox | https://emersonfelipesp.com/netbox-proxbox |


---

# Source: https://emersonfelipesp.com/netbox-packer/roadmap

Title: netbox-packer roadmap

Description: Roadmap for netbox-packer.

# netbox-packer roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-packer/roadmap |
| Repository | emersonfelipesp/netbox-packer |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 0 |
| Closed issues | 11 |
| Dependency edges | 0 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #26, #24, #10, #9, #8, #7, #6, #5, #4, #3, #2

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #26 | closed | Integrate with proxbox-api image factory as stateless executor |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/26 |
| #24 | closed | Prepare netbox-packer for NetBox plugin certification |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/24 |
| #10 | closed | feat: multi-cluster build dispatch with node selection |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/10 |
| #9 | closed | feat: PackerInstallerConfig — versioned installer configuration storage |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/9 |
| #8 | closed | feat: HCP Packer Registry sync — import artifact metadata into NetBox |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/8 |
| #7 | closed | feat: template age policy — stale detection and scheduled rebuild |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/7 |
| #6 | closed | feat: pre-build node affinity validation (CPU arch + storage pool) |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/6 |
| #5 | closed | feat: VM-to-template lineage via VirtualMachine custom field |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/5 |
| #4 | closed | feat: RQ background job for async packer build execution |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/4 |
| #3 | closed | feat: PackerBuild model + POST /build/ action endpoint |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/3 |
| #2 | closed | feat: PackerTemplate model — VM template catalog with full NetBox surface |  |  | https://github.com/emersonfelipesp/netbox-packer/issues/2 |


---

# Source: https://emersonfelipesp.com/netbox-packer/releases

Title: netbox-packer releases

Description: Release index for netbox-packer.

# netbox-packer releases

NetBox plugin for HashiCorp Packer — links image builds, template versions, and artifact metadata to NetBox virtual machine records.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-packer/releases |
| GitHub releases | https://github.com/emersonfelipesp/netbox-packer/releases |
| Repository | emersonfelipesp/netbox-packer |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 3 |
| Stars | 0 |
| Forks | 0 |

## Release index

- [v0.0.2.post1](https://emersonfelipesp.com/netbox-packer/releases/v0.0.2.post1) - v0.0.2.post1 - 2026-05-18 - latest
- [v0.0.2 — NetBox Packer Plugin](https://emersonfelipesp.com/netbox-packer/releases/v0.0.2) - v0.0.2 - 2026-05-18 - stable
- [v0.0.1](https://emersonfelipesp.com/netbox-packer/releases/v0.0.1) - v0.0.1 - 2026-05-18 - stable


---

# Source: https://emersonfelipesp.com/netbox-packer/releases/v0.0.2.post1

Title: netbox-packer v0.0.2.post1

Description: v0.0.2.post1

# netbox-packer v0.0.2.post1

v0.0.2.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-packer/releases/v0.0.2.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-packer/releases/tag/v0.0.2.post1 |
| Tag | v0.0.2.post1 |
| State | latest |
| Author | emersonfelipesp |
| Created | 2026-05-18 15:46 UTC |
| Published | 2026-05-18 15:52 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## v0.0.2.post1

Post-release fixes:

- Add `license = "Apache-2.0"` to `pyproject.toml` (required by PyPI Warehouse)
- Add `[project.optional-dependencies] test` group so `pip install ".[test]"` works in the release validation CI job
- Fix PyPI publish workflow: switch to `pypa/gh-action-pypi-publish` for reliable API token authentication

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-packer/releases/v0.0.2

Title: netbox-packer v0.0.2

Description: v0.0.2 — NetBox Packer Plugin

# netbox-packer v0.0.2

v0.0.2 — NetBox Packer Plugin

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-packer/releases/v0.0.2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-packer/releases/tag/v0.0.2 |
| Tag | v0.0.2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 15:16 UTC |
| Published | 2026-05-18 15:27 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## v0.0.2 — Full plugin implementation

This release delivers the complete `netbox-packer` plugin for managing HashiCorp Packer VM template builds and catalog inside NetBox.

### Models
- **PackerTemplate** — catalog entry for a Packer-managed VM template with HCP Packer Registry sync, staleness tracking, and installer config linkage
- **PackerBuild** — individual build run record with incremental log streaming and status lifecycle
- **PackerInstallerConfig** — versioned OS installer configs (autoinstall/kickstart/preseed) with auto-SHA256 checksum
- **PackerBuildTarget** — multi-cluster node dispatch targets with priority ordering and capacity limits

### Features
- REST API with `/build/`, `/cancel/`, `/validate-node/` actions
- GraphQL schema for all four models
- RQ background jobs: `PackerBuildJob` and `PackerStalenessCheckJob`
- `NodeAffinityValidator` — checks node existence, CPU type, and storage pool against Proxmox before building
- HCP Packer Registry sync (`PackerHCPSyncJob`) — idempotent iteration-based sync
- VM-to-template lineage via `source_packer_template` custom field on VirtualMachine
- Management commands: `check_packer_staleness`, `import_installer_config`
- Navigation, search, and template extension (Derived VMs tab)

### CI
- Lint (ruff check + ruff format), static tests (pytest, no Django needed), and NetBox v4.6.0 source integration tests

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-packer/releases/v0.0.1

Title: netbox-packer v0.0.1

Description: v0.0.1

# netbox-packer v0.0.1

v0.0.1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-packer/releases/v0.0.1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-packer/releases/tag/v0.0.1 |
| Tag | v0.0.1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-18 06:39 UTC |
| Published | 2026-05-18 10:23 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

**Full Changelog**: https://github.com/emersonfelipesp/netbox-packer/commits/v0.0.1

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-openbao

Title: netbox-openbao

Description: NetBox plugin that keeps secret material in OpenBao while NetBox owns credential inventory, assignments, and audit.

# netbox-openbao

NetBox plugin that keeps secret material in OpenBao while NetBox owns credential inventory, assignments, and audit.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao |
| GitHub | https://github.com/emersonfelipesp/netbox-openbao |
| Developer guide | https://emersonfelipesp.com/netbox-openbao/developer |
| Roadmap | https://emersonfelipesp.com/netbox-openbao/roadmap |
| Releases | https://emersonfelipesp.com/netbox-openbao/releases |
| Stars | 0 |
| Forks | 0 |
| Latest release | v0.2.2 |

## Overview

netbox-openbao splits secret material from credential metadata. Private keys, passwords, and API tokens live only in OpenBao KV v2. Usernames, fingerprints, expiry dates, and device assignments stay in NetBox — searchable, filterable, and safe to export without a reveal permission.

Unlike browser-side vault plugins, every resolve path is server-side over the NetBox REST API, so automation and operators share one authorization model. Reveal is a separate permission, POST-only in the UI, JSON-only on the wire, and fully audited.

## Features

- No model field can hold secret material — changelog, exports, and REST GET responses are safe by construction
- Inventory queries (expiry, fingerprint, assignment) need zero OpenBao reads
- Dedicated reveal permission with object-level constraints in standard NetBox RBAC
- Staged rotation: write candidate alongside live version, promote on decision
- Per-tier AppRoles bound blast radius; optional broker mode keeps vault credentials off the NetBox host
- HashiCorp Vault supported as an alternative backend on the same wire contract
- Quick-add SSH password flow; broker mode and netbox-rpc integrate without a proprietary credential mirror

## Stack

- NetBox plugin (Django / Python 3.12+)
- OpenBao 2.6.x KV v2 (HashiCorp Vault optional)
- PostgreSQL 15+ with ltree
- Redis 6+ and NetBox RQ for background jobs

## Install

Primary command:

```shell
pip install netbox-openbao
```

Requires OpenBao (or Vault) with KV v2, AppRole auth, and per-engine SecretID in the NetBox process environment.

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-openbao |
| docs | https://emersonfelipesp.com/netbox-openbao/docs/ |
| broker | https://github.com/emersonfelipesp/netbox-openbao-broker |
| OpenBao | https://openbao.org/ |


---

# Source: https://emersonfelipesp.com/netbox-openbao/developer

Title: netbox-openbao developer guide

Description: Developer guide for netbox-openbao.

# netbox-openbao developer guide

NetBox plugin that keeps secret material in OpenBao while NetBox owns credential inventory, assignments, and audit.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/developer |
| Showcase | https://emersonfelipesp.com/netbox-openbao |
| GitHub | https://github.com/emersonfelipesp/netbox-openbao |
| Releases | https://emersonfelipesp.com/netbox-openbao/releases |
| Release snapshot synced | 2026-10-07T04:19:19.310Z |

## Intro

netbox-openbao splits secret material from credential metadata. Private keys, passwords, and API tokens live only in OpenBao KV v2. Usernames, fingerprints, expiry dates, and device assignments stay in NetBox — searchable, filterable, and safe to export without a reveal permission.

Unlike browser-side vault plugins, every resolve path is server-side over the NetBox REST API, so automation and operators share one authorization model. Reveal is a separate permission, POST-only in the UI, JSON-only on the wire, and fully audited.

## Architecture

- NetBox plugin (Django / Python 3.12+)
- OpenBao 2.6.x KV v2 (HashiCorp Vault optional)
- PostgreSQL 15+ with ltree
- Redis 6+ and NetBox RQ for background jobs

## Contributing

Development install:

```shell
pip install -e ".[dev]"
```

Pre-PR checks:



Code style:

- ruff
- black

Issues: https://github.com/emersonfelipesp/netbox-openbao/issues

## End-to-end tests

Framework: pytest

Run the test suite against a live NetBox instance.

Commands:

- unit: `pytest tests/`

Coverage:

- plugin models
- REST API endpoints

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/emersonfelipesp/netbox-openbao |
| docs | https://emersonfelipesp.com/netbox-openbao/docs/ |
| broker | https://github.com/emersonfelipesp/netbox-openbao-broker |
| OpenBao | https://openbao.org/ |


---

# Source: https://emersonfelipesp.com/netbox-openbao/roadmap

Title: netbox-openbao roadmap

Description: Roadmap for netbox-openbao.

# netbox-openbao roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/roadmap |
| Repository | emersonfelipesp/netbox-openbao |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 1 |
| Closed issues | 0 |
| Dependency edges | 0 |

## Timeline

### Phase 1 (open)

start anywhere

Issues: #1

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #1 | open | Problem with installing netbox-openbao |  |  | https://github.com/emersonfelipesp/netbox-openbao/issues/1 |


---

# Source: https://emersonfelipesp.com/netbox-openbao/releases

Title: netbox-openbao releases

Description: Release index for netbox-openbao.

# netbox-openbao releases

NetBox plugin that keeps secret material in OpenBao while NetBox owns credential inventory, assignments, and audit.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/releases |
| GitHub releases | https://github.com/emersonfelipesp/netbox-openbao/releases |
| Repository | emersonfelipesp/netbox-openbao |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 6 |
| Stars | 0 |
| Forks | 0 |

## Release index

- [v0.2.2](https://emersonfelipesp.com/netbox-openbao/releases/v0.2.2) - v0.2.2 - 2026-10-05 - latest
- [v0.2.1](https://emersonfelipesp.com/netbox-openbao/releases/v0.2.1) - v0.2.1 - 2026-10-03 - stable
- [v0.2.0](https://emersonfelipesp.com/netbox-openbao/releases/v0.2.0) - v0.2.0 - 2026-10-02 - stable
- [v0.1.0.post2](https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0.post2) - v0.1.0.post2 - 2026-10-02 - stable
- [v0.1.0.post1](https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0.post1) - v0.1.0.post1 - 2026-09-18 - stable
- [netbox-openbao v0.1.0](https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0) - v0.1.0 - 2026-09-17 - stable


---

# Source: https://emersonfelipesp.com/netbox-openbao/releases/v0.2.2

Title: netbox-openbao v0.2.2

Description: v0.2.2

# netbox-openbao v0.2.2

v0.2.2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/releases/v0.2.2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-openbao/releases/tag/v0.2.2 |
| Tag | v0.2.2 |
| State | latest |
| Author | emersonfelipesp |
| Created | 2026-10-05 15:48 UTC |
| Published | 2026-10-05 15:49 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-openbao 0.2.2

SSH quick-add can now create the connection IP address in the same transaction.

### Changes

- `new_ip_address` (a CIDR string such as `10.0.0.5/24`) on the quick-add REST action and the UI form, mutually exclusive with `ip_address`. The address is created inside the quick-add transaction, so a later failure rolls it back with everything else.
- An existing visible address with the same CIDR and no VRF is reused instead of creating a duplicate. Same-CIDR creation is serialized with a transaction-scoped lock.
- Creating the address needs the caller's own `ipam.add_ipaddress` permission.
- With neither input, the object's primary IP is used when the caller may view it. A hidden primary IP never blocks reusing a service that already has an address.
- A reused service keeps its address: a different explicitly requested address is rejected inside the transaction, and the same address is accepted.
- The response reports `ip_address_id` and `ip_address`, and only for an address the caller may view.

### Upgrade notes

No migration. Existing clients that pass `ip_address` or no address keep working.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-openbao/releases/v0.2.1

Title: netbox-openbao v0.2.1

Description: v0.2.1

# netbox-openbao v0.2.1

v0.2.1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/releases/v0.2.1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-openbao/releases/tag/v0.2.1 |
| Tag | v0.2.1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-10-03 14:44 UTC |
| Published | 2026-10-03 14:46 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## netbox-openbao 0.2.1

Connections now use NetBox's built-in Application Service instead of a plugin-specific endpoint model.

### Changes

- `ServiceEndpoint` is removed, with its REST routes, UI pages, menu entry and the `with-credential` action.
- A credential connects through the Application Service it is assigned to. The service must list exactly one IP address and exactly one TCP port; otherwise resolution fails closed with a clear error.
- The SSH host-key pin (`ssh_known_hosts_entry`, `ssh_strict_host_key_checking`) now lives on the credential assignment. SSH public keys reference the Application Service.
- New `POST assignments/{id}/reveal-credential/` reveals a credential only while the assignment still matches the approved revision, host and port, and re-checks authorization before and after the backend read.
- `GET resolve/` returns services with their `host`, `port` and `error`, plus assignments.
- Quick-add accepts an IP address for the new SSH service; only addresses the caller can view are accepted.
- The NMS credential importer commands are removed.

### Upgrade notes

Migration `0025_application_service_connection` carries host-key pins and SSH keys over to services, creates the login assignment for an endpoint that bound a credential without one, skips endpoints of deleted services, and stops with row-level diagnostics if keys or host-key settings conflict. Reversing it clears the SSH key inventory.

Clients of the removed endpoint routes must move to the Application Service resolver and the assignment reveal action. Fill in the IP address on every SSH Application Service.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-openbao/releases/v0.2.0

Title: netbox-openbao v0.2.0

Description: v0.2.0

# netbox-openbao v0.2.0

v0.2.0

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/releases/v0.2.0 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-openbao/releases/tag/v0.2.0 |
| Tag | v0.2.0 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-10-02 20:49 UTC |
| Published | 2026-10-02 20:51 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

- **Upgrade action required.** OpenBao login material (AppRole role and secret
  IDs, token, Kubernetes role, broker client certificate) and every plugin
  setting now live in encrypted NetBox models instead of `PLUGINS_CONFIG` and
  `NETBOX_BAO_*` environment variables. Runtime code no longer reads those
  sources; only the one-time `openbao_configure import-legacy-settings` and
  `import-env` commands do. Follow `docs/upgrading.md` in a maintenance window
  before relying on the upgraded plugin; until authentication material is
  stored, OpenBao access fails. Also added: a Settings page and API, and the
  `openbao_configure` management command for headless setup, connection tests
  and re-encryption after a `SECRET_KEY` rotation.
- One consolidated migration, `0024_engine_auth_material`, covers everything
  added since 0.1.0.post2: the service endpoint and credential schema models
  with their seed, the unique credential import source constraint, the
  idempotent `SSH` service template seed, each policy's former environment
  prefix retained as non-executable metadata, and the encrypted authentication
  material model. Databases that already recorded that name skip it.
- Service endpoints and an SSH public-key inventory, a permission-constrained
  metadata-only credential resolver, an atomic endpoint-with-credential write
  and a revision-bound endpoint reveal. Provider-specific imports remain the
  responsibility of consuming plugins.
- SSH credentials (`ssh-keypair`, `ssh-password`) must now be tied to an SSH
  Application Service: the chain is OpenBao Credential > Application Service
  (`ipam.Service`) > Device or Virtual Machine. Assigning an SSH credential
  directly to a Device or VM is rejected (other targets such as hypervisor
  endpoints are unaffected).
- Added a seeded `SSH` service template (`tcp/22`). Quick-add now builds the
  Application Service from a chosen service template and creates the
  credential on the same form; the optional "create service" checkbox is gone
  and the REST quick-add accepts `service_template` and `service_name` instead
  of `create_service`.
- NetBox 4.7 is now required; the 4.6 `protocol` + `ports` service path was
  removed. Existing direct Device/VM assignments of SSH credentials are not
  rewritten and stay editable; the Application Service rule applies to new
  assignments.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0.post2

Title: netbox-openbao v0.1.0.post2

Description: v0.1.0.post2

# netbox-openbao v0.1.0.post2

v0.1.0.post2

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0.post2 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-openbao/releases/tag/v0.1.0.post2 |
| Tag | v0.1.0.post2 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-10-01 17:43 UTC |
| Published | 2026-10-02 17:42 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

## 0.1.0.post2 - 2026-10-01

- Added atomic SSH quick-add and server-side SSH key-generation REST actions
  with bounded no-store responses, live target and permission enforcement,
  request-scoped secret custody, transactional compensation, and explicit
  unknown-outcome handling.
- Restored NetBox 4.6 and 4.7 quick-add compatibility by accepting the stable
  numeric content-type primary-key contract, rejecting labels and unassignable
  models, and preserving the configured key type when generated-key requests
  provide JSON `null`.
- Added exact `import_source` filtering to the credential API so audited RPC
  consumers resolve one imported legacy credential without receiving unrelated
  credential metadata and falsely reporting an ambiguous mapping.
- Added security, transaction, metadata-projection, quick-add compatibility,
  and credential-provenance regression coverage for these public API changes.
- No model or migration changes.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0.post1

Title: netbox-openbao v0.1.0.post1

Description: v0.1.0.post1

# netbox-openbao v0.1.0.post1

v0.1.0.post1

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0.post1 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-openbao/releases/tag/v0.1.0.post1 |
| Tag | v0.1.0.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-18 15:41 UTC |
| Published | 2026-09-18 15:48 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

Post-release repair of 0.1.0 for NetBox 4.6 and 4.7.

## Fixed

- The OpenBao procedure-run list page (Audit > Procedure runs) failed with `TypeError: BaseForm.__init__() got an unexpected keyword argument 'model'`. Its filter form now declares its model and offers engine, procedure, initiator (several at once), tag, and free-text filters. The list and detail pages are covered by view tests, and a new test instantiates every filter form so this class of error fails in CI.
- The main-branch production deployment override invoked the inner plugin helper before any authorization existed and always failed. The workflow now calls the authorizing deploy entry point with the claimed deployment proof.

## Compatibility

- No model or migration changes. Upgrading from 0.1.0 requires no database migration.
- Package: `netbox-openbao` 0.1.0.post1 (`netbox_openbao-0.1.0.post1-py3-none-any.whl`, `netbox_openbao-0.1.0.post1.tar.gz`).

## Validation

- Plugin test suite on NetBox 4.7.0 with `netbox_rpc` installed; the new procedure-run view tests pass.
- Production deployment verified from the immutable package.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0

Title: netbox-openbao v0.1.0

Description: netbox-openbao v0.1.0

# netbox-openbao v0.1.0

netbox-openbao v0.1.0

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-openbao/releases/v0.1.0 |
| GitHub URL | https://github.com/emersonfelipesp/netbox-openbao/releases/tag/v0.1.0 |
| Tag | v0.1.0 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-09-17 18:45 UTC |
| Published | 2026-09-17 20:15 UTC |
| Target | main |
| Synced | 2026-10-07 04:19 UTC |
| Assets | 0 |

## Release notes

NetBox OpenBao 0.1.0 introduces the production-ready OpenBao secrets integration for NetBox.

Highlights include:

- OpenBao cluster, secret-engine, policy, credential, assignment, and settings management.
- Secure credential reveal and audited access workflows.
- SSH credential quick-add support for NetBox objects.
- OpenBao initialization, unseal, recovery, and administrative procedure workflows.
- Package-first production deployment with signed deployment proofs and byte-exact artifact verification.

The production deployment at `https://netbox.nmulti.cloud` uses the immutable Gitea package built from source commit `7313d2db47a2fc9df64e6a8ce85d88e6138d5ae2`.

## Assets

No binary assets attached.

Source archives:

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


---

# Source: https://emersonfelipesp.com/netbox-rpc

Title: netbox-rpc

Description: NetBox plugin that catalogs audited remote procedures, dispatches them through netbox-rpc-backend, and records every execution in NetBox.

# netbox-rpc

NetBox plugin that catalogs audited remote procedures, dispatches them through netbox-rpc-backend, and records every execution in NetBox.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-rpc |
| GitHub | https://github.com/N-MultiCloud/netbox-rpc |
| Developer guide | https://emersonfelipesp.com/netbox-rpc/developer |
| Roadmap | https://emersonfelipesp.com/netbox-rpc/roadmap |
| Releases | https://emersonfelipesp.com/netbox-rpc/releases |
| Stars | 0 |
| Forks | 0 |
| Latest release | n/a |

## Overview

netbox-rpc is the Remote Command Policy bounded context inside NetBox. It owns the procedure catalog, approval and destructive gates, execution audit ledger, and backend dispatch — not SSH drivers or device protocol implementations. Those live in netbox-rpc-backend and other executor services.

Every host operation that would otherwise become an ad-hoc shell script becomes a seeded RPCProcedure with a params schema, Linux-service allowlist entry when applicable, and a visible execution history. Operators and automation share one NetBox RBAC model for execute, approve, and cancel.

## Features

- RPCProcedure catalog with versioned commands, effect classes, and optional approval/destructive gating
- Append-only RPCExecutionEvent ledger with projection fold — terminal states never transition backward
- RPCBackend registry selects netbox-rpc-backend (or other executors) without embedding drivers in the plugin
- Credential material resolved through netbox-openbao reveal when a procedure needs SSH keys or passwords
- Companion integrations: netbox-proxbox service monitoring, netbox-packer template verify, netbox-fileserver Samba, netbox-proxy NGINX deploy
- OpenBao host operations (health, seal status, policy reload) as audited procedures — never raw shell from other plugins
- nms rpc / nbx automation dispatch through the same REST API and permission checks as the UI

## Stack

- NetBox plugin (Django / Python 3.12+)
- PostgreSQL 15+ for procedure catalog and execution ledger
- Redis 6+ and NetBox RQ for async dispatch
- netbox-rpc-backend executor (FastAPI, multi-driver SSH layer)

## Install

Primary command:

```shell
pip install netbox-rpc
```

Requires netbox-rpc-backend reachable from NetBox and RPCBackend rows seeded for your estate. Companion plugins add optional procedure families.

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/N-MultiCloud/netbox-rpc |
| integrations | https://emersonfelipesp.com/netbox-rpc/integrations |
| backend | https://github.com/N-MultiCloud/netbox-rpc-backend |
| openbao | https://emersonfelipesp.com/netbox-openbao |
| proxbox | https://emersonfelipesp.com/netbox-proxbox |


---

# Source: https://emersonfelipesp.com/netbox-rpc/developer

Title: netbox-rpc developer guide

Description: Developer guide for netbox-rpc.

# netbox-rpc developer guide

NetBox plugin that catalogs audited remote procedures, dispatches them through netbox-rpc-backend, and records every execution in NetBox.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-rpc/developer |
| Showcase | https://emersonfelipesp.com/netbox-rpc |
| GitHub | https://github.com/N-MultiCloud/netbox-rpc |
| Releases | https://emersonfelipesp.com/netbox-rpc/releases |
| Release snapshot synced | 2026-10-07T04:19:18.711Z |

## Intro

netbox-rpc is the Remote Command Policy bounded context inside NetBox. It owns the procedure catalog, approval and destructive gates, execution audit ledger, and backend dispatch — not SSH drivers or device protocol implementations. Those live in netbox-rpc-backend and other executor services.

Every host operation that would otherwise become an ad-hoc shell script becomes a seeded RPCProcedure with a params schema, Linux-service allowlist entry when applicable, and a visible execution history. Operators and automation share one NetBox RBAC model for execute, approve, and cancel.

## Architecture

- NetBox plugin (Django / Python 3.12+)
- PostgreSQL 15+ for procedure catalog and execution ledger
- Redis 6+ and NetBox RQ for async dispatch
- netbox-rpc-backend executor (FastAPI, multi-driver SSH layer)

## Contributing

Development install:

```shell
pip install -e ".[dev]"
```

Pre-PR checks:



Code style:

- ruff
- black

Issues: https://github.com/N-MultiCloud/netbox-rpc/issues

## End-to-end tests

Framework: pytest

Run the test suite against a live NetBox instance.

Commands:

- unit: `pytest tests/`

Coverage:

- plugin models
- REST API endpoints

## Links

| Label |URL |
| --- | --- |
| repo | https://github.com/N-MultiCloud/netbox-rpc |
| integrations | https://emersonfelipesp.com/netbox-rpc/integrations |
| backend | https://github.com/N-MultiCloud/netbox-rpc-backend |
| openbao | https://emersonfelipesp.com/netbox-openbao |
| proxbox | https://emersonfelipesp.com/netbox-proxbox |


---

# Source: https://emersonfelipesp.com/netbox-rpc/roadmap

Title: netbox-rpc roadmap

Description: Roadmap for netbox-rpc.

# netbox-rpc roadmap

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-rpc/roadmap |
| Repository | N-MultiCloud/netbox-rpc |
| Generated | 2026-10-07 04:20 UTC |
| Open issues | 0 |
| Closed issues | 1 |
| Dependency edges | 0 |

## Timeline

### Phase 0 (shipped)

shipped

Issues: #1

## Issues

| Issue |State |Title |Milestone |Blocked by |URL |
| --- | --- | --- | --- | --- | --- |
| #1 | closed | Add seed migration for NGINX RPC procedures |  |  | https://github.com/N-MultiCloud/netbox-rpc/issues/1 |


---

# Source: https://emersonfelipesp.com/netbox-rpc/releases

Title: netbox-rpc releases

Description: Release index for netbox-rpc.

# netbox-rpc releases

NetBox plugin that catalogs audited remote procedures, dispatches them through netbox-rpc-backend, and records every execution in NetBox.

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/netbox-rpc/releases |
| GitHub releases | https://github.com/N-MultiCloud/netbox-rpc/releases |
| Repository | N-MultiCloud/netbox-rpc |
| Synced | 2026-10-07 04:19 UTC |
| Release count | 0 |
| Stars | 0 |
| Forks | 0 |


---

# Source: https://emersonfelipesp.com/sponsor

Title: Sponsor emersonfelipesp

Description: Support open-source NetBox, Proxmox, and NetDevOps tooling.

# Sponsor emersonfelipesp

I build NetBox, Proxmox and NetDevOps tooling in the open — netbox-proxbox, proxbox-api, netbox-sdk, proxmox-sdk and friends. Sponsorships keep that work flowing.

## Why sponsor

If a project here saved you a weekend, a sponsorship is the quickest way to say thanks and keep new features, releases and docs landing.

## Impact

Funds go straight into shipping releases, answering issues, and growing the open-source surface around NetBox + Proxmox.

## Ways to support

- [GitHub Sponsors](https://github.com/sponsors/emersonfelipesp) — Sponsor emersonfelipesp
- [Buy Me a Coffee](https://buymeacoffee.com/emersonfelipesp) — buy me a coffee
- [Patreon](https://patreon.com/emersonfelipesp) — back me on patreon

Either way — sponsor or not — thanks for stopping by.

## Canonical URL

https://emersonfelipesp.com/sponsor
