Visão geral
Entregar o componente mais usado no MVP: instrumentação do openaudit-search-api (Node/Fastify) com logs e correlação.
Contexto
Search-api precisa de logs estruturados sem PII, request_id automático e headers padrão. O plugin deve ser plug-and-play e seguir o schema LogEvent do core-contracts.
Descrição
Implementar em packages/node/ um plugin Fastify openauditObservabilityPlugin com:
request_id:
- gerar UUID se não vier
- setar header
X-Request-Id
- request logging (um evento por request):
- event.name:
http.request
- duration_ms
- status
- route/method
- helper para eventos internos:
logEvent(eventName, data, context)
- (ex.:
catalog.search, cache.hit)
- redaction default-on:
- remover/mascarar
req.query.q
- remover
authorization, cookie
- opção de adicionar paths extras
- configuração via options:
- serviceName, serviceVersion, env
- enableMetrics (opcional)
Regras:
- logs devem validar contra
log_event.schema.json.
- jamais logar
q bruto; apenas query_hash se fornecido pelo app.
Adicionar testes com fastify.inject:
- request_id gerado
- headers presentes
- logs não contêm campos proibidos
Impacto
Permite instrumentar rapidamente o search-api e padroniza auditoria operacional desde o MVP.
Referências
Definição de pronto
Tags
priority:high
type:feature
area:node
area:observability
Visão geral
Entregar o componente mais usado no MVP: instrumentação do
openaudit-search-api(Node/Fastify) com logs e correlação.Contexto
Search-api precisa de logs estruturados sem PII, request_id automático e headers padrão. O plugin deve ser plug-and-play e seguir o schema LogEvent do core-contracts.
Descrição
Implementar em
packages/node/um plugin FastifyopenauditObservabilityPlugincom:request_id:X-Request-Idhttp.requestlogEvent(eventName, data, context)catalog.search,cache.hit)req.query.qauthorization,cookieRegras:
log_event.schema.json.qbruto; apenasquery_hashse fornecido pelo app.Adicionar testes com fastify.inject:
Impacto
Permite instrumentar rapidamente o search-api e padroniza auditoria operacional desde o MVP.
Referências
Definição de pronto
Tags
priority:hightype:featurearea:nodearea:observability