Окружения
Функция Окружения обеспечивает ветвление, подобное Git, для всего backend. Каждое окружение — это полностью изолированная копия приложения, включая собственную базу данных, схему API, роли, провайдеры файлов, маршруты шлюза и конфигурацию безопасности, что позволяет разрабатывать, тестировать и подготавливать изменения без влияния на производственные данные.
Каждый проект начинается с одного окружения master. Оттуда можно создавать ветви новых окружений, наследующих схему базы данных (и при необходимости данные) из любого существующего. Каждая ветвь работает независимо: изменения в одном окружении не распространяются на другие, пока вы явно не выполните merge.
Ключевые концепции
Заголовок раздела «Ключевые концепции»- Изоляция окружений: У каждого окружения своя база данных PostgreSQL, обеспечивающая полное разделение данных между ветвями.
- Режимы ветвления: При создании нового окружения выбирается стратегия клонирования Full (схема + данные) или System (только схема).
- Копирование конфигурации: Провайдеры хранилища файлов, маршруты шлюза, настройки безопасности и переменные окружения могут опционально копироваться из исходного окружения при ветвлении.
- Жизненный цикл статуса: Окружения переходят через определённые состояния —
active,branching,merging,errorиarchived— для предотвращения конфликтующих операций. - Родительско-дочерние отношения: Окружения образуют древовидную структуру, отслеживающую происхождение для операций diff и merge.
- Schema Diff: Сравнение схем баз данных любых двух окружений с семантикой diff только вперёд. См. Environment Diff.
- Merge: Применение изменений схемы из одного окружения в другое с автоматическим резервным копированием, выборочным применением изменений (cherry-pick) и транзакционным DDL. См. Environment Merge.
- Резервные копии: Автоматические предварительные копии перед merge и ручные копии, хранящиеся в S3, с возможностью восстановления в любое целевое окружение, включая удалённые. См. Backups.
- История миграций: Полный аудит всех операций merge, включая пользователя, применившего каждую миграцию, метку времени и конкретные изменения.
Область окружения
Заголовок раздела «Область окружения»Все ресурсы backend привязаны к выбранному в данный момент окружению. При переключении окружений с помощью Селектора окружений в верхней панели навигации следующие ресурсы отражают состояние этого окружения:
| Ресурс | Ограничено по окружению |
|---|---|
| Таблицы и схема БД | Да |
| API Explorer (GraphQL) | Да |
| SQL Playground | Да |
| Доступ на основе ролей | Да |
| Провайдеры хранилища файлов | Да |
| Провайдеры аутентификации | Да |
| API Keys | Да |
| Пользовательские маршруты API Gateway | Да |
| Конфигурация безопасности (CORS, Rate Limits) | Да |
| Переменные окружения | Да |
| Интеграции | Да |
Примечание: Переключение окружений вызывает полную перезагрузку контекста. Контекст environment распространяется по всем backend-сервисам платформы, чтобы каждый запрос обрабатывался с правильной базой данных и конфигурацией.
Безопасность и изоляция
Заголовок раздела «Безопасность и изоляция»Система окружений обеспечивает изоляцию корпоративного уровня между этапами разработки:
- Изоляция хранилища: Каждое окружение поддерживается выделенной базой данных. Это гарантирует, что ошибка или операция с данными в окружении разработки никогда не повлияет на производственные данные.
- Область конфигурации: Все настройки — от API-ключей до политик безопасности — управляются независимо по окружениям. Изменение политики CORS в “Staging” не затронет “Production”.
- Контекст платформы: Текущее окружение автоматически распространяется по всей платформе. Просматриваете ли вы файлы, выполняете SQL-запросы или делаете API-вызовы, Archie Core обеспечивает взаимодействие с ресурсами правильного окружения.