36ff9b447d
Merge origin/release/e-1.12.1 into 1.12.1-otel-ee
...
Sync enterprise 1.12.1 changes:
- feat: implement heartbeat mechanism for database migration lock
- refactor: replace AutoRenewRedisLock with DbMigrationAutoRenewLock
- fix: improve logging for database migration lock release
- fix: make flask upgrade-db fail on error
- fix: include sso_verified in access_mode validation
- fix: inherit web app permission from original app
- fix: make e-1.12.1 enterprise migrations database-agnostic
- fix: get_message_event_type return wrong message type
- refactor: document_indexing_sync_task split db session
- fix: trigger output schema miss
- test: remove unrelated enterprise service test
Conflict resolution:
- Combined OTEL telemetry imports with tool signature import in easy_ui_based_generate_task_pipeline.py
2026-03-01 00:18:46 -08:00
abcf14a571
refactor(telemetry): move gateway to core as stateless module-level functions
...
Move routing table, emit(), and is_enterprise_telemetry_enabled() from
enterprise/telemetry/gateway.py into core/telemetry/gateway.py so both
CE and EE share one code path. The ce_eligible flag in CASE_ROUTING
controls which events flow in CE — flipping it is the only change needed
to enable an event in community edition.
- Delete enterprise/telemetry/gateway.py (class-based singleton)
- Create core/telemetry/gateway.py (stateless functions, no shared state)
- Simplify core/telemetry/__init__.py to thin facade over gateway
- Remove TelemetryGateway class and get_gateway() from ext_enterprise_telemetry
- Single-source is_enterprise_telemetry_enabled in core.telemetry.gateway
- Fix pre-existing test bugs (missing dify.event.id in metric handler tests)
- Update all imports and mock paths across 7 test files
2026-02-28 19:27:24 -08:00
5025e29220
test: remove unrelated enterprise service test
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-14 16:34:49 +08:00
d0bd74fccb
[autofix.ci] apply automated fixes
...
(cherry picked from commit 907e63cdc57f8006017837a74c2da2fbe274dcfb)
2026-02-14 16:28:38 +08:00
5ccbc00eb9
refactor(api): replace AutoRenewRedisLock with DbMigrationAutoRenewLock
...
- Updated the database migration locking mechanism to use DbMigrationAutoRenewLock for improved clarity and functionality.
- Removed the AutoRenewRedisLock implementation and its associated tests.
- Adjusted integration and unit tests to reflect the new locking class and its usage in the upgrade_db command.
(cherry picked from commit c812ad9ff26bed3eb59862bd7a5179b7ee83f11f)
2026-02-14 16:28:38 +08:00
94603b5408
refactor(api): replace heartbeat mechanism with AutoRenewRedisLock for database migration
...
- Removed the manual heartbeat function for renewing the Redis lock during database migrations.
- Integrated AutoRenewRedisLock to handle lock renewal automatically, simplifying the upgrade_db command.
- Updated unit tests to reflect changes in lock handling and error management during migrations.
(cherry picked from commit 8814256eb5fa20b29e554264f3b659b027bc4c9a)
2026-02-14 16:28:38 +08:00
8d4bd5636b
refactor(tests): replace hardcoded wait time with constant for clarity
...
- Introduced HEARTBEAT_WAIT_TIMEOUT_SECONDS constant to improve readability and maintainability of test code.
- Updated test assertions to use the new constant instead of a hardcoded value.
(cherry picked from commit 0d53743d83b03ae0e68fad143711ffa5f6354093)
2026-02-14 16:28:38 +08:00
ee0c4a8852
[autofix.ci] apply automated fixes
...
(cherry picked from commit 326cffa553ffac1bcd39a051c899c35b0ebe997d)
2026-02-14 16:28:38 +08:00
afdd5b6c86
feat(api): implement heartbeat mechanism for database migration lock
...
- Added a heartbeat function to renew the Redis lock during database migrations, preventing long blockages from crashed processes.
- Updated the upgrade_db command to utilize the new locking mechanism with a configurable TTL.
- Removed the deprecated MIGRATION_LOCK_TTL from DeploymentConfig and related files.
- Enhanced unit tests to cover the new lock renewal behavior and error handling during migrations.
(cherry picked from commit a3331c622435f9f215b95f6b0261f43ae56a9d9c)
2026-02-14 16:28:38 +08:00
9acdfbde2f
feat(api): enhance database migration locking mechanism and configuration
...
- Introduced a configurable Redis lock TTL for database migrations in DeploymentConfig.
- Updated the upgrade_db command to handle lock release errors gracefully.
- Added documentation for the new MIGRATION_LOCK_TTL environment variable in the .env.example file and docker-compose.yaml.
(cherry picked from commit 4a05fb120622908bc109a3715686706aab3d3b59)
2026-02-14 16:28:38 +08:00
793d22754e
fix: fix get_message_event_type return wrong message type ( #32019 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-11 11:00:40 +08:00
aa34ec0d25
test(enterprise-telemetry): add unit tests for OTEL bearer auth and insecure flag
2026-02-09 01:44:21 -08:00
b62965034e
refactor: document_indexing_sync_task split db session ( #32129 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 17:16:17 +08:00
400ed2fd72
refactor: partition Celery task sessions into smaller, discrete execu… ( #32085 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-08 21:05:03 +08:00
11c74d741a
feat: add dedicated app event counters and convert event names to StrEnum
...
- Add APP_CREATED, APP_UPDATED, APP_DELETED counters to EnterpriseTelemetryCounter
- Create EnterpriseTelemetryEvent StrEnum for type-safe event names
- Update metric_handler to use new app-specific counters with labels (tenant_id, app_id, mode)
- Convert all event_name strings to EnterpriseTelemetryEvent enum values
- Update exporter to create OTEL meters for new app counters (dify.app.created.total, etc.)
- Update tests to verify new counter behavior and enum usage
2026-02-06 02:38:19 -08:00
840a8f3fc2
perf: use batch delete method instead of single delete ( #32036 )
...
Co-authored-by: fatelei <fatelei@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: FFXN <lizy@dify.ai >
2026-02-06 15:13:17 +08:00
91a6fe25d1
feat(telemetry): add enterprise OTEL telemetry with gateway, traces, metrics, and logs
2026-02-05 23:10:30 -08:00
b4a5296fd1
fix: fix tool type is miss ( #32042 )
2026-02-06 14:38:54 +08:00
fcb53383df
fix: fix agent node tool type is not right ( #32008 )
...
Infer real tool type via querying relevant database tables.
The root cause for incorrect `type` field is still not clear.
2026-02-06 11:25:29 +08:00
2f75e38c08
fix: fix miss use db.session ( #31971 )
2026-02-05 15:59:37 +08:00
cd03e0a9ef
fix: fix delete_draft_variables_batch cycle forever ( #31934 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-04 19:42:50 +08:00
f5d6c250ed
fix: "refactor: port api/controllers/console/tag/tags.py to ov3" ( #31887 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-03 22:18:53 +08:00
b55c0ec4de
fix: revert "refactor: api/controllers/console/feature.py (test)" ( #31850 )
2026-02-03 12:26:47 +08:00
840a975fef
refactor: add test for api/controllers/console/workspace/tool_pr… ( #29886 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-02 14:54:16 +09:00
7828508b30
refactor: remove all reqparser ( #29289 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
2026-02-01 13:43:14 +09:00
b8cb5f5ea2
refactor(typing): Fixup typing A2 - workflow engine & nodes ( #31723 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org >
2026-01-31 18:00:56 +09:00
a433d5ed36
refactor: port api/controllers/console/tag/tags.py to ov3 ( #31767 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-30 22:40:14 +09:00
b58d9e030a
refactor: init_validate.py to v3 ( #31457 )
2026-01-30 22:39:02 +09:00
90fe9abab7
revert: revert human input relevant code ( #31766 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 19:18:49 +08:00
ba568a634d
refactor: api/controllers/console/remote_files.py to ov3 ( #31466 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 19:32:20 +09:00
f33d99ea01
refactor: api/controllers/console/feature.py (test) ( #31562 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-30 19:22:01 +09:00
f90fa2b186
fix(api): fix workflow state persistence issue ( #31752 )
...
Ensure workflow pause configuration is correctly set for all entrypoints.
2026-01-30 17:44:29 +08:00
5a7dfd15b8
fix: Drain non-stream plugin chunk iterator ( #31564 )
2026-01-30 16:54:56 +08:00
03e3acfc71
feat(api): Human Input Node (backend part) ( #31646 )
...
The backend part of the human in the loop (HITL) feature and relevant architecture / workflow engine changes.
Signed-off-by: yihong0618 <zouzou0208@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com >
Co-authored-by: 盐粒 Yanli <yanli@dify.ai >
Co-authored-by: CrabSAMA <40541269+CrabSAMA@users.noreply.github.com >
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: yihong <zouzou0208@gmail.com >
Co-authored-by: Joel <iamjoel007@gmail.com >
2026-01-30 10:18:49 +08:00
8aeef36e2d
feat: use xdist to make make test faster ( #30824 )
...
Signed-off-by: yihong0618 <zouzou0208@gmail.com >
2026-01-29 18:17:40 +08:00
dbfc47e8b0
fix: SSRF in WordExtractor URL download (credit to @EaEa0001 ) ( #31678 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-29 14:01:21 +08:00
c2473d85dc
feat: Add summary index for knowledge. ( #31625 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com >
Co-authored-by: zxhlyh <jasonapring2015@outlook.com >
Co-authored-by: Yansong Zhang <916125788@qq.com >
Co-authored-by: hj24 <mambahj24@gmail.com >
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-29 13:47:35 +08:00
b48a10d7ec
feat(qdrant): implement full-text search with multi-keyword support ( #31658 )
2026-01-29 11:12:18 +08:00
24ebe2f5c6
refactor(graph_engine): Add a Config class for graph engine. ( #31663 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
2026-01-28 19:57:55 +08:00
3d414678e3
fix(graph_engine): Cannot run single iteration or loop node ( #31470 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
Co-authored-by: Yeuoly <45712896+Yeuoly@users.noreply.github.com >
2026-01-28 01:05:59 +08:00
d76ad15fca
refactor(graph_engine): move observability layer and persistence laye… ( #31620 )
2026-01-28 00:54:21 +08:00
eca26a9b9b
feat: Enhances OpenTelemetry node parsers ( #30706 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-27 15:30:21 +08:00
b4eef76c14
fix: billing account deletion ( #31556 )
2026-01-27 11:18:23 +08:00
e48419937b
feat: chatflow support multimodal ( #31293 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-27 00:24:48 +08:00
eba5eac3fa
refactor: api/controllers/console/setup.py to ov3 ( #31465 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-26 15:04:33 +08:00
19008dce13
refactor: api/controllers/console/version.py to v3 ( #31463 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-26 15:04:25 +08:00
92011d0a31
refactor: LLM plugin invoke parsing ( #31499 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-26 14:59:57 +08:00
5c4028d557
refactor: port AppModelConfig ( #30919 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-24 10:25:51 +08:00
55e6bca11c
fix(http-request): prevent UUID truncation in JSON body ( #31444 )
...
Signed-off-by: majiayu000 <1835304752@qq.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-24 10:21:21 +08:00
8d45755303
feat: init fastopenapi ( #30453 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-23 21:07:52 +09:00