Skip to main content
difyctl version を実行すると、現在の difyctl のビルドと、それが Dify サーバーで動作するかどうかを確認できます。このコマンドはクライアントのビルドを表示し、アクティブなホストを探査して、互換性の判定 を報告します。 スクリプトでは、--check-compat がその判定を終了コードに変換します。

クライアントとサーバーのバージョンを確認

フラグ

完全なレポートを表示します。
スクリプトやバグレポート向けに、クライアントのバージョンのみを表示します。

出力

デフォルトの text レポート:
--short はクライアントの semver のみを表示します。
-o json
サーバーが到達不能でも互換性がなくても、このコマンドは 0 で終了します。判定はエラーではなく、レポートそのものです。終了コードに変換するには後述の --check-compat を使います。他のコマンドは判定に基づいて動作します。詳細は 互換性のないサーバーに対するコマンドの動作 を参照してください。

終了コード

完全な体系については 出力形式と終了コード を参照してください。

互換性の判定

difyctl version はビルドをサーバーのバージョンと比較し、4 種類の判定のいずれかを報告します。サインインは不要ですが、探査の対象として保存済みのホストが必要です。 text レポートは Compatibility: 行に 表示 列のラベルを表示します。-o json では判定名が status に入ります。 detail フィールドは具体的なケースを示します。例:server 1.14.0 is older than the minimum 1.16.0server 1.16.1 in [1.16.0, 1.16.1]

互換性のないサーバーに対するコマンドの動作

difyctl version は判定を報告するだけです。サーバーと通信する各コマンドは実行前に判定に基づいて動作するため、too_old のサーバーでは、バージョン不一致を解消するまでそれらのコマンドは停止します:
  • too_old:コマンドは処理前に終了コード 6 で停止します。Dify サーバーをこのビルドがサポートする最低バージョン以上にアップグレードするか、サーバーに合った difyctl をインストール してください。
  • too_new:コマンドは実行されます。対話型ターミナルかつ text 出力の場合は、頻度制限付きの 1 行警告が stderr にも出力されます。
  • unknown:コマンドは実行されます。ゲートの根拠がないためです。
最低バージョンを満たしたサーバー(compatible または too_new)はホストごとに約 1 時間キャッシュされ、コマンドのたびにチェックが繰り返されることはありません。too_old のサーバーはキャッシュされず毎回チェックされるため、サーバーをアップグレードすればすぐに使えるようになります。 auth login でのサインインでも、セッションを保存する前に同じチェックが実行されます。バージョン不一致は最初のコマンドではなく、サインイン時に表面化します。 チェックは双方向です。上記の判定は difyctl がサーバーを判定するもので、サーバーも同様に difyctl を判定します。 クライアントがサーバーの許容下限より古い場合、サーバーはリクエストを HTTP 426 で拒否します。difyctl はアップグレードを促すメッセージとともに終了コード 6 で終了します。Dify サーバーのアップグレードで古い difyctl が動かなくなるのはこのためです。サーバーは古いクライアントを拒否しますが、クライアント自身による新しいサーバーへの判定は警告にとどまります。 したがって確実なのは、difyctl をサーバーに合わせておくことです。新しいサーバーは警告付きで許容されますが、古いサーバーは拒否されます。

スクリプトを互換性でゲートする

--check-compat は判定をスクリプトで扱えるようにします。compatible 以外はすべて、unknown のあらゆるケースを含め、64 で終了します。difyctl version は常にサーバーをリアルタイムで探査し、互換性キャッシュを読むことはありません。スクリプトのゲートは現在のバージョンを反映し、この flag は判定を終了コードに変換するだけです。 完全なレポートは選択した形式で stdout に出力され、1 行の理由は stderr に出力されます。そのため、どちらの結果でも difyctl version -o json --check-compat | jq は同じように動作します。
終了コード 64 はこの flag に固有のものです。difyctl の他の失敗でこのコードが使われることはありません。