ADR 0001 — Guard JWT global com opt-out @Public()
- Status: Aceite
- Data: 2026-03
Contexto
A API mistura rotas de negócio (empresas, operacional, presença) com poucas rotas realmente anónimas (health, login, register, reset, portal). Esquecer um @UseGuards(JwtAuthGuard) numa rota nova seria um furo de autenticação.
Decisão
Registar JwtAuthGuard como APP_GUARD global. Rotas anónimas marcam-se explicitamente com @Public().
O JWT exige sub. Contexto de tenant: claim tenantId/tid ou cabeçalho x-tenant-id.
Consequências
- Positivo: novas rotas ficam autenticadas por omissão; o risco é o contrário (alguém marcar
@Public()sem necessidade). - Negativo: health/login/reset têm de lembrar o decorator; revisão de PRs deve procurar
@Public()novo. - Follow-up: catálogo em apis/00-visao-geral.md.