имя файла отправителя убрано из журнала приёма
- расширение приводится к перечню известных форматов прежде метки метрики: страница метрик открыта, и хвост имени уезжал на неё дословно - проверки приёма перехватывают все три потока журнала и читают реестр метрик, каждая падает при снятии того, что сторожит
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
## Why
|
||||
|
||||
Приём кладёт в журнал имя файла, которое дал отправитель, на каждой принятой
|
||||
записи. Имя записи из семейного архива — такое же содержимое личной переписки,
|
||||
как и сам текст расшифровки; инвариант приватности объявляет такую запись
|
||||
критической и необратимой, потому что строка уже уехала в журнал контейнера.
|
||||
|
||||
Доходит это имя до сервиса сегодня только по HTTP: из Telegram приходит путь,
|
||||
выданный самим Telegram, а не имя человека. Строка журнала при этом общая для
|
||||
обоих входов, и запрет пишется на неё, а не на транспорт.
|
||||
|
||||
## What Changes
|
||||
|
||||
- Журнал приёма перестаёт нести имя, данное отправителем. Правка ложится на
|
||||
общий шаг заведения задачи, через который идут оба входа.
|
||||
- Прослеживаемость приёма сохраняется: идентификатор записи, её расширение и
|
||||
размер в байтах в журнале остаются, по ним путь записи собирается отбором.
|
||||
- Запрет становится проверяемым, и проверяется он на успехе и на отказе: приём
|
||||
прогоняется с записью, чьё имя содержит опознаваемую строку, и журнал этой
|
||||
строки не содержит.
|
||||
- **Метка метрики перестаёт нести кусок имени.** Расширение — хвост после
|
||||
последней точки — берётся из имени отправителя и уезжало меткой на страницу
|
||||
метрик, которая отдаётся кому угодно. Теперь оно приводится к перечню
|
||||
известных форматов, всё прочее становится одним общим значением. Решение
|
||||
принято контрольной точкой уже после ревью кода, которое построило этот путь.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
Новых нет.
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `intake`: приём получает требование о том, чего его журнал нести не вправе, и
|
||||
о том, что в нём остаётся ради прослеживаемости.
|
||||
|
||||
## Impact
|
||||
|
||||
- `internal/service/transcribe.go`, общий шаг заведения задачи — журнальные
|
||||
строки приёма и обе метки, несущие расширение;
|
||||
- `internal/metrics` — приведение расширения к перечню известных форматов;
|
||||
- проверка приёма: новый прогон с опознаваемым именем и разбором перехваченного
|
||||
журнала;
|
||||
- `docs/conventions/logging.md` уже запрещает имена файлов пользователя — правки
|
||||
не требует, разве что строкой о том, чем имя заменено.
|
||||
Reference in New Issue
Block a user