{% extends 'base/layout.html' %} {% load form_helpers %} {% load i18n %} {% load proxbox_tags %} {% block title %}{% trans "Proxbox Settings" %}{% endblock %} {% block content %}

{% trans "Plugin Settings" %}

{% csrf_token %} {# Sync Settings Card #}
{% trans "Sync Settings" %}

{% blocktrans trimmed %} Configure runtime behavior for Proxbox synchronization. {% endblocktrans %}

{% render_field form.use_guest_agent_interface_name %} {% render_field form.proxbox_fetch_max_concurrency %} {% render_field form.ignore_ipv6_link_local_addresses %} {% render_field form.ensure_netbox_objects %} {% render_field form.delete_orphans %} {% render_field form.primary_ip_preference %} {% render_field form.parse_description_metadata %} {% render_field form.embed_description_metadata %} {% render_field form.default_role_qemu %} {% render_field form.default_role_lxc %} {% render_field form.backend_log_file_path %}
{# NetBox Integration Card #}
{% trans "NetBox Integration" %}

{% blocktrans trimmed %} Configure NetBox API connection behavior, caching, and bulk operation parameters. {% endblocktrans %}

{% render_field form.netbox_max_concurrent %} {% render_field form.netbox_timeout %} {% render_field form.netbox_write_concurrency %} {% render_field form.proxmox_fetch_concurrency %} {% render_field form.netbox_max_retries %} {% render_field form.netbox_retry_delay %} {% render_field form.netbox_get_cache_ttl %} {% render_field form.netbox_get_cache_max_entries %} {% render_field form.netbox_get_cache_max_bytes %} {% render_field form.bulk_batch_size %} {% render_field form.bulk_batch_delay_ms %} {% render_field form.backup_batch_size %} {% render_field form.backup_batch_delay_ms %} {% render_field form.vm_sync_max_concurrency %} {% render_field form.custom_fields_request_delay %}
{# Sync Overwrite Behavior — one card per resource category #}
{% trans "Sync Overwrite Behavior" %}

{% blocktrans trimmed %} Control whether sync overwrites specific fields on existing NetBox objects. These are the global defaults; individual Proxmox endpoints can override each value from their Settings tab. {% endblocktrans %}

{% for group_label, group_fields in overwrite_field_groups %}
{{ group_label }}
{% for field_name in group_fields %} {% render_field form|form_field:field_name %} {% endfor %}
{% endfor %} {# Proxmox API Card #}
{% trans "Proxmox API" %}

{% blocktrans trimmed %} Configure default timeout and retry behavior for Proxmox API requests. Individual endpoints can override these values. {% endblocktrans %}

{% render_field form.proxmox_timeout %} {% render_field form.proxmox_max_retries %} {% render_field form.proxmox_retry_backoff %}
{# SSRF Protection Card #}
{% trans "SSRF Protection" %}

{% blocktrans trimmed %} Configure Server-Side Request Forgery (SSRF) protection for endpoint validation. Endpoints registered in the database are automatically allowed. {% endblocktrans %}

{% render_field form.ssrf_protection_enabled %} {% render_field form.allow_private_ips %} {% render_field form.additional_allowed_ip_ranges %} {% render_field form.explicitly_blocked_ip_ranges %}
{# Diagnostics Card #}
{% trans "Diagnostics" %}

{% blocktrans trimmed %} Toggle diagnostic logging and error-detail behavior on the proxbox-api service. {% endblocktrans %}

{% render_field form.debug_cache %} {% render_field form.expose_internal_errors %}
{# NetBox Branching Integration Card #}
{% trans "NetBox Branching Integration" %}

{% blocktrans trimmed %} Auto-create a NetBox branch per Proxbox sync job and merge it back into main on success. Requires the netbox_branching plugin to be installed and listed last in PLUGINS. {% endblocktrans %}

{% render_field form.branching_enabled %} {% render_field form.branch_name_prefix %} {% render_field form.branch_on_conflict %}

{% trans "NetBox → Proxmox intent direction (advanced)" %}
{% blocktrans trimmed %} Enabling these settings allows merging a NetBox branch flagged apply_to_proxmox=True to dispatch CREATE / UPDATE writes to Proxmox via proxbox-api. DELETE still requires a separate DeletionRequest authorization chain. Off by default. {% endblocktrans %}

{% render_field form.netbox_to_proxmox_enabled %} {% render_field form.netbox_to_proxmox_typed_confirmation %} {% render_field form.intent_warn_plaintext_password %} {% render_field form.apply_destroy_confirmed %} {% render_field form.intent_apply_authorization_self_approve_allowed %} {% render_field form.intent_deletion_request_ttl_days %}
{# Hardware Discovery Card #}
{% trans "Hardware Discovery" %}

{% blocktrans trimmed %} Enable the opt-in SSH discovery pass that reflects chassis and NIC hardware facts onto NetBox custom fields during Proxmox sync. {% endblocktrans %}

{% render_field form.hardware_discovery_enabled %}
{# Encryption Card #}
{% trans "Encryption" %}

{% blocktrans trimmed %} Configure credential encryption for proxbox-api. When enabled, sensitive credentials are encrypted at rest using the key below. The encryption key can also be set via the PROXBOX_ENCRYPTION_KEY environment variable on the proxbox-api host. {% endblocktrans %}

{% render_field form.encryption_enabled %} {% render_field form.encryption_key %}
{% endblock %}