カスタムドメイン
hostnamesカテゴリの4個のAPI操作を扱います。
| メソッド | パス | 説明 |
|---|---|---|
| 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)がまとめて返されます。カスタムドメインのレコードには案内レコード(verify)とステータス(docs/domains.md §3.2)が含まれます。viewer 以上が必要です。
operationId listHostnames
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | 一覧取得 | HostnameList |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/projects/{projectName}/hostnames
名前は小文字の Punycode に正規化されて保存されます。ワイルドカード配下の名前、および当社のドメイン(*.runlot.app、*.runlot.dev、*.runlot.io、アプリドメイン)配下の名前は受け付けられません。
レコードは pending_dns 状態で作成され、その瞬間からその名前を予約します。 検証が完了するまでは、他のプロジェクトが同じ名前を使用することはできません。接続されるまでルーティングには追加されないため、その名前へのリクエストは 404 unknown_hostname を返します。
同じプロジェクトが同じ名前を再度送信した場合、既存の行がそのまま返されます(冪等)— トークンが変わると、すでに設置済みの TXT レコードが即座に不正になってしまうためです。member 以上。hostname.add として監査されます。
operationId addHostname
リクエストボディ: application/json ・ object
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | 新規作成されたレコード、または既存のレコード | Hostname |
| 400 | 有効な名前形式ではない(bad_request)、ワイルドカード、または自社ドメイン配下 | Error |
| 403 | — | — |
| 404 | — | — |
| 409 | 他のプロジェクトですでに使用されている名前です。code は hostname_taken です | Error |
DELETE /v1/orgs/{orgSlug}/projects/{projectName}/hostnames/{host}
Cloudflare のカスタムホスト名と Runlot DNS ゾーン内の管理レコードをまとめて削除します。デフォルトホスト名は削除できません(400)。デプロイがアドレスを決定するため、ここで削除すると次回のデプロイまでプロジェクトに到達できなくなります。member 以上が必要です。監査は hostname.delete です。
operationId deleteHostname
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 204 | 切断済み | — |
| 400 | これはデフォルトホスト名です | Error |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/projects/{projectName}/hostnames/{host}/verify
バックグラウンドジョブ(1 分周期)と同じ検証手順を即座に実行します。所有権の検証は、次の 3 つの条件のいずれかを満たすと成功します:名前が自社ゾーン内にあり org が一致する、_runlot-verify.<host> の TXT レコードが一致する、または <host> の CNAME がフォールバックオリジンを指している。
所有権の証明なしに active になる方法はありません。 検証に通らない場合、ステータスはそのままとなり、lastError に現在観測されている内容が保持されます。member 以上が必要です。
operationId verifyHostname
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | 確認後の行 | Hostname |
| 403 | — | — |
| 404 | — | — |