Skip to content

SDK Node: plugin Fastify (request_id, request logging, headers, redaction default-on) #2

Description

@4lessandrodev

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

  • Plugin Fastify implementado e documentado
  • Testes comprovam request_id/headers e redaction
  • Saída valida contra schema do core-contracts (via testes)
  • Exemplo executável em examples/node-fastify

Tags

  • priority:high
  • type:feature
  • area:node
  • area:observability

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions