Skip to Content
Testingアプリのテンプレートとリミックス

アプリのテンプレートとリミックス

可用性

テンプレート manifest and app-record workflow is implemented。オペレーターが厳選したマニフェストを一覧表示し、マニフェストから新しいアプリ レコードを作成し、環境ストアの構成時に非シークレット環境値をシードし、対象となるアプリからクリーンなリミックス レコードを作成できます。

インスタンス化ではアプリはデプロイされません。宣言されたデータベース、バケット、および認証サービスは、自動的にはプロビジョニングされません。宣言されたサービスの中にはそれ自体がスタブのみであるため、マニフェスト宣言は依存関係が存在する証拠にはなりません。

マニフェストを参照する

GET /api/apps/templates?category=web&q=next GET /api/apps/templates/{template_id}

ギャラリーは一般公開されています。マニフェストには、ソース Git URL、ブランチ、実行時のデフォルト、環境変数スキーマ、および宣言されたサービスが記述されます。インスタンス化する前に、リポジトリ、現在のリビジョン、ライセンス、メンテナンス状態、およびランタイム コマンドを確認してください。マニフェストはオペレータのメタデータであり、セキュリティの承認ではありません。

2 つの組み込みシード マニフェストにより、API が空ではなくなります。外部リポジトリは変更または消滅する可能性があり、すべてのシードに対する自動スモーク テストはまだありません。

インスタンス化する

POST /api/apps/templates/{template_id}/instantiate Content-Type: application/json { "name": "My app", "env": { "NEXT_PUBLIC_APP_NAME": "My app" } }

この呼び出しにより、プライベート アプリ レコードが作成され、その app_id、ソース情報、ランタイム タイプ、および宣言されたサービスが返されます。マニフェストによって宣言されたキーのみが受け入れられます。秘密フィールドは、この呼び出しによってシードされません。

インスタンス化後:

  1. 新しいアプリのソースとランタイム設定を検査します。
  2. アプリ環境変数 を通じてシークレットを指定します。
  3. サービスの準備が整っていると明示的に報告されていない限り、実際の外部依存関係を自分で提供します。
  4. デプロイメントエンドポイントを呼び出します。そして
  5. ビルド、ヘルスチェック、アクティブ化を通じて展開を追跡します。

リミックス

POST /api/apps/{source_app_id}/remix Content-Type: application/json { "name": "My private remix" }

所有者は自分のアプリをリミックスできます。別のユーザーは、パブリックであり、リミックス可能としてマークされているアプリのみをリミックスできます。新しいアプリは非公開です。

リミックスには、ソース URL、ブランチ、デプロイメント タイプ、ポート、リネージが含まれます。環境値、シークレット、データベースまたはバケット参照、認証バインディング、チェックポイント、IDE 状態、またはデータを意図的にコピーします。また、リモート Git リポジトリをフォークしたり固定したりしません。ソース所有者が後でそのリポジトリを変更または削除すると、新しいデプロイメントが異なるか失敗する可能性があります。

永続的なリミックスを実現するには、管理するリポジトリにソースをフォークし、リビジョンを確認して固定し、新しいアプリのソースを更新してからデプロイします。

テンプレートの公開チェックリスト

テンプレートを使用可能として提示する前に、次のことを行ってください。

  • リポジトリとライセンスを確認します。
  • テストされたリビジョンをピン留めするか記録します。
  • インストール、ビルド、実行、ポート、および正常性の動作を検証します。
  • 秘密を暴露することなく、必要な環境フィールドをテストします。
  • 宣言されたすべてのサービスが実際に利用可能であることを確認します。そして
  • クリーンな環境でインスタンス化、デプロイ、スモークテスト、および削除を行います。