config: включение Telegram разведено с ключом доступа
- в секции [telegram] заведён обязательный ключ enabled: умолчания у него нет, файл без него негоден; bot_token стал только ключом доступа и при enabled = false не читается вовсе, а пустой при enabled = true роняет старт - выключенный вход даёт подъём одним входом без единого обращения к Telegram и записью INFO вместо прежнего WARN: это выбор владельца, а не отклонение - отказ разбора файла настроек больше не пересказывает toml — её ParseError несёт в тексте разбираемое значение, и оборванная строка секретного ключа уносила его в журнал; теперь называются путь, строка, столбец и последний ключ
This commit is contained in:
@@ -288,6 +288,20 @@ Telegram отправителю.
|
||||
конструктора теперь чистится отдельно. Нашло это ревью кода тремя проходами
|
||||
независимо; оракул — там же, в `bot_test.go`.
|
||||
|
||||
Третий путь закрыт задачей `telegram-enabled-flag` 2026-08-13, и он **шире
|
||||
токена бота**: до неё утечь мог любой секрет конфига. Отказ разбора файла
|
||||
настроек пересказывался как есть, а библиотека разбора собирает текст отказа из
|
||||
разбираемого куска — `toml.ParseError` кладёт в сообщение само значение. Строка
|
||||
секретного ключа с оборванной кавычкой — типовая поломка криво собранного
|
||||
шаблона выкладки — уносила ключ в журнал контейнера целиком. Теперь такой отказ
|
||||
пересобирается своими словами: путь, строка, столбец и последний ключ, без текста
|
||||
библиотеки; прочие отказы декодера собраны из имён ключей и типов и потому
|
||||
проходят как есть. Нашло это ревью дизайна, чинилось решением владельца в той же
|
||||
работе. Правило — [conventions/config.md](conventions/config.md), «Секреты»;
|
||||
оракулы — `internal/config/config_test.go`, проверки поломанного файла настроек.
|
||||
Остаточный риск назван там же: разрез опирается на то, какое семейство отказов
|
||||
несёт значения **в нынешней версии** библиотеки.
|
||||
|
||||
## Что вне модели
|
||||
|
||||
Перечислить явно.
|
||||
|
||||
Reference in New Issue
Block a user