目次
はじめに
こんにちは、ディーネットのよろず請負人、深見です。
Difyの最新バージョン v1.11.1 がリリースされました。今回のアップデートは、セキュリティの強化、パフォーマンスの向上、そして使い勝手を向上させるための細かな修正が中心となっています。
特に重要なのはセキュリティに関するアップデートです。すべてのユーザーに対して、できるだけ早期のアップグレードが強く推奨されていますので、ぜひ本記事で内容をご確認ください。
それでは、v1.11.1の変更点を詳しく見ていきましょう。
🔒 重要なセキュリティアップデート
今回のリリースで最も注目すべきは、セキュリティの強化です。
React および Next.js のバージョンアップにより、複数の CVE 脆弱性が修正されました。これにより、Dify アプリケーション全体の安全性が大幅に向上しています。
システムを安全に保つためにも、このセキュリティアップデートは非常に重要です。本バージョンへの早期移行を強くお勧めします。
🛠️ 修正と改善
日々の開発で Dify をよりスムーズに利用できるよう、以下のバグ修正と改善が行われました。
セキュリティ関連
- React と Next.js のセキュリティアップグレード
React と react-dom が v19.2.3 にアップグレードされ、Next.js もセキュリティアップデートが実施されました。これにより、既知の脆弱性が修正されています。
認証・データ管理
-
認証情報の管理の修正
available_credentialsが空になってしまう問題が解消されました。これにより、認証情報の利用がより安定します。 -
トークン取得の改善
access_tokenが空の場合にエラーが発生せず、Noneを返すように修正されました。
データ処理
-
説明文の文字数制限への対応
自動生成される説明文が 400 文字の制限を超えてエラーになるのを防ぐため、自動的に切り詰められるようになりました。これにより、スムーズなデータ投入が可能になります。 -
ドキュメント処理の最適化
save_document_with_dataset_id関数のパフォーマンスが最適化されました。 -
DOCX ファイルの外部画像問題の修正
DOCX ファイル内の外部画像が原因で抽出に失敗する問題が修正されました。
API・レスポンス
-
Content-Type Charset の追加
レスポンスのContent-Typeにcharsetが含まれるようになり、データ形式の一貫性が保たれます。 -
Flask-Restx の AttributeError を修正
flask-restxでvalidate=Trueを設定した際に発生していたAttributeErrorが解消されました。
テスト
- アタッチメント ID が存在しない場合のヒットテスト失敗の修正
アタッチメント ID が存在しない場合に発生していたヒットテストの失敗が解消されました。
🚀 新機能
今回のリリースでは、以下の新機能が追加されています。
Amplitude 連携
Amplitude API キーがレイアウトとプロバイダーコンポーネントに統合されました。これにより、より高度な分析が可能になります。
🧪 テスト強化
品質向上のため、テストも強化されました。
- コンテナ統合テスト
コンテナ環境でのトリガー機能がスムーズに動作することを確認するための統合テストが追加されました。
⚡ パフォーマンス強化
Dify の動作をより高速で効率的にするための改善が行われています。
Excel 抽出の最適化
Excel ファイルの抽出処理において、パフォーマンスとメモリ使用量が最適化され、より高速かつ効率的に処理できるようになりました。
📋 バージョンアップ手順
Dify をアップグレードする際には、以下の手順に従ってください。
Docker Compose でのデプロイの場合
1. 既存の設定ファイルのバックアップ(推奨)
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
2. 最新のコードの取得
git checkout main
git pull origin main
3. サービスの停止
docker ディレクトリで以下のコマンドを実行します。
docker compose down
4. データのバックアップ
tar -cvf volumes-$(date +%s).tgz volumes
5. サービスのアップグレードと起動
docker compose up -d
⚠️ トラブルシューティング
もしアップグレード中に以下のようなエラーが発生した場合:
2025/11/26 11:37:57 /app/internal/db/pg/pg.go:30 [error] failed to initialize database, got error failed to connect to `host=db_postgres user=postgres database=dify_plugin`: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)
代わりに以下のコマンドを使用してください。詳細については、GitHub の #28706 を参照してください。
docker compose --profile postgresql up -d
また、v1.10.1 にバージョンアップの際に api コンテナ内の実行ユーザーが管理者 root から一般ユーザー (コンテナ内では dify) に変更となりました。この影響で一部の動作に影響が発生しました。
具体的には、ワークフローなどでテキスト抽出を組み込み、処理をするとエラーなり処理が止まります。api コンテナのログを確認すると /home/dify への権限もしくは存在しないことによるものでした。どうもコンテナ内で一時ファイルを作成する際に実行ユーザーのホームディレクトリを使用しようとしてアクセスが拒否されているようです。(1.10.0 までは root で処理ができていたが、一般ユーザーに変更したため、権限の関係で処理できない状態になったと思われます)
この不具合は気付かれていないのか、v1.11.1 でも修正されていない模様です。
これに対しては、暫定的な対処として一般ユーザーがアクセスできるように docker-compose.yaml に手当をするなどが必要です。
暫定対処例
cd ~/dify/docker
docker compose down
sudo mkdir ./volumes/app/storage/home
sudo mkdir ./volumes/app/storage/home/dify
sudo chown -R 1001:1001 ./volumes/app/storage/home/dify
sudo chmod -R 700 ./volumes/app/storage/home/dify
cp -p docker-compose.yaml docker-compose.yaml_202512xx
vi docker-compose.yaml
======================================================================
(省略)
※api:
(途中省略)
volumes:
# Mount the storage directory to the container, for storing user files.
- ./volumes/app/storage:/app/api/storage
- ./volumes/app/storage/home/dify:/home/dify ← 追加する
(省略)
======================================================================
docker compose up -d
以上を追加することで回避できます。
/home/dify を実態として作成して、コンテナ側でボリュームとしてアタッチさせる方法になります。
ソースコードからのデプロイの場合
1. サービスの停止
現在実行中の API サーバー、Worker、Web フロントエンドサーバーをすべて停止します。
2. 最新のコードの取得
git checkout 1.11.1
3. Python 依存関係の更新
api ディレクトリに移動し、依存関係を同期します。
cd api
uv sync
4. マイグレーションスクリプトの実行
uv run flask db upgrade
5. サービスの再起動
API サーバー、Worker、Web フロントエンドサーバーを再度起動します。
📝 主要な変更点一覧
今回のリリースで実装された主要な変更点は以下の通りです。
reactおよびreact-domを v19.2.3 へアップグレードし、CVE 脆弱性を修正 (#29532)available_credentialsが空になる問題を修正 (#29521)- Next.js のセキュリティアップデート (#29545)
- 自動生成される説明文を 400 文字制限に合わせて切り詰める処理を追加 (#28681)
- トリガー機能のコンテナ統合テストを追加 (#29527)
- Amplitude API キーをレイアウトとプロバイダーコンポーネントに統合 (#29546)
- レスポンスの
Content-Typeにcharsetを設定 (#29534) flask-restxのAttributeErrorを修正 (#29552)- Excel 抽出のパフォーマンスとメモリ使用量を最適化 (#29551)
save_document_with_dataset_idを最適化 (#29550)- DOCX エクストラクターでの外部画像抽出失敗を修正 (#29558)
- アタッチメント ID が存在しない場合のヒットテスト失敗を修正 (#29563)
access_tokenが空の場合にretrieve_tokensからNoneを返すように修正 (#29516)- バージョン参照を 1.11.1 に更新 (#29568)
おわりに
今回の Dify v1.11.1 リリースは、特にセキュリティ面での重要な改善を含んでいます。React や Next.js のセキュリティアップデートにより、より安心して Dify をご利用いただけるようになりました。
その他にも、多数のバグ修正やパフォーマンス改善、新機能の追加が行われ、全体として Dify の安定性と使いやすさが向上しています。
常に最新バージョンにアップグレードすることで、Dify を最大限に活用し、安全な環境を維持できます。コントリビューターの皆さん、そして Dify ユーザーの皆さんのフィードバックと貢献に感謝いたします。
参考リンク
本記事は Dify v1.11.1 のリリースノートを基に作成されています。最新情報は公式サイトをご確認ください。