コンテンツにスキップ

環境

環境機能は、バックエンド全体にGitのようなブランチングを提供します。各環境はアプリケーションの完全に分離されたコピーで、独自のデータベース、APIスキーマ、ロール、ファイルプロバイダー、ゲートウェイルート、セキュリティ設定を含み、本番データに影響を与えずに開発、テスト、変更のステージングが可能です。

すべてのプロジェクトは単一のmaster環境から始まります。そこから、既存の環境からデータベーススキーマ(およびオプションでデータ)を継承する新しい環境をブランチできます。各ブランチは独立して動作し、1つの環境で行った変更は明示的にマージするまで他に伝播しません。


  • 環境の分離: 各環境には独自のPostgreSQLデータベースがあり、ブランチ間の完全なデータ分離を保証します。
  • ブランチモード: 新しい環境を作成する際、Full(スキーマ+データ)またはSystem(スキーマのみ)のクローン戦略を選択します。
  • 設定のコピー: ファイルストレージプロバイダー、ゲートウェイルート、セキュリティ設定、環境変数はブランチ時にオプションでソース環境からコピーできます。
  • ステータスライフサイクル: 環境は、競合する操作を防ぐために定義された状態を遷移します — activebranchingmergingerrorarchived
  • 親子関係: 環境はdiffおよびmerge操作のための系譜を追跡するツリー構造を維持します。
  • Schema Diff: 前方のみのdiffセマンティクスを使用して、任意の2つの環境のデータベーススキーマを比較します。 Environment Diff を参照。
  • Merge: 自動バックアップ、選択的変更適用(cherry-pick)、トランザクションDDLで、1つの環境から別の環境にスキーマ変更を適用します。 Environment Merge を参照。
  • バックアップ: S3に保存された自動マージ前バックアップと手動バックアップで、削除された環境を含む任意のターゲット環境に復元可能。 Backups を参照。
  • マイグレーション履歴: 各マイグレーションを適用したユーザー、タイムスタンプ、適用された特定の変更を含む、すべてのマージ操作の完全な監査証跡。

すべてのバックエンドリソースは、現在選択されている環境にスコープされます。上部ナビゲーションバーの環境セレクターで環境を切り替えると、以下のリソースがその環境の状態を反映します:

リソース環境ごとのスコープ
データベーステーブルとスキーマはい
API Explorer (GraphQL)はい
SQL Playgroundはい
ロールベースアクセスはい
ファイルストレージプロバイダーはい
認証プロバイダーはい
API Keysはい
カスタムAPI Gatewayルートはい
セキュリティ設定 (CORS, Rate Limits)はい
環境変数はい
統合はい

注: 環境の切り替えは完全なコンテキストリロードをトリガーします。environmentコンテキストは、すべてのリクエストが正しいデータベースと設定に対して解決されるように、プラットフォーム全体のバックエンドサービスに伝播されます。


環境システムは、開発段階間でエンタープライズグレードの分離を提供するように設計されています:

  1. ストレージ分離: 各環境は専用のデータベースでサポートされています。これにより、開発環境のバグやデータ操作が本番データに影響を与えることはありません。
  2. 設定スコープ: APIキーからセキュリティポリシーまで、すべての設定は環境ごとに独立して管理されます。「Staging」でCORSポリシーを変更しても「Production」には影響しません。
  3. プラットフォーム全体のコンテキスト: 現在の環境は自動的にプラットフォーム全体に伝播されます。ファイルを閲覧、SQLクエリを実行、API呼び出しを行う場合でも、Archie Coreは正しい環境のリソースと対話していることを保証します。