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

Создание окружений

Новое окружение создаётся ветвлением от любого существующего активного окружения. Процесс клонирует исходную базу данных и при необходимости копирует ресурсы конфигурации, предоставляя изолированное рабочее пространство для разработки или тестирования изменений.


  1. Откройте выпадающий список Селектор окружений в верхней панели Backend Console.
  2. Нажмите кнопку + Создать окружение.
  3. Появится модальное окно с параметрами конфигурации.
  • Ветвь от: Выберите исходное окружение для ветвления. В качестве источника доступны только окружения со статусом active.
  • Имя окружения: Введите уникальное имя для нового окружения (например, staging, feature-auth, qa-sprint-12). Имена могут содержать только буквы, цифры, дефисы и подчёркивания.

Выберите способ клонирования исходной базы данных:

  • Full (схема + данные): Создаёт полную копию исходной базы данных, включая все структуры таблиц и строковые данные. Используйте при необходимости реалистичных данных для тестирования или QA.
  • System (только схема): Копирует только схему базы данных (таблицы, столбцы, индексы, связи, перечисления, представления) без строковых данных. Используйте для чистых окружений разработки с пустым набором данных.

Опционально копируйте конфигурации ресурсов из исходного окружения. Каждая опция управляется флажком и требует роли ProjectOwner:

  • Провайдеры хранилища файлов: Копирование конфигураций провайдеров (S3, GCS, Azure, Filestack) в новое окружение. Каждый скопированный провайдер получает новый уникальный идентификатор.
  • Маршруты шлюза: Копирование пользовательских маршрутов API gateway и webhook. Сохраняет конфигурацию маршрутизации в новом окружении.
  • Конфигурация безопасности: Копирование источников CORS и настроек ограничения частоты. Обеспечивает наследование тех же сетевых политик, что и у родителя.
  • Переменные окружения: Копирование пар ключ-значение переменных окружения. Позволяет новому окружению начинать с тех же секретов конфигурации, что и источник.

Примечание: Провайдеры аутентификации намеренно исключены из опций копирования по соображениям безопасности. Секреты клиента OAuth, учётные данные Cognito и другие ключи аутентификации должны настраиваться отдельно для каждого окружения, чтобы избежать случайного распространения учётных данных.

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

Модальное окно ветвления окружения с опциями копирования


При создании нового окружения выполняется следующая последовательность:

  1. Проверка: Система проверяет уникальность имени окружения и статус active исходного окружения.
  2. Создание записи: Создаётся новая запись окружения и регистрируется в хранилище конфигурации платформы.
  3. Клонирование БД: Клонируется исходная база данных PostgreSQL. В режиме Full включаются все данные; в режиме System копируется только схема (структуры таблиц).
  4. Пользователи БД: Для клонированного окружения автоматически создаются новые защищённые учётные данные базы данных.
  5. Регистрация конфигурации: Новое окружение связывается с глобальными настройками проекта.
  6. Копирование ресурсов: При выборе — провайдеры файлов, маршруты шлюза, конфигурация безопасности и переменные окружения копируются из источника в новое окружение.
  7. Активация статуса: Статус окружения переходит в active, окружение становится доступным.

При сбое любого шага система выполняет автоматический откат: клонированная база данных и связанные учётные данные удаляются, чтобы не оставалось «осиротевших» ресурсов.


mutation BranchEnvironment($input: BranchEnvironmentInput!) {
branchEnvironment(input: $input) {
success
message
environment {
id
name
parentId
parentName
branchMode
branchedAt
status
createdAt
updatedAt
}
}
}

Variables:

{
"input": {
"projectId": "f7e4a264-d659-4719-91e8-c2d74654e529",
"name": "staging",
"sourceEnvironment": "master",
"mode": "full",
"copyFileProviders": true,
"copyGatewayRoutes": true,
"copySecurityConfig": false,
"copyEnvironmentVariables": true
}
}

Response:

{
"data": {
"branchEnvironment": {
"success": true,
"message": "Environment created successfully",
"environment": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "staging",
"parentId": "master-env-id",
"parentName": "master",
"branchMode": "full",
"branchedAt": "2026-03-08T20:00:00Z",
"status": "active",
"createdAt": "2026-03-08T20:00:00Z",
"updatedAt": "2026-03-08T20:00:05Z"
}
}
}
}
ПолеТипОбязательноОписание
projectIdStringДаУникальный идентификатор проекта
nameStringДаИмя нового окружения
sourceEnvironmentStringДаИмя окружения для ветвления
modeStringДаРежим клонирования: "full" или "system"
copyFileProvidersBooleanНетКопировать конфигурации провайдеров хранилища файлов
copyGatewayRoutesBooleanНетКопировать пользовательские маршруты API gateway
copySecurityConfigBooleanНетКопировать настройки CORS и ограничения частоты
copyEnvironmentVariablesBooleanНетКопировать пары ключ-значение переменных окружения
  • Создание окружения без флагов копирования требует стандартного доступа к проекту.
  • Включение любого флага копирования (copyFileProviders, copyGatewayRoutes, copySecurityConfig, copyEnvironmentVariables) требует роли ProjectOwner, так как эти операции затрагивают копирование чувствительных данных конфигурации.