- расширение приводится к перечню известных форматов прежде метки метрики: страница метрик открыта, и хвост имени уезжал на неё дословно - проверки приёма перехватывают все три потока журнала и читают реестр метрик, каждая падает при снятии того, что сторожит
3.4 KiB
3.4 KiB
Why
Приём кладёт в журнал имя файла, которое дал отправитель, на каждой принятой записи. Имя записи из семейного архива — такое же содержимое личной переписки, как и сам текст расшифровки; инвариант приватности объявляет такую запись критической и необратимой, потому что строка уже уехала в журнал контейнера.
Доходит это имя до сервиса сегодня только по HTTP: из Telegram приходит путь, выданный самим Telegram, а не имя человека. Строка журнала при этом общая для обоих входов, и запрет пишется на неё, а не на транспорт.
What Changes
- Журнал приёма перестаёт нести имя, данное отправителем. Правка ложится на общий шаг заведения задачи, через который идут оба входа.
- Прослеживаемость приёма сохраняется: идентификатор записи, её расширение и размер в байтах в журнале остаются, по ним путь записи собирается отбором.
- Запрет становится проверяемым, и проверяется он на успехе и на отказе: приём прогоняется с записью, чьё имя содержит опознаваемую строку, и журнал этой строки не содержит.
- Метка метрики перестаёт нести кусок имени. Расширение — хвост после последней точки — берётся из имени отправителя и уезжало меткой на страницу метрик, которая отдаётся кому угодно. Теперь оно приводится к перечню известных форматов, всё прочее становится одним общим значением. Решение принято контрольной точкой уже после ревью кода, которое построило этот путь.
Capabilities
New Capabilities
Новых нет.
Modified Capabilities
intake: приём получает требование о том, чего его журнал нести не вправе, и о том, что в нём остаётся ради прослеживаемости.
Impact
internal/service/transcribe.go, общий шаг заведения задачи — журнальные строки приёма и обе метки, несущие расширение;internal/metrics— приведение расширения к перечню известных форматов;- проверка приёма: новый прогон с опознаваемым именем и разбором перехваченного журнала;
docs/conventions/logging.mdуже запрещает имена файлов пользователя — правки не требует, разве что строкой о том, чем имя заменено.