Configuracao¶
proxbox-api usa SQLite para configuracao local de bootstrap e dependencias em runtime.
Localizacao do banco¶
- Arquivo SQLite padrao:
database.dbna raiz do repositorio. - ORM: SQLModel.
- As tabelas sao criadas automaticamente no startup.
Endpoint NetBox¶
A configuracao do endpoint NetBox e gerenciada por:
POST /netbox/endpointGET /netbox/endpointPUT /netbox/endpoint/{netbox_id}DELETE /netbox/endpoint/{netbox_id}
Apenas um registro NetBox e permitido.
O modelo armazenado agora inclui:
token_version:v1ouv2token_key: necessario para token v2, ignorado no token v1token: o segredo do token
Exemplo de token NetBox v1¶
json
{
"name": "netbox-primary",
"ip_address": "10.0.0.20",
"domain": "netbox.local",
"port": 443,
"token_version": "v1",
"token": "<NETBOX_API_TOKEN>",
"verify_ssl": true
}
Exemplo de token NetBox v2¶
json
{
"name": "netbox-secondary",
"ip_address": "10.0.0.21",
"domain": "netbox.local",
"port": 443,
"token_version": "v2",
"token_key": "token-name",
"token": "<NETBOX_API_TOKEN_SECRET>",
"verify_ssl": true
}
Endpoints Proxmox¶
Os registros de endpoint Proxmox sao gerenciados por:
POST /proxmox/endpointsGET /proxmox/endpointsGET /proxmox/endpoints/{endpoint_id}PUT /proxmox/endpoints/{endpoint_id}DELETE /proxmox/endpoints/{endpoint_id}
Regras de autenticacao para create/update:
- Informe
password, ou ambostoken_nameetoken_value. token_nameetoken_valuedevem ser enviados juntos.- Os nomes dos endpoints devem ser unicos.
Exemplo com senha¶
json
{
"name": "pve-lab-1",
"ip_address": "10.0.0.10",
"domain": "pve-lab-1.local",
"port": 8006,
"username": "root@pam",
"password": "<PASSWORD>",
"verify_ssl": false
}
Exemplo com token¶
json
{
"name": "pve-lab-token",
"ip_address": "10.0.0.11",
"domain": "pve-lab-token.local",
"port": 8006,
"username": "root@pam",
"token_name": "api-token",
"token_value": "<TOKEN_VALUE>",
"verify_ssl": true
}
Comportamento de sessoes em runtime¶
- A sessao NetBox e derivada do endpoint NetBox armazenado.
- As sessoes Proxmox usam por padrao registros de endpoint do banco local.
- O modo legado (
source=netbox) continua suportado na dependencia de sessoes Proxmox.
Variaveis de ambiente¶
| Variavel | Padrao | Descricao |
|---|---|---|
PROXBOX_NETBOX_TIMEOUT |
120 |
Timeout da API NetBox em segundos. Aplicado ao netbox-sdk e as requisicoes internas. |
PROXBOX_NETBOX_MAX_RETRIES |
3 |
Numero de tentativas para falhas transientes do NetBox. |
PROXBOX_NETBOX_RETRY_DELAY |
1.0 |
Delay inicial, em segundos, para retries do NetBox. |
PROXBOX_VM_SYNC_MAX_CONCURRENCY |
4 |
Maximo de tarefas concorrentes de escrita no sync de VMs. |
PROXBOX_NETBOX_WRITE_CONCURRENCY |
8 |
Maximo de operacoes concorrentes de escrita no NetBox. |
PROXBOX_PROXMOX_FETCH_CONCURRENCY |
8 |
Maximo de operacoes concorrentes de leitura no Proxmox. |
PROXBOX_FETCH_MAX_CONCURRENCY |
8 |
Override legado de concorrencia usado por alguns entrypoints de sync. |
PROXBOX_CORS_EXTRA_ORIGINS |
(vazio) | Lista de origens CORS extras, separadas por virgula. |
PROXBOX_EXPOSE_INTERNAL_ERRORS |
nao definido | Quando 1, true ou yes, respostas HTTP 500 incluem detalhes internos da excecao. |
PROXBOX_STRICT_STARTUP |
nao definido | Quando 1, true ou yes, falha no mount de rotas Proxmox geradas interrompe o startup. |
PROXBOX_SKIP_NETBOX_BOOTSTRAP |
nao definido | Quando 1, true ou yes, nao cria o cliente NetBox padrao no startup. |
Comportamento de CORS¶
- Origens sao montadas a partir de endpoints NetBox mais origens de desenvolvimento padrao.
- Metodos sao liberados para todos (
allow_methods=["*"]).