Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.
This report summarizes scanner evidence for langgenius/dify, a TypeScript project with 158,090 GitHub stars. SynthScan examined 2,452,812 lines of code across 12780 source files, recording 31286 pattern matches distributed across 28 syntactic categories. The legacy adjusted pattern signal is 17.1 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 24721 finding(s).
Are imports declared and package/API names verified? 2980 finding(s).
Are wrappers, guards, and repeated structures necessary? 26747 finding(s).
Which changes need focused human review? 31286 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 31286 distinct pattern matches across 28 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 252 | def _record_operation_failure( | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 688 | async def _list_owned_inventory_attempt( | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 731 | async def _require_exact_idle_inventory( | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1123 | def test_soak_requires_explicit_enable(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1129 | def test_soak_missing_credentials_skip_without_echoing_values(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1144 | def test_ledger_redacts_secret_fields_and_values(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1166 | def test_formal_gate_includes_request_and_reconcile_timeouts(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1187 | def test_reconcile_timeout_override_must_be_positive(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1234 | async def test_idle_inventory_requires_exact_paused_identity(tmp_path: Path, mismatch: str) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1265 | async def test_reconcile_catches_sandbox_with_delayed_visibility(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1304 | async def test_reconcile_retries_first_list_failure_then_cleans_visible_sandbox(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1353 | async def test_reconcile_retries_first_kill_failure_and_keeps_ledger_secret_safe(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1403 | async def test_reconcile_recovers_when_first_final_list_is_slow_and_times_out(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1446 | async def test_reconcile_bounds_never_returning_inventory_list(tmp_path: Path) -> None: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1467 | async def test_reconcile_bounds_never_returning_kill_batch(tmp_path: Path) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 38 | def _success_or_failure_event(kind: str, run_id: str) -> RunSucceededEvent | RunFailedEvent: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 98 | def test_success_and_cancel_intent_commit_exactly_one_matching_terminal(redis_url: str) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 157 | def test_event_stream_is_trimmed_and_keeps_the_terminal_event(redis_url: str) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 202 | def test_terminal_first_rejects_late_cancellation(redis_url: str, terminal_status: str) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 227 | def test_cancellation_intent_lifecycle_and_terminal_exclusion(redis_url: str) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 290 | def test_cancellation_finalization_without_intent_is_unapplied(redis_url: str) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 311 | def test_classified_failure_persists_matching_record_and_event_error_type(redis_url: str) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 341 | def test_non_owner_scheduler_cancellation_stops_owner_runner(redis_url: str) -> None: | CODE |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 348 | def terminal_session_snapshot(self) -> None: | CODE |
| LOW | …dify_agent/runtime_backend/test_working_environment.py | 58 | async def test_local_two_agents_share_workspace_but_not_home() -> None: | CODE |
| LOW | …dify_agent/runtime_backend/test_working_environment.py | 232 | async def test_openshell_binding_checkpoint_and_collection() -> None: | CODE |
| LOW | dify-agent/tests/docs/test_examples.py | 36 | def test_documentation_examples(example: CodeExample, eval_example: EvalExample) -> None: | CODE |
| LOW | dify-agent/tests/docs/test_snippets.py | 13 | def test_parse_snippet_directive() -> None: | CODE |
| LOW | dify-agent/tests/docs/test_snippets.py | 22 | def test_parse_file_sections_and_inject_snippet(tmp_path: Path) -> None: | CODE |
| LOW | dify-agent/tests/local/test_packaging.py | 47 | def test_project_dependencies_split_client_and_server_requirements() -> None: | CODE |
| LOW | dify-agent/tests/local/test_packaging.py | 56 | def test_default_package_discovery_excludes_example_packages() -> None: | CODE |
| LOW | dify-agent/tests/local/test_packaging.py | 67 | def test_project_declares_console_scripts() -> None: | CODE |
| LOW | …ent/tests/local/dify_agent/test_client_safe_exports.py | 11 | def test_client_public_exports_work_with_default_dependencies_only(tmp_path: Path) -> None: | CODE |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 79 | def test_dify_agent_root_import_is_client_safe() -> None: | CODE |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 102 | def test_protocol_and_dify_plugin_exports_do_not_import_server_only_modules() -> None: | CODE |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 143 | def test_agent_cli_help_import_is_client_safe() -> None: | CODE |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 217 | def test_agent_cli_help_render_does_not_load_server_or_cli_modules() -> None: | CODE |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 247 | def test_shellctl_client_imports_do_not_import_server_modules() -> None: | CODE |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 265 | def test_server_settings_import_does_not_import_agent_stub_app() -> None: | CODE |
| LOW | …ests/local/dify_agent/layers/user_prompt/test_layer.py | 16 | def test_user_prompt_layer_injects_file_locators(include_image: bool, download_type: str) -> None: | CODE |
| LOW⚡ | …ests/local/dify_agent/layers/user_prompt/test_layer.py | 97 | def test_user_prompt_layer_rejects_invalid_locators(locator: dict[str, str]) -> None: | CODE |
| LOW⚡ | …ests/local/dify_agent/layers/user_prompt/test_layer.py | 104 | def test_user_prompt_layer_preserves_text_without_locators() -> None: | CODE |
| LOW⚡ | …ests/local/dify_agent/layers/user_prompt/test_layer.py | 110 | def test_user_prompt_layer_restores_image_url_content() -> None: | CODE |
| LOW | …ests/local/dify_agent/layers/user_prompt/test_layer.py | 139 | def test_user_prompt_layer_restores_inline_binary_content() -> None: | CODE |
| LOW | …ests/local/dify_agent/layers/user_prompt/test_layer.py | 187 | def test_user_prompt_file_requires_exactly_one_transport(file_payload: dict[str, str]) -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 17 | def test_dify_plugin_package_exports_client_safe_config_symbols_only() -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 33 | def test_dify_plugin_llm_config_discards_legacy_credentials() -> None: | CODE |
| LOW⚡ | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 52 | def test_dify_plugin_llm_config_rejects_old_provider_field() -> None: | CODE |
| LOW⚡ | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 59 | def test_dify_plugin_llm_config_rejects_non_positive_context_window() -> None: | CODE |
| LOW⚡ | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 66 | def test_dify_plugin_tools_layer_config_accepts_prepared_parameters_and_schema() -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 107 | def test_dify_plugin_tool_parameter_accepts_api_tool_parameter_dump_shape() -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 132 | def test_dify_plugin_tool_parameter_accepts_api_tool_parameter_attributes() -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 153 | def test_dify_plugin_tool_config_rejects_non_json_runtime_parameters() -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 166 | def test_dify_plugin_tool_config_rejects_non_json_schema_values() -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 179 | def test_dify_plugin_tool_config_rejects_strict_flag() -> None: | CODE |
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 192 | def test_dify_plugin_tool_config_requires_explicit_credential_type() -> None: | CODE |
| LOW | …sts/local/dify_agent/layers/dify_plugin/test_layers.py | 27 | async def test_native_plugin_tool_prepares_schema_merges_hidden_parameters_and_decodes_stream(): | CODE |
| LOW | …sts/local/dify_agent/layers/dify_plugin/test_layers.py | 93 | async def test_native_plugin_tool_converts_file_inputs(value, download): | CODE |
| LOW | …sts/local/dify_agent/layers/dify_plugin/test_layers.py | 144 | async def test_model_assembly_reads_config_reference_and_borrows_shared_client(): | CODE |
| LOW | …ent/tests/local/dify_agent/layers/config/test_layer.py | 18 | async def test_first_pull_failure_retries_then_current_config_refreshes_without_repull(monkeypatch): | CODE |
| 23010 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | web/context/workspace-state.ts | 10 | return consoleQuery.workspaces.current.summary.get.queryOptions({ | CODE |
| CRITICAL | web/context/permission-state.ts | 9 | return consoleQuery.workspaces.current.rbac.myPermissions.get.queryOptions() | CODE |
| CRITICAL | web/app/education/apply/institution-field.tsx | 42 | ...consoleQuery.account.education.autocomplete.get.infiniteOptions({ | CODE |
| CRITICAL | …nents/snippets/components/hooks/use-snippet-publish.ts | 33 | consoleQuery.workspaces.current.customizedSnippets.bySnippetId.get.key({ | CODE |
| CRITICAL | …/app/components/snippets/hooks/use-nodes-sync-draft.ts | 119 | const response = await consoleClient.snippets.bySnippetId.workflows.draft.post({ | CODE |
| CRITICAL | web/app/components/snippets/hooks/use-create-snippet.ts | 48 | await consoleClient.snippets.bySnippetId.workflows.draft.post({ | CODE |
| CRITICAL | web/app/components/tools/marketplace/hooks.ts | 18 | consoleQuery.workspaces.current.plugin.installedIds.get.queryOptions({ | CODE |
| CRITICAL | web/app/components/tools/provider/detail.tsx | 96 | consoleQuery.workspaces.current.modelProviders.summary.get.queryOptions({ | CODE |
| CRITICAL | …pp/components/tools/provider/__tests__/detail.spec.tsx | 31 | queryClient.setQueryData(consoleQuery.workspaces.current.modelProviders.summary.get.queryKey(), { | CODE |
| CRITICAL | …omponents/app-sidebar/app-info/use-app-info-actions.ts | 78 | consoleQuery.apps.byAppId.copy.post.mutationOptions(), | CODE |
| CRITICAL⚡ | web/app/components/api-key/api-key-modal.tsx | 55 | consoleQuery.apps.byResourceId.apiKeys.get.queryOptions({ | CODE |
| CRITICAL⚡ | web/app/components/api-key/api-key-modal.tsx | 64 | consoleQuery.enterprise.appDeploy.accessService.listEnvironmentApiKeys.queryOptions({ | CODE |
| CRITICAL⚡ | web/app/components/api-key/api-key-modal.tsx | 72 | const createAppApiKey = useMutation(consoleQuery.apps.byResourceId.apiKeys.post.mutationOptions()) | CODE |
| CRITICAL⚡ | web/app/components/api-key/api-key-modal.tsx | 74 | consoleQuery.apps.byResourceId.apiKeys.byApiKeyId.delete.mutationOptions(), | CODE |
| CRITICAL⚡ | web/app/components/api-key/api-key-modal.tsx | 78 | consoleQuery.datasets.apiKeys.byApiKeyId.delete.mutationOptions(), | CODE |
| CRITICAL⚡ | web/app/components/api-key/api-key-modal.tsx | 81 | consoleQuery.enterprise.appDeploy.accessService.createEnvironmentApiKey.mutationOptions(), | CODE |
| CRITICAL⚡ | web/app/components/api-key/api-key-modal.tsx | 84 | consoleQuery.enterprise.appDeploy.accessService.deleteEnvironmentApiKey.mutationOptions(), | CODE |
| CRITICAL | web/app/components/app/use-export-app-dsl.ts | 44 | const { items } = await consoleClient.apps.byAppId.workflows.draft.environmentVariables.get( | CODE |
| CRITICAL | …nfiguration-lifecycle/use-configuration-app-context.ts | 35 | consoleQuery.apps.byAppId.modelConfig.post.mutationOptions({ | CODE |
| CRITICAL | …/configuration/dataset-config/settings-modal/index.tsx | 59 | consoleQuery.workspaces.current.models.modelTypes.byModelType.get.queryOptions({ | CODE |
| CRITICAL | …/configuration/dataset-config/settings-modal/index.tsx | 65 | consoleQuery.workspaces.current.models.modelTypes.byModelType.get.queryOptions({ | CODE |
| CRITICAL | web/app/components/app/configuration/debug/index.tsx | 355 | consoleQuery.workspaces.current.models.modelTypes.byModelType.get.queryOptions({ | CODE |
| CRITICAL | …bug/debug-with-multiple-model/text-generation-item.tsx | 45 | consoleQuery.workspaces.current.models.modelTypes.byModelType.get.queryOptions({ | CODE |
| CRITICAL | …/debug-with-multiple-model/model-parameter-trigger.tsx | 40 | ...consoleQuery.workspaces.current.modelProviders.summary.get.queryOptions(), | CODE |
| CRITICAL | …guration/debug/debug-with-multiple-model/chat-item.tsx | 48 | consoleQuery.workspaces.current.models.modelTypes.byModelType.get.queryOptions({ | CODE |
| CRITICAL | …uration/debug/debug-with-multiple-model/debug-item.tsx | 37 | consoleQuery.workspaces.current.models.modelTypes.byModelType.get.queryOptions({ | CODE |
| CRITICAL | web/app/components/app/deploy/state.ts | 157 | return consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL | web/app/components/app/deploy/state.ts | 207 | return consoleQuery.enterprise.appDeploy.deploymentService.listEnvironmentDeployments.queryOptions( | CODE |
| CRITICAL | …y/shared/deployment-configuration/use-provider-icon.ts | 43 | consoleQuery.rag.pipelines.datasourcePlugins.get.queryOptions({ | CODE |
| CRITICAL | …-configuration/use-deployment-configuration-queries.ts | 28 | consoleQuery.enterprise.appDeploy.deploymentService.precheckWorkflowDeployment.queryOptions({ | CODE |
| CRITICAL | …-configuration/use-deployment-configuration-queries.ts | 49 | consoleQuery.enterprise.appDeploy.deploymentService.getWorkflowDeploymentOptions.queryOptions({ | CODE |
| CRITICAL | …ent-configuration/__tests__/use-provider-icon.spec.tsx | 62 | client.getQueryData(consoleQuery.rag.pipelines.datasourcePlugins.get.queryKey()), | CODE |
| CRITICAL⚡ | web/app/components/app/deploy/__tests__/index.spec.tsx | 575 | consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL⚡ | web/app/components/app/deploy/__tests__/index.spec.tsx | 583 | consoleQuery.enterprise.appDeploy.deploymentService.listEnvironmentDeployments.queryOptions({ | CODE |
| CRITICAL⚡ | web/app/components/app/deploy/__tests__/index.spec.tsx | 594 | return consoleQuery.enterprise.appDeploy.deploymentService.precheckWorkflowDeployment.queryOptions( | CODE |
| CRITICAL | web/app/components/app/deploy/__tests__/index.spec.tsx | 608 | return consoleQuery.enterprise.appDeploy.deploymentService.getWorkflowDeploymentOptions.queryOptions( | CODE |
| CRITICAL | …p/components/app/deploy/hooks/use-undeploy-workflow.ts | 13 | consoleQuery.enterprise.appDeploy.deploymentService.undeployWorkflow.mutationOptions(), | CODE |
| CRITICAL | …app/components/app/deploy/hooks/use-deploy-workflow.ts | 18 | consoleQuery.enterprise.appDeploy.deploymentService.deployWorkflow.mutationOptions() | CODE |
| CRITICAL | …app/components/app/deploy/hooks/use-deploy-workflow.ts | 28 | consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL⚡ | …e-refresh-app-environments-after-deployment-polling.ts | 14 | consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL⚡ | …e-refresh-app-environments-after-deployment-polling.ts | 22 | consoleQuery.enterprise.appDeploy.deploymentService.listEnvironmentDeployments.queryOptions({ | CODE |
| CRITICAL | web/app/components/app/switch-app-modal/index.tsx | 82 | consoleQuery.apps.byAppId.convertToWorkflow.post.mutationOptions(), | CODE |
| CRITICAL | …pp/components/app/create-app-dialog/app-list/index.tsx | 148 | ...consoleQuery.explore.apps.byAppId.get.queryOptions({ | CODE |
| CRITICAL | …pp/create-app-dialog/app-list/__tests__/index.spec.tsx | 224 | consoleQuery.explore.apps.byAppId.get.queryKey({ | CODE |
| CRITICAL | web/app/components/app/app-publisher/state.ts | 96 | return consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL | web/app/components/app/app-publisher/state.ts | 246 | return consoleQuery.enterprise.appDeploy.deploymentService.listEnvironmentDeployments.queryOptions( | CODE |
| CRITICAL | web/app/components/app/app-publisher/state.ts | 303 | return consoleQuery.enterprise.appDeploy.deploymentService.getEnvironmentDeployment.queryOptions({ | CODE |
| CRITICAL | …ents/app/app-publisher/publish-with-multiple-model.tsx | 36 | consoleQuery.workspaces.current.models.modelTypes.byModelType.get.queryOptions({ | CODE |
| CRITICAL | …-publisher/publisher-content/use-publish-controller.ts | 37 | consoleQuery.enterprise.appDeploy.deploymentService.listEnvironmentDeployments.queryOptions({ | CODE |
| CRITICAL | …blisher/__tests__/environment-deployment-flow.spec.tsx | 192 | consoleQuery.enterprise.appDeploy.deploymentService.precheckWorkflowDeployment.queryOptions({ | CODE |
| CRITICAL | …blisher/__tests__/environment-deployment-flow.spec.tsx | 202 | consoleQuery.enterprise.appDeploy.deploymentService.getWorkflowDeploymentOptions.queryOptions( | CODE |
| CRITICAL | …blisher/__tests__/environment-deployment-flow.spec.tsx | 228 | consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL⚡ | …blisher/__tests__/environment-deployment-flow.spec.tsx | 252 | const latestPublishedWorkflowQuery = consoleQuery.apps.byAppId.workflows.publish.get.queryOptions( | CODE |
| CRITICAL⚡ | …blisher/__tests__/environment-deployment-flow.spec.tsx | 261 | const workflowVersionsQuery = consoleQuery.apps.byAppId.workflows.get.infiniteOptions({ | CODE |
| CRITICAL | …blisher/__tests__/environment-deployment-flow.spec.tsx | 725 | consoleQuery.enterprise.appDeploy.deploymentService.getWorkflowDeploymentOptions.queryOptions( | CODE |
| CRITICAL | …blisher/__tests__/environment-deployment-flow.spec.tsx | 773 | consoleQuery.enterprise.appDeploy.deploymentService.precheckWorkflowDeployment.queryOptions({ | CODE |
| CRITICAL | …/components/app/app-publisher/__tests__/index.spec.tsx | 354 | consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL | …/components/app/app-publisher/__tests__/index.spec.tsx | 377 | consoleQuery.enterprise.appDeploy.deploymentService.listEnvironmentDeployments.queryOptions({ | CODE |
| CRITICAL | …/components/app/app-publisher/__tests__/index.spec.tsx | 487 | consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| CRITICAL | …/components/app/app-publisher/__tests__/index.spec.tsx | 588 | consoleQuery.enterprise.appDeploy.deploymentService.listAppEnvironments.queryOptions({ | CODE |
| 621 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | docker/docker-compose.yaml | 1 | # ================================================================== | COMMENT |
| MEDIUM⚡ | docker/docker-compose.yaml | 5 | # ================================================================== | COMMENT |
| MEDIUM | docker/dify-env-sync.py | 3 | # ================================================================ | COMMENT |
| MEDIUM | docker/dify-env-sync.py | 12 | # ================================================================ | COMMENT |
| MEDIUM | docker/dify-env-sync.sh | 3 | # ================================================================ | COMMENT |
| MEDIUM | docker/dify-env-sync.sh | 12 | # ================================================================ | COMMENT |
| MEDIUM | docker/ssrf_proxy/test_ssrf_proxy_config.sh | 185 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/ssrf_proxy/test_ssrf_proxy_config.sh | 187 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …gent/tests/local/dify_agent/layers/shell/test_layer.py | 1040 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …gent/tests/local/dify_agent/layers/shell/test_layer.py | 1042 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 4 | # ================================ | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 17 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 19 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 126 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 128 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 163 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 165 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 186 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 188 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 194 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 196 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 206 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 208 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 228 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 230 | # ======================================================================== | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 30 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 32 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 82 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 84 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 113 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 115 | # ============================================================================ | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 9 | // ─── Why each mock exists ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 22 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 87 | // ─── ResizeObserver capture ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 100 | // ─── Factories ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 111 | // ─── Suite ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 11 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 58 | // ─── Setup / teardown ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 79 | // ─── Rendering ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 100 | // ─── Play / Pause toggle ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 174 | // ─── Audio events ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 225 | // ─── Waveform generation ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 331 | // ─── Canvas interactions ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 425 | // ─── Missing coverage tests ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/index.spec.tsx | 72 | // ─── Typed factories (no `any` / `never`) ──────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/index.spec.tsx | 115 | // ─── Test harness ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/index.spec.tsx | 286 | // ─── Tests ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 26 | // ─── Helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 50 | // ─── Factory helpers (typed, no `any` / `never`) ───────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 101 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 103 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 373 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 375 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 514 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 516 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 659 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 661 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | web/__tests__/billing/self-hosted-plan-flow.test.tsx | 30 | // ─── 1. Plan Rendering ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/__tests__/billing/self-hosted-plan-flow.test.tsx | 52 | // ─── 2. Navigation Flow ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/__tests__/billing/billing-integration.test.tsx | 77 | // ─── Navigation mocks ─────────────────────────────────────────────────────── | COMMENT |
| 1057 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 13 | CODE | |
| LOW | …dify_agent/runtime_backend/test_working_environment.py | 3 | CODE | |
| LOW | dify-agent/tests/docs/test_examples.py | 1 | CODE | |
| LOW | dify-agent/tests/docs/test_snippets.py | 1 | CODE | |
| LOW | dify-agent/tests/local/test_packaging.py | 1 | CODE | |
| LOW | …ent/tests/local/dify_agent/test_client_safe_exports.py | 1 | CODE | |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 1 | CODE | |
| LOW | …ests/local/dify_agent/layers/user_prompt/test_layer.py | 1 | CODE | |
| LOW | …gent/tests/local/dify_agent/layers/shell/test_layer.py | 1 | CODE | |
| LOW | …dify_agent/agent_stub/server/test_agent_stub_config.py | 1 | CODE | |
| LOW | …ests/local/dify_agent/agent_stub/server/test_router.py | 1 | CODE | |
| LOW | …/dify_agent/agent_stub/server/test_agent_stub_files.py | 1 | CODE | |
| LOW | …al/dify_agent/agent_stub/server/test_agent_stub_app.py | 1 | CODE | |
| LOW | …dify_agent/agent_stub/server/test_agent_stub_routes.py | 1 | CODE | |
| LOW | …t/tests/local/dify_agent/agent_stub/server/test_cli.py | 1 | CODE | |
| LOW | …dify_agent/agent_stub/server/tokens/test_agent_stub.py | 1 | CODE | |
| LOW | …_agent/agent_stub/protocol/test_agent_stub_protocol.py | 1 | CODE | |
| LOW | …s/local/dify_agent/runtime/test_agent_observability.py | 3 | CODE | |
| LOW | …/tests/local/dify_agent/runtime/test_command_runner.py | 1 | CODE | |
| LOW | …ts/local/dify_agent/server/test_e2b_usage_collector.py | 1 | CODE | |
| LOW | …ocal/dify_agent/server/test_observability_isolation.py | 3 | CODE | |
| LOW | …nt/tests/local/dify_agent/server/test_observability.py | 1 | CODE | |
| LOW | …t/tests/local/dify_agent/server/test_home_snapshots.py | 1 | CODE | |
| LOW | …nt/tests/local/dify_agent/server/test_binding_files.py | 1 | CODE | |
| LOW | …/tests/local/dify_agent/server/test_e2b_usage_route.py | 1 | CODE | |
| LOW | …tests/local/dify_agent/server/test_e2b_usage_client.py | 1 | CODE | |
| LOW | dify-agent/tests/local/dify_agent/server/test_app.py | 1 | CODE | |
| LOW | …y-agent/tests/local/dify_agent/server/test_settings.py | 1 | CODE | |
| LOW | …t/tests/local/dify_agent/adapters/shell/test_config.py | 3 | CODE | |
| LOW | …tests/local/dify_agent/adapters/shell/test_shellctl.py | 3 | CODE | |
| LOW | dify-agent/tests/local/dify_agent/client/test_client.py | 1 | CODE | |
| LOW | …/dify_agent/runtime_backend/test_enterprise_backend.py | 1 | CODE | |
| LOW | …al/dify_agent/runtime_backend/test_shellctl_backend.py | 1 | CODE | |
| LOW | …sts/local/dify_agent/runtime_backend/test_openshell.py | 1 | CODE | |
| LOW | …ent/tests/local/dify_agent/runtime_backend/test_e2b.py | 1 | CODE | |
| LOW | …al/dify_agent/runtime_backend/test_openshell_tunnel.py | 1 | CODE | |
| LOW | …tests/local/dify_agent/runtime_backend/test_profile.py | 1 | CODE | |
| LOW | …t/tests/local/dify_agent/runtime_backend/test_local.py | 1 | CODE | |
| LOW | …agent/tests/local/examples/test_dify_agent_examples.py | 1 | CODE | |
| LOW | dify-agent/docs/.hooks/snippets.py | 1 | CODE | |
| LOW | dify-agent/docs/.hooks/main.py | 1 | CODE | |
| LOW | …ify_agent/dify_agent_examples/run_pydantic_ai_agent.py | 16 | CODE | |
| LOW | …nt/examples/dify_agent/dify_agent_examples/__main__.py | 3 | CODE | |
| LOW | dify-agent/src/dify_agent/plugin_daemon_transport.py | 8 | CODE | |
| LOW | dify-agent/src/dify_agent/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/_agent_cli_help.py | 3 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/user_prompt/configs.py | 3 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/user_prompt/__init__.py | 3 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/user_prompt/__init__.py | 3 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/user_prompt/__init__.py | 3 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/user_prompt/__init__.py | 3 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/user_prompt/__init__.py | 3 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/user_prompt/layer.py | 3 | CODE | |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tools_layer.py | 14 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 7 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 7 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 7 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 7 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 7 | CODE | |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 7 | CODE | |
| 1632 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 706 | except Exception as exc: | CODE |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 864 | except Exception as exc: | CODE |
| MEDIUM | …nt/examples/dify_agent/dify_agent_examples/__main__.py | 37 | print(f'Error: destination path "{destination}" already exists', file=sys.stderr) | CODE |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tool_client.py | 124 | except Exception: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 355 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 389 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 423 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 451 | except Exception: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 468 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime/runner.py | 195 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 209 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 241 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 281 | except Exception: | CODE |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 349 | except Exception: | CODE |
| LOW | dify-agent/src/dify_agent/server/binding_files.py | 190 | except Exception as exc: | STRING |
| LOW | dify-agent/src/dify_agent/server/binding_files.py | 218 | except Exception as exc: | STRING |
| LOW | dify-agent/src/dify_agent/server/binding_files.py | 279 | except Exception as exc: | STRING |
| LOW | dify-agent/src/dify_agent/server/routes/e2b_usage.py | 95 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/local.py | 200 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/e2b.py | 228 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/e2b.py | 291 | except Exception as cleanup_exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/e2b.py | 341 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/e2b.py | 360 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/e2b.py | 395 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/shellctl.py | 139 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/openshell.py | 489 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/openshell.py | 608 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/openshell.py | 613 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/openshell.py | 630 | except Exception as exc: | CODE |
| LOW | …ent/src/dify_agent/runtime_backend/openshell_tunnel.py | 151 | except Exception: | CODE |
| LOW | …ent/src/dify_agent/runtime_backend/openshell_tunnel.py | 173 | except Exception: | CODE |
| LOW | dify-agent/src/dify_agent/runtime_backend/enterprise.py | 265 | except Exception as exc: | CODE |
| LOW | scripts/stress-test/run_locust_stress_test.sh | 228 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup_all.py | 90 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup_all.py | 109 | except Exception as e: | CODE |
| LOW | scripts/stress-test/cleanup.py | 83 | except Exception as e: | CODE |
| LOW | scripts/stress-test/sse_benchmark.py | 508 | except Exception as e: | CODE |
| LOW | scripts/stress-test/sse_benchmark.py | 533 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/install_openai_plugin.py | 166 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/login_admin.py | 105 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/import_workflow_app.py | 131 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/configure_openai_plugin.py | 97 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/create_api_key.py | 114 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/publish_workflow.py | 105 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/setup_admin.py | 75 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/run_workflow.py | 150 | except Exception as e: | CODE |
| LOW | api/app_factory.py | 125 | except Exception: | CODE |
| LOW | api/app_factory.py | 149 | except Exception: | CODE |
| MEDIUM | api/app_factory.py | 135 | def add_trace_headers(response): | CODE |
| LOW | api/clients/agent_backend/client.py | 122 | except Exception as exc: | CODE |
| LOW | api/clients/agent_backend/client.py | 129 | except Exception as exc: | CODE |
| LOW | api/clients/agent_backend/client.py | 142 | except Exception as exc: | CODE |
| LOW⚡ | api/clients/agent_backend/client.py | 160 | except Exception as exc: | CODE |
| LOW⚡ | api/clients/agent_backend/client.py | 167 | except Exception as exc: | CODE |
| LOW | api/schedule/update_api_token_last_used_task.py | 104 | except Exception: | CODE |
| LOW | api/schedule/mail_clean_document_notify_task.py | 100 | except Exception: | CODE |
| LOW | api/schedule/update_tidb_serverless_status_task.py | 32 | except Exception as e: | CODE |
| LOW | api/schedule/update_tidb_serverless_status_task.py | 53 | except Exception as e: | CODE |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 98 | except Exception: | CODE |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 167 | except Exception: | CODE |
| 1302 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | api/tasks/workflow_draft_var_tasks.py | 0 | celery tasks for asynchronous workflow node execution storage operations. these tasks provide asynchronous storage capab | STRING |
| HIGH | api/tasks/workflow_execution_tasks.py | 0 | celery tasks for asynchronous workflow node execution storage operations. these tasks provide asynchronous storage capab | STRING |
| HIGH | api/tasks/workflow_node_execution_tasks.py | 0 | celery tasks for asynchronous workflow node execution storage operations. these tasks provide asynchronous storage capab | STRING |
| HIGH | api/core/provider_manager.py | 0 | extract secret input form variables. :param credential_form_schemas: :return: | STRING |
| HIGH | api/core/entities/provider_configuration.py | 0 | extract secret input form variables. :param credential_form_schemas: :return: | STRING |
| HIGH | api/services/data_source/provider_service.py | 0 | extract secret input form variables. :param credential_form_schemas: :return: | STRING |
| HIGH | api/core/datasource/entities/datasource_entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/tools/entities/tool_entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/app/app_config/entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/entities/provider_entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/models/model.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/models/workflow.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/tools/workflow_as_tool/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/__base/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/custom_tool/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/builtin_tool/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/plugin_tool/provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | api/core/tools/__base/tool_provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | api/core/tools/mcp_tool/provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | api/core/tools/builtin_tool/provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | …/task_pipeline/easy_ui_based_generate_task_pipeline.py | 0 | advancedchatappgeneratetaskpipeline is a class that generate stream output and state management for application. | STRING |
| HIGH | api/core/app/apps/workflow/generate_task_pipeline.py | 0 | advancedchatappgeneratetaskpipeline is a class that generate stream output and state management for application. | STRING |
| HIGH | …/core/app/apps/advanced_chat/generate_task_pipeline.py | 0 | advancedchatappgeneratetaskpipeline is a class that generate stream output and state management for application. | STRING |
| HIGH | …e/app/app_config/features/opening_statement/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/features/speech_to_text/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …g/features/suggested_questions_after_answer/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/features/more_like_this/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/features/text_to_speech/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …p/app_config/easy_ui_based_app/model_config/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …re/app/app_config/easy_ui_based_app/dataset/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/easy_ui_based_app/agent/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …/app/app_config/easy_ui_based_app/variables/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | api/core/app/apps/base_app_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/message_based_app_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/pipeline/pipeline_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/workflow/app_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/pipeline/pipeline_generator.py | 0 | generate app response. :param app_model: app :param workflow: workflow :param node_id: the node id :param user: account | STRING |
| HIGH | api/core/app/apps/workflow/app_generator.py | 0 | generate app response. :param app_model: app :param workflow: workflow :param node_id: the node id :param user: account | STRING |
| HIGH | api/core/app/apps/advanced_chat/app_generator.py | 0 | generate app response. :param app_model: app :param workflow: workflow :param node_id: the node id :param user: account | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/workflow/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/app/apps/advanced_chat/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/agent_chat/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/workflow/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/app/apps/advanced_chat/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/agent_chat/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …/core/app/apps/workflow/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …/app/apps/advanced_chat/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …ore/app/apps/agent_chat/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert stream simple response. :param stream_response: stream response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert stream simple response. :param stream_response: stream response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert stream simple response. :param stream_response: stream response :return: | STRING |
| 122 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dify-agent/src/dify_agent/plugin_daemon_transport.py | 67 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/__init__.py | 24 | __all__ = ["Client"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/_agent_cli_help.py | 28 | __all__ = ["render_agent_stub_cli_help"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/user_prompt/configs.py | 80 | __all__ = [ | CODE |
| LOW | …fy-agent/src/dify_agent/layers/user_prompt/__init__.py | 11 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/user_prompt/layer.py | 92 | __all__ = ["Config", "State", "Capability"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/dify_plugin/configs.py | 176 | __all__ = [ | CODE |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tools_layer.py | 644 | __all__ = ["Config", "State", "Toolset"] | CODE |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 20 | __all__ = [ | CODE |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tool_client.py | 327 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/config/configs.py | 65 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/config/__init__.py | 11 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/config/layer.py | 293 | __all__ = ["Config", "State", "Capability", "DifyConfigLayerError"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/output_text.py | 55 | __all__ = ["normalized_output_text", "utf8_prefix", "utf8_suffix"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/configs.py | 81 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/__init__.py | 15 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 764 | __all__ = [ | CODE |
| LOW | …gent/src/dify_agent/layers/dify_core_tools/__init__.py | 9 | __all__ = [ | CODE |
| LOW | …y-agent/src/dify_agent/layers/dify_core_tools/layer.py | 132 | __all__ = ["Config", "State", "Toolset"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/runtime/configs.py | 14 | __all__ = ["DifyRuntimeLayerConfig"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/runtime/__init__.py | 3 | __all__ = ["DifyRuntimeLayerConfig"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/output/configs.py | 46 | __all__ = ["DifyOutputLayerConfig"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/output/__init__.py | 10 | __all__ = ["DifyOutputLayerConfig"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 309 | __all__ = ["DifyOutputContract", "Config", "State", "Capability"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/prompt/__init__.py | 5 | __all__ = ["Config"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/configs.py | 279 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/client.py | 213 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/__init__.py | 22 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/layer.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/layer.py | 506 | __all__ = [ | CODE |
| LOW | …ent/src/dify_agent/layers/execution_context/configs.py | 62 | __all__ = [ | CODE |
| LOW | …nt/src/dify_agent/layers/execution_context/__init__.py | 17 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/shell_env.py | 43 | __all__ = [ | CODE |
| LOW⚡ | …gent/src/dify_agent/agent_stub/server/control_plane.py | 204 | __all__ = [ | CODE |
| LOW | …/src/dify_agent/agent_stub/server/agent_stub_config.py | 271 | __all__ = [ | CODE |
| LOW | …t/src/dify_agent/agent_stub/server/agent_stub_files.py | 273 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/server/cli.py | 36 | __all__ = ["main"] | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/server/app.py | 35 | __all__ = ["app", "create_agent_stub_app"] | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/server/router.py | 35 | __all__ = ["create_agent_stub_router"] | CODE |
| LOW | …/src/dify_agent/agent_stub/server/tokens/agent_stub.py | 251 | __all__ = [ | CODE |
| LOW | …nt/src/dify_agent/agent_stub/server/tokens/__init__.py | 17 | __all__ = [ | CODE |
| LOW | …/src/dify_agent/agent_stub/server/routes/agent_stub.py | 132 | __all__ = ["create_agent_stub_http_router"] | CODE |
| LOW | …nt/src/dify_agent/agent_stub/server/routes/__init__.py | 5 | __all__ = ["create_agent_stub_http_router"] | CODE |
| LOW | …agent/src/dify_agent/agent_stub/protocol/agent_stub.py | 337 | __all__ = [ | CODE |
| LOW | …y-agent/src/dify_agent/agent_stub/protocol/__init__.py | 41 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/runtime/event_sink.py | 194 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/runtime/runner.py | 347 | __all__ = ["AgentRunRunner", "AgentRunValidationError"] | CODE |
| LOW | dify-agent/src/dify_agent/runtime/cancellation.py | 19 | __all__ = ["RunCancellationIntent"] | CODE |
| LOW | dify-agent/src/dify_agent/runtime/command_runner.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | dify-agent/src/dify_agent/runtime/command_runner.py | 105 | __all__ = ["execute_complete_with_commands"] | CODE |
| LOW | dify-agent/src/dify_agent/runtime/observability.py | 280 | __all__ = [ | CODE |
| LOW | …agent/src/dify_agent/runtime/user_prompt_validation.py | 29 | __all__ = ["EMPTY_USER_PROMPTS_ERROR", "has_non_blank_user_prompt"] | CODE |
| LOW | dify-agent/src/dify_agent/runtime/compaction.py | 46 | __all__ = ["build_compaction_capability"] | CODE |
| LOW | dify-agent/src/dify_agent/runtime/event_coalescer.py | 139 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 354 | __all__ = ["RunCancellationConflictError", "RunScheduler", "SchedulerStoppingError"] | CODE |
| LOW | dify-agent/src/dify_agent/server/auth.py | 43 | __all__ = ["create_bearer_token_dependency"] | CODE |
| LOW | dify-agent/src/dify_agent/server/e2b_usage_client.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | dify-agent/src/dify_agent/server/binding_files.py | 37 | logger = logging.getLogger(__name__) | CODE |
| 757 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/stress-test/common/config_helper.py | 312 | # Create a default instance for convenience | COMMENT |
| MEDIUM | api/celery_healthcheck.py | 1 | # This module provides a lightweight Celery instance for use in Docker health checks. | COMMENT |
| MEDIUM | api/core/app/apps/pipeline/pipeline_runner.py | 158 | # Create a variable pool. | COMMENT |
| MEDIUM | api/core/app/apps/workflow/app_runner.py | 122 | # Create a variable pool. | COMMENT |
| MEDIUM | api/core/app/apps/advanced_chat/app_runner.py | 198 | # Initialize conversation variables | COMMENT |
| MEDIUM | api/core/app/apps/advanced_chat/app_runner.py | 201 | # Create a variable pool. | COMMENT |
| MEDIUM | api/core/plugin/utils/chunk_merger.py | 85 | # Create the appropriate message type based on the response type | COMMENT |
| MEDIUM | …positories/sqlalchemy_workflow_execution_repository.py | 198 | # Create a new database session | COMMENT |
| MEDIUM | api/core/mcp/auth_client.py | 87 | # Create a temporary session only for auth retry | COMMENT |
| MEDIUM | api/core/rag/index_processor/index_processor_base.py | 228 | # Create a mapping from ID to UploadFile for quick lookup | COMMENT |
| MEDIUM | api/core/rag/index_processor/index_processor_base.py | 231 | # Create a Document for each occurrence (including duplicates) | COMMENT |
| MEDIUM | …index_processor/processor/paragraph_index_processor.py | 166 | # This method is called for actual deletion scenarios (e.g., when segment is deleted). | COMMENT |
| MEDIUM | …ex_processor/processor/parent_child_index_processor.py | 173 | # This method is called for actual deletion scenarios (e.g., when segment is deleted). | COMMENT |
| MEDIUM | …re/rag/index_processor/processor/qa_index_processor.py | 167 | # This method is called for actual deletion scenarios (e.g., when segment is deleted). | COMMENT |
| MEDIUM | api/core/schemas/resolver.py | 268 | # Create a copy and remove metadata fields | COMMENT |
| MEDIUM | api/core/workflow/workflow_entry.py | 379 | # Create a minimal graph for single node execution | COMMENT |
| MEDIUM | api/core/ops/ops_trace_manager.py | 406 | # Create a new instance of the config class with the new configuration | COMMENT |
| MEDIUM | api/constants/recommended_apps.json | 471 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: advanced-chat\n name: | CODE |
| MEDIUM | …ix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py | 233 | # Create a named tracer instead of setting the global provider | COMMENT |
| MEDIUM | …iders/vdb/vdb-relyt/src/dify_vdb_relyt/relyt_vector.py | 121 | # Define the table schema | STRING |
| MEDIUM | …iders/vdb/vdb-relyt/src/dify_vdb_relyt/relyt_vector.py | 178 | # Define the table schema | COMMENT |
| MEDIUM | …iders/vdb/vdb-relyt/src/dify_vdb_relyt/relyt_vector.py | 265 | # Define the base query | COMMENT |
| MEDIUM | …/vdb-weaviate/tests/unit_tests/test_weaviate_vector.py | 692 | # Create a document with doc_type metadata (as produced by multimodal indexing) | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 344 | # Create the text field, enable_analyzer will be set True to support milvus automatically | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 359 | # Create the primary key field | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 361 | # Create the vector field, supports binary or float vectors | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 392 | # Create the collection | COMMENT |
| MEDIUM | api/tests/unit_tests/tasks/test_mail_send_task.py | 1309 | # Create a large HTML body (simulating a newsletter) | COMMENT |
| MEDIUM | api/tests/unit_tests/tools/test_api_tool.py | 38 | # Create a mock tool entity | COMMENT |
| MEDIUM | api/tests/unit_tests/tools/test_api_tool.py | 47 | # Create a mock API bundle | COMMENT |
| MEDIUM | api/tests/unit_tests/tools/test_api_tool.py | 59 | # Create the ApiTool instance | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/core/test_file.py | 23 | # Create a feature dict that mimics the old structure with image config | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/core/test_file.py | 30 | # Create a workflow instance with the features | COMMENT |
| MEDIUM | …sts/unit_tests/core/datasource/test_notion_provider.py | 1672 | # Create a custom query filter | COMMENT |
| MEDIUM | …tests/unit_tests/core/datasource/test_website_crawl.py | 1567 | # Create a crawl message with results | COMMENT |
| MEDIUM | …it_tests/core/datasource/entities/test_api_entities.py | 63 | # Create a parameter that should be converted | COMMENT |
| MEDIUM | …tests/unit_tests/core/tools/test_tool_label_manager.py | 28 | # Create a mock class for testing abstract/base classes | COMMENT |
| MEDIUM | …sts/core/app/features/rate_limiting/test_rate_limit.py | 410 | # Create a generator-like object without close method | COMMENT |
| MEDIUM | …/core/app/apps/chat/test_base_app_runner_multimodal.py | 120 | # Create a small test image (1x1 PNG) | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 426 | # Create a minimal WorkflowUIBasedAppConfig for testing | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 525 | # Create a test event with large data | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 566 | # Create a test event with large data | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 606 | # Create a test event with large data | COMMENT |
| MEDIUM | …sts/unit_tests/core/memory/test_token_buffer_memory.py | 483 | # Create a mock message with a SYSTEM role | COMMENT |
| MEDIUM | api/tests/unit_tests/core/plugin/test_plugin_runtime.py | 531 | # Create a proper nested JSON structure for PluginInvokeError | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 14 | # Create a simple GET request | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 32 | # Create a GET request with query parameters | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 49 | # Create a POST request with body | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 74 | # Create a request with custom headers | COMMENT |
| MEDIUM | …ositories/test_celery_workflow_execution_repository.py | 108 | # Create an Account with no tenant_id. | COMMENT |
| MEDIUM | …ries/test_celery_workflow_node_execution_repository.py | 114 | # Create an Account with no tenant_id. | COMMENT |
| MEDIUM | …epositories/test_workflow_node_execution_truncation.py | 155 | # Create a database model without offload data | COMMENT |
| MEDIUM | api/tests/unit_tests/core/mcp/test_entities.py | 100 | # Create a real session without starting its receive loop. | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/core/rag/pipeline/test_queue.py | 239 | # Create a wrapped task | COMMENT |
| MEDIUM | …sts/unit_tests/core/rag/splitter/test_text_splitter.py | 1330 | # Create a large document | COMMENT |
| MEDIUM | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 456 | # Create a side effect function that simulates _retrieve behavior | COMMENT |
| MEDIUM | api/tests/unit_tests/core/schemas/test_resolver.py | 140 | # Create a moderately nested structure | COMMENT |
| MEDIUM | api/tests/unit_tests/core/schemas/test_resolver.py | 479 | # Create a schema with many references to the same schema | COMMENT |
| MEDIUM | api/tests/unit_tests/core/schemas/test_resolver.py | 501 | # Create a moderately complex schema without any $refs (typical plugin output_schema) | COMMENT |
| MEDIUM | api/tests/unit_tests/core/schemas/test_resolver.py | 587 | # Create a very large schema without refs | COMMENT |
| 141 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 112 | "placeholder": None, | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 54 | email: 'user@example.com', | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 343 | email: 'user@example.com', | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 484 | value: 'user@example.com', | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 501 | expect(setUserId).toHaveBeenCalledWith('user@example.com') | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 505 | email: 'user@example.com', | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 641 | expect(setUserId).toHaveBeenCalledWith('user@example.com') | CODE |
| LOW | web/app/install/installForm.spec.tsx | 123 | await user.type(await screen.findByLabelText('login.email'), 'admin@example.com') | CODE |
| LOW | web/app/install/installForm.spec.tsx | 141 | target: { value: 'admin@example.com' }, | CODE |
| LOW | web/app/install/installForm.spec.tsx | 154 | email: 'admin@example.com', | CODE |
| LOW | web/app/install/installForm.spec.tsx | 166 | email: 'admin@example.com', | CODE |
| LOW | web/app/install/installForm.spec.tsx | 189 | target: { value: 'admin@example.com' }, | CODE |
| LOW | web/app/install/installForm.spec.tsx | 212 | target: { value: 'admin@example.com' }, | CODE |
| LOW | …n/components/__tests__/mail-and-password-auth.spec.tsx | 66 | await user.type(emailInput, 'user@example.com') | CODE |
| LOW | …n/components/__tests__/mail-and-password-auth.spec.tsx | 77 | email: 'user@example.com', | CODE |
| LOW | web/app/signup/check-code/__tests__/page.spec.tsx | 59 | email: 'user@example.com', | CODE |
| LOW | web/app/signup/check-code/__tests__/page.spec.tsx | 92 | email: 'user@example.com', | CODE |
| LOW | …b/app/components/tools/parameters/tool-date-picker.tsx | 18 | type Props = Pick<DatePickerProps, 'placeholder' | 'readOnly' | 'minDate' | 'maxDate'> & | CODE |
| LOW | …dataset-config/settings-modal/__tests__/index.spec.tsx | 230 | email: 'user@example.com', | CODE |
| LOW⚡ | web/app/components/app/deploy/__tests__/index.spec.tsx | 1310 | expect(portInput).toHaveAttribute('placeholder', '2') | CODE |
| LOW⚡ | web/app/components/app/deploy/__tests__/index.spec.tsx | 1312 | 'placeholder', | CODE |
| LOW⚡ | web/app/components/app/deploy/__tests__/index.spec.tsx | 1316 | 'placeholder', | CODE |
| LOW⚡ | web/app/components/app/deploy/__tests__/index.spec.tsx | 1320 | 'placeholder', | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 17 | { label: 'name', value: 'John Doe' }, | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 40 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 66 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 76 | expect(screen.queryByText('John Doe')).not.toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 87 | expect(screen.queryByText('John Doe')).not.toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 91 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 337 | created_by_account: { id: 'acc-1', name: 'John Doe', email: 'john@example.com' }, | CODE |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 346 | expect(screen.getByText('John Doe'))!.toBeInTheDocument() | CODE |
| LOW | …nents/app/access-point/__tests__/web-app-card.spec.tsx | 228 | created_by: { id: 'user-id', name: 'User', email: 'user@example.com' }, | CODE |
| LOW | …nents/app/access-point/__tests__/web-app-card.spec.tsx | 231 | updated_by: { id: 'user-id', name: 'User', email: 'user@example.com' }, | CODE |
| LOW | …ts/plugins/plugin-tags-filter/__tests__/index.spec.tsx | 88 | expect(screen.getByRole('searchbox')).toHaveAttribute('placeholder', '') | CODE |
| LOW | …n-page/filter-management/__tests__/search-box.spec.tsx | 35 | expect(searchBox).toHaveAttribute('placeholder', 'plugin.search') | CODE |
| LOW | …/settings/permission-selector/__tests__/index.spec.tsx | 36 | name: 'John Doe', | CODE |
| LOW | …s/documents/components/__tests__/rename-modal.spec.tsx | 186 | expect(input).toHaveAttribute('placeholder', 'common.placeholder.input') | CODE |
| LOW | …nts/detail/completed/common/__tests__/summary.spec.tsx | 122 | 'placeholder', | CODE |
| LOW | …asets/create/website/base/__tests__/url-input.spec.tsx | 28 | expect(input).toHaveAttribute('placeholder', 'https://docs.example.com') | CODE |
| LOW | …omponents/access-rules-editor/__tests__/index.spec.tsx | 389 | email: 'admin@example.com', | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 33 | userProfile: { email: 'user@example.com' }, | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 81 | userProfile: { email: 'user@example.com' }, | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 200 | 'user@example.com', | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 225 | expect(mailToSupport).toHaveBeenCalledWith('user@example.com', 'team', '1.0.0', '') | CODE |
| LOW | …line/components/panel/input-field/editor/form/hooks.ts | 317 | variable: 'placeholder', | CODE |
| LOW | …line/components/panel/input-field/editor/form/hooks.ts | 331 | variable: 'placeholder', | CODE |
| LOW | …line/components/panel/input-field/editor/form/hooks.ts | 359 | variable: 'placeholder', | CODE |
| LOW | …panel/input-field/editor/form/__tests__/index.spec.tsx | 726 | (config) => config.variable === 'placeholder', | CODE |
| LOW | …panel/input-field/editor/form/__tests__/index.spec.tsx | 1270 | placeholder: 'placeholder', | CODE |
| LOW | …ents/panel/input-field/editor/__tests__/index.spec.tsx | 421 | placeholder: 'placeholder', | CODE |
| LOW | …ents/panel/input-field/editor/__tests__/index.spec.tsx | 435 | expect(result.placeholder).toBe('placeholder') | CODE |
| LOW | …ents/panel/input-field/editor/__tests__/index.spec.tsx | 654 | placeholder: 'placeholder', | CODE |
| LOW | …ents/panel/input-field/editor/__tests__/index.spec.tsx | 673 | expect(result.placeholder).toBe('placeholder') | CODE |
| LOW | …ents/panel/input-field/editor/__tests__/index.spec.tsx | 830 | placeholder: 'placeholder', | CODE |
| LOW | …/components/__tests__/variable-modal.sections.spec.tsx | 88 | placeholder="placeholder" | CODE |
| LOW | …livery-method/recipient/__tests__/email-input.spec.tsx | 89 | expect(input).toHaveAttribute('placeholder', '') | CODE |
| LOW | …livery-method/recipient/__tests__/email-input.spec.tsx | 93 | 'placeholder', | CODE |
| LOW | …nts/delivery-method/__tests__/mail-body-input.spec.tsx | 20 | default: (_props: { hideBadge?: boolean }) => <div data-testid="placeholder" />, | CODE |
| LOW | …perator/components/__tests__/filter-condition.spec.tsx | 162 | 'placeholder', | CODE |
| LOW | …low/nodes/list-operator/__tests__/integration.spec.tsx | 172 | expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', '') | CODE |
| 505 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/dify-env-sync.py | 293 | CODE | |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 833 | CODE | |
| LOW | …tegration/dify_agent/server/test_e2b_transport_soak.py | 1061 | CODE | |
| LOW | …ation/dify_agent/storage/test_terminal_finalization.py | 51 | CODE | |
| LOW | …dify_agent/agent_stub/server/test_agent_stub_config.py | 433 | CODE | |
| LOW | …s/local/dify_agent/runtime/test_agent_observability.py | 469 | CODE | |
| LOW | …ocal/dify_agent/server/test_observability_isolation.py | 64 | CODE | |
| LOW | …al/dify_agent/runtime_backend/test_openshell_tunnel.py | 135 | CODE | |
| LOW | dify-agent/docs/.hooks/snippets.py | 130 | CODE | |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tools_layer.py | 269 | CODE | |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tools_layer.py | 599 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 256 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 210 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 267 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 222 | CODE | |
| LOW | dify-agent/src/dify_agent/runtime/runner.py | 222 | CODE | |
| LOW | dify-agent/src/dify_agent/runtime/event_coalescer.py | 15 | CODE | |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 188 | CODE | |
| LOW | dify-agent/src/dify_agent/server/observability.py | 43 | CODE | |
| LOW | dify-agent/src/dify_agent/protocol/snapshot.py | 36 | CODE | |
| LOW | dify-agent/src/dify_agent/storage/redis_run_store.py | 352 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 286 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 341 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 371 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 391 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 436 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 630 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 666 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 735 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/shell/shellctl.py | 282 | CODE | |
| LOW | dify-agent/src/dify_agent/client/_client.py | 707 | CODE | |
| LOW | dify-agent/src/dify_agent/client/_client.py | 847 | CODE | |
| LOW | …ent/src/dify_agent/runtime_backend/openshell_tunnel.py | 110 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 559 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 326 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 400 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 567 | CODE | |
| LOW | scripts/stress-test/setup/install_openai_plugin.py | 18 | CODE | |
| LOW | scripts/stress-test/setup/login_admin.py | 20 | CODE | |
| LOW | scripts/stress-test/setup/import_workflow_app.py | 18 | CODE | |
| LOW | scripts/stress-test/setup/configure_openai_plugin.py | 12 | CODE | |
| LOW | scripts/stress-test/setup/create_api_key.py | 14 | CODE | |
| LOW | scripts/stress-test/setup/publish_workflow.py | 14 | CODE | |
| LOW | scripts/stress-test/setup/setup_admin.py | 22 | CODE | |
| LOW | scripts/stress-test/setup/run_workflow.py | 14 | CODE | |
| LOW | api/schedule/update_api_token_last_used_task.py | 28 | CODE | |
| LOW | api/schedule/mail_clean_document_notify_task.py | 22 | CODE | |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 44 | CODE | |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 107 | CODE | |
| LOW | api/schedule/queue_monitor_task.py | 34 | CODE | |
| LOW | api/schedule/workflow_schedule_task.py | 18 | CODE | |
| LOW | api/schedule/clean_unused_datasets_task.py | 28 | CODE | |
| LOW | api/tasks/regenerate_summary_index_task.py | 25 | CODE | |
| LOW | api/tasks/enable_segments_to_index_task.py | 25 | CODE | |
| LOW | api/tasks/deal_dataset_index_update_task.py | 20 | CODE | |
| LOW | api/tasks/remove_app_and_related_data_task.py | 730 | CODE | |
| LOW | api/tasks/clean_document_task.py | 20 | CODE | |
| LOW | api/tasks/retry_document_indexing_task.py | 29 | CODE | |
| LOW | api/tasks/duplicate_document_indexing_task.py | 81 | CODE | |
| LOW | api/tasks/enable_segment_to_index_task.py | 28 | CODE | |
| 589 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …t/tests/local/dify_agent/runtime/test_run_scheduler.py | 428 | except asyncio.CancelledError: | CODE |
| HIGH | …ent/src/dify_agent/runtime_backend/openshell_tunnel.py | 40 | except OSError: | CODE |
| HIGH | …ent/src/dify_agent/runtime_backend/openshell_tunnel.py | 44 | except OSError: | CODE |
| HIGH | …ent/src/dify_agent/runtime_backend/openshell_tunnel.py | 163 | except OSError: | CODE |
| HIGH | …ent/src/dify_agent/runtime_backend/openshell_tunnel.py | 127 | except OSError: | CODE |
| HIGH | scripts/stress-test/setup/publish_workflow.py | 83 | except json.JSONDecodeError: | CODE |
| HIGH | scripts/stress-test/setup/run_workflow.py | 114 | except json.JSONDecodeError: | CODE |
| HIGH | api/core/provider_manager.py | 1670 | except ValueError: | CODE |
| HIGH | api/core/provider_manager.py | 1812 | except ValueError: | CODE |
| HIGH | api/core/credit_usage.py | 55 | except ValueError: | CODE |
| HIGH | api/core/credit_usage.py | 66 | except ValueError: | CODE |
| HIGH | api/core/tools/workflow_as_tool/tool.py | 175 | except (TypeError, ValueError): | CODE |
| HIGH | api/core/tools/mcp_tool/tool.py | 123 | except json.JSONDecodeError: | CODE |
| HIGH | …/app_config/workflow_ui_based_app/variables/manager.py | 47 | except (json.JSONDecodeError, TypeError): | CODE |
| HIGH | api/core/app/apps/message_based_app_generator.py | 273 | except KeyError: | CODE |
| HIGH | api/core/app/apps/pipeline/pipeline_generator.py | 646 | except GenerateTaskStoppedError: | CODE |
| HIGH | api/core/app/apps/chat/app_generator.py | 280 | except GenerateTaskStoppedError: | CODE |
| HIGH | api/core/app/apps/completion/app_generator.py | 255 | except GenerateTaskStoppedError: | CODE |
| HIGH | api/core/app/apps/agent_app/app_generator.py | 313 | except GenerateTaskStoppedError: | CODE |
| HIGH | api/core/app/apps/advanced_chat/app_generator.py | 733 | except GenerateTaskStoppedError: | CODE |
| HIGH | api/core/app/apps/agent_chat/app_generator.py | 284 | except GenerateTaskStoppedError: | CODE |
| HIGH | api/core/plugin/entities/parameters.py | 159 | except json.JSONDecodeError: | CODE |
| HIGH | api/core/plugin/entities/parameters.py | 224 | except (json.JSONDecodeError, ValueError): | CODE |
| HIGH | api/core/plugin/entities/parameters.py | 236 | except (json.JSONDecodeError, ValueError): | CODE |
| HIGH | api/core/agent/cot_agent_runner.py | 338 | except json.JSONDecodeError: | CODE |
| HIGH | api/core/mcp/client/streamable_client.py | 556 | except queue.Empty: | CODE |
| HIGH | api/core/mcp/client/sse_client.py | 315 | except RuntimeError: | CODE |
| HIGH | api/core/rag/datasource/retrieval_service.py | 541 | except (ValueError, TypeError): | CODE |
| HIGH | …index_processor/processor/paragraph_index_processor.py | 464 | except KeyError: | CODE |
| HIGH | api/core/workflow/node_runtime.py | 685 | except StopIteration: | CODE |
| HIGH | api/core/workflow/node_runtime.py | 699 | except StopIteration: | CODE |
| HIGH | api/core/workflow/workflow_entry.py | 194 | except GenerateTaskStoppedError: | CODE |
| HIGH | api/core/workflow/nodes/agent/message_transformer.py | 211 | except StopIteration: | CODE |
| HIGH | api/core/workflow/nodes/agent/message_transformer.py | 225 | except StopIteration: | CODE |
| HIGH | api/core/ops/ops_trace_manager.py | 366 | except KeyError: | CODE |
| HIGH | api/core/ops/unified_trace/parent_context.py | 142 | except KeyError: | CODE |
| HIGH | api/core/helper/code_executor/template_transformer.py | 84 | except ValueError: | CODE |
| HIGH | api/enterprise/telemetry/id_generator.py | 63 | except (ValueError, AttributeError): | CODE |
| HIGH | api/enterprise/telemetry/id_generator.py | 73 | except (ValueError, AttributeError): | CODE |
| HIGH | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 607 | except (RuntimeError, ValueError): | CODE |
| HIGH | …roviders/vdb/vdb-iris/src/dify_vdb_iris/iris_vector.py | 109 | except (OSError, RuntimeError): | CODE |
| HIGH | …roviders/vdb/vdb-iris/src/dify_vdb_iris/iris_vector.py | 173 | except (OSError, RuntimeError): | CODE |
| HIGH | api/tests/unit_tests/core/tools/test_mcp_tool.py | 293 | except Exception: | CODE |
| HIGH | …sts/core/app/features/rate_limiting/test_rate_limit.py | 550 | except AppInvokeQuotaExceededError: | CODE |
| HIGH | …sts/unit_tests/core/mcp/client/test_streamable_http.py | 219 | except Exception: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 471 | except: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 165 | except Exception: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 192 | except: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 218 | except: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 245 | except: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 274 | except: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 303 | except: | CODE |
| HIGH | …tests/unit_tests/core/mcp/session/test_base_session.py | 539 | except: | CODE |
| HIGH | …sts/unit_tests/core/rag/splitter/test_text_splitter.py | 1850 | except (TypeError, AttributeError): | CODE |
| HIGH | …sts/unit_tests/core/rag/splitter/test_text_splitter.py | 1973 | except (ValueError, IndexError): | CODE |
| HIGH | …_tests/core/workflow/context/test_execution_context.py | 181 | except Exception: | CODE |
| HIGH | …it_tests/core/workflow/graph_engine/test_mock_nodes.py | 706 | except Exception: | CODE |
| HIGH | …/tests/unit_tests/libs/test_schedule_utils_enhanced.py | 373 | except Exception: | CODE |
| HIGH | …/tests/unit_tests/libs/test_schedule_utils_enhanced.py | 202 | except Exception: | CODE |
| HIGH | …/tests/unit_tests/libs/test_schedule_utils_enhanced.py | 383 | except Exception: | CODE |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | api/context/flask_app_context.py | 57 | Capture current Flask execution context. This function captures the Flask app context and contextvars from the | STRING |
| HIGH | api/core/tools/utils/system_encryption.py | 47 | Encrypt parameters. Args: params: Parameters dictionary, e.g., {"client_id": "xxx", "clien | STRING |
| HIGH | api/core/tools/utils/system_encryption.py | 82 | Decrypt parameters. Args: encrypted_data: Base64-encoded encrypted string Returns | STRING |
| HIGH | api/core/app/apps/workflow_app_runner.py | 244 | Prepare graph, variable pool, and runtime state for single node execution (either single iteration or s | STRING |
| HIGH | api/core/plugin/utils/chunk_merger.py | 27 | Merge streaming blob chunks into complete blob messages. This function processes a stream of plugin invoke mes | STRING |
| HIGH | api/core/repositories/factory.py | 72 | Create a WorkflowExecutionRepository instance based on configuration. Args: session_factor | STRING |
| HIGH | api/core/repositories/factory.py | 111 | Create a WorkflowNodeExecutionRepository instance based on configuration. Args: session_fa | STRING |
| HIGH | api/core/mcp/auth_client.py | 129 | Execute a function with authentication retry logic. Args: func: The function to execute | STRING |
| HIGH | api/core/mcp/auth_client.py | 190 | Invoke a tool on the MCP server with auth retry. Args: tool_name: Name of the tool to invo | STRING |
| HIGH | api/core/mcp/auth/auth_flow.py | 370 | Parse OAuth token response supporting both JSON and form-urlencoded formats. Per RFC 6749 Section 5.1, the sta | STRING |
| HIGH | api/core/mcp/client/sse_client.py | 198 | Wait for the endpoint URL from the status queue. Args: status_queue: Queue to read status from. | STRING |
| HIGH | api/core/schemas/resolver.py | 86 | Resolve all $ref references in the schema Performance optimization: quickly checks for $ref presence b | STRING |
| HIGH | api/core/schemas/resolver.py | 229 | Resolve $ref references in Dify schema to actual schema content This is a convenience function that creates a | STRING |
| HIGH | api/core/ops/utils.py | 72 | Validate and normalize URL with proper error handling. NOTE: This function does not retain the `path` componen | STRING |
| HIGH | api/core/ops/utils.py | 115 | Validate URL that may include path components Args: url: The URL to validate default_url: Defa | STRING |
| HIGH | api/core/ops/base_trace_instance.py | 33 | Get service account for an app and set up its tenant. Args: app_id: The ID of the app | STRING |
| HIGH | api/core/helper/ssrf_proxy.py | 170 | Send one SSRF-protected request with optional streaming. Args: method: HTTP method sent through the configu | STRING |
| HIGH | api/core/helper/csv_sanitizer.py | 24 | Sanitize a value for safe CSV export. Prefixes formula-initiating characters with a single quote to pr | STRING |
| HIGH | api/core/helper/csv_sanitizer.py | 63 | Sanitize specified fields in a dictionary. Args: data: Dictionary containing data to sanit | STRING |
| HIGH | api/core/helper/marketplace.py | 78 | Fetch all plugin manifests from marketplace and cache them in Redis. This should be called once per check cycle | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 1007 | Create a new workflow pause state. Creates a pause state for a workflow run, storing the current execu | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 1153 | Get an existing workflow pause state. Retrieves the pause state for a specific workflow run if it exis | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 1236 | Resume a paused workflow. Marks a paused workflow as resumed, clearing the pause state and ret | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 1355 | Clean up expired and old pause states. Removes pause states that have expired (created before expirati | STRING |
| HIGH | api/repositories/factory.py | 30 | Create a DifyAPIWorkflowNodeExecutionRepository instance based on configuration. This repository is de | STRING |
| HIGH | api/repositories/factory.py | 59 | Create an APIWorkflowRunRepository instance based on configuration. This repository is designed for se | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 102 | Get paginated workflow runs with filtering. Retrieves workflow runs for a specific app and trigger sou | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 518 | Create a new workflow pause state. Creates a pause state for a workflow run, storing the current execu | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 554 | Resume a paused workflow. Marks a paused workflow as resumed, set the `resumed_at` field of WorkflowPa | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 609 | Clean up expired and old pause states. Removes pause states that have expired (created before expirati | STRING |
| HIGH | api/extensions/logstore/sql_escape.py | 18 | Escape a string value for safe use in SQL queries. This function escapes single quotes by doubling them, which | STRING |
| HIGH | api/extensions/logstore/sql_escape.py | 53 | Escape an identifier (tenant_id, app_id, run_id, etc.) for safe SQL use. This function is for PG protocol mode | STRING |
| HIGH | api/extensions/logstore/sql_escape.py | 82 | Escape value for LogStore query syntax (SDK mode). LogStore query syntax rules: 1. Keywords (and/or/not) a | STRING |
| HIGH | api/libs/schedule_utils.py | 61 | Parse 12-hour time format to 24-hour format for cron compatibility. Args: time_str: Time string in for | STRING |
| HIGH | api/libs/archive_storage.py | 98 | Upload an object to the archive storage. Args: key: Object key (path) within the bucket | STRING |
| HIGH | api/libs/archive_storage.py | 131 | Download an object from the archive storage. Args: key: Object key (path) within the bucke | STRING |
| HIGH | api/libs/archive_storage.py | 155 | Stream an object from the archive storage. Args: key: Object key (path) within the bucket | STRING |
| HIGH | api/libs/archive_storage.py | 179 | Check if an object exists in the archive storage. Args: key: Object key (path) within the | STRING |
| HIGH | api/libs/archive_storage.py | 230 | Generate a pre-signed URL for downloading an object. Args: key: Object key (path) within t | STRING |
| HIGH | api/libs/uuid_utils.py | 116 | Extract the timestamp from a UUIDv7. UUIDv7 contains a 48-bit timestamp field representing milliseconds since t | STRING |
| HIGH | api/libs/custom_inputs.py | 7 | Validate and return time duration string. Accepts formats: <number>d (days), <number>h (hours), <number>m (min | STRING |
| HIGH | api/libs/helper.py | 70 | Escape special characters in a string for safe use in SQL LIKE patterns. This function escapes the special cha | STRING |
| HIGH | api/libs/helper.py | 102 | Extract tenant_id from Account or EndUser object. Args: user: Account or EndUser object Returns: | STRING |
| HIGH | api/libs/datetime_utils.py | 55 | Parse time range strings and convert to UTC datetime objects. Handles DST ambiguity and non-existent times grac | STRING |
| HIGH | api/libs/module_loading.py | 32 | Import a dotted module path and return the attribute/class designated by the last name in the path. Raise Impor | STRING |
| HIGH | api/configs/middleware/vdb/iris_config.py | 70 | Validate IRIS configuration values. Args: values: Configuration dictionary Returns: | STRING |
| HIGH | api/controllers/web/files.py | 42 | Upload a file for use in web applications. Accepts file uploads for use within web applications, supporting | STRING |
| HIGH | api/controllers/web/remote_files.py | 61 | Get information about a remote file. Retrieves basic information about a file located at a remote URL, | STRING |
| HIGH | api/controllers/web/remote_files.py | 122 | Upload a file from a remote URL. Downloads a file from the provided remote URL and uploads it to the pl | STRING |
| HIGH | api/controllers/mcp/mcp.py | 56 | Handle MCP requests for a specific server. Processes JSON-RPC formatted requests according to the Model Context | STRING |
| HIGH | api/controllers/service_api/dataset/dataset.py | 768 | Deletes a dataset given its ID. Args: _: ignore dataset_id (UUID): The ID of t | STRING |
| HIGH | api/controllers/service_api/dataset/dataset.py | 842 | Batch update document status. Args: tenant_id: tenant id dataset_id: dataset i | STRING |
| HIGH | api/controllers/console/knowledge_fs_proxy.py | 316 | Forward the current request using one previously authorized operation capability. Args: authorization: Requ | STRING |
| HIGH | api/services/async_workflow_service.py | 59 | Universal entry point for async workflow execution - THIS METHOD WILL NOT BLOCK Creates a trigger log | STRING |
| HIGH | api/services/async_workflow_service.py | 214 | Re-invoke a previously failed or rate-limited trigger - THIS METHOD WILL NOT BLOCK Updates the existin | STRING |
| HIGH | api/services/async_workflow_service.py | 338 | Get workflow for the app Args: app_model: App model instance workflow_id: Opti | STRING |
| HIGH | api/services/conversation_service.py | 316 | Update a conversation variable's value. Args: app_model: The app model convers | STRING |
| HIGH | api/services/knowledge_fs_proxy.py | 117 | Enforce Dify's workspace policy before KFS performs resource authorization. Args: account: Authenticated Di | STRING |
| HIGH | api/services/knowledge_fs_proxy.py | 186 | Forward one request whose operation and workspace policy were already authorized. This performs one outbound Knowle | STRING |
| HIGH | api/services/knowledge_fs_proxy.py | 237 | Forward one fixed-route request without parsing its KnowledgeFS payload. Args: account_id: Current Dify acc | STRING |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/dify-env-sync.sh | 310 | # Check if this is an environment variable line | COMMENT |
| LOW | docker/dify-env-sync.sh | 316 | # Check if key should be preserved | COMMENT |
| LOW | docker/nginx/docker-entrypoint.sh | 6 | # Check if the certificate and key files for the specified domain exist | COMMENT |
| LOW | docker/elasticsearch/docker-entrypoint.sh | 6 | # Check if the ICU tokenizer plugin is installed | COMMENT |
| LOW | docker/elasticsearch/docker-entrypoint.sh | 14 | # Check if the Japanese language analyzer plugin is installed | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 174 | # Check if version already exists on npm | COMMENT |
| LOW | scripts/stress-test/run_locust_stress_test.sh | 39 | # Check if services are running | COMMENT |
| LOW | scripts/stress-test/setup_all.py | 77 | # Print output | COMMENT |
| LOW | scripts/stress-test/setup_all.py | 120 | # Check if required services are running | COMMENT |
| LOW | scripts/stress-test/sse_benchmark.py | 460 | # Check if runner is stopping | COMMENT |
| LOW | scripts/stress-test/setup/login_admin.py | 61 | # Check if login was successful | COMMENT |
| LOW | scripts/stress-test/setup/run_workflow.py | 86 | # Print output if it's the LLM node | COMMENT |
| LOW | api/tasks/regenerate_summary_index_task.py | 70 | # Check if summary index is enabled (only for summary_model change) | COMMENT |
| LOW | api/tasks/generate_summary_index_task.py | 59 | # Check if document needs summary | COMMENT |
| LOW | api/tasks/generate_summary_index_task.py | 80 | # Check if summary index is enabled | COMMENT |
| LOW | api/tasks/duplicate_document_indexing_task.py | 59 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW | api/tasks/document_indexing_task.py | 221 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW | api/tasks/workflow_node_execution_tasks.py | 56 | # Check if node execution already exists | COMMENT |
| LOW | api/tasks/workflow_execution_tasks.py | 53 | # Check if workflow run already exists | COMMENT |
| LOW⚡ | …i/tasks/rag_pipeline/priority_rag_pipeline_run_task.py | 88 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW⚡ | api/tasks/rag_pipeline/rag_pipeline_run_task.py | 94 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW | api/docker/entrypoint.sh | 25 | # Set MAX_WORKERS to the number of available cores if not specified | COMMENT |
| LOW | api/core/datasource/datasource_file_manager.py | 168 | # Check if message_file is not None | COMMENT |
| LOW | api/core/tools/tool_file_manager.py | 177 | # Check if message_file is not None | COMMENT |
| LOW | api/core/tools/utils/text_processing_utils.py | 15 | # Check if text starts with a markdown link - preserve it | COMMENT |
| LOW | api/core/tools/mcp_tool/tool.py | 116 | # Check if content looks like JSON before attempting to parse | COMMENT |
| LOW | api/core/app/apps/base_app_generator.py | 183 | # Check if all files are converted to File | COMMENT |
| LOW | api/core/plugin/utils/chunk_merger.py | 67 | # Check if file is too large (before appending) | COMMENT |
| LOW | api/core/plugin/utils/chunk_merger.py | 73 | # Check if single chunk is too large | COMMENT |
| LOW | …ories/sqlalchemy_workflow_node_execution_repository.py | 393 | # Check if record already exists | COMMENT |
| LOW | api/core/agent/fc_agent_runner.py | 307 | # Check if max iteration is reached and model still wants to call tools | COMMENT |
| LOW | api/core/agent/cot_agent_runner.py | 196 | # Check if max iteration is reached and model still wants to call tools | COMMENT |
| LOW | api/core/mcp/client/streamable_client.py | 416 | # Check if we should stop | COMMENT |
| LOW | api/core/mcp/client/streamable_client.py | 431 | # Check if this is a resumption request | COMMENT |
| LOW | api/core/rag/datasource/retrieval_service.py | 522 | # Check if this is a summary document | COMMENT |
| LOW | api/core/rag/datasource/retrieval_service.py | 666 | # Check if this segment was retrieved via summary | COMMENT |
| LOW | api/core/rag/datasource/retrieval_service.py | 712 | # Check if this segment was retrieved via summary | COMMENT |
| LOW | api/core/schemas/resolver.py | 309 | # Check if this dict has a $ref field | COMMENT |
| LOW | api/core/prompt/simple_prompt_transform.py | 318 | # Check if the prompt file is already loaded | COMMENT |
| LOW | api/core/ops/ops_trace_manager.py | 151 | # Check if there's a model-specific config | COMMENT |
| LOW | api/core/ops/utils.py | 98 | # Check if scheme is allowed | COMMENT |
| LOW | api/core/ops/utils.py | 138 | # Check if scheme is allowed | COMMENT |
| LOW | api/core/helper/ssrf_proxy.py | 243 | # Check if this is a Squid SSRF rejection | COMMENT |
| LOW | api/core/helper/csv_sanitizer.py | 54 | # Check if first character is a formula initiator | COMMENT |
| LOW | api/core/helper/credential_utils.py | 77 | # Check if credential exists in database first (if requested) | COMMENT |
| LOW | api/core/entities/mcp_provider.py | 216 | # Check if we have nested client_information structure | COMMENT |
| LOW | api/core/entities/provider_configuration.py | 746 | # Check if this credential is used in load balancing configs | COMMENT |
| LOW | api/core/entities/provider_configuration.py | 765 | # Check if this is the currently active credential | COMMENT |
| LOW | api/core/entities/provider_configuration.py | 1249 | # Check if this is the currently active credential | COMMENT |
| LOW | …b-oceanbase/src/dify_vdb_oceanbase/oceanbase_vector.py | 88 | self._hybrid_search_enabled = self._check_hybrid_search_support() # Check if hybrid search is supported | CODE |
| LOW | …rch/src/dify_vdb_elasticsearch/elasticsearch_vector.py | 87 | # Check if using Elastic Cloud | COMMENT |
| LOW | …rch/src/dify_vdb_elasticsearch/elasticsearch_vector.py | 324 | # Check if ELASTICSEARCH_USE_CLOUD is explicitly set to false (boolean) | COMMENT |
| LOW | …rs/vdb/vdb-chroma/src/dify_vdb_chroma/chroma_vector.py | 129 | # Check if results contain data | COMMENT |
| LOW | …b-couchbase/src/dify_vdb_couchbase/couchbase_vector.py | 202 | # Check if the collection exists in the scope | STRING |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 215 | # Check if connection is not expired and still valid | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 487 | # Check if table already exists to avoid unnecessary index creation | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 528 | # Check if vector index already exists on the embedding column | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 561 | # Check if an inverted index already exists on this column | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 679 | # Check if we have any valid data to insert | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 727 | # Check if table exists first | COMMENT |
| 95 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …dify_agent/agent_stub/server/test_agent_stub_config.py | 194 | push_response = await request_handler.push( | CODE |
| HIGH | …dify_agent/agent_stub/server/test_agent_stub_config.py | 304 | await request_handler.push(principal=_principal(), request=AgentStubConfigPushRequest()) | CODE |
| HIGH | …dify_agent/agent_stub/server/test_agent_stub_config.py | 337 | await request_handler.push(principal=_principal(**context_updates), request=AgentStubConfigPushRequest()) | CODE |
| HIGH | …gent/src/dify_agent/agent_stub/server/control_plane.py | 147 | return await handler.push(principal=principal, request=request) | CODE |
| HIGH | …/tasks/process_tenant_plugin_autoupgrade_check_task.py | 29 | # A cached miss is stored as JSON null, so None has to stay a valid payload. | COMMENT |
| HIGH | api/core/app/apps/agent_app/app_runner.py | 887 | debounced_delta = text_delta_debouncer.push(internal_event.delta) | CODE |
| HIGH⚡ | api/core/workflow/generator/prompts/builder_prompts.py | 90 | "multiple_retrieval_config": {"top_k": 4, "score_threshold": null, | CODE |
| HIGH⚡ | api/core/workflow/generator/prompts/builder_prompts.py | 97 | "outputs": {"result": {"type": "string", "children": null}}}""", | CODE |
| HIGH⚡ | api/core/workflow/generator/prompts/builder_prompts.py | 105 | "authorization": {"type": "no-auth", "config": null}, | CODE |
| HIGH | …tta/tests/integration_tests/test_docker_integration.py | 151 | "1. Run: cd docker && docker-compose -f docker-compose.yaml -f docker-compose.clickzetta.yaml up -d" | CODE |
| HIGH | api/tests/unit_tests/tools/test_api_tool.py | 145 | # Explicit content also covers JSON null, which is distinct from no body. | COMMENT |
| HIGH | api/tests/unit_tests/core/tools/test_tool_engine.py | 183 | pytest.param('[ {"b":2,"a":1},null,true ]', [{"a": 1, "b": 2}, None, True], id="array"), | CODE |
| HIGH⚡ | api/tests/unit_tests/core/tools/test_tool_engine.py | 216 | pytest.param('{"a":null}', {"a": False}, '{"a": false}', id="null-vs-boolean"), | CODE |
| HIGH | api/tests/unit_tests/core/plugin/test_plugin_runtime.py | 663 | f'data: {{"code": -500, "message": {json.dumps(error_obj)}, "data": null}}', | CODE |
| HIGH | api/tests/unit_tests/core/plugin/test_plugin_runtime.py | 1088 | f'data: {{"code": -500, "message": {json.dumps(error_obj)}, "data": null}}', | CODE |
| HIGH⚡ | …s/unit_tests/core/plugin/impl/test_base_client_impl.py | 155 | client, "_stream_request", return_value=iter(['{"code":-500,"message":"not-json","data":null}']) | CODE |
| HIGH⚡ | …s/unit_tests/core/plugin/impl/test_base_client_impl.py | 164 | mocker.patch.object(client, "_stream_request", return_value=iter(['{"code":-1,"message":"err","data":null}'])) | CODE |
| HIGH⚡ | …s/unit_tests/core/plugin/impl/test_base_client_impl.py | 171 | mocker.patch.object(client, "_stream_request", return_value=iter(['{"code":0,"message":"","data":null}'])) | CODE |
| HIGH | api/tests/unit_tests/core/mcp/test_types.py | 158 | request_json = '{"jsonrpc": "2.0", "id": 1, "method": "test", "params": null}' | CODE |
| HIGH⚡ | api/tests/unit_tests/core/mcp/client/test_sse.py | 24 | json_message = '{"jsonrpc": "2.0", "id": "123", "method": "ping", "params": null}' | CODE |
| HIGH⚡ | api/tests/unit_tests/core/mcp/client/test_sse.py | 39 | json_message = '{"jsonrpc": "2.0", "method": "ping", "params": null}' | CODE |
| HIGH | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 2879 | numeric, null, and collection operators. | STRING |
| HIGH | …ositories/data_source/test_oauth_binding_repository.py | 1 | from sqlalchemy import null, select, update | CODE |
| HIGH | api/tests/unit_tests/libs/test_oauth_clients.py | 153 | # The profile email is absent/null, so /user/emails should be called | COMMENT |
| HIGH | …tests/unit_tests/commands/test_check_no_new_getattr.py | 254 | "base-rev: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }}" | CODE |
| HIGH | api/tests/unit_tests/controllers/mcp/test_mcp.py | 614 | """An unsupported header gets a JSON-RPC error echoing the request id (missing id -> null).""" | STRING |
| HIGH | …s/unit_tests/controllers/files/test_appdeploy_files.py | 15 | from sqlalchemy import null, update | CODE |
| HIGH | …t_tests/controllers/console/test_knowledge_fs_proxy.py | 380 | content=gzip.compress(b'{"items":[],"nextCursor":null}'), | CODE |
| HIGH⚡ | …t_tests/controllers/console/explore/test_completion.py | 107 | yield 'data: {"answer":"你好","metadata":{},"usage":null}\n\n' | CODE |
| HIGH⚡ | …t_tests/controllers/console/explore/test_completion.py | 114 | assert response.data == 'data: {"answer":"你好","metadata":{},"usage":null}\n\n'.encode() | CODE |
| HIGH | api/tests/unit_tests/services/test_billing_service.py | 498 | """When billing serializes skipped vector_space as null, get_info treats it as absent.""" | STRING |
| HIGH | …tests/unit_tests/services/test_agent_config_service.py | 372 | manifest = service.push( | CODE |
| HIGH | …/unit_tests/services/tools/test_mcp_tools_transform.py | 334 | mock_provider_full.tools = '[{"name": "tool1", "description": null, "inputSchema": {}}]' | CODE |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 32 | from sqlalchemy import and_, delete, func, null, or_, select, tuple_ | CODE |
| HIGH | api/controllers/mcp/mcp.py | 107 | offending request's id directly (None -> null) instead of fabricating a placeholder. | STRING |
| HIGH | api/services/billing_service.py | 244 | # Unset proto message fields can be serialized as null; the light billing contract treats it as absent. | COMMENT |
| HIGH | api/services/knowledge/entities/datasets.py | 59 | # Detail/create responses may omit membership or explicitly return null; | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/dify-env-sync.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | docker/dify-env-sync.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/ssrf_proxy/docker-entrypoint.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 1 | --- | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 21 | COMMENT | |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 41 | COMMENT | |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 61 | # server.ssl.enabled: false | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 81 | COMMENT | |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 101 | # pid.file: /var/run/opensearchDashboards.pid | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 121 | # Supported languages are the following: English - en , by default , Chinese - zh-CN . | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 141 | # //Reserved IP address | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 161 | # defaultUrl: "" | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 181 | # Set the value of this setting to false to disable VisBuilder | COMMENT |
| LOW | …fy_agent/dify_agent_examples/run_server_sync_client.py | 61 | plugin_id=PLUGIN_ID, model_provider=PLUGIN_PROVIDER, model=MODEL_NAME | COMMENT |
| LOW | …fy_agent/dify_agent_examples/run_server_sync_client.py | 81 | # plugin_id="langgenius/search", | COMMENT |
| LOW | …/dify_agent/dify_agent_examples/run_server_consumer.py | 81 | # ) | COMMENT |
| LOW | …/dify_agent/dify_agent_examples/run_server_consumer.py | 101 | # ), | COMMENT |
| LOW | sdks/nodejs-client/scripts/publish.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | dify-agent-runtime/cmd/runner/main.go | 1 | // shellctl-runner is the Go replacement for the previously generated bash+python | COMMENT |
| LOW | dify-agent-runtime/internal/snapshot/snapshot.go | 1 | // Package snapshot implements single-pass streaming save/restore of the | COMMENT |
| LOW | dify-agent-runtime/internal/snapshot/gitignore/doc.go | 1 | // Package gitignore matches paths against gitignore-syntax patterns. | COMMENT |
| LOW | dify-agent-runtime/internal/server/server.go | 1 | // Package server implements the shellctl HTTP API and job lifecycle service. | COMMENT |
| LOW | dify-agent-runtime/benchmarks/e2e_test.go | 1 | // End-to-end benchmarks that drive the real shellctl HTTP API in-process. | COMMENT |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 141 | const headers = [{ id: '1', key: '', value: 'Value' }] | COMMENT |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 161 | // Empty key headers don't trigger masking | COMMENT |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 181 | // Whitespace-only key doesn't count as having content | COMMENT |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 201 | // Whitespace-only key doesn't count as having content | COMMENT |
| LOW | …ig/settings-modal/__tests__/retrieval-section.spec.tsx | 161 | // Act | COMMENT |
| LOW | …ig/settings-modal/__tests__/retrieval-section.spec.tsx | 181 | // Assert | COMMENT |
| LOW | …bug/debug-with-multiple-model/__tests__/index.spec.tsx | 561 | renderComponent({ multipleModelConfigs }) | COMMENT |
| LOW | …bug/debug-with-multiple-model/__tests__/index.spec.tsx | 581 | // Assert | COMMENT |
| LOW | …ebug-with-multiple-model/__tests__/debug-item.spec.tsx | 521 | // When provider/model doesn't match, ChatItem won't render | COMMENT |
| LOW | …ebug-with-multiple-model/__tests__/debug-item.spec.tsx | 541 | // When provider/model doesn't match, ChatItem won't render | COMMENT |
| LOW | …otation/edit-annotation-modal/__tests__/index.spec.tsx | 81 | // Assert | COMMENT |
| LOW | …otation/edit-annotation-modal/__tests__/index.spec.tsx | 101 | // Assert | COMMENT |
| LOW | …otation/edit-annotation-modal/__tests__/index.spec.tsx | 241 | // Assert - Confirm dialog should not be visible initially | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 541 | // Before click - no highlight | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 561 | // Before click - no highlight | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 661 | await user.click(dataRows[1]!) | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 681 | // Replay button should not be present for webhook triggers | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 861 | COMMENT | |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 881 | // Should render without trigger column | COMMENT |
| LOW | web/app/components/plugins/marketplace/query-options.ts | 21 | }, | COMMENT |
| LOW | …mponents/plugins/plugin-item/__tests__/action.spec.tsx | 501 | fireEvent.click(getPluginInfoButton()) | COMMENT |
| LOW | …mponents/plugins/plugin-item/__tests__/action.spec.tsx | 521 | // Assert | COMMENT |
| LOW | …lugins/plugin-auth/authorized/__tests__/index.spec.tsx | 1421 | isOpen={true} | COMMENT |
| LOW | …lugins/plugin-auth/authorized/__tests__/index.spec.tsx | 1441 | // Set default button should not be visible | COMMENT |
| LOW | …lugins/plugin-auth/authorized/__tests__/index.spec.tsx | 1781 | render(<Authorized pluginPayload={pluginPayload} credentials={credentials} isOpen={true} />, { | COMMENT |
| LOW | …lugins/plugin-auth/authorized/__tests__/index.spec.tsx | 1801 | // so pendingOperationCredentialId stays null | COMMENT |
| LOW | …lugins/plugin-auth/authorized/__tests__/index.spec.tsx | 1821 | // With no credentials, there's no way to trigger openConfirm, | COMMENT |
| LOW | …lugins/plugin-auth/authorized/__tests__/index.spec.tsx | 1841 | // This edge case is handled by the component's internal logic | COMMENT |
| LOW | …lugins/plugin-auth/authorized/__tests__/index.spec.tsx | 1861 | // so pendingOperationCredentialId stays null | COMMENT |
| LOW | …ponents/datasets/rename-modal/__tests__/index.spec.tsx | 361 | // Just verify the element is focusable (don't check activeElement as it may differ in test environment) | COMMENT |
| LOW | …ponents/datasets/rename-modal/__tests__/index.spec.tsx | 381 | // Just verify the element is focusable (don't check activeElement as it may differ in test environment) | COMMENT |
| LOW | …ponents/datasets/rename-modal/__tests__/index.spec.tsx | 401 | // Just verify the element is focusable | COMMENT |
| LOW | …ponents/datasets/rename-modal/__tests__/index.spec.tsx | 661 | // Save button should be enabled again | COMMENT |
| LOW | …ponents/datasets/rename-modal/__tests__/index.spec.tsx | 1241 | fireEvent.click(saveButton) | COMMENT |
| LOW | …ponents/datasets/rename-modal/__tests__/index.spec.tsx | 1261 | // Button should be re-enabled after error | COMMENT |
| LOW | …esting/components/query-input/__tests__/index.spec.tsx | 221 | // Submit should be enabled since we have text + uploaded image | COMMENT |
| LOW | …esting/components/query-input/__tests__/index.spec.tsx | 241 | // Submit should be enabled since we have text + uploaded image | COMMENT |
| 158 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docker/docker-compose.yaml | 2 | # WARNING: This file is auto-generated by generate_docker_compose | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 127 | # Step 1: Environment Check | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 164 | # Step 2: Read Package Info | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 187 | # Step 3: Install Dependencies | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 195 | # Step 4: Run Tests | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 207 | # Step 5: Build | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 229 | # Step 6: Publish | COMMENT |
| LOW⚡ | dify-agent-runtime/internal/agentcli/file.go | 70 | // Step 1: Request a signed upload URL | COMMENT |
| LOW⚡ | dify-agent-runtime/internal/agentcli/file.go | 76 | // Step 2: Upload the file to the signed URL (data-plane) | COMMENT |
| LOW | dify-agent-runtime/internal/agentcli/file.go | 100 | // Step 3: Request a browser-visible URL unless the caller only needs the | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1274 | // Step 1: Verify | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1280 | // Step 2: Update | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1870 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1873 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1881 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1885 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1947 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1951 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1960 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1964 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1675 | // Step 1: Enter URL | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1679 | // Step 2: Run crawl | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1682 | // Step 3: Wait for completion | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1687 | // Step 4: Click preview | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1073 | // Step 1: Set up data | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1077 | // Step 2: Set caches | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 88 | // Step 1: rename var_2 -> var_1 (creates duplicate) | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 98 | // Step 2: rename second var_1 -> var_2 (restores unique names) | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 254 | // Step 1: Clean and prepare Mermaid code using the extracted prepareMermaidCode function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 261 | // Step 2: Render chart | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 264 | // Step 3: Apply theme to SVG using the extracted processSvgForTheme function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 272 | // Step 4: Clean up SVG code | COMMENT |
| LOW | cli/scripts/e2e-provision.ts | 88 | // Step 1: device code | COMMENT |
| LOW | cli/scripts/e2e-provision.ts | 101 | // Step 2: approve (with retry) | COMMENT |
| LOW | cli/scripts/e2e-provision.ts | 117 | // Step 3: exchange token | COMMENT |
| LOW | api/gunicorn.conf.py | 5 | # WARNING: This module is loaded very early in the Gunicorn worker lifecycle, | COMMENT |
| LOW | api/core/tools/mcp_tool/tool.py | 298 | # Step 1: Load provider entity and credentials in a short-lived session | COMMENT |
| LOW | api/core/tools/mcp_tool/tool.py | 325 | # Step 2: Session is now closed, perform network operations without holding database connection | COMMENT |
| LOW | api/core/workflow/nodes/human_input/entities.py | 40 | # NOTE: This class is renamed from FormInputDefault. | COMMENT |
| LOW | api/core/workflow/nodes/human_input/entities.py | 107 | # NOTE: This class is renamed from FormInput. | COMMENT |
| LOW⚡ | …tests/unit_tests/core/datasource/test_website_crawl.py | 938 | # Step 1: Start crawl | COMMENT |
| LOW⚡ | …tests/unit_tests/core/datasource/test_website_crawl.py | 948 | # Step 2: Check status (running) | COMMENT |
| LOW⚡ | …tests/unit_tests/core/datasource/test_website_crawl.py | 987 | # Step 4: Get specific URL data | COMMENT |
| LOW | …tests/unit_tests/core/datasource/test_website_crawl.py | 960 | # Step 3: Check status (completed) | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 429 | # Step 1: Create ToolInvokeMessage | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 433 | # Step 2: Apply safe_json_value transformation | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 436 | # Step 3: Serialize to JSON string | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 439 | # Step 4: Verify the string is valid JSON | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 444 | # Step 5: Deserialize back to Python object | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 447 | # Step 6: Verify data integrity | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 457 | # Step 7: Verify all complex types were properly converted | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1723 | # Step 1: Get current billing info | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1738 | # Step 2: Get payment link for upgrade | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1743 | # Step 3: Verify new rate limits after upgrade | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1755 | # Step 1: Consume credits | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1761 | # Step 2: Check current usage | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1767 | # Step 3: Refund the usage | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1772 | # Step 4: Verify usage after refund | COMMENT |
| LOW⚡ | …ntegration_tests/services/test_conversation_service.py | 1105 | # Step 1: Immediate logical deletion | COMMENT |
| LOW⚡ | …ntegration_tests/services/test_conversation_service.py | 1110 | # Step 2: Async cleanup task triggered | COMMENT |
| 18 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …dataset-config/settings-modal/__tests__/index.spec.tsx | 407 | // Validation guardrails before saving. | COMMENT |
| MEDIUM | web/features/new-rag/README.md | 1 | # New RAG | COMMENT |
| MEDIUM | …lls/frontend-code-review/references/dify-invariants.md | 12 | ## Workflow Nodes And RAG Pipe | COMMENT |
| MEDIUM | cli/ARD.md | 57 | ## New command scaffold | COMMENT |
| MEDIUM | cli/test/e2e/README.md | 147 | (PR #37460): `--think` surfaces the chain-of-thought to stderr framed as | CODE |
| MEDIUM | .github/workflows/main-ci.yml | 24 | # Keep orchestration on Depot to avoid GitHub-hosted runner queue delays. | COMMENT |
| MEDIUM | api/tasks/async_workflow_tasks.py | 192 | # Final failure - no retry logic (simplified like RAG tasks) | COMMENT |
| MEDIUM | api/core/rag/datasource/vdb/vector_factory.py | 147 | # construction. The real embedding model is materialized only when an | COMMENT |
| MEDIUM | api/core/workflow/node_factory.py | 583 | # Stage 4 §5/§7: per-output validation + failure orchestration. The | COMMENT |
| MEDIUM | api/core/workflow/nodes/agent_v2/agent_node.py | 368 | # ──── Stage 4: orchestrate retry / default / fail ──── | COMMENT |
| MEDIUM | api/enterprise/telemetry/enterprise_trace.py | 922 | # Get embedding model for this specific dataset | COMMENT |
| MEDIUM⚡ | api/constants/pipeline_templates.json | 1356 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM⚡ | api/constants/pipeline_templates.json | 1356 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 122 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 122 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3875 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3875 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 5191 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_uni | CODE |
| MEDIUM | …ace-tencent/src/dify_trace_tencent/entities/semconv.py | 85 | RETRIEVER = "RETRIEVER" # RAG | CODE |
| MEDIUM | …t_tests/core/rag/datasource/vdb/test_vector_factory.py | 196 | # embedding model until ``embed_*`` is invoked, so cleanup paths never | COMMENT |
| MEDIUM | api/tests/unit_tests/core/rag/rerank/test_reranker.py | 726 | # Mock embedding model | COMMENT |
| MEDIUM | …ests/unit_tests/core/workflow/generator/test_runner.py | 3431 | # Only "real_search" is installed; "fake_search" is the hallucination. | COMMENT |
| MEDIUM | …ers/console/app/test_workflow_human_input_debug_api.py | 50 | # Skip setup and auth guardrails | COMMENT |
| MEDIUM | api/tests/unit_tests/services/test_workflow_service.py | 187 | # Add trigger node for event-driven workflows (webhook, schedule, etc.) | COMMENT |
| MEDIUM | api/tests/unit_tests/services/test_workflow_service.py | 1502 | # Trigger nodes enable event-driven automation which consumes resources | COMMENT |
| MEDIUM | …tests/tasks/test_batch_create_segment_to_index_task.py | 67 | # Mock embedding model for high quality indexing | COMMENT |
| MEDIUM | api/extensions/ext_celery.py | 179 | "tasks.rag_pipeline.rag_pipeline_run_task", # regular RAG pipeline execution | CODE |
| MEDIUM | api/extensions/ext_celery.py | 180 | "tasks.rag_pipeline.priority_rag_pipeline_run_task", # priority RAG pipeline execution | CODE |
| MEDIUM | api/controllers/service_api/dataset/dataset.py | 693 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 203 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 302 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 444 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 601 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/console/app/generator.py | 64 | # planner+builder prompts well inside every mainstream context window. | COMMENT |
| MEDIUM⚡ | api/services/knowledge/dataset_service.py | 847 | # Remove embedding model configuration for economy mode | COMMENT |
| MEDIUM⚡ | api/services/knowledge/dataset_service.py | 853 | # Configure embedding model for high quality mode | COMMENT |
| MEDIUM⚡ | api/services/knowledge/dataset_service.py | 857 | # Handle embedding model updates when indexing technique remains the same | COMMENT |
| MEDIUM⚡ | api/services/knowledge/dataset_service.py | 935 | # If the dataset already has embedding model settings, use those | COMMENT |
| MEDIUM⚡ | api/services/knowledge/dataset_service.py | 942 | # Otherwise, don't try to update embedding model settings at all | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 322 | # check if embedding model setting is valid | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 696 | # Handle indexing technique changes and embedding model updates | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 914 | # Skip embedding model checks if not provided in the update request | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1008 | # If we can't get the embedding model, preserve existing settings | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1019 | # Skip the rest of the embedding model update | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1022 | # Apply new embedding model settings | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1137 | # get embedding model setting | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1171 | # Skip embedding model checks if not provided in the update request | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1187 | # Only update embedding model if both values are provided and different from current | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1203 | # If we can't get the embedding model, skip updating it | COMMENT |
| MEDIUM | api/services/knowledge/dataset_service.py | 1205 | # Skip the rest of the embedding model update | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 127 | # Step 1: Environment Check | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 164 | # Step 2: Read Package Info | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 187 | # Step 3: Install Dependencies | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 195 | # Step 4: Run Tests | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 207 | # Step 5: Build | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 229 | # Step 6: Publish | COMMENT |
| LOW⚡ | dify-agent-runtime/internal/agentcli/file.go | 70 | // Step 1: Request a signed upload URL | COMMENT |
| LOW⚡ | dify-agent-runtime/internal/agentcli/file.go | 76 | // Step 2: Upload the file to the signed URL (data-plane) | COMMENT |
| LOW | dify-agent-runtime/internal/agentcli/file.go | 100 | // Step 3: Request a browser-visible URL unless the caller only needs the | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1274 | // Step 1: Verify | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1280 | // Step 2: Update | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1870 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1873 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1881 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1885 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1947 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1951 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1960 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1964 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1675 | // Step 1: Enter URL | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1679 | // Step 2: Run crawl | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1682 | // Step 3: Wait for completion | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1687 | // Step 4: Click preview | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1073 | // Step 1: Set up data | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1077 | // Step 2: Set caches | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 88 | // Step 1: rename var_2 -> var_1 (creates duplicate) | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 98 | // Step 2: rename second var_1 -> var_2 (restores unique names) | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 254 | // Step 1: Clean and prepare Mermaid code using the extracted prepareMermaidCode function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 261 | // Step 2: Render chart | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 264 | // Step 3: Apply theme to SVG using the extracted processSvgForTheme function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 272 | // Step 4: Clean up SVG code | COMMENT |
| LOW | cli/scripts/e2e-provision.ts | 88 | // Step 1: device code | COMMENT |
| LOW | cli/scripts/e2e-provision.ts | 101 | // Step 2: approve (with retry) | COMMENT |
| LOW | cli/scripts/e2e-provision.ts | 117 | // Step 3: exchange token | COMMENT |
| LOW | api/core/tools/mcp_tool/tool.py | 298 | # Step 1: Load provider entity and credentials in a short-lived session | COMMENT |
| LOW | api/core/tools/mcp_tool/tool.py | 325 | # Step 2: Session is now closed, perform network operations without holding database connection | COMMENT |
| LOW⚡ | …tests/unit_tests/core/datasource/test_website_crawl.py | 938 | # Step 1: Start crawl | COMMENT |
| LOW⚡ | …tests/unit_tests/core/datasource/test_website_crawl.py | 948 | # Step 2: Check status (running) | COMMENT |
| LOW⚡ | …tests/unit_tests/core/datasource/test_website_crawl.py | 987 | # Step 4: Get specific URL data | COMMENT |
| LOW | …tests/unit_tests/core/datasource/test_website_crawl.py | 960 | # Step 3: Check status (completed) | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 429 | # Step 1: Create ToolInvokeMessage | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 433 | # Step 2: Apply safe_json_value transformation | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 436 | # Step 3: Serialize to JSON string | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 439 | # Step 4: Verify the string is valid JSON | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 444 | # Step 5: Deserialize back to Python object | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 447 | # Step 6: Verify data integrity | COMMENT |
| LOW⚡ | …sts/core/tools/utils/test_tool_engine_serialization.py | 457 | # Step 7: Verify all complex types were properly converted | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1723 | # Step 1: Get current billing info | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1738 | # Step 2: Get payment link for upgrade | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1743 | # Step 3: Verify new rate limits after upgrade | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1755 | # Step 1: Consume credits | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1761 | # Step 2: Check current usage | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1767 | # Step 3: Refund the usage | COMMENT |
| LOW⚡ | api/tests/unit_tests/services/test_billing_service.py | 1772 | # Step 4: Verify usage after refund | COMMENT |
| LOW⚡ | …ntegration_tests/services/test_conversation_service.py | 1105 | # Step 1: Immediate logical deletion | COMMENT |
| LOW⚡ | …ntegration_tests/services/test_conversation_service.py | 1110 | # Step 2: Async cleanup task triggered | COMMENT |
| LOW⚡ | api/extensions/logstore/aliyun_logstore.py | 309 | # Step 1: Ensure project and logstore exist | COMMENT |
| LOW⚡ | api/extensions/logstore/aliyun_logstore.py | 317 | # Step 2: Initialize PG client and connection (if enabled) | COMMENT |
| LOW | api/extensions/logstore/aliyun_logstore.py | 329 | # Step 3: Establish PG connection based on project status | COMMENT |
| LOW⚡ | api/controllers/console/workspace/tool_providers.py | 1444 | # Step 1: Get provider data for URL validation (short-lived session, no network I/O) | COMMENT |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/dify-env-sync.sh | 231 | # Numeric check - using arithmetic evaluation for robust comparison | COMMENT |
| MEDIUM | …/chat-with-history/header/__tests__/operation.spec.tsx | 90 | // Find trigger container by text and traverse to interactive container using a more robust selector | COMMENT |
| MEDIUM | web/app/components/base/mermaid/utils.ts | 193 | // parser is more robust. | COMMENT |
| MEDIUM | web/public/vs/language/css/cssWorker.js | 73 | This is used to produce an effect that is known as tate-ch\u016B-yoko (\u7E26\u4E2D\u6A2A) in Japanese, or as \u76F4\u66 | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 259 | * To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/do | COMMENT |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 270 | Default mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.`}},{na | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 270 | Default mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.`}},{na | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 288 | **Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, | CODE |
| MEDIUM | api/constants/recommended_apps.json | 429 | "export_data": "app:\n icon: \"\\U0001F911\"\n icon_background: '#E4FBCC'\n mode: agent-chat\n name: Inv | CODE |
| MEDIUM | api/constants/recommended_apps.json | 429 | "export_data": "app:\n icon: \"\\U0001F911\"\n icon_background: '#E4FBCC'\n mode: agent-chat\n name: Inv | CODE |
| MEDIUM | api/constants/recommended_apps.json | 447 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: chat\n name: Python bu | CODE |
| MEDIUM | api/constants/recommended_apps.json | 487 | "export_data": "app:\n icon: \"\\U0001F522\"\n icon_background: '#E4FBCC'\n mode: agent-chat\n name: You | CODE |
| MEDIUM | api/constants/recommended_apps.json | 503 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: workflow\n name: SEO B | CODE |
| MEDIUM | api/constants/recommended_apps.json | 519 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: workflow\n name: 'Sent | CODE |
| MEDIUM⚡ | api/constants/pipeline_templates.json | 1356 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3132 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3132 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM⚡ | …i/tests/unit_tests/core/datasource/test_file_upload.py | 891 | """Tests for comprehensive filename validation logic. | STRING |
| LOW | …s/core/datasource/entities/test_datasource_entities.py | 70 | # For STRING, it should just return the value as is (or cast to str) | COMMENT |
| MEDIUM | api/tests/unit_tests/core/plugin/test_plugin_manager.py | 1001 | # Arrange & Act: Create resource requirements with comprehensive model permissions | COMMENT |
| LOW⚡ | …sts/unit_tests/core/mcp/session/test_client_session.py | 586 | # Should just pass (case _:) | COMMENT |
| MEDIUM | …/tests/unit_tests/core/workflow/test_workflow_entry.py | 483 | # Define comprehensive variable mapping | COMMENT |
| MEDIUM | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 193 | # Create comprehensive system variables | COMMENT |
| MEDIUM | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 272 | # Create comprehensive user inputs | COMMENT |
| MEDIUM⚡ | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 344 | # Create a comprehensive VariablePool with all data types | COMMENT |
| MEDIUM | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 363 | # Create a comprehensive VariablePool with all data types | COMMENT |
| LOW | …t_tests/core/workflow/generator/test_runner_missing.py | 28 | # BuiltinNodeTypes is not imported directly, we need to mock or just use the generator method | COMMENT |
| MEDIUM | …ts/core/external_data_tool/test_external_data_fetch.py | 30 | # This approach is robust regardless of thread scheduling order | COMMENT |
| MEDIUM | …nit_tests/commands/test_legacy_model_type_migration.py | 1234 | except BaseException as exc: # pragma: no cover - test harness | CODE |
| MEDIUM | …nit_tests/commands/test_legacy_model_type_migration.py | 1321 | except BaseException as exc: # pragma: no cover - test harness | CODE |
| MEDIUM | …tests/controllers/console/app/test_model_config_api.py | 147 | # Admission is supplied by this harness; parsing and HTTP errors use the real controller and API. | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/services/controller_api.py | 922 | # When writing API tests, consider the following best practices: | COMMENT |
| MEDIUM | …s/unit_tests/services/test_external_dataset_service.py | 1272 | """Test process_external_api operations - comprehensive HTTP method coverage.""" | STRING |
| MEDIUM | …s/unit_tests/services/test_external_dataset_service.py | 1420 | """Test assembling_headers operations - comprehensive authorization coverage.""" | STRING |
| MEDIUM | …ation_tests/tasks/test_create_segment_to_index_task.py | 1084 | # Arrange: Create comprehensive test scenario | COMMENT |
| MEDIUM | …ation_tests/tasks/test_create_segment_to_index_task.py | 1102 | # Assert: Verify comprehensive success | COMMENT |
| MEDIUM | api/models/workflow.py | 1727 | # `WorkflowEntry.handle_special_values`, making a comprehensive migration challenging. | COMMENT |
| LOW | api/libs/external_api.py | 38 | # If Werkzeug already prepared a Response, just use it. This bypasses | COMMENT |
| LOW | api/services/workflow_draft_variable_service.py | 426 | # For consistency, we should simply return when processing VARIABLE_ASSIGNER nodes. | COMMENT |
| LOW | api/services/snippet_dsl_service.py | 597 | # For now, just return the dataset_id as-is | COMMENT |
| LOW | api/services/variable_truncator.py | 475 | # without any truncation, so just return it as-is | COMMENT |
| MEDIUM | api/services/workflow_event_snapshot_service.py | 142 | # ensure that we can utilize the index. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …t/tests/local/dify_agent/adapters/llm/_test_support.py | 18 | CODE | |
| LOW | dify-agent/src/dify_agent/runtime/observability.py | 125 | CODE | |
| LOW | dify-agent/src/dify_agent/runtime/observability.py | 206 | CODE | |
| LOW | api/core/tools/utils/web_reader_tool.py | 96 | CODE | |
| LOW | api/core/app/apps/chat/generate_response_converter.py | 38 | CODE | |
| LOW | api/core/app/apps/workflow/generate_task_pipeline.py | 783 | CODE | |
| LOW | api/core/app/apps/advanced_chat/app_generator.py | 508 | CODE | |
| LOW | …/app/apps/advanced_chat/generate_response_converter.py | 60 | CODE | |
| LOW | …ore/app/apps/agent_chat/generate_response_converter.py | 38 | CODE | |
| LOW | api/core/plugin/impl/model.py | 52 | CODE | |
| LOW | api/core/plugin/backwards_invocation/model.py | 183 | CODE | |
| LOW | api/core/plugin/backwards_invocation/model.py | 206 | CODE | |
| LOW | api/core/rag/datasource/retrieval_service.py | 795 | CODE | |
| LOW | api/core/workflow/nodes/agent/agent_node.py | 222 | CODE | |
| LOW | api/core/helper/code_executor/template_transformer.py | 71 | CODE | |
| LOW | api/core/moderation/api/api.py | 93 | CODE | |
| LOW | …s/vdb/vdb-vikingdb/tests/integration_tests/conftest.py | 24 | CODE | |
| LOW | …rs/vdb/vdb-tencent/tests/integration_tests/conftest.py | 18 | CODE | |
| LOW | …rs/vdb/vdb-tencent/tests/integration_tests/conftest.py | 124 | CODE | |
| LOW | api/tests/workflow_test_utils.py | 32 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 39 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 101 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 146 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 170 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 204 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 249 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 285 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 338 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 382 | CODE | |
| LOW | api/tests/unit_tests/model_factories.py | 437 | CODE | |
| LOW | …unit_tests/tasks/test_workflow_node_execution_tasks.py | 47 | CODE | |
| LOW | …_tests/core/tools/custom_tool/api_tool_http_fixture.py | 35 | CODE | |
| LOW | …ests/core/app/layers/test_pause_state_persist_layer.py | 108 | CODE | |
| LOW | …/test_sqlalchemy_workflow_node_execution_repository.py | 73 | CODE | |
| LOW | …/repositories/test_human_input_form_repository_impl.py | 222 | CODE | |
| LOW | …tests/core/rag/datasource/test_datasource_retrieval.py | 230 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 458 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 529 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 608 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1359 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1454 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1507 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1567 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1646 | CODE | |
| LOW | …_tests/core/workflow/graph_engine/test_table_runner.py | 248 | CODE | |
| LOW | api/tests/unit_tests/oss/__mock/aliyun_oss.py | 27 | CODE | |
| LOW | …nit_tests/controllers/service_api/app/test_workflow.py | 75 | CODE | |
| LOW | …ts/controllers/console/app/test_app_response_models.py | 59 | CODE | |
| LOW | …ests/controllers/console/explore/test_installed_app.py | 165 | CODE | |
| LOW | …s/unit_tests/services/test_trigger_provider_service.py | 55 | CODE | |
| LOW | …nit_tests/services/test_datasource_provider_service.py | 31 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 306 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 343 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 158 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 205 | CODE | |
| LOW | …s/unit_tests/services/test_dataset_service_document.py | 87 | CODE | |
| LOW | …it_tests/services/test_model_load_balancing_service.py | 110 | CODE | |
| LOW | …s/unit_tests/services/test_external_dataset_service.py | 35 | CODE | |
| LOW | …ts/unit_tests/services/test_dataset_service_dataset.py | 63 | CODE | |
| LOW | …sts/services/rag_pipeline/test_rag_pipeline_service.py | 136 | CODE | |
| 32 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …fy-agent/tests/local/dify_agent/runtime/test_runner.py | 190 | CODE | |
| MEDIUM | …fy-agent/tests/local/dify_agent/runtime/test_runner.py | 399 | CODE | |
| MEDIUM | …/tests/unit_tests/clients/agent_backend/test_client.py | 183 | CODE | |
| MEDIUM | api/tests/unit_tests/core/test_model_manager.py | 246 | CODE | |
| MEDIUM | api/tests/unit_tests/core/test_model_manager.py | 449 | CODE | |
| MEDIUM | …tests/unit_tests/core/plugin/impl/test_model_client.py | 206 | CODE | |
| MEDIUM | …tests/unit_tests/core/plugin/impl/test_model_client.py | 543 | CODE | |
| MEDIUM | …nit_tests/core/workflow/test_workflow_entry_helpers.py | 804 | CODE | |
| MEDIUM | …/tests/unit_tests/core/workflow/nodes/llm/test_node.py | 1672 | CODE | |
| MEDIUM | …_tests/core/workflow/nodes/agent_v2/test_agent_node.py | 313 | CODE | |
| MEDIUM | …_tests/core/workflow/nodes/agent_v2/test_agent_node.py | 374 | CODE | |
| MEDIUM | …_tests/core/workflow/nodes/agent_v2/test_agent_node.py | 387 | CODE | |
| MEDIUM | …it_tests/core/base/test_app_generator_tts_publisher.py | 256 | CODE | |
| MEDIUM | …s/unit_tests/controllers/common/test_audio_response.py | 123 | CODE | |
| MEDIUM | …it_tests/controllers/console/app/test_generator_api.py | 712 | CODE | |
| MEDIUM | …_tests/controllers/console/explore/test_trial_audio.py | 456 | CODE | |
| MEDIUM | …ts/unit_tests/services/test_agent_llm_inner_service.py | 350 | CODE | |
| MEDIUM | api/tests/unit_tests/services/test_setup_service.py | 73 | CODE | |
| MEDIUM | …nit_tests/services/knowledge/test_document_creation.py | 330 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/php-client/README.md | 34 | $apiKey = 'your-api-key-here'; | CODE |
| HIGH | sdks/php-client/README.md | 92 | Replace 'your-api-key-here' with your actual Dify API key. | CODE |
| HIGH | …ase/markdown-blocks/__tests__/shiki-highlight.spec.tsx | 43 | const code = 'OPENAI_API_KEY=your-api-key\n# OPENAI_ORGANIZATION=org-id' | CODE |
| HIGH | …ase/markdown-blocks/__tests__/shiki-highlight.spec.tsx | 47 | expect(result).toContain('your-api-key') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/workflow-generator/__tests__/example-prompts.spec.tsx | 40 | // The primary content is AI-generated, workspace-grounded chips fetched on | COMMENT |
| HIGH | …/components/workflow/nodes/llm/__tests__/utils.spec.ts | 169 | // A DSL exported from an older/AI-generated workflow can persist `model_selector: null` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/docker/entrypoint.sh | 6 | # you can use the Ubuntu terminal to convert this file to unix format | COMMENT |
| LOW | web/public/vs/language/css/cssWorker.js | 32 | `),[{language:"html",value:r}]}doPrint(e,t){for(let r of e)this.doPrintElement(r,t),r.children&&this.doPrint(r.children, | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 306 | **Usage note:** Do not use this attribute, as it has been deprecated. The [\`<caption>\`](https://developer.mozilla.org/ | CODE |
| MEDIUM | api/constants/recommended_apps.json | 471 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: advanced-chat\n name: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ents/workflow/nodes/code/__tests__/code-parser.spec.ts | 119 | print("Hello")`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py | 377 | def process_data(self) -> Mapping[str, Any] | None: ... | CODE |
| LOW | api/tests/unit_tests/core/tools/test_plugin_tool.py | 51 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | api/tests/unit_tests/core/tools/test_plugin_tool.py | 106 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | …sts/unit_tests/core/tools/test_plugin_tool_provider.py | 73 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | …/unit_tests/extensions/otel/decorators/test_handler.py | 246 | def my_function(x): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …/tests/unit_tests/core/workflow/nodes/llm/test_node.py | 597 | # TODO: Add test | COMMENT |
| LOW | …/tests/unit_tests/core/workflow/nodes/llm/test_node.py | 637 | # TODO: Add test | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 7 | # Usage: | COMMENT |