プロジェクト
project カテゴリの API オペレーションを 5 個カバーします。
| メソッド | パス | 説明 |
|---|---|---|
| GET | /v1/orgs/{orgSlug}/projects | — |
| POST | /v1/orgs/{orgSlug}/projects | プロジェクトを作成します |
| GET | /v1/orgs/{orgSlug}/projects/{projectName} | — |
| DELETE | /v1/orgs/{orgSlug}/projects/{projectName} | project の削除(runlot project delete) |
| GET | /v1/orgs/{orgSlug}/projects/{projectName}/overview | プロジェクト概要(ダッシュボードホーム) |
GET /v1/orgs/{orgSlug}/projects
operationId listProjects
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | 組織のプロジェクト | object |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/projects
プロジェクトを作成すると、ホスト名も発行されます。アサインメントはまだ作成されません — 最初のデプロイ時に作成されます。コードのないプロジェクトにノードをアサインすると、提供するものが何もないプロセスが起動してしまいます。
プロジェクト数の上限はここで強制されます(docs/limits.md §2)。組織の行をロックしてカウントするため、同時作成でも上限を超えることはありません。
operationId createProject
リクエストボディ: application/json ・ object
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 201 | 作成されたプロジェクト | Project |
| 403 | — | — |
| 409 | 名前が既に使用されている(project_name_taken、hostname_taken)か、プランのプロジェクト上限を超えています(project_limit)。project_limit の details は {limit, count, plan} です。メッセージから正規表現で数値を抜き出す実装は、文言が調整された日に静かに壊れます。再試行しても結果は変わらないため 409 です(403 は権限、429 は待ってから再試行すればうまくいくことを意味します)。 | Error |
GET /v1/orgs/{orgSlug}/projects/{projectName}
operationId getProject
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | プロジェクト | ProjectDetail |
| 403 | — | — |
| 404 | — | — |
DELETE /v1/orgs/{orgSlug}/projects/{projectName}
admin 以上が必要です。これは取り消せず、復旧用の世代も残りません。 戻る先の project がなくなるため、削除前の世代は誰も使えない blob になります。必要なデータは事前に runlot pg export でエクスポートしてください。
confirm フィールドには project の名前を正確に指定する必要があります。サーバーがこれをチェックする理由は org の削除と同じです — ダッシュボード・CLI・スクリプトという 3 つの呼び出し元がこのサーフェスを利用しています。
ティアダウンは、ルーティング → 処理中のリクエストとコミット → ノードのデータとオブジェクトストレージ → git リポジトリとバックアップ → メタデータ、の順に進みます。202 は開始したことを意味します。完了は GET /v1/orgs/{orgSlug}/operations/{opId} で確認してください。
operationId deleteProject
リクエストボディ: application/json ・ object
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 202 | ティアダウンオペレーションの開始 | OperationStarted |
| 400 | — | — |
| 403 | — | — |
| 404 | — | — |
| 409 | 別のオペレーションが進行中(op_in_flight) | Error |
GET /v1/orgs/{orgSlug}/projects/{projectName}/overview
プロジェクトを開いたときに概要画面が一度の呼び出しで取得する内容です — 現在配信中のデプロイとそのアップロード者、直近のデプロイいくつか、データベースの最新バックアップ、宣言済みリソースがプロビジョニングされているか、そしてこのプロジェクトの最近の通知です。これが答えるのは「今どうなっているか」であり、履歴ではありません — 履歴はタブがすべて提供します。
使用量はここには含まれません。cp-core が一定の期間で計算するため、getUsage を別途呼び出してください — 1 つのレスポンスにまとめると、cp-core が遅い日には概要全体がその分だけ長く待たされることになります。viewer 以上が必要です。
operationId getProjectOverview
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | Overview | ProjectOverview |
| 403 | — | — |
| 404 | — | — |