Appearance
cdm auth
cdm auth サブコマンドで、Codatum のサーバへのアクセスを認証するための PAT(パーソナルアクセストークン) を profile として管理します。PATそのものの概要や権限の仕組みについては PATと権限 を参照してください。
cdm auth <subcommand> [options]| サブコマンド | 用途 |
|---|---|
auth login | ブラウザ承認または発行済み PAT から profile を登録 |
auth list | 登録済の profile 一覧を表示 |
auth use | デフォルトの profile を切り替え |
auth remove | profile を削除 |
auth whoami | 現在の profile の情報を表示 |
auth refresh | profile の情報を更新 |
profile の概念
- PAT は profile 単位で管理し、複数の profile を登録できます
- profile 名は、 英数字・ハイフン・アンダースコアのみ (正規表現:
^[a-zA-Z0-9_-]+$)、最大 50 文字に制限されます - 1つの profile が デフォルト として設定され、
--profileフラグを指定しないコマンドはデフォルトの profile を利用します - 各 profile には、PATと、そのトークンが紐づくワークスペースの ID と名前、アカウントの ID とメールアドレスを保存します
- PAT の発行単位(ワークスペース・アカウント単位)については PATと権限 を参照してください
環境変数によるオーバーライド
CI 環境などで、直接 PAT を指定したい場合、以下の環境変数を利用できます。
| 環境変数 | 用途 |
|---|---|
CDM_PAT | 利用する PAT を直接指定。CDM_PAT が設定されている場合、 --profile フラグは無視され、この値が優先されます。 |
CDM_PROFILE | 利用する profile 名を指定。--profile フラグの代わりに利用できます。CDM_PAT が設定されている場合は無視されます。 |
profile の登録
cdm auth login
--profile <name> profile 名(ブラウザ承認時: フォームの初期値として使用 / 発行済み PAT の利用時: 対話入力を省略 / --pat-stdin 併用時: 必須)
--pat-stdin 標準入力から PAT を読み取り、非対話で profile を登録(--profile 必須)
--keep-default 登録した profile をデフォルトにせず、既存のデフォルトを維持する
--app-host <url> プレビュー等で開く Web アプリの URL(通常は省略)
--api-host <url> 利用するAPIを変更する場合に指定(通常は省略)
--docs-host <url> 利用するドキュメントの取得元を変更する場合に指定(通常は省略)新しい profile を登録します。
対話での登録
- 最初に、次のいずれかの登録方法を対話で選択します
- ブラウザで承認:
- CLI からブラウザを起動し、ワークスペース・profile 名・有効期限・権限などの条件を指定して、新規に PAT を発行して profile を登録します
--profileを指定した場合、profile 名の初期値としてフォームに反映されます(ブラウザ上で変更でき、変更後の値が採用されます)
- 発行済み PAT の利用:
- PAT を発行済の場合は、CLI 上で profile 名と PAT を直接入力して profile を登録できます
--profileを指定した場合、profile 名の対話入力を省略できます
- ブラウザで承認:
- 同名の profile が既に存在する場合、上書きするかを対話で確認します
非対話での登録(--pat-stdin)
- CI 等の非対話環境で profile を登録する場合は、
--pat-stdinを指定し、標準入力から発行済みの PAT を渡します --pat-stdinを指定した場合、--profile <name>は必須です- 標準入力が TTY の場合(パイプが接続されていない場合)は、
exit 1で終了します - 同名の profile が既に存在する場合は、確認なしで上書きします(非対話のため)
bash
# 標準入力から PAT を渡して登録(PAT は環境変数を展開して渡す)
echo "$CDM_PAT_FOR_CI" | cdm auth login --profile ci --pat-stdin登録の共通事項
- 取得・入力された PAT の有効性を whoami でチェックし、有効な場合は紐づくワークスペースIDとワークスペース名、アカウントIDとメールアドレスを取得します
- 登録した profile は デフォルトとして設定 されます。既存のデフォルトを維持したい場合は
--keep-defaultを指定してください(登録後のデフォルト変更はcdm auth useを利用)
TIP
CI 等の非対話環境では、原則として profile を登録せず、環境変数 CDM_PAT で実行時に PAT を指定します。--pat-stdin での登録は、常時稼働するサーバなど profile を永続化したい場合に利用します。
profile 一覧の表示
cdm auth list
-f, --format <fmt> 出力形式: text | json(既定: text)登録済の profile 一覧を表示します。
- デフォルトの profile は先頭列に
*が表示されます(json 形式ではisDefault: true) - text では
workspaceId/accountIdは表示しません。ID が必要な場合は-f jsonを使ってください
text 出力例:
Profile Pat WorkspaceName AccountEmail
* work cdm_pat_TR0v*** My Workspace user@example.com
personal cdm_pat_Ab12*** Personal Workspace other@example.comjson 出力例:
json
{
"profiles": [
{
"profile": "work",
"pat": "cdm_pat_TR0v***",
"isDefault": true,
"workspaceId": "6653ebab5a1acaa5bd5422a5",
"workspaceName": "My Workspace",
"accountId": "671ef14b0d08cf6c657df7db",
"accountEmail": "user@example.com"
}
]
}デフォルト profile の切り替え
cdm auth use <profile>デフォルトの profile を切り替えます。
- 指定した profile が登録されていない場合、
exit 1で終了します
profile の削除
cdm auth remove <profile>
-y, --yes 確認プロンプトをスキップ指定した profile を削除します。
- 削除前に対話プロンプトで確認を求めます。
--yesを指定するとプロンプトをスキップします。 - 削除対象がデフォルトの profile だった場合、削除後に残っている profile の 先頭 が新しいデフォルトになります。残りが 0 件のときはデフォルトが未設定になります。
現在の profile の確認
cdm auth whoami
--profile <name> 特定の profile を指定して検証
-f, --format <fmt> 出力形式: text | json(既定: text)利用される profile の情報を表示し、PAT が現在も有効かを API で確認します。
--profile未指定時は、CDM_PAT→CDM_PROFILE→ デフォルト profile の順で解決します。- PAT が無効な場合、
exit 1で終了します。
text 出力例:
Profile work (default)
Pat cdm_pat_TR0v***
Workspace My Workspace (6653ebab5a1acaa5bd5422a5)
Account user@example.com (671ef14b0d08cf6c657df7db)
Status OKjson 出力例:
json
{
"source": "default-profile",
"profile": "work",
"pat": "cdm_pat_TR0v***",
"isDefault": true,
"workspaceId": "6653ebab5a1acaa5bd5422a5",
"workspaceName": "My Workspace",
"accountId": "671ef14b0d08cf6c657df7db",
"accountEmail": "user@example.com",
"status": "OK"
}profile 情報の更新
cdm auth refresh
--all 登録済の全 profile を一括で更新
--profile <name> 更新する profile を指定profile に保存されているワークスペースやアカウントの情報を更新します。
--allを指定すると、登録済の全 profile を一括で更新します--profileを指定すると、指定した profile を更新します- 更新対象の profile の PAT が無効な場合、その profile はスキップして処理を継続し、最後に1件以上の失敗があれば
exit 1で終了します - PAT 本体は更新されません。失効した PAT を差し替える場合は
cdm auth loginを利用してください
出力例:
$ cdm auth refresh --all
✔ work updated
✔ personal unchanged
✘ old-client Error: Invalid token
$ cdm auth refresh --profile work
✔ work unchanged