Plugin Settings API¶
The ProxboxPluginSettings model is a singleton — there is exactly one row, accessed via singleton_key="default". It exposes runtime tuning parameters that control sync concurrency, NetBox client behavior, SSRF protection, and security.
GET and PATCH only
POST, PUT, and DELETE are not supported on this endpoint. Use PATCH to update individual settings.
GET /api/plugins/proxbox/settings/
GET /api/plugins/proxbox/settings/{id}/
PATCH /api/plugins/proxbox/settings/{id}/
For common API conventions (authentication, pagination, nested serializers), see API Overview.
Example — read current settings:
curl -H "Authorization: Token <token>" \
http://netbox.example.com/api/plugins/proxbox/settings/
Example — tune sync concurrency:
curl -X PATCH \
-H "Authorization: Token <token>" \
-H "Content-Type: application/json" \
-d '{
"proxbox_fetch_max_concurrency": 20,
"vm_sync_max_concurrency": 10,
"bulk_batch_size": 100
}' \
http://netbox.example.com/api/plugins/proxbox/settings/1/
Example — disable SSRF protection for a private-only deployment:
curl -X PATCH \
-H "Authorization: Token <token>" \
-H "Content-Type: application/json" \
-d '{"ssrf_protection_enabled": false}' \
http://netbox.example.com/api/plugins/proxbox/settings/1/
Sample response:
{
"id": 1,
"url": "/api/plugins/proxbox/settings/1/",
"display": "Proxbox Plugin Settings",
"singleton_key": "default",
"use_guest_agent_interface_name": true,
"proxbox_fetch_max_concurrency": 8,
"ignore_ipv6_link_local_addresses": true,
"netbox_max_concurrent": 1,
"netbox_max_retries": 5,
"netbox_retry_delay": "2.00",
"netbox_get_cache_ttl": "60.00",
"bulk_batch_size": 50,
"bulk_batch_delay_ms": 500,
"vm_sync_max_concurrency": 4,
"custom_fields_request_delay": "0.00",
"backend_log_file_path": "/var/log/proxbox.log",
"ssrf_protection_enabled": true,
"allow_private_ips": true,
"additional_allowed_ip_ranges": "",
"explicitly_blocked_ip_ranges": "",
"encryption_key": "",
"tags": [],
"custom_fields": {},
"created": "2026-01-01T00:00:00Z",
"last_updated": "2026-04-01T00:00:00Z"
}
Data Model¶
Read-Only Fields¶
These fields are set by the system and cannot be modified via PATCH:
| Field | Type | Description |
|---|---|---|
id |
integer | Database ID of the singleton row |
url |
string | Canonical API URL |
display |
string | Human-readable label |
singleton_key |
string | Always "default" — enforces the singleton constraint |
created |
datetime | When the settings record was created |
last_updated |
datetime | When the settings record was last modified |
Sync Tuning¶
| Field | Type | Description |
|---|---|---|
proxbox_fetch_max_concurrency |
integer | Maximum number of concurrent Proxmox API fetch operations |
vm_sync_max_concurrency |
integer | Maximum number of VMs synced in parallel per sync run |
bulk_batch_size |
integer | Number of objects per batch in bulk NetBox write operations |
bulk_batch_delay_ms |
integer | Delay in milliseconds between bulk write batches |
custom_fields_request_delay |
decimal | Delay in seconds between custom field update requests |
NetBox Client¶
| Field | Type | Description |
|---|---|---|
netbox_max_concurrent |
integer | Maximum concurrent connections to the NetBox API |
netbox_max_retries |
integer | Number of retry attempts on failed NetBox API requests |
netbox_retry_delay |
decimal | Delay in seconds between retry attempts |
netbox_get_cache_ttl |
decimal | TTL in seconds for cached NetBox GET responses |
Network Behavior¶
| Field | Type | Description |
|---|---|---|
use_guest_agent_interface_name |
boolean | When true, use the QEMU guest agent interface name instead of the Proxmox-reported name when syncing network interfaces |
ignore_ipv6_link_local_addresses |
boolean | When true, skip IPv6 link-local addresses (fe80::/64) during interface sync |
SSRF Protection¶
| Field | Type | Description |
|---|---|---|
ssrf_protection_enabled |
boolean | Enable SSRF protection on outbound requests from the plugin |
allow_private_ips |
boolean | When true, allow requests to RFC 1918 private IP ranges (disabled by default) |
additional_allowed_ip_ranges |
string | Newline-separated list of CIDR ranges to allow in addition to public IPs |
explicitly_blocked_ip_ranges |
string | Newline-separated list of CIDR ranges to always block regardless of other settings |
Security¶
| Field | Type | Description |
|---|---|---|
encryption_key |
string | Key used for encrypting sensitive values stored in the database |
Logging¶
| Field | Type | Description |
|---|---|---|
backend_log_file_path |
string | Path to the Proxbox backend log file displayed in the Backend Logs UI page |