fix(ptica): скраб ПДн перед отправкой в мониторинг + честная подпись НДС в отчётах (#2457) #2749
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2749
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/ptica-pii-scrub-and-vat-label"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Волна 0 инвентаризации техдолга. Две независимые правки в backend «Птицы».
1. Персональные данные уходили в мониторинг незачищенными
У МЕРЫ скраб персональных данных перед отправкой события есть, у Птицы его не было вовсе — присутствовала только очистка секретов из URL. Механизм портирован один в один, чтобы дальше сопровождать одинаково: рекурсивная очистка по именам ключей в
request.data,extra,contexts, регистронезависимо.Проверено, что это не гипотетические поля:
backend/app/api/v1/pilot.py:27-58отправляетname,phone,emailпри записи заявки пилота. Имена с префиксомclient_в коде Птицы не встречаются — набор ключей выверен по факту, а не скопирован вслепую.Более серьёзная дыра нашлась попутно: в
workers/celery_app.pyобработчикbefore_sendотсутствовал полностью — то есть фоновый обработчик слал ошибки в мониторинг вообще без какой-либо очистки. Теперь оба места (main.pyи Celery) используют композицию: сначала скраб персональных данных, затем очистка URL.Восемь тестов, зеркалящих покрытие у МЕРЫ — минус специфичные для телеграм-бота, которого у Птицы нет.
2. Подпись в отчётах занижала состав суммы (#2457)
НДС (паркинг)→НДС (паркинг + коммерция)в экспорте DOCX и HTML.Подтверждено перед правкой:
services/generative/financial.py:743-751считает НДС как сумму по паркингу и нежилым помещениям; докстринг модуля прямо это описывает. То есть подпись систематически называла лишь часть того, что входит в число.Третье место найдено, но не тронуто:
frontend/src/components/concept/ConceptVariantsResult.tsx:659— та же подпись во фронтенде. Вне объёма backend-правки, нужен отдельный заход.Проверка
ruff checkиruff format --checkчисто. Полный набор тестов: 4549 passed, 52 skipped, 0 failed.Отдельно локализован предсуществующий дефект окружения, не связанный с этим PR: семь файлов в
tests/api/v1/шлют запрос без подмены отправки задачи в очередь, из-за чего в этом Windows-окружении происходит реальное обращение к Redis и зависание на разрешении имени. Проверено откатом правок на чистыйmain— воспроизводится идентично до и после, регрессом не является. В CI не проявляется: там отказ в соединении приходит сразу.