このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
difyctl は、複数の Dify ホストとアカウントへのサインインを同時に保持できます。各ホストとアカウントの組み合わせが 1 つのコンテキストです。そのメタデータは 設定ディレクトリ 内の hosts.yml に保存され、bearer token は OS の認証情報ストアに保存されます(封印ファイルへのフォールバックあり)。
各タスクは 1 つのコマンドに対応します。
difyctl auth loginでホストにサインインしますauth whoamiでサインイン中の認証情報を表示しますauth listで保存済みのコンテキストを一覧表示しますauth logoutでアクティブなホストからサインアウトしますuse host/use accountでアクティブなコンテキストを切り替えますauth devices listでアクティブなセッションを一覧表示しますauth devices revokeで心当たりのないセッションを取り消します
サインイン
auth login は OAuth 2.0 デバイスフローを実行します。ワンタイムコードと検証 URL を表示してブラウザでその URL を開き、ブラウザでサインインが承認されるのを待ちます。CLI がパスワードに触れることは一切ありません。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|---|---|---|
--host <url> | string | none | サインイン先の Dify ホスト。difyctl はコンソール API に対して動作するため、セルフホストの Dify では コンソール API URL を指定します。スキームのない URL には https:// が付与されます。ターミナルでは省略でき、その場合はホストの入力を求められます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。 |
--no-browser | boolean | false | ブラウザを自動で開かず、検証 URL のみを表示します。 |
--insecure | boolean | false | http:// ホストを許可します(ローカル開発のみ)。 |
例
Dify ホストにサインインします。出力
コードのプロンプトは stderr に出力され、その後スピナーがブラウザ側の承認を待ちます。Workspace: の行はデフォルトのワークスペースです。
サインインのたびに、difyctl on <hostname> というラベルのサーバー側セッションも登録されます。auth devices list を実行すると、すべてのセッションを確認できます。すでにサインイン済みのホストにサインインすると、そのコンテキストに保存された token が更新されます。
終了コード
| 終了コード | 意味 |
|---|---|
0 | サインイン完了 |
1 | ネットワークまたはサーバーエラー |
2 | 使用方法のエラー。ターミナル外での --host の欠落や、--insecure のない非 https ホストなど |
4 | サインインが拒否された(access_denied)か、承認前にコードが期限切れになった(expired_token) |
6 | サーバーにデバイスフローのサインインエンドポイントがない(unsupported_endpoint) |
7 | レート制限(HTTP 429) |
現在の認証情報を確認
auth whoami は、アクティブなコンテキストが誰のものかを表示します。保存されたコンテキストを読み取るだけでサーバーには接続しないため、「どの認証情報がアクティブか」には答えますが、「token がまだ有効か」には答えません。セッションがサーバー側で期限切れになっていても、0 で終了します。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|---|---|---|
--json | boolean | false | プレーンテキストの行ではなく JSON を出力します。 |
例
出力
--json の出力は、id、email、name を含む 1 行です。
終了コード
| 終了コード | 意味 |
|---|---|
0 | アクティブなコンテキストが存在する |
4 | サインインしていない(not_logged_in) |
保存済みのコンテキストを一覧表示
auth list は、保存済みのすべてのホストとアカウントの組み合わせを表示し、アクティブなものに印を付けます。auth whoami と同様に、完全にローカルで動作し、サーバーには接続しません。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|---|---|---|
-o <format> | string | none | 出力形式:json、yaml、または name。フラグを省略するとデフォルトのテーブルになります。 |
例
出力
| 形式 | stdout に出力される内容 |
|---|---|
| デフォルト | コンテキストのテーブル:ホスト、アカウント、アクティブ印。 |
-o json、-o yaml | contexts 配列。各エントリに host、account、name、active を含む。 |
-o name | アカウントのメールアドレスを 1 行に 1 件ずつ。 |
-o json:
終了コード
| 終了コード | 意味 |
|---|---|
0 | 成功。保存済みのコンテキストがない場合も含む |
2 | 使用方法のエラー。サポートされていない -o の値など |
サインアウト
auth logout は、アクティブなコンテキストのセッションをサーバー上で取り消し、その token と hosts.yml のエントリをマシンから削除します。他の保存済みコンテキストには影響しません。
ローカルのクリーンアップは常に実行されます。サーバー側の取り消しが失敗した場合、difyctl は stderr に警告を表示し、認証情報はそのまま削除します。サインアウト時に読み取れない OS のキーチェーン(ロック中、またはデスクトップセッションがない)に token がある場合も同様です。取り消しはスキップされ、ローカルのクリーンアップは実行されます。
フラグ
なし。例
出力
終了コード
| 終了コード | 意味 |
|---|---|
0 | サインアウト完了 |
4 | サインインしていない(not_logged_in) |
アクティブなホストを切り替える
use host は、後続のコマンドの実行先となる保存済みホストを切り替えます。これはローカルな操作で、既存のサインインの中でアクティブなコンテキストを切り替えるだけです。新しいホストを追加するには、代わりに auth login --host を実行します。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|---|---|---|
--domain <host> | string | none | 切り替え先の保存済みホスト。スキームを付けず、素のドメイン(dify.example.com)で指定します。ターミナルでは省略して、保存済みのホストから選択できます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。 |
例
ドメインを指定して保存済みのホストに切り替えます。出力
成功すると、新しいアクティブホストが確認されます。終了コード
| 終了コード | 意味 |
|---|---|
0 | 切り替え完了 |
2 | 使用方法のエラー:不明なホスト、またはターミナル外での --domain の欠落 |
4 | 保存済みのサインインがない(not_logged_in) |
アクティブなアカウントを切り替える
use account は、現在のホストでアクティブな保存済みアカウントを切り替えます。use host と同様にローカルな操作で、既存のサインインを切り替えるだけです。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|---|---|---|
--email <email> | string | none | 切り替え先のアカウント。ターミナルでは省略して、保存済みのアカウントから選択できます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。 |
例
アクティブなホスト上で別のアカウントに切り替えます。出力
成功すると、新しいアクティブアカウントが確認されます。終了コード
| 終了コード | 意味 |
|---|---|
0 | 切り替え完了 |
2 | 使用方法のエラー:不明なアカウント、またはターミナル外での --email の欠落 |
4 | このホストに保存済みのサインインがない、または選択したアカウントの認証情報がない |
アクティブなセッションを一覧表示
difyctl on <hostname> というラベルのサーバー側セッションを登録します。auth devices list はアカウントで有効なセッションを一覧表示するので、心当たりのないものを見つけて 取り消す ことができます。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|---|---|---|
--json | boolean | false | テーブルではなく JSON を出力します。 |
--page <n> | integer | 1 | ページ番号。 |
--limit <n> | integer | 20 | ページサイズ、1 から 200。フラグが優先され、次に DIFY_LIMIT が使われます。 |
例
アカウントで有効なセッションを一覧表示します。出力
* が付きます。サインイン以降に使用していないセッションは、LAST USED が空になります。
--json は単行の JSON を出力します。セッションごとに 1 エントリの data 配列に加え、ページング用フィールドの page、limit、total、has_more を含みます。各エントリには id、prefix、client_id、device_label、created_at、last_used_at、expires_at が含まれます。
終了コード
| 終了コード | 意味 |
|---|---|
0 | 成功 |
1 | ネットワークまたはサーバーエラー |
2 | 使用方法のエラー。--limit 0 など |
4 | 認証の失敗 |
7 | レート制限(HTTP 429) |
セッションを取り消す
auth devices revoke はセッションをサーバー側で終了します。ターゲットは、まずラベルの完全一致、次にセッション ID の完全一致、最後に大文字小文字を区別しないラベルの部分一致で照合されます。複数のセッションに一致するターゲットを指定すると、候補が列挙されて失敗するため、正確な ID を渡して曖昧さを解消します。ターミナルでは、difyctl がまず確認を求めます(Revoke <N> session(s)? [y/N])。-y/--yes を渡すとプロンプトをスキップできます。ターミナル外(スクリプトやパイプ)では、確認なしで取り消します。
現在のサインインが使用しているセッションを取り消すと、difyctl はそのコンテキストのローカル認証情報も削除します。このマシンではサインアウトされます。
引数
<target>:auth devices listで得られるデバイスラベルまたはセッション ID。--allを渡す場合を除き必須です。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|---|---|---|
--all | boolean | false | 現在のセッションを除くすべてのセッションを取り消します。 |
-y, --yes | boolean | false | 確認プロンプトをスキップします。 |
例
ラベルを指定して 1 つのセッションを取り消します。出力
成功すると、difyctl は ✓ Revoked <N> session(s) を出力します。指定したターゲットが何にも一致しない場合は、no session matches "<target>" で失敗します。他にセッションがない状態で --all を指定すると、no sessions to revoke を出力して 0 で終了します。
終了コード
| 終了コード | 意味 |
|---|---|
0 | 取り消し完了、または --all で取り消すものがない |
1 | ネットワークまたはサーバーエラー |
2 | 使用方法のエラー:ターゲットも --all もない、ターゲットが曖昧、一致するセッションがない、または確認プロンプトを拒否した |
4 | 認証の失敗 |
7 | レート制限(HTTP 429) |