Dashboard と CLI のログイン
auth カテゴリの API オペレーションを 5 件カバーしています。
| メソッド | パス | 説明 |
|---|---|---|
| POST | /v1/auth/dev/login | dev ログイン方式でのサインイン |
| GET | /v1/auth/github/start | GitHub OAuth を開始 |
| GET | /v1/auth/github/callback | GitHub OAuth コールバック |
| GET | /v1/config | このデプロイの名前 |
| GET | /v1/me | 現在のユーザーとその org |
POST /v1/auth/dev/login
これはローカル専用のサインイン方式です。GitHub OAuth と同じ目的を果たしますが、外部の認証往復を必要としません(docs/local-mvp.md §1)。プロダクションでは、このルートは登録されません — RUNLOT_ENABLE_DEV_AUTH が有効なサーバーにのみ存在します。
同じ subject で再度呼び出すと、同じユーザーが返されます — ローカルでトークンを失うたびに新しいアカウントが作成されると使い物にならないためです。
operationId devLogin
リクエストボディ: application/json ・ object
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | セッショントークン | Session |
| 400 | — | — |
GET /v1/auth/github/start
redirect はログイン完了後に戻るクライアントのコールバックで、トークンはフラグメントとして渡されます(https://dash.runlot.io/login/callback)。サーバーの許可リスト(RUNLOT_GITHUB_REDIRECTS、デフォルトは RUNLOT_PUBLIC_URL)内のプレフィックスと一致する必要があります。これは GitHub の認可ページへ 302 を送信します。ブラウザがこのパスをたどるため、クライアントライブラリはこれを呼び出しません — window.location で開いてください。
operationId githubStart
| パラメーター | 場所 | 必須 | 型 | 説明 |
|---|---|---|---|---|
redirect | query | はい | string | — |
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 302 | GitHub の認可画面へ | — |
| 400 | — | — |
GET /v1/auth/github/callback
このパスは GitHub アプリの Authorization コールバック URL です。コードをセッションと交換し、redirect へ 302 を発行します — 成功時は #token=…&expiresAt=…&userId=…&subject=…、失敗時は #error=<code>&message=… です。トークンがサーバーログや Referer ヘッダーに記録されないよう、フラグメントを使用します。
operationId githubCallback
| パラメーター | 場所 | 必須 | 型 | 説明 |
|---|---|---|---|---|
code | query | 不可 | string | — |
state | query | はい | string | — |
error | query | 不可 | string | — |
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 302 | クライアントのコールバックへ | — |
| 400 | — | — |
GET /v1/config
ここはダッシュボードがどのデプロイに接続されているかを知る場所です(docs/environments.md §3.2)。ダッシュボードは単一の静的ビルドなので、デプロイごとに異なる値を知る手段がなく、そのページでは文字列としてハードコードされていました — 環境が 2 つになった時点で、開発用ページが本番のアドレスを指すようになり、その案内はもっともらしく見えるため、どのテストも検知しません。
認証なし:ログインページにもドキュメントへのリンクがあります。ここに表示されるのは、ランディングページにすでに記載されている名前だけです。
機能の有効・無効の状態はここにはありません — billing、storage、email はそれぞれ独自のエンドポイントで自身の状態を報告します。
operationId getSiteConfig
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | デプロイの名前 | object |
GET /v1/me
現在のユーザーとその org
operationId getMe
| ステータスコード | 説明 | レスポンスボディ |
|---|---|---|
| 200 | ユーザー | object |
| 401 | — | — |