Минимизация журналирования · P48-C02

Диагностика писем: журнал из разрешенных полей

Тело письма, адрес и тестовый токен остаются во входе и не попадают в диагностический результат.

Задача и принятое решение

При ошибке парсинга удобно сериализовать весь объект письма. Вместе с причиной в журнал тогда уйдут адрес, содержание и заголовок авторизации.

Я собираю диагностическое событие по разрешенному списку, а не удаляю известные секреты из произвольного объекта. Сохраняются проверенный ID, код ошибки и признак повторяемости. Свободный текст исключения не копируется.

Все письма и токены в наборе искусственные. Проверяется преобразование события, не доступ к почтовому серверу.

Проверить решение

Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.

4Диагностических событий
1Повторяемых
3Полей в событии
requestIdcoderetryable
REQ-01parse_errorfalse
REQ-02timeouttrue
REQ-03schema_errorfalse
invalid-idunclassified_errorfalse

Новые поля входа не включаются автоматически. Для анализа содержимого нужен отдельный разрешенный просмотр, которого здесь нет.

Исходный набор

Авторский контрольный набор; не клиентские документы и не результаты внешней модели.

Изменить входные строки
Посмотреть исходные строки
requestIdcoderetryableemailsubjectbodytokenerrorText
REQ-01parse_errorfalseauthor1@example.invalidСметаПрошу проверить состав заказа из трех коробок.TEST-SECRET-AОшибка: тело письма недопустимо
REQ-02timeouttrueauthor2@example.invalidСрокКогда будет готов макет упаковки?TEST-SECRET-BСоединение не завершилось
REQ-03schema_errorfalseauthor3@example.invalidВложениеВ приложении новая версия таблицы цен.TEST-SECRET-CНе хватает поля quantity
bad id with bodyunknown-sensitive-textfalseauthor4@example.invalidЛичноеТекст не должен появиться в общем журнале.TEST-SECRET-DСекрет в описании ошибки

Что получилось

Четыре события сведены к requestId, code, retryable. Ни адреса, ни тела, ни один TEST-SECRET не вошли в результат. Неизвестный код заменен unclassified_error, а повтор разрешен только для timeout.

Выполненная проверка

ПроверкаРезультат
Весь выход не содержит адресов, тела или TEST-SECRETПройдена
Неизвестный код и непроверенный ID заменены безопасными значениямиПройдена
Новое вложенное поле с секретом не расширяет журналПройдена

Нужно отдельно контролировать логи библиотек и инфраструктуры. Эта функция не очищает уже записанные журналы.

Скачать материалы и повторить проверку

source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css

Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.