--- id: 010 title: Migrate to YAML-only configuration loading status: TODO created: 2026-03-08 --- ## Context В проекте используется смешанный подход конфигурации с переменными окружения. Требуется унифицировать источник конфигурации и оставить только `config.yaml`. ## Goal Убрать использование переменных окружения из runtime-конфигурации приложения и перевести загрузку всех параметров на чтение из `config.yaml`. ## Constraints - Соблюдать layered architecture из `AGENTS.md`. - Scope задачи: только механизм загрузки конфигурации и места её потребления. - Запрещено менять бизнес-правила и поведение use-case, не связанное с конфигурацией. - Не изменять файлы в `spec/`. ## Acceptance criteria - Runtime-конфигурация приложения загружается только из `config.yaml`. - Переменные окружения не используются для чтения параметров Controller, Service, Business Logic, Repository, Adapter, Observability и Alerts. - При отсутствии обязательных полей в `config.yaml` приложение завершает запуск с детерминированной ошибкой валидации конфигурации. - Тесты конфигурации больше не опираются на `monkeypatch` переменных окружения и проверяют чтение из YAML. ## Definition of Done - [ ] Удалено чтение переменных окружения из конфигурационного слоя. - [ ] Все компонентные секции конфигурации продолжают читаться из `config.yaml`. - [ ] Обновлены тесты конфигурации под YAML-only поведение. - [ ] Smoke test старта приложения проходит с валидным `config.yaml`. ## Tests - Обновить `tests/config/test_config_sections.py` под проверку YAML-only загрузки. - Добавить/обновить негативные тесты отсутствующих обязательных YAML-полей. - Проверить app startup smoke test с валидным `config.yaml`. ## Commands - `poetry run pytest tests/config/test_config_sections.py -q` - `poetry run pytest tests/smoke/test_app_import.py -q`