Monitoramento e integridade
Verificação de integridade - /api/health
-
Endpoint:
/api/health -
Método: GET
-
Descrição: Verificação de atividade de baixo custo para o aplicativo e a conexão SQLite. O
HEALTHCHECKdo Docker e o loop de espera do ponto de entrada usam esta URL no localhost. -
Resposta (íntegro):
{"status": "healthy","database": "connected","basicConnection": true,"initializationStatus": "complete","initializationComplete": true,"connectionHealth": true,"timestamp": "2024-03-20T10:00:00Z"} -
Resposta (degradado):
{"status": "degraded","database": "unavailable","basicConnection": false,"initializationStatus": "complete","initializationComplete": true,"connectionHealth": false,"connectionHealthError": "Database connection test failed","timestamp": "2024-03-20T10:00:00Z"} -
Resposta de Erro (503):
{"status": "unhealthy","error": "Database connection failed","message": "Connection timeout","timestamp": "2024-03-20T10:00:00Z"} -
Observações:
- Retorna 200 quando a inicialização é concluída e
SELECT 1é bem-sucedido - Retorna 503 quando a inicialização ou a verificação da conexão falha
- Não lista nomes de tabelas nem executa consultas de painel
- Nunca exige uma chave de API
- Quando qualquer lista de permissões de IP está habilitada, o IP do cliente deve ser loopback ou estar listado na lista CIDR administrativa ou externa (
403IP_NOT_ALLOWEDcaso contrário) - Clientes não loopback têm limite de taxa (
429PROBE_RATE_LIMITED, 30 por minuto e 120 por hora). Loopback (127.0.0.1,::1) nunca é limitado
- Retorna 200 quando a inicialização é concluída e
Sonda de conectividade - /api/ping
-
Endpoint:
/api/ping -
Método: GET
-
Descrição: Resposta
{ "ok": true }mínima usada pela verificação de conectividade do painel (a cada 30 segundos). -
Resposta:
{"ok": true} -
Observações:
- Nunca requer uma chave de API ou um cookie de sessão
- Mesma união de lista de permissões e regras de loopback que
/api/health - Clientes que não sejam de loopback têm taxa limitada (
429PROBE_RATE_LIMITED, 60/minuto e 600/hora)