アプリのテンプレートとリミックス
可用性
テンプレート 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、ソース情報、ランタイム タイプ、および宣言されたサービスが返されます。マニフェストによって宣言されたキーのみが受け入れられます。秘密フィールドは、この呼び出しによってシードされません。
インスタンス化後:
- 新しいアプリのソースとランタイム設定を検査します。
- アプリ環境変数 を通じてシークレットを指定します。
- サービスの準備が整っていると明示的に報告されていない限り、実際の外部依存関係を自分で提供します。
- デプロイメントエンドポイントを呼び出します。そして
- ビルド、ヘルスチェック、アクティブ化を通じて展開を追跡します。
リミックス
POST /api/apps/{source_app_id}/remix
Content-Type: application/json
{
"name": "My private remix"
}所有者は自分のアプリをリミックスできます。別のユーザーは、パブリックであり、リミックス可能としてマークされているアプリのみをリミックスできます。新しいアプリは非公開です。
リミックスには、ソース URL、ブランチ、デプロイメント タイプ、ポート、リネージが含まれます。環境値、シークレット、データベースまたはバケット参照、認証バインディング、チェックポイント、IDE 状態、またはデータを意図的にコピーします。また、リモート Git リポジトリをフォークしたり固定したりしません。ソース所有者が後でそのリポジトリを変更または削除すると、新しいデプロイメントが異なるか失敗する可能性があります。
永続的なリミックスを実現するには、管理するリポジトリにソースをフォークし、リビジョンを確認して固定し、新しいアプリのソースを更新してからデプロイします。
テンプレートの公開チェックリスト
テンプレートを使用可能として提示する前に、次のことを行ってください。
- リポジトリとライセンスを確認します。
- テストされたリビジョンをピン留めするか記録します。
- インストール、ビルド、実行、ポート、および正常性の動作を検証します。
- 秘密を暴露することなく、必要な環境フィールドをテストします。
- 宣言されたすべてのサービスが実際に利用可能であることを確認します。そして
- クリーンな環境でインスタンス化、デプロイ、スモークテスト、および削除を行います。