49 файлов, миграция сделана командой tasks.py check --fix — той самой, ради которой в скрипте оставлена читаемость старой формы. Побочно тот же прогон проставил тег decomposed целям, у которых есть задачи: это его штатная работа. check после миграции зелёный, индексы согласованы. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
32 lines
2.4 KiB
Markdown
32 lines
2.4 KiB
Markdown
# Управление токенами и секретами
|
||
|
||
- **Секция:** инфра
|
||
- **Зачем:** Проверка токенов выключена, config.docker.toml коммитится — так нельзя выезжать наружу
|
||
- **Теги:** goal:deploy
|
||
|
||
Сейчас проверка токенов выключена сознательно — доверенная локальная сеть, — и
|
||
`config.docker.toml` коммитится без секретов. Для локальной разработки это
|
||
правильно, но это же делает выезд наружу опасным: одна забытая настройка
|
||
открывает историю здоровья всему интернету.
|
||
|
||
**Контуров теперь два, а не один.** С появлением каталога
|
||
(`GET /api/v1/metrics`, change `2026-08-02-katalog-i-rod-agregacii`) заработал
|
||
токен чтения, и цена у контуров разная: открытый приём означает мусор во входе,
|
||
открытое чтение — выгрузку всей истории здоровья любому, кто нашёл порт. Сервис
|
||
предупреждает на старте обоими сообщениями (`write auth disabled`,
|
||
`read auth disabled`), образцы конфига цену называют комментарием — но отказа
|
||
старта нет, и это решение осталось здесь.
|
||
|
||
Решается перед деплоем, не раньше — так договорились.
|
||
|
||
Шаги:
|
||
- раздельные токены приёма и чтения, генерация и хранение вне репозитория;
|
||
- сервис громко предупреждает на старте, если проверка выключена (уже есть),
|
||
и **отказывается стартовать**, если адрес прослушивания публичный, а токенов
|
||
нет;
|
||
- проверка в гейте, что в коммит не уехал файл с токеном (частично закрыта
|
||
`gitleaks`).
|
||
|
||
Готово, когда запуск без токенов возможен только на localhost, а на rivendell
|
||
оба контура закрыты разными токенами.
|