カスタムドメイン
hostnames カテゴリの API 操作 4 件を説明します。
| メソッド | パス | 説明 |
|---|---|---|
| GET | /v1/orgs/{orgSlug}/projects/{projectName}/hostnames | プロジェクトに接続されたドメインの一覧(runlot domain list) |
| POST | /v1/orgs/{orgSlug}/projects/{projectName}/hostnames | カスタムドメインを接続します(runlot domain add) |
| DELETE | /v1/orgs/{orgSlug}/projects/{projectName}/hostnames/{host} | カスタムドメインを切断します(runlot domain rm) |
| POST | /v1/orgs/{orgSlug}/projects/{projectName}/hostnames/{host}/verify | ドメインを今すぐ検証します(runlot domain verify) |
GET /v1/orgs/{orgSlug}/projects/{projectName}/hostnames
デフォルトホスト名(kind: default)とカスタムドメイン(kind: custom)をまとめて返します。各カスタムドメインのレコードには、公開する必要のある DNS レコード(verify)と現在のステータスが含まれます。viewer 以上の権限が必要です。
operationId listHostnames
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | 一覧取得 | HostnameList |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/projects/{projectName}/hostnames
名前は保存される前に小文字の punycode に正規化されます。ワイルドカードと runlot 自身のドメイン配下の名前(*.runlot.app、*.runlot.dev、*.runlot.io、アプリドメイン)は受け付けられません。
レコードは pending_dns 状態で作成され、その時点からその名前を予約します。 検証中は他のプロジェクトが同じ名前を使用することはできません。接続されるまでルーティングされないため、その間はその名前へのリクエストは404 unknown_hostname を返します。
同じプロジェクトから同じ名前を再度送信すると、既存のレコードが変更されずに返されるため、既に公開した検証トークンは有効なままです。member 以上の権限が必要です。監査ログには hostname.add として記録されます。
operationId addHostname
リクエストボディ: application/json ・ object
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | 新規作成されたレコード、または既存のレコード | Hostname |
| 400 | 有効な名前形式ではない(bad_request)、ワイルドカード、または自社ドメイン配下 | Error |
| 403 | — | — |
| 404 | — | — |
| 409 | このステータスには2種類の拒否が含まれます。hostname_taken — その名前は既に別のプロジェクトに属しています。hostname_limit — プロジェクトが既にプランのカスタムドメイン上限に達しています(Free は1、Pro はプロジェクトあたり50)。details には limit・count・plan が含まれるため、クライアントはテキストを解析せずに数値からメッセージを組み立てられます。プロジェクトが既に所有している名前を再送信した場合は、この方法では拒否されません — その場合も200が返されます。 | Error |
DELETE /v1/orgs/{orgSlug}/projects/{projectName}/hostnames/{host}
カスタムホスト名と、runlot DNS ゾーン内のその管理レコードをまとめて削除します。その名前へのリクエストはプロジェクトに届かなくなります。デフォルトホスト名は削除できません(400)。member 以上の権限が必要です。監査ログには hostname.delete として記録されます。
operationId deleteHostname
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 204 | 切断済み | — |
| 400 | これはデフォルトホスト名です | Error |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/projects/{projectName}/hostnames/{host}/verify
バックグラウンドジョブが毎分実行するのと同じ検証を即座に実行します。次の3つの条件のいずれかが満たされれば、所有権の検証は成功します:その名前が同じ org が所有する runlot ホスト型ゾーン内にある、_runlot-verify.<host> の TXT レコードが一致する、または <host> の CNAME がフォールバックオリジンを指している。
所有権の証明なしにドメインが active になることはありません。 検証に合格しない場合、ステータスは変更されず、lastError に観測された内容が記述されます。member 以上の権限が必要です。
operationId verifyHostname
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | 検証後のホスト名 | Hostname |
| 403 | — | — |
| 404 | — | — |