Перейти к основному содержимому

Конфигурация развёртывания CodeGraph

Поддерживаемые границы секретов, переменных окружения и несекретных настроек. Страница объясняет назначение, порядок применения и проверку результата.

Начало работы

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 вызовы.

Применение и проверка изменения

  1. Создайте резервную копию .env, config.yaml и объявления проектов.
  2. Измените только одобренные значения, сохранив владельца и ограниченные права файлов.
  3. Перезапустите CodeGraph через service manager.
  4. Выполните общую readiness-команду из руководства по установке.
  5. Проверьте авторизацию, доступность проектов, актуальность 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 после изменений.

Далее: Установка · Быстрый старт