Pular para conteúdo

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.