Pular para conteúdo

0032 — Rota de teste do GlitchTip sob o JWT xadm_admin

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-14 · Decidido em: 2026-09-14

Contexto

A decisão 0011 abriu /test como superfície pública e rate-limited para checar o pipe de erro em produção, inclusive o POST /test/glitchtip, que gera um evento no GlitchTip. A norma da casa para Java/Micronaut pede a rota de teste de erro autenticada (observabilidade): aberta, qualquer um gera evento no projeto do app, e um evento desses durante um deploy pode reprovar a camada do smoke que procura exceção nova.

Decisão

O POST /test/glitchtip exige o JWT interno com xadm_admin. Quem cobra é o AdminAuthFilter, que passa a cobrir a rota por path (@ServerFilter({"/api/admin/**", "/test/glitchtip"})): sem token a resposta é 401, e com token sem xadm_admin, 403 — ambos em problem+json. O GET /test segue público e mostra o curl com Bearer no lugar do formulário.

O mecanismo é o filtro, e não o @Secured(IS_AUTHENTICATED) da receita da norma: o central não usa o micronaut-security para autorização (decisões 0007 e 0015).

Consequências

  • Esta decisão supera o item 4 da 0011 só para a rota do GlitchTip; o resto de /test segue público.
  • O shared secret do integrador, aceito pelo mesmo filtro, também abre a rota.
  • A página /test perde o botão: um formulário do navegador não manda o header Authorization.

Alternativas consideradas

  • Manter a rota pública e registrar o desvio da norma: descartado. O rate limit por IP não impede que qualquer um gere evento no GlitchTip de produção.