CodeGraph отделяет защищённые значения окружения от версионируемых несекретных настроек. Изменения должен вносить профессиональный администратор по процедурам управления секретами и изменениями заказчика. После этого нужно повторить readiness-проверку.
Источники конфигурации
| Источник | Назначение | Расположение в customer-развёртывании |
|---|---|---|
.env.example |
Привязанный к версии список поддерживаемых переменных | Только справочник; реальные секреты здесь не хранят |
.env |
Секреты и значения конкретного окружения | /opt/codegraph/.env |
config.yaml |
Несекретное поведение приложения и подстановка ${VARIABLE} |
/opt/codegraph/config.yaml |
projects.yaml |
Объявления проектов, если они используются профилем | /opt/codegraph/projects.yaml |
Не редактируйте Python-код для настройки развёртывания. Не помещайте credential в
config.yaml, Git, аргументы командной строки, текст service unit или сохранённые логи.
Обязательные production-значения
Используйте .env.example из установленной релизной версии. Как минимум задайте:
POSTGRES_PASSWORD=<secret-from-approved-store>
API_JWT_SECRET=<random-secret-at-least-64-characters>
API_ADMIN_PASSWORD=<unique-initial-admin-secret>
ENVIRONMENT=production
Также настройте обязательные ключи целостности Евы и credential хотя бы одного одобренного модельного провайдера, перечисленные в этой версии. Заполните placeholders рабочими значениями и задайте отдельные значения для каждого окружения.
API_JWT_SECRET должен быть случайным и содержать не менее 64 символов. При его ротации
существующие токены перестают действовать, поэтому согласуйте restart и повторную авторизацию
пользователей. Начальный credential администратора считайте bootstrap-секретом и меняйте по
процедуре управления учётными данными заказчика.
Сеть и browser origins
Явно перечислите доступные снаружи hosts и browser origins:
CORS_ALLOWED_ORIGINS=https://codegraph.customer.example
API_ALLOWED_HOSTS=codegraph.customer.example,api,codegraph-api
Не используйте wildcard origin для browser-доступа с credentials. TLS завершается в точке, определённой проектом развёртывания, а наружу публикуются только одобренные endpoints. Подключения к модельным провайдерам, репозиториям, телеметрии и уведомлениям остаются выключенными или заблокированными до настройки credentials и сетевых направлений.
Несекретные настройки приложения
В config.yaml хранятся типизированные несекретные параметры: включённые возможности runtime,
лимиты, выбор провайдера и ссылки ${VARIABLE}. Файл должен соответствовать установленной
версии. Удалённый или неизвестный ключ может не пройти проверку, а конфигурация от другой
версии — изменить поведение.
Для настроек проекта используйте поддерживаемые project- или dashboard-поверхности. Пути к внутренним хранилищам определяет runtime; их не передают в пользовательские или agent-facing вызовы.
Применение и проверка изменения
- Создайте резервную копию
.env,config.yamlи объявления проектов. - Измените только одобренные значения, сохранив владельца и ограниченные права файлов.
- Перезапустите CodeGraph через service manager.
- Выполните общую readiness-команду из руководства по установке.
- Проверьте авторизацию, доступность проектов, актуальность CPG и изменённую интеграцию.
Успешная загрузка конфигурации или ответ /health подтверждают только часть postconditions.
Для production-приёмки нужны также здоровье контейнеров и зависимостей, контроль доступа,
source provenance и доказательства связи с системами заказчика.
Границы диагностики
- Runtime отклоняет JWT secret: создайте новое значение длиной от 64 символов и обновите
защищённый
.env. - Browser-запрос отклонён: сравните точные scheme и host с
CORS_ALLOWED_ORIGINSиAPI_ALLOWED_HOSTS. - Провайдер недоступен: проверьте secret reference, egress-политику и доверенный CA; не отключайте TLS verification.
- Параметр неизвестен: сравните его с
.env.exampleиconfig.yamlточной релизной версии, не изменяя код приложения.
Источники контракта
.env.example— текущий перечень переменных окружения;config.yaml— экземпляр текущей схемы несекретных настроек;src/api/config.pyслужит только доказательством реализации и не редактируется заказчиком;src/config/unified_core/unified_config.py— поиск YAML и подстановка переменных;scripts/run_app_stack_readiness.py— проверка runtime после изменений.
Далее: Установка · Быстрый старт