Files
healthlog/docs/tasks/items/token-and-secret-management.md
T
av 3d24248075 docs: документация приведена к канону av-dev-pm 4
- каждая запись каталога задач получила тип вместо тега kind: и префикса
  заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок
  секций канонический
- поправлены протухшие факты: нереализованные маршруты Read API, MCP и
  `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию
  диффа, периметр перестал дублировать security.md
- замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек
  storage и parsing
2026-08-05 19:09:35 +03:00

2.7 KiB
Raw Blame History

Развести токены контуров и убрать секреты из репозитория

  • Тип: feature
  • Категория: Инфра
  • Зачем: Проверка токенов выключена, 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 оба контура закрыты разными токенами.

Двигает строку «Завершения» цели: «Оба контура закрыты разными токенами, и без токенов сервис стартует только на localhost».