имя файла отправителя убрано из журнала приёма
- расширение приводится к перечню известных форматов прежде метки метрики: страница метрик открыта, и хвост имени уезжал на неё дословно - проверки приёма перехватывают все три потока журнала и читают реестр метрик, каждая падает при снятии того, что сторожит
This commit is contained in:
+28
-6
@@ -186,12 +186,34 @@ Telegram отправителю.
|
||||
который лежит **не в конфигурации**: его отпечаток хранит сама база.
|
||||
|
||||
Тексты расшифровок в логи не пишутся — логируется длина текста и
|
||||
идентификаторы. **Имя файла, данное отправителем, пишется**: строка
|
||||
`internal/service/transcribe.go:107` кладёт `file_name` на общем шаге заведения
|
||||
задачи, то есть для обоих входов. Это нарушение инварианта приватности из
|
||||
`CLAUDE.md`, оно объявлено критическим, и чинит его задача
|
||||
`no-user-filename-in-log`; её место в очереди —
|
||||
[tasks/BACKLOG.md](../tasks/BACKLOG.md).
|
||||
идентификаторы. Имя файла, данное отправителем, из журнала приёма убрано
|
||||
2026-08-11 задачей `no-user-filename-in-log`; запрет проверяют тесты приёма по HTTP на
|
||||
успешном пути и на пути отказа — они ищут значение, а не имя поля.
|
||||
|
||||
**Остаток: хвост после последней точки остаётся в журнале.** Расширение берётся
|
||||
из имени отправителя дословно (`filepath.Ext`), поэтому имя
|
||||
`запись.тайное-слово` отдаёт `тайное-слово`, а `Разговор с Петровым 11.08` —
|
||||
`08`. Оно стоит в собственном имени файла на диске, а путь к файлу логируется.
|
||||
Читает этот журнал владелец сервиса. Нормализация расширения на диске — отдельная
|
||||
работа, задачи на неё пока нет: формат имени файла объявлен необратимым и меняется
|
||||
решением человека.
|
||||
|
||||
**Наружу хвост не выходит.** Метки метрик (`file_extension` у
|
||||
`transcriber_input_file_size_bytes`, `source_format` у
|
||||
`transcriber_conversion_duration_seconds`) несут расширение, только приведённое к
|
||||
закрытому перечню известных форматов; всё прочее заменяется значением `other`.
|
||||
Это закрыто задачей `no-user-filename-in-log` 2026-08-11 вместе с самим именем.
|
||||
Заодно у метки размера принятой записи пропала ведущая точка (`.mp3` стало
|
||||
`mp3`) — форма выровнялась с меткой конвертации, которая точку не носила
|
||||
никогда. Ряды, собранные до выкладки, перестают пополняться: панель, отобранная
|
||||
по старому значению, покажет пустоту, и это не поломка.
|
||||
Требование важно тем, что `GET /metrics` открыт вместе с остальным: без
|
||||
приведения хвост читал бы кто угодно из интернета, а множеством значений метки
|
||||
распоряжался бы анонимный отправитель.
|
||||
|
||||
Приём из Telegram имени, данного человеком, до сервиса не доводит: оттуда
|
||||
приходит путь, выданный самим Telegram. Настоящее имя документа дальше проверки
|
||||
типа файла не идёт.
|
||||
|
||||
Токен бота попадает в URL скачивания файла (`file.Link(token)`), и этот URL
|
||||
нигде не логируется.
|
||||
|
||||
Reference in New Issue
Block a user