В CRM хранятся личные данные людей — почта, телефоны, заметки о резидентах. Когда подключаешь систему слежения за ошибками, есть риск: вместе с ошибкой она утащит и эти личные данные в свой журнал. Это уже нарушение приватности. Нужно было видеть ошибки, но НЕ собирать при этом персональные данные.
Система ловит и показывает ошибки программы, но автоматически вырезает из них всё личное — почту, телефоны. Я вижу, что и где сломалось, но данные клиентов остаются в безопасности. И это реально проверено, а не «вроде настроено».
Представь, что у программы есть «чёрный ящик», который записывает каждый сбой — чтобы потом разобраться. Проблема: в момент сбоя рядом могут лежать личные данные человека, и они попадут в запись. Поэтому я поставил «фильтр на входе»: перед тем как сбой запишется, фильтр вычищает оттуда всё личное. Сама причина ошибки остаётся видна, а персональные данные — нет.
Закрыл «слепую зону»: раньше было видно только проблемы на стороне пользователя, а внутренняя часть была чёрной дырой. Теперь видны обе. И всё это без риска собрать личные данные клиентов — что для бизнеса с персональными данными критично (иначе штрафы и потеря доверия). Стоит бесплатно, ставится за пару часов.
sentry_sdk, инициализация ДО создания app, ленивая: if settings.SENTRY_DSN: → local/CI = no-op.send_default_pii=False + before_send-скруббер отдельным модулем (режет email/телефоны из текста исключений, request, breadcrumbs, extra; stacktrace не трогать). Покрыть unit-тестами..env.production (gitignored), меняет owner на сервере./api/v1/* (иначе nginx отдаёт SPA вместо бэка; проверка = 401 JSON, не 200 HTML).raise RuntimeError("...TestError...") → 500 → событие в трекере ~40с → убрать.