2.3 KiB
2.3 KiB
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-IDresponse header. - 2.2 Настроить CORS для чтения
X-Request-IDbrowser-клиентом. - 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.