Files
specs/openspec/changes/archive/2026-08-14-add-backend-structured-logging/tasks.md
T
2026-08-14 17:19:10 +03:00

2.3 KiB
Raw Blame History

1. Базовый logger и конфигурация

  • 1.1 Добавить валидируемый LOG_LEVEL, его production default и пример в backend-конфигурацию.
  • 1.2 Добавить nestjs-pino, настроить JSON stdout, уровни debug/info/warn/error, redaction и allowlisted HTTP serializers.
  • 1.3 Подключить Pino к Nest bootstrap с lifecycle-событиями запуска и штатного завершения.

2. Контекст и HTTP-события

  • 2.1 Добавить request context на AsyncLocalStorage: server-generated request ID, безопасный client request ID и X-Request-ID response header.
  • 2.2 Настроить CORS для чтения X-Request-ID browser-клиентом.
  • 2.3 Добавить единственное HTTP completion-событие с безопасным route template, duration и уровнем по outcome.
  • 2.4 Передавать public error code и stack 5xx из exception filter в completion-событие без изменения problem response.

3. Миграция backend-событий

  • 3.1 Перевести T-Bank client на allowlisted success/retry/failure события с duration, gRPC code и attempts.
  • 3.2 Перевести существующие Portfolio и Upcoming Events события на Pino logger и удалить прямой Nest Logger.
  • 3.3 Добавить внутренние user ID и brokerage account ID в контекст только в местах, где они уже доступны.

4. Проверка

  • 4.1 Добавить unit-тесты logger и config validation для уровней, JSON-формата и отсутствия запрещённых полей.
  • 4.2 Добавить backend e2e-тесты X-Request-ID, CORS, одного completion-события, 5xx error code/stack и безопасной деградации logging failure.
  • 4.3 Добавить тесты T-Bank client для уровней success/retry/final failure и correlation context.
  • 4.4 Выполнить npm run lint, npm test, npm run build в backend и openspec validate add-backend-structured-logging --type change --store wealth-ledger-specs.