Создание окружений
Новое окружение создаётся ветвлением от любого существующего активного окружения. Процесс клонирует исходную базу данных и при необходимости копирует ресурсы конфигурации, предоставляя изолированное рабочее пространство для разработки или тестирования изменений.
Как создать новое окружение
Заголовок раздела «Как создать новое окружение»- Откройте выпадающий список Селектор окружений в верхней панели Backend Console.
- Нажмите кнопку + Создать окружение.
- Появится модальное окно с параметрами конфигурации.
Поля конфигурации
Заголовок раздела «Поля конфигурации»- Ветвь от: Выберите исходное окружение для ветвления. В качестве источника доступны только окружения со статусом
active. - Имя окружения: Введите уникальное имя для нового окружения (например,
staging,feature-auth,qa-sprint-12). Имена могут содержать только буквы, цифры, дефисы и подчёркивания.
Режим ветвления
Заголовок раздела «Режим ветвления»Выберите способ клонирования исходной базы данных:
- Full (схема + данные): Создаёт полную копию исходной базы данных, включая все структуры таблиц и строковые данные. Используйте при необходимости реалистичных данных для тестирования или QA.
- System (только схема): Копирует только схему базы данных (таблицы, столбцы, индексы, связи, перечисления, представления) без строковых данных. Используйте для чистых окружений разработки с пустым набором данных.
Копировать конфигурацию из источника
Заголовок раздела «Копировать конфигурацию из источника»Опционально копируйте конфигурации ресурсов из исходного окружения. Каждая опция управляется флажком и требует роли ProjectOwner:
- Провайдеры хранилища файлов: Копирование конфигураций провайдеров (S3, GCS, Azure, Filestack) в новое окружение. Каждый скопированный провайдер получает новый уникальный идентификатор.
- Маршруты шлюза: Копирование пользовательских маршрутов API gateway и webhook. Сохраняет конфигурацию маршрутизации в новом окружении.
- Конфигурация безопасности: Копирование источников CORS и настроек ограничения частоты. Обеспечивает наследование тех же сетевых политик, что и у родителя.
- Переменные окружения: Копирование пар ключ-значение переменных окружения. Позволяет новому окружению начинать с тех же секретов конфигурации, что и источник.
Примечание: Провайдеры аутентификации намеренно исключены из опций копирования по соображениям безопасности. Секреты клиента OAuth, учётные данные Cognito и другие ключи аутентификации должны настраиваться отдельно для каждого окружения, чтобы избежать случайного распространения учётных данных.
- Нажмите Создать окружение, чтобы начать процесс ветвления.

Что происходит при ветвлении
Заголовок раздела «Что происходит при ветвлении»При создании нового окружения выполняется следующая последовательность:
- Проверка: Система проверяет уникальность имени окружения и статус
activeисходного окружения. - Создание записи: Создаётся новая запись окружения и регистрируется в хранилище конфигурации платформы.
- Клонирование БД: Клонируется исходная база данных PostgreSQL. В режиме Full включаются все данные; в режиме System копируется только схема (структуры таблиц).
- Пользователи БД: Для клонированного окружения автоматически создаются новые защищённые учётные данные базы данных.
- Регистрация конфигурации: Новое окружение связывается с глобальными настройками проекта.
- Копирование ресурсов: При выборе — провайдеры файлов, маршруты шлюза, конфигурация безопасности и переменные окружения копируются из источника в новое окружение.
- Активация статуса: Статус окружения переходит в
active, окружение становится доступным.
При сбое любого шага система выполняет автоматический откат: клонированная база данных и связанные учётные данные удаляются, чтобы не оставалось «осиротевших» ресурсов.
GraphQL API
Заголовок раздела «GraphQL API»Mutation: branchEnvironment
Заголовок раздела «Mutation: branchEnvironment»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" } } }}Input Fields
Заголовок раздела «Input Fields»| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
projectId | String | Да | Уникальный идентификатор проекта |
name | String | Да | Имя нового окружения |
sourceEnvironment | String | Да | Имя окружения для ветвления |
mode | String | Да | Режим клонирования: "full" или "system" |
copyFileProviders | Boolean | Нет | Копировать конфигурации провайдеров хранилища файлов |
copyGatewayRoutes | Boolean | Нет | Копировать пользовательские маршруты API gateway |
copySecurityConfig | Boolean | Нет | Копировать настройки CORS и ограничения частоты |
copyEnvironmentVariables | Boolean | Нет | Копировать пары ключ-значение переменных окружения |
Требования к правам
Заголовок раздела «Требования к правам»- Создание окружения без флагов копирования требует стандартного доступа к проекту.
- Включение любого флага копирования (
copyFileProviders,copyGatewayRoutes,copySecurityConfig,copyEnvironmentVariables) требует роли ProjectOwner, так как эти операции затрагивают копирование чувствительных данных конфигурации.