User Story
Como operador do Kestrel, quero que requests ao proxy exijam API key válida e que cada request seja logado para auditoria.
Escopo
Autenticação (usecase + middleware)
- usecase/authenticate.go — AuthenticateUseCase: valida API key por prefixo + hash
- adapter/middleware/auth.go — extrai Bearer token, chama AuthenticateUseCase, injeta APIKey no context, retorna 401 se inválido
Logging Middleware
- adapter/middleware/logging.go — RequestLogger interface, mede latência, registra request/response, loga fallback metadata
Critérios de aceite
- Request sem Bearer token → 401
- Request com token inválido → 401
- Request com token válido → passa para handler
- APIKey injetada no context, acessível pelo handler
- Cada request logado com method, path, status, latência, request_id
- Coverage 100%
Referência
- docs/02-ARCHITECTURE.md
- docs/03-REQUEST-FLOW.md (middleware chain)
- docs/08-IMPLEMENTATION-PHASES.md — Fase 4
User Story
Como operador do Kestrel, quero que requests ao proxy exijam API key válida e que cada request seja logado para auditoria.
Escopo
Autenticação (usecase + middleware)
Logging Middleware
Critérios de aceite
Referência