0caf4d6efd
feat(enterprise-telemetry): add ENTERPRISE_OTLP_API_KEY config field
2026-02-10 00:31:00 -08:00
0dd8288cf2
feat(telemetry): unify token metric label structure with Pydantic enforcement
...
- Add TokenMetricLabels BaseModel to enforce consistent label structure
- All dify.token.* metrics now use identical 6-label structure:
* tenant_id, app_id, operation_type, model_provider, model_name, node_type
- Pydantic validation ensures runtime enforcement (extra='forbid', frozen=True)
- Enables filtering by operation_type to avoid double-counting:
* workflow: aggregated workflow-level tokens
* node_execution: individual node-level tokens
* message: direct message tokens
* rule_generate/code_generate: prompt generation tokens
Previously, inconsistent label cardinality made aggregation impossible:
- WORKFLOW: 3 labels
- NODE_EXECUTION: 6 labels
- MESSAGE: 5 labels
- PROMPT_GENERATION: 5 labels
Now all use the same 6-label structure for consistent querying.
2026-02-10 00:31:00 -08:00
7f11898da7
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-10 00:30:59 -08:00
e614ad663b
feat(telemetry): add operation_type labels for token metrics
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-10 00:30:59 -08:00
3a4d79986f
docs(telemetry): clarify enterprise_telemetry queue is EE-only
2026-02-10 00:30:59 -08:00
a8bd9e1496
feat(telemetry): add enterprise OTEL telemetry with gateway, traces, metrics, and logs
2026-02-10 00:30:59 -08:00
946a3f0e0b
test(enterprise-telemetry): add unit tests for OTEL bearer auth and insecure flag
2026-02-09 01:46:05 -08:00
ef642b6778
feat(enterprise-telemetry): wire bearer token auth and configurable insecure flag into OTEL exporter
2026-02-09 01:46:05 -08:00
51cdf37236
feat(enterprise-telemetry): add ENTERPRISE_OTLP_API_KEY config field
2026-02-09 01:46:04 -08:00
d0ff19f697
feat(telemetry): unify token metric label structure with Pydantic enforcement
...
- Add TokenMetricLabels BaseModel to enforce consistent label structure
- All dify.token.* metrics now use identical 6-label structure:
* tenant_id, app_id, operation_type, model_provider, model_name, node_type
- Pydantic validation ensures runtime enforcement (extra='forbid', frozen=True)
- Enables filtering by operation_type to avoid double-counting:
* workflow: aggregated workflow-level tokens
* node_execution: individual node-level tokens
* message: direct message tokens
* rule_generate/code_generate: prompt generation tokens
Previously, inconsistent label cardinality made aggregation impossible:
- WORKFLOW: 3 labels
- NODE_EXECUTION: 6 labels
- MESSAGE: 5 labels
- PROMPT_GENERATION: 5 labels
Now all use the same 6-label structure for consistent querying.
2026-02-06 03:12:29 -08:00
8a4d519718
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:40:53 -08:00
0ce67009c6
feat(telemetry): add enterprise OTEL telemetry with gateway, traces, metrics, and logs
2026-02-06 01:01:11 -08:00
81a955db65
docs(telemetry): clarify enterprise_telemetry queue is EE-only
2026-02-05 23:03:51 -08:00
f8966ecc1c
feat(telemetry): add enterprise OTEL telemetry with gateway, traces, metrics, and logs
2026-02-05 23:02:46 -08:00
a297b06aac
fix: fix tool type is miss ( #32042 )
2026-02-06 14:38:15 +08:00
d9530f7bb7
fix: make flask upgrade-db fail on error ( #32024 )
2026-02-06 12:01:31 +08:00
b24e6edada
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:24:39 +08:00
45164ce33e
refactor: strip external imports in workflow template transform ( #32017 )
2026-02-06 10:37:26 +08:00
095b3ee234
chore: Remove redundant double space in variable type description (core/variables/variables.py) ( #32002 )
2026-02-05 21:44:31 +08:00
cb970e54da
perf(api): Optimize the response time of AppListApi endpoint ( #31999 )
2026-02-05 19:05:09 +08:00
e04f2a0786
feat: use static manifest for pre-caching all plugin manifests before checking updates ( #31942 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Junyan Qin <rockchinq@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-05 18:58:17 +08:00
be8f265e43
fix: fix uuid_generate_v4 only used in postgresql ( #31304 )
2026-02-05 17:32:33 +08:00
b886b3f6c8
fix: fix miss use db.session ( #31971 )
2026-02-05 14:42:34 +08:00
c56ad8e323
feat: account delete cleanup ( #31519 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-04 17:59:41 -08:00
3bd228ddb7
chore: bump version in docker-compose and package manager to 1.12.1 ( #31947 )
2026-02-04 19:29:28 +08:00
0dfa59b1db
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:10:27 +08:00
0d74ac634b
fix: missing import console_ns ( #31916 )
2026-02-04 16:08:00 +08:00
778aabb485
refactor(api): replace reqparse with Pydantic models in trial.py ( #31789 )
...
Co-authored-by: Asuka Minato <i@asukaminato.eu.org >
2026-02-04 14:36:52 +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
8c3e77cd0c
chore: update version to 1.12.0 ( #31878 )
2026-02-03 18:08:15 +08:00
b55c0ec4de
fix: revert "refactor: api/controllers/console/feature.py (test)" ( #31850 )
2026-02-03 12:26:47 +08:00
8b50c0d920
chore(deps-dev): bump types-psutil from 7.0.0.20251116 to 7.2.2.20260130 in /api ( #31814 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 09:59:29 +08:00
47f8de3f8e
refactor: port api/controllers/console/app/annotation.py api/controllers/console/explore/trial.py api/controllers/console/workspace/account.py api/controllers/console/workspace/members.py api/controllers/service_api/app/annotation.py to basemodel ( #31833 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-03 09:59:00 +08:00
491fa9923b
refactor: port api/controllers/console/datasets/data_source.py /datasets/metadata.py /service_api/dataset/metadata.py /nodes/agent/agent_node.py api/core/workflow/nodes/datasource/datasource_node.py api/services/dataset_service.py to match case ( #31836 )
2026-02-02 21:03:16 +09:00
ce2c41bbf5
refactor: port api/controllers/console/datasets/datasets_document.py api/controllers/service_api/app/annotation.py api/core/app/app_config/easy_ui_based_app/agent/manager.py api/core/app/apps/pipeline/pipeline_generator.py api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py to match case ( #31832 )
2026-02-02 19:07:30 +09:00
920db69ef2
refactor: if to match ( #31799 )
2026-02-02 18:12:03 +09:00
ac222a4dd4
refactor: port api/controllers/console/app/audio.py api/controllers/console/app/message.py api/controllers/console/auth/data_source_oauth.py api/controllers/console/auth/forgot_password.py api/controllers/console/workspace/endpoint.py ( #30680 )
2026-02-02 18:03:07 +09: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
9fb72c151c
refactor: "chore: update version to 1.12.0" ( #31817 )
2026-02-02 11:18:18 +08:00
41177757e6
fix: summary index bug ( #31810 )
...
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-02-02 09:45:17 +08:00
4f826b4641
refactor(typing): use enum types for workflow status fields ( #31792 )
2026-02-02 09:41:34 +08:00
3216b67bfa
refactor: examples of use match case ( #31312 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-01 19:25:54 +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
5bc99995fc
fix(api): align graph protocols for response streaming ( #31777 )
2026-01-31 01:57:36 +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
a4db322440
chore: update restx to 1.3.2 ( #31229 )
2026-01-30 21:24:49 +08:00
24b280a0ed
fix(i18n): improve Chinese translation of Max Tokens ( #31771 )
...
Signed-off-by: majiayu000 <1835304752@qq.com >
2026-01-30 20:19:35 +08: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