Skip to main content

このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。

difyctl は、複数の Dify ホストとアカウントへのサインインを同時に保持できます。各ホストとアカウントの組み合わせが 1 つのコンテキストです。そのメタデータは 設定ディレクトリ 内の hosts.yml に保存され、bearer token は OS の認証情報ストアに保存されます(保護されたファイルへのフォールバックあり)。

各タスクは 1 つのコマンドに対応します。

サインインの手順については、認証 を参照してください。

サインイン#

auth login は OAuth 2.0 デバイスフローを実行します。ワンタイムコードと検証 URL を表示してブラウザでその URL を開き、ブラウザでサインインが承認されるのを待ちます。CLI がパスワードに触れることは一切ありません。

フラグ#

フラグ型デフォルト説明
--host <url>stringnoneサインイン先の Dify ホスト:
  • Dify Cloud の場合は https://cloud.dify.ai を使用します。
  • セルフホストの Dify では コンソール API URL を指定します。
スキームのない URL には https:// が付与されます。

ターミナルでは省略でき、その場合はホストの入力を求められます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。
--no-browserbooleanfalseブラウザを自動で開かず、検証 URL のみを表示します。
--insecurebooleanfalsehttp:// ホストを許可し、TLS 証明書が自己署名または無効な https:// ホストも受け入れます(ローカル開発のみ)。

例#

Dify ホストにサインインします。

SSH セッションからサインインし、検証 URL を別のデバイスで開きます。

出力#

コードのプロンプトは stderr に出力され、その後スピナーがブラウザ側の承認を待ちます。

成功すると、確認メッセージが stdout に出力されます。

Workspace: の行はデフォルトのワークスペースです。

サインインのたびに、difyctl on <hostname> というラベルのサーバー側セッションも登録されます。auth devices list を実行すると、すべてのセッションを確認できます。すでにサインイン済みのホストにサインインすると、そのコンテキストに保存された token が更新されます。

終了コード#

終了コード意味
0サインイン完了
1ネットワークまたはサーバーエラー
2使用方法のエラー。ターミナル外での --host の欠落や、--insecure のない非 https ホストなど
4サインインが拒否された(access_denied)か、承認前にコードが期限切れになった(expired_token)
6バージョンの不一致:サーバーがこの difyctl には古すぎる(セッションを保存する前に確認)、またはこの difyctl がサーバーには古すぎる(HTTP 426)。サーバーにデバイスフローのサインインエンドポイントがない場合も含む(unsupported_endpoint)
7レート制限(HTTP 429)

すべての終了コードについては、出力形式と終了コード を参照してください。

現在の認証情報を確認#

auth whoami は、アクティブなコンテキストが誰のものかを表示します。保存されたコンテキストを読み取るだけでサーバーには接続しないため、「どの認証情報がアクティブか」には答えますが、「token がまだ有効か」には答えません。セッションがサーバー側で期限切れになっていても、0 で終了します。

フラグ#

フラグ型デフォルト説明
--jsonbooleanfalseプレーンテキストの行ではなく JSON を出力します。

例#

スクリプト用:

出力#

--json の出力は、id、email、name を含む 1 行です。

終了コード#

終了コード意味
0アクティブなコンテキストが存在する
4サインインしていない(not_logged_in)

保存済みのコンテキストを一覧表示#

auth list は、保存済みのすべてのホストとアカウントの組み合わせを表示し、アクティブなものに印を付けます。auth whoami と同様に、完全にローカルで動作し、サーバーには接続しません。

フラグ#

フラグ型デフォルト説明
-o <format>stringnone出力形式:json、yaml、または name。フラグを省略するとデフォルトのテーブルになります。

例#

出力#

形式stdout に出力される内容
デフォルトコンテキストのテーブル:ホスト、アカウント、アクティブ印。
-o json、-o yamlcontexts 配列。各エントリに 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>stringnone切り替え先の保存済みホスト。スキームを付けず、素のドメイン(cloud.dify.ai)で指定します。

ターミナルでは省略して、保存済みのホストから選択できます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。

例#

ドメインを指定して保存済みのホストに切り替えます。

出力#

成功すると、新しいアクティブホストが確認されます。

サインインしたことのないドメインを指定すると、既知のホストを列挙した使用方法のエラーになります。

終了コード#

終了コード意味
0切り替え完了
2使用方法のエラー:不明なホスト、またはターミナル外での --domain の欠落
4保存済みのサインインがない(not_logged_in)

アクティブなアカウントを切り替える#

use account は、現在のホストでアクティブな保存済みアカウントを切り替えます。use host と同様にローカルな操作で、既存のサインインを切り替えるだけです。

フラグ#

フラグ型デフォルト説明
--email <email>stringnone切り替え先のアカウント。

ターミナルでは省略して、保存済みのアカウントから選択できます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。

例#

アクティブなホスト上で別のアカウントに切り替えます。

出力#

成功すると、新しいアクティブアカウントが確認されます。

アクティブなホストに保存されていないメールアドレスを指定すると、既知のアカウントを列挙した使用方法のエラーになります。保存された token がなくなったアカウント(取り消し済み、または セッションの取り消し で削除)を指定すると、サインインしていないエラーになり、再サインインを促すヒントが表示されます。

終了コード#

終了コード意味
0切り替え完了
2使用方法のエラー:不明なアカウント、またはターミナル外での --email の欠落
4このホストに保存済みのサインインがない、または選択したアカウントの認証情報がない

アクティブなセッションを一覧表示#

デバイスフローのサインインはいずれも、デフォルトで difyctl on <hostname> というラベルのサーバー側セッションを登録します。auth devices list はアカウントで有効なセッションを一覧表示するので、心当たりのないものを見つけて 取り消す ことができます。

フラグ#

フラグ型デフォルト説明
--jsonbooleanfalseテーブルではなく JSON を出力します。
--page <n>integer1ページ番号。
--limit <n>integer20ページサイズ、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 がまず確認を求めます。-y/--yes を渡すとプロンプトをスキップできます。ターミナル外(スクリプトやパイプ)では、確認なしで取り消します。

現在のサインインが使用しているセッションを取り消すと、difyctl はそのコンテキストのローカル認証情報も削除します。このマシンではサインアウトされます。

引数#

  • <target>:auth devices list で得られるデバイスラベルまたはセッション ID。--all を渡す場合を除き必須です。

フラグ#

フラグ型デフォルト説明
--allbooleanfalse現在のセッションを除くすべてのセッションを取り消します。
-y, --yesbooleanfalse確認プロンプトをスキップします。

例#

ラベルを指定して 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)

すべての終了コードについては、出力形式と終了コード を参照してください。