Create list
Releases: langgenius/dify
v1.4.2
🚀 What's New in v1.4.2?
We've packed v1.4.2 with usability upgrades, polished features, and stability enhancements. Check out what's new:
🌟 New Features & Improvements
-
Smarter Webapp Inputs: Automatically fill hidden fields using URL parameters (#20630), by @hjlarry.
-
Efficient Document Extraction: Faster, streamlined processing for Excel and CSV files (#20625), thanks to @HaiyangPeng.
-
Marketplace UI Update: Easier browsing with improved sorting for app types (#20685), courtesy of @nite-knite.
-
Personalized Chatbot UX: Chat input placeholder now dynamically displays your bot's name (#20473), thanks to @crazywoola.
-
Robust File Uploads: Addressed issues with multiple file extension mappings (#20559), by @bowenliang123.
-
Advanced Knowledge Base API Features:
- Refined metadata filtering for precise querying. Targeted searches using chunk IDs (#20426), by @Gevtolev.
- Improved tagging and dataset binding capabilities (#20023), thanks to @ZombieBlue.
-
Weave Tracing & W&B Integration: Enhanced support for dedicated cloud instances for better operations monitoring (#20765), from @parambharat.
🔒 Security Updates
- Flask-Cors Upgrade: Enhanced security by updating to the latest Flask-Cors version (#20577), by @laipz8200.
🐛 Bug Fixes
-
Resolved 401 Errors:
- Smooth parallel workflow execution (#20321).
- Fixed authentication issues in
workflow_as_tool(#20347). - Eliminated backward invoke errors (#20374).
All thanks to @laipz8200.
-
Agent Node Refinements:
- Corrected enum syntax for Python 3.11 (#20373), by @laipz8200.
- Improved handling of long tokens in LLM invocation (#20391), by @Nov1c444.
-
Annotation API Fix: Restored the missing
end_userargument (#20428), courtesy of @quicksandznzn. -
Docker Environment Corrections: Fixed erroneous handling of environment variables (#20436), by @crazywoola.
-
Code Node & Trace Management:
- Enhanced array validation in code nodes (#20437), by @Yeuoly.
app_idnow included in TraceTasks for better management (#20461), thanks to @laipz8200.
-
HTTP Node Reliability: Corrected curl operations using
--data(#20471), by @hjlarry. -
Memory Leak Prevention: Fixed Celery worker leaks ensuring jobs close correctly (#19268), by @JohnJyong.
-
Improved Housekeeping Command: Now preserves avatar images and app icons correctly (#20532), thanks to @kurokobo.
-
Email Invitation Fixes: SMTP authentication errors resolved (#20545), by @AnshumanSaini.
-
Consistent App Tagging: Resolved app tag update issues (#20618), by @Nov1c444.
-
Markdown Rendering Fixes: Ensured abbreviations display properly in react-markdown (#20648), by @xuzijie1995.
-
LLM Node Image Parsing: Improved reliability for single-step executions with images (#20417), by @lrhan321.
-
Restored Agent Moderation: Functionality fully restored (#20673), by @Nov1c444.
-
Plugin Extension Performance: Restored responsiveness and speed (#20704), by @Yeuoly.
-
Question Classifier Stability: Executions now error-free (#20829), thanks to @QuantumGhost.
-
Enhanced Web UX: Single-run modals now auto-dismiss for better usability (#20865), by @HyaCiovo.
Enjoy these improvements and a smoother, more stable experience! 🚀
Upgrade Guide
Docker Compose Deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service. Please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.4.2
-
Update Python dependencies:
cd api uv sync -
Then, let's run the migration script:
uv run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- update img by @crazywoola in #20291
- Chore/update img by @crazywoola in #20292
- chore: enchance the copywriting of tool by @iamjoel in #20294
- fix: i18n auto run failed by @iamjoel in #20302
- fix: Enhances tenant ID handling in telemetry by @laipz8200 in #20304
- [Observability] Add type check and try-except in otel by @TedaLIEz in #20319
- fix(workflow): fetch user failed when workflow run in parallel mode by @laipz8200 in #20321
- fix: Instance is not bound to a Session by @laipz8200 in #20347
- fix: reset password page dark style by @junjiem in #20350
- Fixes some i18n(ko) translations. by @comfuture in #20348
- fix(http): force multipart/form-data even without files(#20322) by @ultramancode in #20323
- fix: workflow plugins list update by @zxhlyh in #20357
- feat(agent_node): ensure that the enum-checking syntax is compatible with Python 3.11. by @laipz8200 in #20373
- fix: register user model to current_user in backward invoke. by @laipz8200 in #20374
- Fix/branding broken by @douxc in #20375
- fix: inner invoke llm token too long by @Nov1c444 in #20391
- chore: remove agent turn limits by @Nov1c444 in #19930
- docs: Update PR template to emphasize guidelines and issue linking by @laipz8200 in #20382
- fix: show 'reset brand' button after set branding image by @douxc in #20420
- fix: apps/annotation missing 1 required positional argument: 'end_user' by @quicksandznzn in #20428
- fix: wrong env usage in middleware by @crazywoola in #20436
- chore: improve error logging for requests to plugin daemon by @bowenliang123 in #20328
- fix: handle values in output arrays for CodeNode transformation by @Yeuoly in #20437
- tests: Removes outdated marketplace download test by @laipz8200 in #20454
- refactor: Remove db from cycle manager by @laipz8200 in #20455
- refactor(workflow): Rename NodeRunMetadataKey to WorkflowNodeExecutionMetadataKey by @laipz8200 in #20457
- refactor(workflow): Rename workflow node execution models by @laipz8200 in #20458
- fix(models): WorkflowRun's total_steps and exceptions_count mismatch with database by @laipz8200 in #20452
- fix(ops_trace_manager): Adds app_id to TraceTask initialization by @laipz8200 in #20461
- chore: Colorize new OpenAI LLM versions by @DavideDelbianco in #20463
- Feat/15534 support replacing the bot in chat input placeholder with the bots name by @crazywoola in #20473
- fix: import from curl not work for --data by @hjlarry in #20471
- chore: translate i18n files by @github-actions in #20476
- refactor(api/core/workflow/enums): Rename WORKFLOW_RUN_ID to WORKFLOW_EXECUTION_ID by @laipz8200 in #20459
- fix: some display error in dark mode by @hjlarry in #20469
- Refactor/markdown component split by @xuzijie1995 in #20177
- fix(json-schema-editor): Add container reference for resize observer in CodeEditor; Update language hook and help doc URL in JsonSchemaConfig by @WTW0313 in #20488
- fix: drop some type fixme by @yihong0618 in #20344
- Refactor/message cycle manage and knowledge retrieval by @laipz8200 in #20460
- fix celery job not closed issue by @JohnJyong in #19268
- Improve CONVERSATION_TITLE_PROMPT to correctly handle Japanese and input by @yasu-oh in #20351
- update knowledge base api by @Gevtolev in #20426
- Add APIs for Knowledge Base Tag Management and Dataset Binding by @ZombieBlue in #20023
- fix: resolve unstable scrolling in workflow debug panel with multiple input fields #19697 by @KaitlynFeng in #19698
- fix: agent app tool update by @zxhlyh in #20490
- Amend color typo by @DavideDelbianco in #20497
- fix: fetch tenant_id in other trace providers besides langfuse by @laipz8200 in #20495
- fix: the plugin order ...
v1.4.1
🚀 What’s New in v1.4.1? 🚀
Welcome to version 1.4.1! This release is all about squashing bugs, enhancing functionality, and making everything run smoother. Here’s the scoop:
🚀 New Features
-
Optional Request Logging: Now you can configure optional request and response logging to help with debugging and tracking, thanks to @NeatGuyCoding in #19783.
-
Web Media Element Enhancements: Added support for both
<video>and<audio>elements withsrcattributes, bringing you more flexibility when embedding media, by @ruanjf in #19988. -
Aliyun OSS Storage Support in Plugin Daemon: The new Plugin Storage Type now supports Aliyun OSS, catering to users in need of this cloud storage option, courtesy of @quicksandznzn in #20012.
-
Tracing Conversation in Opik Tracer: Introduced support for tracking conversations via Opik Tracer, enhancing your tracing capabilities, integrated by @Lothiraldan in #20063.
-
Streamlined App Creation: Simplified the app creation experience with collapsed basic app types for a more intuitive setup, thanks to @guchenhe in #20007.
-
Document Extractor Enhancements: Implemented the chardet encoding in our document extractor to handle varied text encodings more robustly, courtesy of @laipz8200 in #20269.
🛠️ Fixes and Improvements
-
Security Update: Upgraded qdrant-client to version 1.9.0 to keep your environment secure and up to date by @Gevtolev in #20231.
-
Overflow and Layout Fixes: Corrected metadata condition name overflow and improved handling of long bot descriptions by @CorrectRoadH in #19812 and #19805.
-
File Upload and Export: Resolved issues with avatar uploads and custom file type exports so everything uploads without a hitch by @iamjoel and @hjlarry in respective pulls.
-
Performance Optimizations: Improved several workflows, including the validation logic in OpsTraceManager and chart rendering in markdown to tackle flickering and looping issues, with help from @jameshui1997 and @xuzijie1995 among others.
-
Knowledge Retrieval and Workflow Enhancements: Addressed an uninitialized variable error and improved logic in knowledge retrieval efforts by @zhudongwork and others.
Upgrade to v1.4.1 and enjoy a more streamlined, robust, and feature-rich experience that primes your projects for success!
Upgrade Guide
Docker Compose Deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service. Please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.4.1
-
Update Python dependencies:
cd api uv sync -
Then, let's run the migration script:
uv run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- Resolve Python Logger library warnings by @emmanuel-ferdman in #19791
- Fix: style of app publisher by @JzoNgKVO in #19803
- fix: fix metadata condition name overflow by @CorrectRoadH in #19812
- fix: fix overflow when bot description too long by @CorrectRoadH in #19805
- fix: llm parameters radio type dark style by @junjiem in #19833
- feat(workflow): domain model for workflow node execution by @laipz8200 in #19430
- fix: upload avatar failed by @iamjoel in #19853
- fix: correct type mismatch in WorkflowService node execution handling by @laipz8200 in #19846
- revert #19497 (19497) by @gq957534377 in #19807
- feat(DraftWorkflowApi): Requires environment_variables in DraftWorkflowApi by @laipz8200 in #19849
- feat: Add optional request and response JSON logging extension with configuration and tests by @NeatGuyCoding in #19783
- fix: nav selector's dark theme by @hjlarry in #19869
- fix: tool node number type constant field dark style by @junjiem in #19818
- fix(devcontainer): uv sync fail by @yedamao in #19834
- docs: Add text_to_speech left out in the API response by @yeyunwen in #19862
- chore: improve some doc by @hjlarry in #19881
- fix create_tracing_app_config error by @hieheihei in #19884
- fix: db_model save to _node_execution_cache by @hjlarry in #19911
- feat(api): Introduce
WorkflowDraftVariableModel by @QuantumGhost in #19737 - feat(workflow): Add variable node jump navigation and persist node dimensions/position by @wellCh4n in #13623
- chore: upgrade Redis from v6 to v7 in middlewares by @bowenliang123 in #19935
- docs: Optimize Response data array object indentation for the /messages interface by @yeyunwen in #19922
- Feat(WaterCrawl error handling): add custom exceptions and error handling by @amirasaran in #19948
- fix model workflow_draft_variables duplicate app_id set. by @zhanluxianshen in #19949
- Revert "chore: upgrade Redis from v6 to v7 in middlewares" by @crazywoola in #19960
- chore: update redis dependency to version 6.1.0 in api/pyproject.toml by @rotoni in #19885
- E-300 by @douxc in #19726
- fix: fix page broken for undefined permission by @LeeeeeeM in #19972
- fix: multiple retrieve reranking_enabled switch by @zengruizhao in #19958
- fix: ensure Decimal values in metadata are JSON serializable (fixes #19936) by @williamjizihe in #19955
- feat: Web
- fix: search query and refine the logic by @crazywoola in #19987
- fix: fix duplicate app lose custom image by @CorrectRoadH in #19775
- chore: Reduce the invocation of the plugin interface by @luckylhb90 in #19629
- Revert "fix: fix duplicate app lose custom image" by @crazywoola in #19995
- fix: update IN SERVICE status text in app detail panel by @douxc in #19993
- fix: ReactFlow background in dark theme by @crazywoola in #20013
- fix create_tracing_app_config error (#19884) by @homeant in #20004
- fix: emoji picker in dark mode by @crazywoola in #20019
- Feat:Plugin Storage Type Support Aliyun OSS by @quicksandznzn in #20012
- feat: Move to node in workflow panel and fix help link hover style by @wellCh4n in #19998
- feat: Support hidden fields in the start node by @ModyQyW in #19678
- refactor: Use typed SQLAlchemy base model and fix type errors by @laipz8200 in #19980
- fix(sqlalchemy_workflow_node_execution_repository): Missing
triggered_fromwhile querying WorkflowNodeExecution by @laipz8200 in #20044 - Fix/modify translation by @HanqingZ in #20046
- Simplify
execution_metadataHandling forWorkflowNodeExecutionby @QuantumGhost in #20062 - tencent vectordb compatible with version 1.1.3 and below by @wlleiiwang in #20056
- feat: Introduce WorkflowExecution Domain Entity and Repository, Replace WorkflowRun Direct Usage, and Unify Stream Response Logic by @laipz8200 in #20067
- Fix/fix trace provider delete err by @hieheihei in #20070
- feat: Split WorkflowCycleManager by @laipz8200 in #20071
- fix: correct indentation in dataset retrieval model assignment by @GonzaHM in #20040
- fix: uninitialized variable error on empty knowledge retrieval(agent) by @zhudongwork in #20025
- Refactor OpenSearch config to separate use_ssl and verify_certs flags by @He-Huang in #20075
- fix: improve tracing provider validation logic in OpsTraceManager by @jameshui1997 in #20042
- chore: Update S3StorageConfig to match boto3 type hints by @Lothir...
v1.4.0
🌟 What's New in v1.4.0? 🌟
🎂 Dify turns 2! New look, new brand, same mission.
Imagine if every idea could become an AI agent. With Dify, ‘if’ you can ask it, you can build it.
Check out the new Dify.AI and start building your if today.
🚀 New Features & Enhancements
🌙 Dark Mode
We’ve rolled out a theme switcher that allows you to easily toggle between light and dark modes, perfect for those late-night coding sessions. Click your avatar to experience it! This feature helps reduce eye strain and allows you to customize your user interface to match your preference. Thanks to @JzoNgKVO in PR #18093 for making this possible.
🖼️ Multi-Modal LLM Output
Our platform now supports multimodal outputs, allowing LLMs to handle both text and images within the LLMNode. This feature enhances the richness of data interaction and boosts your model's capabilities, courtesy of @QuantumGhost's efforts in PR #17372. You can now try these new features using the Gemini 2.0 Flash Exp model! This integration ensures that your AI can process and respond with both text and visual data seamlessly.
✏️ Editable Questions
We’ve added greater control over your questions, allowing them to be edited before they go live. This update ensures that you can tweak questions for clarity and relevance, as implemented by @HyaCiovo in PR #19117.
🔧 Bug Fixes and Improvements
-
Enhanced Redis Management: Support Redis client-side caching for optimized data handling (though it’s disabled out-of-the-box), improving overall system performance. Credits to @bowenliang123 in PRs #19493 and #19524.
-
Robust Workflow Management: Addressed numerous inconsistencies and bugs in workflows, ensuring smoother, more reliable operations across the board. Our workflows can now handle node failures more gracefully, thanks to contributions from @Kevin9703 in PR #18994.
These features and improvements reflect the feedback from our amazing community and aim to elevate both usability and functionality. We hope these updates significantly enhance your user experience!
Big thanks to all contributors for steering this version forward. Happy experimenting! 🙌
Upgrade Guide
Docker Compose Deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service. Please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.4.0
-
Update Python dependencies:
cd api uv sync -
Then, let's run the migration script:
uv run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- add MAX_TASK_PRE_CHILD for celery by @JohnJyong in #18985
- remove unstructured api key check by @JohnJyong in #18989
- refactor: switch to dynamic versioning in package configuration by @laipz8200 in #19019
- feat: clean up message_files table first before proceeding to find orphaned files by @kurokobo in #19035
- fixes: fix entrypoint script with missing environment variables by @fdb02983rhy in #19039
- fix: fix embedded chatbot styles on a relatively wide screen by @ModyQyW in #19030
- chore: Improve FILES_URL Configuration Comments by @fdb02983rhy in #19040
- test(graph-engine-test): modify the assert condition by @Nov1c444 in #19041
- fix(workflow_cycle_manage): failed nodes were not updated in workflow_node_executions by @Kevin9703 in #18994
- chore: improve diagram picture of docker compose by @hjlarry in #19054
- feat(api): use
json_repairto fix invalid json while generate structured output by @ZombieBlue in #18977 - fix(web): fix the wrong components usage(#18995) by @HyaCiovo in #19065
- fix: fix rerank model runner usage by @ModyQyW in #19008
- feat: support access milvus with token by @realethanhsu in #19034
- feat: add AWS Managed IAM auth for OpenSearch vector DB by @lan666as in #18963
- fix: remove redundant Mermaid graph direction enforcement by @haocheng6 in #19024
- fix: image preview triggers binary download by @dimsky in #19070
- fix: change provider should change the content by @crazywoola in #19075
- Fix: the issue of getting empty environment variables. by @linfey90 in #19085
- Enhance Code Consistency Across Repository with
.editorconfigby @QuantumGhost in #19023 - fix: Chinese input deletes extra character in Safari within Workspaces (#18193) by @kingsword09 in #19088
- fix(api): resolve external knowledge API error due to excessive URL validation by @kenwoodjw in #19003
- add Accept-Ranges header for audio/video files by @sondin in #19119
- feat(logAndAnn): add control option for question editing feature by @HyaCiovo in #19117
- fix: fix import LexicalErrorBoundary error by @LeeeeeeM in #19124
- fix: metadata filter not work by @kingsant in #19020
- fix: fix render undefined when text children is empty by @LeeeeeeM in #19135
- fix(i18n): add functions to retrieve document and pricing page languages by @WTW0313 in #19142
- fix: inconsistent case expression in _process_metadata_filter_func by @IthacaDream in #19146
- feat: support remove first and remove last in variable assigner by @laipz8200 in #19144
- immediately return initialed tiktokenizer instance and remove dead code in usage of tiktokenizer by @bowenliang123 in #17957
- ci: add diff to lint ci by @yihong0618 in #17874
- fix: mouse scrolling zooming can not function anymore by @junjiem in #19160
- feat(api): Add image multimodal support for LLMNode by @QuantumGhost in #17372
- fix: file name incorrect when download file by @hjlarry in #19183
- fix: fix API tool integration test by @haocheng6 in #19187
- feat: Plugin page related document supports multiple languages by @ACAne0320 in #19197
- chore: bump celery from 5.4 to 5.5 by @bowenliang123 in #19190
- fix: time type metadata filtering error by @IthacaDream in #19192
- fix: use only supported operators in metadata filter system prompts by @haocheng6 in #19195
- Fix appURL construction when basePath is empty by @osaimi in #19234
- chore: required pip and performance improvment in mypy checks by @bowenliang123 in #19225
- fix: support non-ascii charactors in filename of the tool files by @bowenliang123 in #19228
- fix basic auth if not base64 encode by @kenwoodjw in #19242
- Optimize the event handling and rendering logic of the component picker by @441126098 in #19232
- fix(api): add missing INNER_API_KEY to InnerAPIConfig by @Yeuoly in #19166
- fix: s.filter is not a function by @crazywoola in #19250
- feat: sort variables in the selector by x axis for most recent order by @GeorgeCaoJ in #19243
- Fix: optional input in batch run by @JzoNgKVO in #19257
- chore: avoid repeated type ignore noqa by adding flask_restful and flask_login in mypy import exclusions by @bowenliang123 in #19224
- Fix: hide view chat setting button when no inputs form by @JzoNgKVO in #19263
- fix(structured-output): reasoning model's json format parsing by @Nov1c444 in #19261
- feat: add mode for /info api by @LeeeeeeM in #19264
- fix(web): add workspace selector overflow auto by @Bonfireee in #19265
- Fix doc bug workflow ...
v1.3.1
🚀 What's New in v1.3.1?
Hello Dify community! Version 1.3.1 is here and packed with updates aimed to enhance your LLMOps operations and workflow. Let’s take a closer look at what's included:
🌟 New Features
- VTT to Document Transform: We've enhanced the Document extractor to support VTT data formats, thanks to @te-chan2.
- Advanced Storage Management: Admins, rejoice! You can now easily reclaim storage space by cleaning up unused files. This feature is courtesy of @kurokobo.
- Vastbase Vector Database Support: Enjoy seamless integration with Vastbase vector DB for more efficient processing, thanks to @yayaxxww.
👌 Improvements & Refactoring
- Frontend Timezone Support: The frontend now respects timezone for timestamps, thanks to @JzoNgKVO.
- Enhanced Embedded Chatbot Usability: Drag-and-drop functionality in embedded websites has been improved significantly for both mouse and touch inputs, by @hjlarry.
- Upload Folders to Knowledgebase: Simplify your knowledgebase management by uploading entire folders directly, thanks to @Silow9.
🛠️ Bug Fixes
- Model Plugin Order Correction: Fixed order settings enforcement from
position.yaml, thanks to insights by @bravomark. - Authorization & Password Autofill Fixes: Resolved unintentional password autofill behavior within authorization plugins, by @hjlarry.
- Import Template Error Fix: Squashed those bugs—no more errors when importing templates! Special acknowledgment to our diligent devs for this fix.
That's all in v1.3.1! Get your hands on these new features and improvements, and do let us know your thoughts and feedback on our forums or GitHub discussions. Until next time, keep coding and exploring! 🚀
Upgrade Guide
Docker Compose Deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service. Please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.3.1
-
Update Python dependencies:
cd api uv sync -
Then, let's run the migration script:
uv run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- chore: fix reimported by @IthacaDream in #18610
- embedding in websites support initializes to specify the conversation_id by @junjiem in #18602
- fix: improve translation of community code of conduct sentence by @minglu7 in #18607
- feat: add missing switches by @crazywoola in #18619
- embedding in websites setting conversation_id requires hiding reset conversation button by @junjiem in #18623
- fix: enhance TOC navigation with scrollable overflow for better usability by @ZeroZ-lab in #18636
- Add jp translation by @HanqingZ in #18628
- Fix some prompt typos by @mPyKen in #18645
- fix agentflow error if first variable is num by @ZombieBlue in #18660
- fix some browser autofill password when authorization plugin by @hjlarry in #18661
- fix: sometimes error message not display complete by @hjlarry in #18663
- chore(docker): bump dify-plugin-daemon to 0.0.9 by @laipz8200 in #18672
- fix: link address error in the embedding in websites first example by @junjiem in #18677
- fix: remove chat variable in workflow mode by @zxhlyh in #18696
- Added the missing path of the webpath prefix and the prefix basepath + of static resources to remove the bug of adding more basepath. by @gq957534377 in #18658
- fix: project version to 1.3.0 in package.json and uv.lock by @junjiem in #18684
- feat: support vastbase vector database by @yayaxxww in #16308
- fix: not render conversation var in prompt editor by @iamjoel in #18728
- [Lindorm VDB] Add the QUERY_TIMEOUT parameter to force the search query to fail. by @AlwaysBluer in #18613
- issue: #17056 : Add a reason field to the message_replace event by @just2gooo in #17195
- fix: buildin tool provider credentials_for_provider by @luckylhb90 in #18725
- Resolves #18536 Retreive conversation variables by @AlexChim1231 in #18581
- fix: enable Milvus database configuration via .env(#18707) by @jiawei5807 in #18714
- fix: wording in README.md by @crStiv in #18751
- fix: update api rate limit on Pricing page by @douxc in #18755
- enable pan by fingers by @crazywoola in #18775
- fix(web): add missing 'clsx' dependency for pagination component by @minglu7 in #18769
- fix: #18744 The model order defined in position.yaml in the Model Plugin is not taking effect. by @bravomark in #18756
- optimize account status field hard coded by @gsmini in #18771
- fix: Allow advanced chat app to get workflow run detail (#18753) by @1betatsu in #18758
- fix: embed chatbot can't drag when use mouse by @hjlarry in #18781
- refactor: Apply DI to WorkflowNodeExecutionRepository. by @laipz8200 in #18794
- feat(app_dsl_service): Refines version compatibility logic by @laipz8200 in #18798
- Hotfix/create from template category by @douxc in #18807
- fix(plugin_service): Add marketplace enabled check before plugin operations by @Yeuoly in #18806
- feat: Add W&B Weave Tracing Integration by @parambharat in #14262
- fix depth param issue for WaterCrawl by @wesleysui in #18839
- feat: add administrative commands to free up storage space by removing unused files by @kurokobo in #18835
- fix: LLMResultChunk cause concatenate str and list exception by @hjlarry in #18852
- feat: change delete status code from 200 to 204 by @devxing in #18398
- fix: update notice for users for clear-orphaned-file-records and remove-orphaned-files-on-storage commands by @kurokobo in #18864
- fix: install plugins permissions by @zxhlyh in #18870
- fix: check dsl version when create app from explore template by @zxhlyh in #18872
- chore: support other webapps embedded in iframe by @iamjoel in #18877
- refactor: rename plugin manager to plugin client and rename path from manager to impl by @Yeuoly in #18876
- fix: Text Generation App should not should not show embedded in website by @crazywoola in #18880
- [Observability] Convert exception logging into span in OpenTelemetry by @TedaLIEz in #18821
- refactor: remove external link for dataset description guidance by @ZeroZ-lab in #18884
- feat: add interfaces of OAuth handler methods for authorization by @Yeuoly in #18889
- chatflow/workflow add field required by @junjiem in #18892
- fix: annotation update need use http put method and annotation-reply api doc parms wrong by @safejob in #18891
- refactor: Refactors repository imports structure by @laipz8200 in #18901
- chore: disabled struct output not show model not support warning by @iamjoel in #18909
- fix: when cot_agent call tool like searxng lost some response content by @hanqingwu in #16781
- [Observability][Bugfix] Fix expected an instance of Token, got None error in OpenTelemetry by @TedaLIEz in #18934
- fix: i.find is not a function by @crazywoola in #18945
- feat: add VTT data transform to Document extractor by @crazywoola in #18936
- fix: classify remove always remove the last one by @iamjoel in #18959
- fix: header padding by @zxhlyh in #18957
...
v1.3.0
🌟 What's New in v1.3.0 🌟
Hey tech fam, welcome to version 1.3.0! We've been grinding to bring in some slick enhancements, bug fixes, and new capabilities. Let’s dig into what’s freshly brewed:
🚀 New Features
-
Structured Output in LLM Node: We've introduced structured output support for the LLM Node. This means your language models can now return neatly organized and easily processable data. Backend implementation by @Nov1c444 in #17877 and frontend magic by @iamjoel in #17994 ensure this feature is seamless and powerful for developers.
Check out our intro video for more details: Dify's Structured Output: Make AI Agent chat with API easier -
Never Miss a Plugin Update: Our new feature ensures you're always in the loop. When a new version of a plugin drops, you'll see a clear indicator right in the UI. This keeps your environment up-to-date and running smoothly, thanks to @Yeuoly in #17695.
-
Token Counting Made Easy: We've tweaked the default token counting rules. Now, if your provider doesn't return token usage, we'll default to using 0. However, if you'd like to estimate using the tokenizer, you can set
PLUGIN_BASED_TOKEN_COUNTING_ENABLED=true. Heads up, this might impact performance, detailed by @laipz8200 in #17706. -
Workflow Export Delight: Ever wanted to share your workflow effortlessly? You can now export it as an image with the slick new feature from @ACAne0320 in #17904.
-
Mermaid Analysis Gets Smarter: Optimization magic was done on Mermaid by @charli117 in #18089 for all you diagram enthusiasts out there.
🛠️ Enhancements
-
Python Package Manager Upgrade: We made a significant switch from poetry to uv as our Python package manager. This speeds up operations, minimizes merge conflicts, and streamlines our development process. Huge thanks to @bowenliang123 for leading this transition in #16317.
-
Slick Shortcuts & Indicators: Consistent keyboard shortcut support and handy visual indicators have been rolled into all app creation dialogs thanks to @ACAne0320 in #17138. Speed and efficiency now go hand in hand.
-
Observability on Steroids: Integrated OpenTelemetry for better observability in workflows by @TedaLIEz in #17627 and beefed it up with HTTP metrics in HTTP response handling.
-
Type Safety Surge: Massive improvements on type safety in components like
PluginListby @samuel871211 in #17498. Our internals are as tight as ever!
🐛 Bug Fixes
-
Style & Layout Wrinkles Ironed: Various layout and style improvements across components to improve readability and consistency, mostly spearheaded by @ZeroZ-lab and pals.
-
Fixing the Fixables: Squashed bugs such as the pesky workflow run panel resizing issue and a couple of others like clickjacking prevention thanks to @hjlarry and @iamjoel.
-
Error-Free Conversations: Fixed the conversation log issue that could throw a 500 error. Clean data for sweet conversation flow is the norm again.
🌐 Language & Locale Updates
-
Japanese Touch-Ups: Some timely translation updates and locale param support by @t-daisuke for plugins. Quick ‘Yoro-shiku’ to our Japanese community!
-
German Date Format Tweak: Corrected an unsupported date format issue, courtesy of @haocheng6 ensuring German precision.
🔧 Chores & Docs Love
- Git Workflow Optimization: Speedier git checkouts by shaving off unnecessary layers — kudos to @bowenliang123 in #18103 for the efficiency boost.
That’s a wrap, people! Enjoy exploring v1.3.0's new dimensions and as always, stay curious and keep building. Cheers! 🚀✨
Upgrade Guide
Docker Compose Deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service. Please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.3.0
-
Update Python dependencies:
cd api uv sync -
Then, let's run the migration script:
uv run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- refactor: add API endpoint to list latest plugin versions and query it in asynchronous way by @Yeuoly in #17695
- chore: hide eslint complexity warning by @iamjoel in #17698
- fix segment query index not effect by @JohnJyong in #17704
- fix: Check collection exists before drop it. by @wlleiiwang in #17692
- fix : PLUGIN_S3_USE_AWS_MANAGED_IAM AND PLUGIN_S3_USE_PATH_STYLE … by @quicksandznzn in #17702
- revert batch query by @JohnJyong in #17707
- feat(large_language_model): Adds plugin-based token counting configuration option by @laipz8200 in #17706
- fix: docker compose plugin s3 config default value by @quicksandznzn in #17722
- Fix create blank app by @ZeroZ-lab in #17724
- Chore/slice workflow utils by @zxhlyh in #17730
- fix: 17712-get-messages-api-encountered-internal-server-error by @crazywoola in #17716
- fix: Enhance error handling and retry logic in Apps component by @ZeroZ-lab in #17733
- enhance guessing mimetype of tool file by @QunBB in #17640
- feat: add search params to url by @WTW0313 in #17684
- Add and modify jp translation by @HanqingZ in #17748
- fix: fix inputs lost by @ModyQyW in #17747
- feat: add consistent keyboard shortcut support and visual indicators across all app creation dialogs by @ACAne0320 in #17138
- fix: adjust spacing in ViewHistory and Panel components by @WTW0313 in #17766
- chore: skip document segments fetching with non-existed dataset of DatasetDocument in add_document_to_index_task task by @bowenliang123 in #17784
- Feat: workflow dark mode by @JzoNgKVO in #17785
- hotfix: Workflow page element warning problem #17787 by @Jimmiaxie in #17789
- fix: parallel id caused append to wrong branch by @iamjoel in #17794
- create db if not exists by @wlleiiwang in #17796
- fix: return null url when upload local file by @izon-masuara in #17752
- robust for json parser by @zxfishhack in #17687
- fix: make prompt consistent with few-show examples by @xu-song in #11538
- chore: remove non-existed extra msg for unstructured package by @bowenliang123 in #17670
- chore: Modify watercrawl translation in en-US and zh-Hans by @chairc in #17828
- fix: text.split by @crazywoola in #17842
- fix: run button disappeared when where is no inputs in form by @douxc in #17854
- feat: add optional search parameters to dataset query templates i by @ZeroZ-lab in #17857
- fix: do not submit value when file input is optional by @JzoNgKVO in #17861
- enhance(plugin): replace json.loads with Pydantic model_validate_json by @Yeuoly in #17867
- fix: in variable settings, use Textarea to replace Input. by @LeeeeeeM in #17864
- fix: autocorrect everything in api by @yihong0618 in #17859
- fix: fix file number limit error by @LeeeeeeM in #17848
- Fix external knowledge Issues: (#17685) by @briqt in #17843
- fix: add annotation ctrl button for annotation add by @JzoNgKVO in #17873
- Update the model modal:position the scrollbar further inside the modal by @maoguy in #17672
- fix: adjust margin in DatasetCard component for better layout by @ZeroZ-lab in #17879
- fix: refactor SVG icon handling logic and optimize event listener management in embed.js to support mobile browsers #16719 by @zwq357smile in #16717
- [Observability] Integrate OpenTelemetry by @TedaLIEz in #17627
- feat: re-add prompt messages to result and chunks in llm by @laipz8200 in #17883
- refactor(api): Enhance error handling in BasePluginManager by @QuantumGhost in https://github.com/langgenius/...
v1.2.0
🚀 What’s New in v1.2.0? 🚀
Hello community! We’re excited to share our v1.2.0 update with you—it's packed with impressive new features, enhancements, and of course, some good ol' bug fixes. Sit back, sip your coffee, and let's dive into what's new!
🎉 Highlight of the Release
- New Workflow Loop Node: A huge shoutout to @Woo0ood, @arkunzz, @Gevtolev and @zxhlyh for dropping this game-changer in #14863, #17268 and #17273! The Loop Node feature maximizes efficiency in automation by allowing you to iterate over items in your workflows seamlessly. This is a big step forward in letting you do more with less. Kudos to the development team for making this happen!
🌟 New Features
-
Childchunk API Added: Thanks to @ZeroZ-lab in #16094, we've introduced the childchunk API to enhance your workload flexibility.
-
OceanBase Hybrid Search: Courtesy of @hsiong in #16652, this feature integrates hybrid search capabilities within OceanBase, providing more robust query options.
-
Webapp Input Flexibility: Webapp now allows input changes after a conversation starts, by @JzoNgKVO in #16901.
-
Langfuse LLM Node: Input and output support are enhanced by @ZhouhaoJiang in #16924.
-
Tablestore Vector Database Support: By @wanttobeamaster in #16601—it's like giving your data superpowers!
-
WaterCrawl.dev Integration: Thanks to @amirasaran in #16396, this is now available as a new knowledge base provider.
-
Plugin Daemon OSS Env Config: By @quicksandznzn in #17663, enhancing your plugin management.
🛠️ Enhancements & Bug Fixes
-
Metadata Fixes & Optimizations: We've got metadata variable value fixes by @JohnJyong in #16665 and metadata filter improvements from various contributors. Your data management is smoother than ever!
-
UI/UX Improvements: Whether it’s fixing layout issues on mobile (thanks, @LeeeeeeM in #16793!) or improving text spacing on charts (@ACAne0320, #16894), we’re committed to a slicker experience.
-
Multilingual Support: Added jp_ja for the knowledge API by @crazywoola and supported Tablestore vector database—a shout-out to our international users.
-
UI Consistency Tweaks: Little UI adjustments for a big impact, like updating border radius for dropdowns and other forms, thanks to our vigilant community contributors.
-
Security & Efficiency: Fixes like the provider credentials load error by @liuzhenghua ensure the platform's robust performance. Also, optimizing the database workflow app log index has been another focus area.
-
Additional Fixes: Addressing multiple translation gaps, account errors, and something as specific as the
Function's Name Mismatchby @hyongtao-db—keeping us refined! -
Education API Introduction: By @GareArc in #17168, we’re aiming to broaden horizons with educational integrations.
🏗️ Miscellaneous
- Code Quality & Documentation: We've cleaned up typos, added unit tests, and brought in a sparkle to our codebases for VDB, ensuring smooth sailing for devs and users!
In conclusion, this release is about empowering you with flexibility and reliability, from the all-new Loop Node to a windfall of other enhancements. Thanks to everyone contributing to shaping the future with our open-source spirit. Keep pushing the envelope and happy innovating! 👐
Upgrade Guide
Docker Compose Deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service. Please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.2.0
-
Update Python dependencies:
cd api poetry install -
Then, let's run the migration script:
poetry run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- Feat add childchunk api by @ZeroZ-lab in #16094
- Metadata variable value fix by @JohnJyong in #16665
- Fix/vdb lindorm by @AlwaysBluer in #16660
- Fix function's name mismatch by @hyongtao-db in #16681
- fix: pgvector metadata filter by @kenwoodjw in #16688
- mark weight type as optional by @JohnJyong in #16701
- fix: regex expressions distorted in code block by @ACAne0320 in #16690
- Update prompts.py:Fix conversation title language for Italian conversations by @zhangkun-21 in #16696
- feat: Add OceanBase hybrid search features by @hsiong in #16652
- fix: fix icon generation error on Windows platform by @hudenghui in #16254
- fix: update htmlContent type and wrap button in div for manualClose by @WTW0313 in #16716
- fix milvus filter search by @JohnJyong in #16725
- fix full-doc mode document doesn't reindex after enable or un_archive by @JohnJyong in #16737
- fix(slider): the slider's style is not as expected by @Nov1c444 in #16711
- fix: trim whitespace from URL input in file uploader component #16700 by @ZeroZ-lab in #16722
- chore(slider): fix the slider lint error by @Nov1c444 in #16746
- Fix some typos in CONTRIBUTING.md by @hyongtao-db in #16761
- fix: provider credentials load error by @liuzhenghua in #16695
- feat: add jp_ja for knowledge api by @crazywoola in #16766
- fix the major and minor version of stub types declaration with build date stripped by @bowenliang123 in #16709
- fix typo in _process_metadata_filter_func by @kztao in #16780
- Remove the useless excluded item in mypy.ini by @hyongtao-db in #16777
- fix: fix ui layout when in mobile mode by @LeeeeeeM in #16793
- Add and modify jp translation by @HanqingZ in #16807
- fix multiple metadata filter's confusing setting by @JohnJyong in #16771
- feat: add the maximum number of iterations to env by @XiaoBa-Yu in #16805
- chore: handle Textarea component ref warning in react 19 by @iamjoel in #16818
- fix missing agent node help link by @hjlarry in #16841
- fix: fix missing oceanbase config enable_hybrid_search init by @yourchanges in #16852
- fix: tool's number and secet input display issue by @hjlarry in #16834
- install pandoc by @JohnJyong in #16825
- chore: remove third party models by @hjlarry in #13885
- Fix Custom Tool File Upload: Resolve Multiple Files Recognition and Multipart Boundary Issues by @JimHeo in #14014
- fix(agent app): moderation feature can't work as expected by @Nov1c444 in #16794
- feat: webapp support change inputs after conversation started by @JzoNgKVO in #16901
- feat: tencent vectordb: use grpc client and set upsert batch size by @wlleiiwang in #16016
- feat(api): optimize conversation name generation logic in message app by @AlexYuan997 in #16917
- fix: fix the bug where pressing Enter in Chinese input mode on Safari… by @LeeeeeeM in #16914
- fix: some parallel logs missing by @iamjoel in #16923
- Fix wrong allowed extensions by @hyongtao-db in #16893
- feat: support Tablestore vector database by @wanttobeamaster in #16601
- fix(ui): improve chart text spacing and prevent unnecessary truncation by @ACAne0320 in #16894
- feat: add langfuse llm node input and output by @ZhouhaoJiang in #16924
- fix: enhance filename validation and extraction in FileService #16867 by @ZeroZ-lab in #16869
- fix: WorkflowRunDetailApi created_at、finished_at types changed to timestamps by @guoshiqiufeng in #16821
- Revert "feat: add langfuse llm node input and output" by @crazywoola in #16947
- remove business contact info in license by @guchenhe in #16985
- fix: add overflow hidden to Collapse component #17009 by @ZeroZ-lab in #17011
- fix: show build app limit in app creation modal by @Jzon...
v1.1.3
✨ What’s New in v1.1.3? ✨
Here's what's been cooking in the latest update—v1.1.3. We've got some slick new features, essential fixes, and handy refinements to enhance your experience. Let's dive right in:
⚙️ Enhancements
-
APP Filtering Harmonization: Made the logic between App filtering and creation consistent for a seamless UX by @jiangbo721 in #16079.
-
ESLint Cache Enabled: Code quality meets speed as ESLint cache support is enabled, reducing linting time by @karamaru-alpha in #16570.
-
Workflow Adjustments: You can now add a related-id in iteration nodes for more dynamic workflows by @kenwoodjw in #16255.
🛠️ Bug Fixes
-
Optimize Expired Workflow Run Query: Fixed inefficient queries by adding a date filter and limiting the results to improve query performance by @Yeuoly in #16491.
-
Document Dataset Creation: Resolved the missing
weight_typeissue in documents created within datasets by @LiuBodong in #16503. -
Inputs on iOS Devices: Squashed bugs causing errors when passing inputs on iOS by @mrdotdotdot in #16534.
-
Variable Aggregator Node in Workflows: Fixed issue with variable-aggregation nodes failing checks when using group mode by @LeeeeeeM in #16439.
-
XSS Sanitization: Strengthened your security with SVG sanitization to prevent XSS attacks by @iamjoel in #16606.
-
UI/UX Fixes: Addressed various style and interaction issues, like sidebar width on mobile (#16629) and app detail panel in JP (#16620) by @JzoNgKVO.
-
Sandbox Security Upgrade: Upgrade the Dify sandbox to avoid JavaScript code injection.
This update focuses on making the platform not only more efficient but also easier and secure to use. Enjoy the improvements, and let's keep pushing the boundaries together!
Upgrade Guide
Docker compose deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service, Command, please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.1.3
-
Update Python dependencies:
cd api poetry install -
Then, let's run the migration script:
poetry run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- refactor: add OpikDataTrace instance builder. by @laipz8200 in #16444
- feat: Skip Redis operations if RateLimit is disabled by @acelyc111 in #12226
- fix: workflow file add related-id in iteration node by @kenwoodjw in #16255
- feat: cleanup free tenants expired data like messages/conversations/workflow_runs/workflow_node_executions by @Yeuoly in #16490
- use REDIS_PORT to replace 6379 in celery config by @jjzhoujun in #16182
- fix: optimize query for expired workflow runs by adding date filter and limiting results by @Yeuoly in #16491
- fix:weight_type missing when create document in dataset by @LiuBodong in #16503
- fix: the error occurring when passing inputs on iOS devices and some … by @mrdotdotdot in #16534
- fix: update chatbot doc link at create app page by @douxc in #16479
- fix: fix the app max_active_requests been overwritten bug by @acelyc111 in #16513
- feat: Make the logic of APP filtering and creation the same by @jiangbo721 in #16079
- fix: fix variable-aggregator cannot pass node check in group mode by @LeeeeeeM in #16439
- fix: update app mode display text for advanced-chat type by @WTW0313 in #16578
- chore: enable eslint cache by @karamaru-alpha in #16570
- fix: workflow if-else node variable tag style by @zxhlyh in #16583
- fix: transition in simple select causes page crash by @iamjoel in #16587
- Fix: web app sidebar cannot close when long title conversation existed by @JzoNgKVO in #16593
- feat: datasets openapi list segements support paged resp by @StrayDragon in #16603
- feat: add datasets detail context and provider for improved data vali… by @WTW0313 in #16451
- fix: sanitizer svg to avoid xss by @iamjoel in #16606
- feat: add openGauss PQ acceleration feature by @chenhuan0728 in #16432
- fix: cancel marketplace debounced search when clear search keywords by @zxhlyh in #16614
- Fix: show feedback status in conversation by @JzoNgKVO in #16615
- Fix: style issue of app detail panel in jp by @JzoNgKVO in #16620
- Fix: style of sidebar with in mobile by @JzoNgKVO in #16629
- chore: update release trigger to include all tags in build-push workflow by @laipz8200 in #16631
- fix: update retrieval configuration to correctly handle reranking mod… by @WTW0313 in #16641
- fix: fix inner API workspace Account.query error. by @islenbo in #16630
- chore: bump the package version to 1.1.3 by @laipz8200 in #16612
- fix metadata filter not affect in keyword-search and fulltext-search by @JohnJyong in #16644
New Contributors
- @jjzhoujun made their first contribution in #16182
- @mrdotdotdot made their first contribution in #16534
- @LeeeeeeM made their first contribution in #16439
- @karamaru-alpha made their first contribution in #16570
- @chenhuan0728 made their first contribution in #16432
- @islenbo made their first contribution in #16630
Full Changelog: 1.1.2...1.1.3
v0.15.5
🔒 Security Patch in v0.15.5
Hey everyone, this version bumps us up to v0.15.5, and it focuses on tightening security:
🔐 Important Fix
- Sandbox Code Injection: Upgrade Dify Sandbox to avoid the code injection. We strongly recommend that all users currently using versions below 0.15.5 update to this version, or you can only update the sandbox.
- XSS Vulnerability: Sanitize SVG to prevent XSS attacks by @iamjoel in #16608.
What this means: We've updated our SVG handling to ensure that potentially malicious scripts can't take advantage of your interaction with our SVG elements. This patch fortifies our platform against cross-site scripting vulnerabilities, making sure your application usage remains safe and secure.
Stay secure, and happy coding! 🚀
What's Changed
Full Changelog: 0.15.4...0.15.5
v1.1.2
✨ What’s New in v1.1.2? ✨
Thanks for keeping up with Dify! This patch delivers some important fixes to boost the stability and security of your operations.
Important
This update includes a critical fix for an XSS vulnerability. Cloud users are not affected by this issue.
This version disables the SVG rendering in the message. If you are using our Community Edition and meet all of the following conditions, we recommend that you upgrade to the current version immediately:
- Your service is exposed to the internet.
- You provide external WebApps.
- You have not configured
SERVICE_API_URLandFILES_URLon different domains.
🛠️ Fixes & Improvements
-
Security: Resolved an XSS vulnerability related to rendering SVGs, closing a security gap with help from @iamjoel in #16433.
-
Knowledge Base Cleanup: Fixed an issue where the OpenAPI interface couldn't delete metadata, thanks to @StrayDragon in #16365. Now clearing out old or unnecessary metadata is straightforward.
-
GitHub Plugin Installation: Resolved an import DSL issue that blocked the installation of the GitHub plugin, thanks to @junjiem in #16362. This patch ensures smoother plugin integrations.
-
Metadata Migration Check: Added a check for built-in fields during old metadata migration to ensure completeness and accuracy, contributed by @JohnJyong in #16371. Your metadata migrations have stepped up in robustness.
-
Literal Syntax Error Handling: Fixed errors related to
literal_evalfunction usage, courtesy of @svcvit in #16297. These changes help keep your code from breaking due to syntax evaluation.
This update is all about refining the edges and enhancing the user experience—an essential pit-stop on our road to new features and capabilities. Keep those contributions and feedback coming, and let's make Dify even better, together! 🚀
Upgrade Guide
Docker compose deployments
-
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service, Command, please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes -
Upgrade services
docker compose up -d
Source Code deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.1.2
-
Update Python dependencies:
cd api poetry install -
Then, let's run the migration script:
poetry run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- fix: knowledge base openapi cannot delete metadata by @StrayDragon in #16365
- fix import DSL install Github plugin failed by @junjiem in #16362
- add built-in field check when doing old metadata migrate by @JohnJyong in #16371
- fix error with literal_eval by @svcvit in #16297
- fix: typos by @kid1412621 in #16385
- fix: xss in render svg by @iamjoel in #16433
- Chore: frontend infrastructure upgrade by @iamjoel in #16420
- feat: replace file content type to avoid load script in svg. by @laipz8200 in #16454
- chore(api): enhance ruff rules to disallow dangerous functions and modules by @QuantumGhost in #16461
New Contributors
- @kid1412621 made their first contribution in #16385
Full Changelog: 1.1.1...1.1.2
v0.15.4
✨ What’s New in v0.15.4? ✨
Thanks for keeping up with Dify! This patch delivers some important fixes to boost the stability and security of your operations.
Important
This update includes a critical fix for an XSS vulnerability. Cloud users are not affected by this issue.
This version disables the SVG rendering in the message. If you are using our Community Edition and meet all of the following conditions, we recommend that you upgrade to the current version immediately:
- Your service is exposed to the internet.
- You provide external WebApps.
- You have not configured
SERVICE_API_URLandFILES_URLon different domains. - You are still using a version lower than 1.0.0
🛠️ Fixes & Improvements
- Security: Resolved an XSS vulnerability related to rendering SVGs, closing a security gap with help from @iamjoel in #16437.
This update is all about refining the edges and enhancing the user experience—an essential pit-stop on our road to new features and capabilities. Keep those contributions and feedback coming, and let's make Dify even better, together! 🚀