0015 — GETs de leitura da API são anônimos¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-06-12 · Decidido em: 2026-06-12
Contexto¶
A API tem um POST de upload protegido por Bearer (@Secured(ROLE_API)) e um
conjunto de GETs de leitura (/processamentos, /{id}, /{id}/logs,
/{id}/arquivo). A pergunta: esses GETs exigem autenticação?
Decisão¶
Os GETs de leitura ficam anônimos (IS_ANONYMOUS), por escolha consciente.
Só o POST de upload e as operações destrutivas exigem credencial.
O que isso expõe a quem alcançar a rede do app:
- a lista e o detalhe dos processamentos (nomes de arquivo, métricas, status);
- os logs de execução (
/{id}/logs); - o XLS original (
/{id}/arquivo) — que contém dados de cliente.
Aceitável porque a API não é exposta na internet aberta: vive atrás do Traefik/rede interna do Coolify, e o acesso de leitura é conveniência de integração/diagnóstico. Se o cenário mudar (exposição pública), revisar e proteger os GETs sensíveis.
Consequências¶
- Integração e diagnóstico não precisam de token para ler — mais simples.
- Trade-off de segurança explícito: quem alcança a rede do app lê dados de cliente sem credencial. Documentar; não tratar como invisível.
- Detalhe confidencial que precise ser referenciado na doc sem publicar vai pra
docs/anexos/privado/(convenção do repo).
Alternativas consideradas¶
- Proteger os GETs com Bearer/sessão: mais seguro, mas quebra a integração de leitura e o diagnóstico rápido; desproporcional dado o isolamento de rede. Descartado por ora — reabrir se a API for exposta publicamente.