GareArc
d207ca3f1e
Merge branch 'deploy/enterprise' of https://github.com/langgenius/dify into deploy/enterprise
2026-02-09 01:57:13 -08:00
GareArc
f85275e5f9
test(enterprise-telemetry): add unit tests for OTEL bearer auth and insecure flag
2026-02-09 01:35:17 -08:00
wangxiaolei
55de893984
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-09 15:57:42 +08:00
QuantumGhost
b035b091fa
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-09 15:57:42 +08:00
wangxiaolei
9898df5ed5
fix: fix tool type is miss ( #32042 )
2026-02-09 15:57:42 +08:00
wangxiaolei
075e90a253
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-09 15:57:42 +08:00
wangxiaolei
51946a734a
fix: fix miss use db.session ( #31971 )
2026-02-09 15:57:42 +08:00
GareArc
4e624af5e0
Merge branch '1.12.1-otel-ee' into deploy/enterprise
2026-02-06 02:41:58 -08:00
GareArc
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
GareArc
91a6fe25d1
feat(telemetry): add enterprise OTEL telemetry with gateway, traces, metrics, and logs
2026-02-05 23:10:30 -08:00
GareArc
576eca2113
Merge branch '1.12.1-otel-ee' into deploy/enterprise
2026-02-05 23:07:48 -08:00
GareArc
4a9b74f86b
refactor(telemetry): simplify by eliminating TelemetryFacade
...
**Problem:**
The telemetry system had unnecessary abstraction layers and bad practices
from the last 3 commits introducing the gateway implementation:
- TelemetryFacade class wrapper around emit() function
- String literals instead of SignalType enum
- Dictionary mapping enum → string instead of enum → enum
- Unnecessary ENTERPRISE_TELEMETRY_GATEWAY_ENABLED feature flag
- Duplicate guard checks scattered across files
- Non-thread-safe TelemetryGateway singleton pattern
- Missing guard in ops_trace_task.py causing RuntimeError spam
**Solution:**
1. Deleted TelemetryFacade - replaced with thin emit() function in core/telemetry/__init__.py
2. Added SignalType enum ('trace' | 'metric_log') to enterprise/telemetry/contracts.py
3. Replaced CASE_TO_TRACE_TASK_NAME dict with CASE_TO_TRACE_TASK: dict[TelemetryCase, TraceTaskName]
4. Deleted is_gateway_enabled() and _emit_legacy() - using existing ENTERPRISE_ENABLED + ENTERPRISE_TELEMETRY_ENABLED instead
5. Extracted _should_drop_ee_only_event() helper to eliminate duplicate checks
6. Moved TelemetryGateway singleton to ext_enterprise_telemetry.py:
- Init once in init_app() for thread-safety
- Access via get_gateway() function
7. Re-added guard to ops_trace_task.py to prevent RuntimeError when EE=OFF but CE tracing enabled
8. Updated 11 caller files to import 'emit as telemetry_emit' instead of 'TelemetryFacade'
**Result:**
- 322 net lines deleted (533 removed, 211 added)
- All 91 tests pass
- Thread-safe singleton pattern
- Cleaner API surface: from TelemetryFacade.emit() to telemetry_emit()
- Proper enum usage throughout
- No RuntimeError spam in EE=OFF + CE=ON scenario
2026-02-05 22:41:09 -08:00
GareArc
6e47e163b8
fix(telemetry): use atomic Redis SET NX for idempotency and register Celery queue
2026-02-05 20:15:34 -08:00
GareArc
51b0c5c89c
feat(telemetry): implement gateway routing and enqueue logic
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-05 20:15:13 -08:00
GareArc
752b01ae91
refactor(telemetry): migrate event handlers to gateway-only producers
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-05 20:15:12 -08:00
GareArc
3d3e8d75d8
feat(telemetry): add gateway envelope contracts and routing table
2026-02-05 20:15:12 -08:00
GareArc
adadf1ec5f
refactor(telemetry): migrate to type-safe enum-based event routing with centralized enterprise filtering
...
Changes:
- Change TelemetryEvent.name from str to TraceTaskName enum for type safety
- Remove hardcoded trace_task_name_map from facade (no mapping needed)
- Add centralized enterprise-only filter in TelemetryFacade.emit()
- Rename is_telemetry_enabled() to is_enterprise_telemetry_enabled()
- Update all 11 call sites to pass TraceTaskName enum values
- Remove redundant enterprise guard from draft_trace.py
- Add unit tests for TelemetryFacade.emit() routing (6 tests)
- Add unit tests for TraceQueueManager telemetry guard (5 tests)
- Fix test fixture scoping issue for full test suite compatibility
- Fix tenant_id handling in agent tool callback handler
Benefits:
- 100% type-safe: basedpyright catches errors at compile time
- No string literals: eliminates entire class of typo bugs
- Single point of control: centralized filtering in facade
- All guards removed except facade
- Zero regressions: 4887 tests passing
Verification:
- make lint: PASS
- make type-check: PASS (0 errors, 0 warnings)
- pytest: 4887 passed, 8 skipped
2026-02-05 20:15:12 -08:00
wangxiaolei
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
Asuka Minato
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
Stephen Zhou
b55c0ec4de
fix: revert "refactor: api/controllers/console/feature.py (test)" ( #31850 )
2026-02-03 12:26:47 +08:00
Asuka Minato
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
Asuka Minato
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
盐粒 Yanli
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
Asuka Minato
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
Asuka Minato
b58d9e030a
refactor: init_validate.py to v3 ( #31457 )
2026-01-30 22:39:02 +09:00
QuantumGhost
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
Asuka Minato
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
Cursx
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
QuantumGhost
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
盐粒 Yanli
5a7dfd15b8
fix: Drain non-stream plugin chunk iterator ( #31564 )
2026-01-30 16:54:56 +08:00
QuantumGhost
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
yihong
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
盐粒 Yanli
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
FFXN
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
eux
b48a10d7ec
feat(qdrant): implement full-text search with multi-keyword support ( #31658 )
2026-01-29 11:12:18 +08:00
-LAN-
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
-LAN-
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
-LAN-
d76ad15fca
refactor(graph_engine): move observability layer and persistence laye… ( #31620 )
2026-01-28 00:54:21 +08:00
heyszt
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
hj24
b4eef76c14
fix: billing account deletion ( #31556 )
2026-01-27 11:18:23 +08:00
wangxiaolei
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
Asuka Minato
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
Asuka Minato
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
盐粒 Yanli
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
Asuka Minato
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
lif
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
Asuka Minato
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
非法操作
fa92548cf6
feat: archive workflow run logs backend ( #31310 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-23 13:11:56 +08:00
Cursx
b3a869b91b
refactor: optimize system features response payload for unauthenticated clients ( #31392 )
...
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: QuantumGhost <obelisk.reg+git@gmail.com >
2026-01-23 12:12:11 +08:00
-LAN-
c575c34ca6
refactor: Move workflow node factory to app workflow ( #31385 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
2026-01-22 18:08:21 +08:00