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