закрыта задача no-user-filename-in-log
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
# 🐞 Не писать имя файла пользователя в журнал
|
||||
|
||||
- **Тип:** fix
|
||||
- **Категория:** Очередь — сломано сейчас: каждая принятая запись кладёт имя файла живого пользователя в журнал контейнера, нарушение объявлено критическим и необратимым
|
||||
- **Зачем:** Приём кладёт имя файла, данное пользователем, в журнал контейнера на каждой принятой записи — инвариант приватности объявляет это критическим и необратимым.
|
||||
- **Теги:** review-2026-08-11
|
||||
|
||||
Инвариант «Содержимое записи остаётся приватным» (`CLAUDE.md`) запрещает писать
|
||||
имя файла пользователя в лог: «только длина и идентификаторы». Приём пишет.
|
||||
Строка идёт на **общем** шаге заведения задачи, то есть и для записей из
|
||||
Telegram, и для записей по HTTP.
|
||||
|
||||
Найдено проходом `review-specs` ревью дизайна change
|
||||
`2026-08-11-fix-http-handler-tests`; отчёт триажа —
|
||||
`openspec/changes/archive/2026-08-11-fix-http-handler-tests/review/triage.md`.
|
||||
Правка вынесена сюда решением человека на контрольной точке: задача была про проверки.
|
||||
|
||||
## Воспроизведение
|
||||
|
||||
```
|
||||
grep -n 'file_name' internal/service/transcribe.go
|
||||
```
|
||||
|
||||
Отдаёт `107: "file_name", fileName,` — поле в `s.logger.Info("Creating
|
||||
transcribe job", ...)`. Уровень `Info`, то есть в боевой конфигурации строка
|
||||
пишется. Приходит `fileName` из `CreateJobFromApi` и `CreateJobFromTelegram`
|
||||
без изменений — это то самое имя, которое дал отправитель.
|
||||
|
||||
## Затрагивает
|
||||
|
||||
- `internal/service/transcribe.go`, функция `createTranscribeJob` — журнальные
|
||||
строки шага заведения;
|
||||
- `docs/conventions/logging.md` — если после правки понадобится строка про то,
|
||||
чем имя заменяется.
|
||||
|
||||
## Критерии приёмки
|
||||
|
||||
- Имени, данного отправителем, нет ни в одной журнальной строке приёма. Оракул —
|
||||
прогон приёма с записью, чьё имя содержит опознаваемую строку, и `grep` этой
|
||||
строки по перехваченному журналу: ничего не найдено.
|
||||
- Идентификатор файла, его расширение и длина в журнале остаются: по ним путь
|
||||
записи прослеживается. Оракул — тот же перехваченный журнал, `file_id` и
|
||||
`size` на месте.
|
||||
|
||||
## Рамки
|
||||
|
||||
Прочие журнальные строки проекта здесь не пересматриваются. Полная сверка
|
||||
журнала с запретами — отдельная работа; эта задача закрывает названный
|
||||
инвариантом случай.
|
||||
|
||||
Reference in New Issue
Block a user