Langflow is a powerful tool for building and deploying AI-powered agents and workflows.
This report presents the forensic synthetic code analysis of langflow-ai/langflow, a Python project with 152,716 GitHub stars. SynthScan v2.0 examined 1,398,783 lines of code across 7272 source files, recording 33086 pattern matches distributed across 28 syntactic categories. The overall adjusted score of 28.9 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 33086 distinct pattern matches across 28 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/openapi/generate_openapi.py | 50 | def _collect_and_rewrite_defs(node: Any, collected: dict[str, Any]) -> None: | CODE |
| LOW⚡ | docs/static/files/Conversational_Notion_Agent.json | 3035 | "value": "from typing import Any, cast\n\nfrom langflow.custom import Component\nfrom langflow.inputs im | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 453 | "value": "import json\nfrom typing import Dict, Any, Union\nfrom markdown import markdown\nfrom bs4 impo | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 741 | "value": "import requests\nfrom typing import Dict, Union\nfrom pydantic import BaseModel, Field\nfrom l | CODE |
| LOW | docs/static/files/Meeting_Notes_Agent.json | 2096 | "value": "import json\nfrom typing import Dict, Any, Union\nfrom markdown import markdow | CODE |
| LOW | docs/static/files/Meeting_Notes_Agent.json | 2377 | "value": "import requests\nfrom typing import Dict, Union\nfrom pydantic import BaseMode | CODE |
| LOW | docs/static/files/AssemblyAI_Flow.json | 743 | "value": "import assemblyai as aai\n\nfrom langflow.custom import Component\nfrom langfl | CODE |
| LOW | docs/src/plugins/segment/data-attribute-tracking.js | 37 | function initializeDataAttributeTracking() { | CODE |
| LOW | docs/src/components/CopyPageButton.tsx | 118 | async function copyCurrentPageAsMarkdown(): Promise<boolean> { | CODE |
| LOW | docs/src/theme/SearchBar/index.js | 24 | function importDocSearchModalIfNeeded() { | CODE |
| LOW | docs/src/theme/SearchBar/index.js | 74 | function useResultsFooterComponent({ closeModal }) { | CODE |
| LOW | scripts/check_changes_filter.py | 76 | def get_changed_files_from_stdin() -> list[str]: | STRING |
| LOW | scripts/migrate_secret_key.py | 83 | def read_secret_key_from_file(config_dir: Path) -> str | None: | CODE |
| LOW | scripts/build_component_index.py | 28 | def _normalize_for_determinism(obj): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 79 | def test_main_and_base_return_identical_version_given_offset_histories(): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 89 | def test_aligned_histories_increment_by_one(): | CODE |
| LOW⚡ | scripts/ci/test_pypi_nightly_tag.py | 101 | def test_first_ever_nightly_both_absent(): | CODE |
| LOW⚡ | scripts/ci/test_pypi_nightly_tag.py | 105 | def test_base_version_bump_resets_counter(): | CODE |
| LOW⚡ | scripts/ci/test_pypi_nightly_tag.py | 111 | def test_base_version_bump_with_some_new_series_releases(): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 122 | def test_final_release_does_not_advance_counter(): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 131 | def test_malformed_response_raises(): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 143 | def test_higher_package_lookup_failure_aborts(): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 151 | def test_network_error_raises(): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 164 | def test_unparseable_version_string_is_skipped(): | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 168 | def test_invalid_build_type_raises(): | CODE |
| LOW | scripts/ci/test_update_lf_base_dependency.py | 44 | def test_pins_bare_and_extras_lfx_to_exact_dev(pyproject: Path) -> None: | CODE |
| LOW⚡ | scripts/ci/test_update_lf_base_dependency.py | 61 | def test_idempotent_on_already_pinned(pyproject: Path) -> None: | CODE |
| LOW⚡ | scripts/ci/test_update_lf_base_dependency.py | 69 | def test_raises_when_no_lfx_dependency(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | scripts/ci/test_update_lf_base_dependency.py | 77 | def test_pattern_skips_unrelated_packages(pyproject: Path) -> None: | CODE |
| LOW | scripts/ci/update_component_index_version.py | 12 | def update_component_index_version(index_path: str | Path, version: str) -> None: | CODE |
| LOW⚡ | scripts/ci/test_release_workflow.py | 21 | def test_finalized_bundles_do_not_influence_shared_rc_number() -> None: | CODE |
| LOW⚡ | scripts/ci/test_release_workflow.py | 29 | def test_bundle_build_only_restamps_unpublished_versions() -> None: | CODE |
| LOW⚡ | scripts/ci/test_release_workflow.py | 39 | def test_nightly_coordinates_base_from_tag_commit_through_publish() -> None: | CODE |
| LOW | scripts/ci/test_release_workflow.py | 56 | def test_release_docker_builds_consume_built_wheels() -> None: | CODE |
| LOW | scripts/ci/test_update_lfx_version.py | 51 | def test_nightly_rewrite_keeps_component_index_in_lockstep(nightly_tree: tuple[Path, Path]) -> None: | CODE |
| LOW | scripts/ci/update_lfx_version.py | 28 | def update_sdk_dependency_in_lfx(pyproject_path: str, sdk_version: str) -> None: | CODE |
| LOW | scripts/ci/test_update_lfx_pre_release_dependency.py | 4 | def test_preserves_lfx_extras_and_markers(): | CODE |
| LOW | scripts/ci/test_update_lfx_pre_release_dependency.py | 20 | def test_rewrites_an_existing_release_range_idempotently(): | STRING |
| LOW | scripts/ci/test_install_release_wheels.py | 25 | def test_main_installs_every_release_artifact(tmp_path: Path) -> None: | CODE |
| LOW | scripts/ci/test_install_release_wheels.py | 43 | def test_base_excludes_main_and_bundle_wheels(tmp_path: Path) -> None: | CODE |
| LOW | scripts/ci/test_install_release_wheels.py | 55 | def test_missing_required_wheel_fails_closed(tmp_path: Path) -> None: | CODE |
| LOW | scripts/ci/test_install_release_wheels.py | 62 | def test_install_release_wheels_installs_verifies_and_checks(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | scripts/ci/test_install_release_wheels.py | 101 | def test_install_release_wheels_without_artifacts_is_a_noop(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | scripts/ci/test_install_release_wheels.py | 113 | def test_restore_frontend_replaces_wheel_assets(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | scripts/ci/test_install_release_wheels.py | 140 | def test_restore_frontend_rejects_source_target_collision(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | scripts/ci/test_langflow_pre_release_tag.py | 19 | def test_ignores_unrelated_newer_pre_release_line(): | CODE |
| LOW⚡ | scripts/ci/test_langflow_pre_release_tag.py | 23 | def test_increments_same_base_rc_with_or_without_dot(): | CODE |
| LOW⚡ | scripts/ci/test_langflow_pre_release_tag.py | 32 | def test_shared_rc_number_floor_applies_to_other_package_base(): | CODE |
| LOW⚡ | scripts/ci/test_langflow_pre_release_tag.py | 36 | def test_shared_rc_number_floor_does_not_regress_existing_higher_rc(): | CODE |
| LOW⚡ | scripts/ci/test_langflow_pre_release_tag.py | 40 | def test_cli_reads_released_versions_from_stdin(): | CODE |
| LOW | scripts/ci/test_langflow_pre_release_tag.py | 51 | def test_unparseable_versions_are_skipped(): | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 593 | async def _run_list_snapshots_by_ids(self, snapshot_ids: list[str]) -> tuple[str, str, Any | None]: | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 599 | async def _run_list_snapshots_by_names(self, snapshot_names: list[str]) -> tuple[str, str, Any | None]: | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 605 | async def _run_list_configs_with_params( | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 1680 | def _parse_create_provider_result_payload(self, provider_result: Any) -> WatsonxDeploymentCreateResultData: | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 1696 | def _extract_create_snapshot_ids(self, create_provider_result: WatsonxDeploymentCreateResultData) -> set[str]: | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 1705 | def _extract_create_tool_ref_map( | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 1731 | def _extract_update_snapshot_ids(self, update_result: Any) -> set[str]: | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 1741 | def _extract_update_added_snapshot_ids(self, update_result: Any) -> set[str]: | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 1751 | def _extract_update_created_app_ids(self, update_result: Any) -> set[str]: | CODE |
| 17093 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/migrate/check_router_trust.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 107 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 163 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 165 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 393 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 395 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 558 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 560 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 605 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/check_router_trust.py | 607 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 774 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 776 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 1045 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 1047 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 1119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 1121 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 1229 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 1231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/migrate/port_bundle.py | 146 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/migrate/port_bundle.py | 148 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/migrate/port_bundle.py | 347 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/migrate/port_bundle.py | 349 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/migrate/port_bundle.py | 1583 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/migrate/port_bundle.py | 1585 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/migrate/port_bundle.py | 1617 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/migrate/port_bundle.py | 1619 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/gp/tests/test_gp_client.py | 12 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/gp/tests/test_gp_client.py | 14 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/gp/tests/test_gp_client.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/gp/tests/test_gp_client.py | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/gp/tests/test_gp_client.py | 67 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/gp/tests/test_gp_client.py | 69 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/gp/tests/test_gp_client.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/gp/tests/test_gp_client.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/gp/tests/test_gp_client.py | 149 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/gp/tests/test_gp_client.py | 151 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 191 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 193 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 241 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 243 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 330 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 332 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 630 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 632 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 656 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 658 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 769 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 771 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 911 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 913 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 952 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 954 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 1142 | # =================================================================== | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 1144 | # =================================================================== | COMMENT |
| MEDIUM | src/lfx/tests/unit/test_flow_requirements.py | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/lfx/tests/unit/test_flow_requirements.py | 47 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/lfx/tests/unit/test_flow_requirements.py | 91 | # =================================================================== | COMMENT |
| MEDIUM | src/lfx/tests/unit/test_flow_requirements.py | 93 | # =================================================================== | COMMENT |
| 2120 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docs/static/files/Conversational_Notion_Agent.json | 3030 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 429 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 448 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 468 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 489 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 584 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 600 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 620 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 640 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 736 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 752 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 772 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 867 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 883 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 903 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 923 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1018 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1037 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1131 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1150 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1166 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1263 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1282 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1302 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1318 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1338 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1434 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1453 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1469 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1490 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1607 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1629 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1650 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1666 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1688 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1710 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1727 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1749 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1771 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1788 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1887 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1910 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1929 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1949 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1969 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 1993 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2015 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2038 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2061 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2080 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2102 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2201 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2224 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2245 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2287 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2309 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2333 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2356 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2379 | "placeholder": "", | CODE |
| LOW | docs/static/files/Conversational_Notion_Agent.json | 2398 | "placeholder": "", | CODE |
| 5728 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/openapi/generate_openapi.py | 13 | CODE | |
| LOW | scripts/generate_migration.py | 3 | CODE | |
| LOW | scripts/generate_migration.py | 4 | CODE | |
| LOW | scripts/generate_migration.py | 5 | CODE | |
| LOW | scripts/generate_migration.py | 6 | CODE | |
| LOW | scripts/generate_migration.py | 7 | CODE | |
| LOW | scripts/generate_migration.py | 8 | CODE | |
| LOW | scripts/generate_migration.py | 9 | CODE | |
| LOW | scripts/generate_migration.py | 11 | CODE | |
| LOW | scripts/lint/check_component_env_writes.py | 33 | CODE | |
| LOW | scripts/ci/langflow_pre_release_tag.py | 3 | CODE | |
| LOW | scripts/ci/check_components_frozen.py | 19 | CODE | |
| LOW | scripts/ci/update_component_index_version.py | 3 | CODE | |
| LOW | scripts/ci/test_release_workflow.py | 3 | CODE | |
| LOW | scripts/ci/install_release_wheels.py | 10 | CODE | |
| LOW | scripts/ci/test_update_lfx_version.py | 3 | CODE | |
| LOW | scripts/ci/sync_bundle_lfx_pin.py | 39 | CODE | |
| LOW | scripts/ci/update_starter_projects.py | 6 | CODE | |
| LOW | scripts/ci/test_install_release_wheels.py | 3 | CODE | |
| LOW | scripts/ci/update_lfx_pre_release_dependency.py | 3 | CODE | |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 128 | CODE | |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 102 | CODE | |
| LOW | scripts/migrate/check_router_trust.py | 56 | CODE | |
| LOW | scripts/migrate/consolidate_bundles.py | 28 | CODE | |
| LOW | scripts/migrate/check_bare_names.py | 34 | CODE | |
| LOW | scripts/migrate/check_bundle_api_changelog.py | 29 | CODE | |
| LOW | scripts/migrate/port_bundle.py | 100 | CODE | |
| LOW | scripts/migrate/check_migration_append_only.py | 27 | CODE | |
| LOW | scripts/gp/check_backend_status.py | 12 | CODE | |
| LOW | scripts/gp/upload.py | 8 | CODE | |
| LOW | scripts/gp/download.py | 8 | CODE | |
| LOW | scripts/gp/bake_note_keys.py | 21 | CODE | |
| LOW | scripts/gp/extract_backend_strings.py | 26 | CODE | |
| LOW | scripts/a11y/a11y_scan.py | 5 | CODE | |
| LOW | src/lfx/tests/conftest.py | 44 | CODE | |
| LOW | src/lfx/tests/unit/test_flow_requirements.py | 3 | CODE | |
| LOW | src/lfx/tests/unit/test_fork.py | 3 | CODE | |
| LOW | src/lfx/tests/unit/test_preload.py | 8 | CODE | |
| LOW | src/lfx/tests/unit/test_check_components_frozen.py | 16 | CODE | |
| LOW | src/lfx/tests/unit/test_testing_plugin.py | 6 | CODE | |
| LOW | src/lfx/tests/unit/test_process.py | 11 | CODE | |
| LOW | src/lfx/tests/unit/test_safe_provider.py | 12 | CODE | |
| LOW | …c/lfx/tests/unit/test_flow_builder_custom_node_type.py | 20 | CODE | |
| LOW | src/lfx/tests/unit/test_patch_regexes.py | 8 | CODE | |
| LOW | …/interface/test_loading_custom_component_code_param.py | 8 | CODE | |
| LOW | src/lfx/tests/unit/interface/test_listing.py | 3 | CODE | |
| LOW | …x/tests/unit/interface/test_loading_no_env_fallback.py | 3 | CODE | |
| LOW | src/lfx/tests/unit/upgrade/test_upgrade_real_flows.py | 18 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_registry.py | 14 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_errors.py | 3 | CODE | |
| LOW | …ts/unit/extension/test_components_cache_integration.py | 15 | CODE | |
| LOW | …/tests/unit/extension/test_components_path_settings.py | 9 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_reload_cli.py | 3 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_init_template.py | 14 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_manifest.py | 3 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_schema.py | 7 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_discovery.py | 19 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_discovery.py | 73 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_discovery.py | 75 | CODE | |
| LOW | src/lfx/tests/unit/extension/test_reload.py | 21 | CODE | |
| 2912 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | deploy/docker-compose.yml | 52 | # Define the port inside of the Docker service to use | COMMENT |
| MEDIUM⚡ | scripts/factory_restart_space.py | 40 | # Create an instance of the HfApi class to interact with the Hugging Face Hub. | COMMENT |
| MEDIUM⚡ | scripts/gcp/deploy_langflow_gcp_spot.sh | 29 | # Create a firewall rule to allow TCP port 7860 for all instances in the VPC | COMMENT |
| MEDIUM⚡ | scripts/gcp/deploy_langflow_gcp_spot.sh | 35 | # Create a firewall rule to allow IAP traffic | COMMENT |
| MEDIUM⚡ | scripts/gcp/deploy_langflow_gcp_spot.sh | 41 | # Define the startup script as a multiline Bash here-doc | COMMENT |
| MEDIUM | scripts/gcp/deploy_langflow_gcp_spot.sh | 56 | # Create a temporary file to store the startup script | COMMENT |
| MEDIUM | scripts/gcp/deploy_langflow_gcp_spot.sh | 60 | # Create the VM instance with the specified configuration and startup script | COMMENT |
| MEDIUM⚡ | scripts/gcp/deploy_langflow_gcp.sh | 29 | # Create a firewall rule to allow TCP port 7860 for all instances in the VPC | COMMENT |
| MEDIUM⚡ | scripts/gcp/deploy_langflow_gcp.sh | 35 | # Create a firewall rule to allow IAP traffic | COMMENT |
| MEDIUM⚡ | scripts/gcp/deploy_langflow_gcp.sh | 41 | # Define the startup script as a multiline Bash here-doc | COMMENT |
| MEDIUM | scripts/gcp/deploy_langflow_gcp.sh | 58 | # Create a temporary file to store the startup script | COMMENT |
| MEDIUM | scripts/gcp/deploy_langflow_gcp.sh | 62 | # Create the VM instance with the specified configuration and startup script | COMMENT |
| MEDIUM | .github/workflows/db-migration-validation.yml | 120 | # Create a witness flow (proves row persistence) | COMMENT |
| MEDIUM | .github/workflows/db-migration-validation.yml | 137 | # Create a witness credential (type=Credential stores encrypted value, exercises encrypted-column migrations) | COMMENT |
| MEDIUM | .github/workflows/typescript_test.yml | 70 | # Define the directory where Playwright browsers will be installed. | COMMENT |
| MEDIUM | .github/workflows/typescript_test.yml | 259 | # Create the matrix combinations string | COMMENT |
| MEDIUM | .github/workflows/a11y-scan.yml | 23 | # Define the directory where Playwright browsers will be installed. | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/test_flow_requirements.py | 640 | assert "# This file contains" in txt | CODE |
| MEDIUM | src/lfx/tests/unit/test_component_index.py | 146 | # Create the directory structure | COMMENT |
| MEDIUM | src/lfx/tests/unit/memory/test_memory.py | 274 | # Create a larger batch to test performance | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/config/test_environments.py | 236 | # Create a git boundary so it doesn't walk up further | STRING |
| MEDIUM⚡ | src/lfx/tests/unit/graph/graph/test_utils.py | 224 | # Create a graph with 50 nodes that definitely contains cycles | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/graph/graph/test_utils.py | 351 | # Define the graph with multiple cycles | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/graph/graph/test_utils.py | 358 | # Define the graph with a single cycle | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/graph/test_utils.py | 857 | # Define a graph with the specified structure | COMMENT |
| MEDIUM | …/lfx/tests/unit/graph/graph/test_subgraph_isolation.py | 18 | # Create a simple graph: chat_input -> text_output -> chat_output | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/graph/test_base.py | 148 | # Create a simple linear graph structure: | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/graph/graph/test_base.py | 293 | # Create a simple graph with two components and a flow_id | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/graph/test_base.py | 326 | # Create a simple graph with two components and a flow_id | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/graph/test_base.py | 362 | # Create a simple graph with flow_id | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/graph/test_base.py | 385 | # Create a simple graph with flow_id | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/graph/vertex/test_vertex_base.py | 301 | # Create a graph with a ChatInput component, which creates a vertex | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/vertex/test_vertex_base.py | 58 | # Create a mock graph | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/vertex/test_vertex_base.py | 338 | # Create a graph with a ChatInput component, which creates a vertex | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/vertex/test_vertex_base.py | 376 | # Create a graph with a ChatInput component, which creates a vertex | COMMENT |
| MEDIUM | src/lfx/tests/unit/graph/vertex/test_vertex_base.py | 404 | # Create a graph with a ChatInput component, which creates a vertex | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_lazy_imports.py | 119 | # Create a test script with a graph variable | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_lazy_imports.py | 137 | # Create a test script with get_graph function | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 64 | # Create a mock graph with vertices | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 83 | # Create a mock graph with vertices | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 118 | # Create a mock graph with vertices | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 151 | # Create a mock graph with vertices | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 178 | # Create a mock graph with vertices | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 201 | # Create a mock graph with vertices | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 231 | # Create a mock graph with invalid variable | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_validation.py | 256 | # Create a mock graph with invalid variable | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_serve_app.py | 1355 | # Create a mock result that mimics the real structure | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_serve_app.py | 1987 | # Create a real message output scenario | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_serve.py | 123 | # Create a temporary JSON flow file | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_serve.py | 144 | # Create a mock graph | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_serve.py | 198 | # Create a mock graph | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_script_loader.py | 129 | # Create a real graph with ChatInput and ChatOutput | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_script_loader.py | 149 | # Create a graph with only ChatOutput, no ChatInput | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_script_loader.py | 161 | # Create a graph with only ChatInput, no ChatOutput | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_script_loader.py | 269 | # Create a real Message object | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_script_loader.py | 277 | # Create a minimal mock for the vertex structure | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_script_loader.py | 303 | # Create a real Message object | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/cli/test_script_loader.py | 311 | # Create a minimal mock for the vertex structure | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_script_loader.py | 364 | # Create a real Message object | COMMENT |
| MEDIUM | src/lfx/tests/unit/cli/test_script_loader.py | 394 | # Create a real Message object | COMMENT |
| 520 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/test_validator.py | 0 | from alembic import op import sqlalchemy as sa def upgrade(): bind = op.get_bind() inspector = sa.inspect(bind) columns | STRING |
| HIGH | …backend/tests/unit/alembic/test_existing_migrations.py | 0 | from alembic import op import sqlalchemy as sa def upgrade(): bind = op.get_bind() inspector = sa.inspect(bind) columns | STRING |
| HIGH | …backend/tests/unit/alembic/test_migration_validator.py | 0 | from alembic import op import sqlalchemy as sa def upgrade(): bind = op.get_bind() inspector = sa.inspect(bind) columns | STRING |
| HIGH | scripts/ci/update_pyproject_name.py | 0 | update the langflow-base dependency in pyproject.toml. | STRING |
| HIGH | scripts/ci/update_uv_dependency.py | 0 | update the langflow-base dependency in pyproject.toml. | STRING |
| HIGH | scripts/ci/update_lf_base_dependency.py | 0 | update the langflow-base dependency in pyproject.toml. | STRING |
| HIGH | src/lfx/tests/unit/test_propose_field_edit.py | 0 | \ name: updated flow nodes: a: chatinput b: languagemodelcomponent c: chatoutput edges: a.message -> b.input_value b.tex | STRING |
| HIGH | src/lfx/tests/unit/test_build_flow_from_spec.py | 0 | \ name: updated flow nodes: a: chatinput b: languagemodelcomponent c: chatoutput edges: a.message -> b.input_value b.tex | STRING |
| HIGH | src/backend/tests/unit/api/v1/test_mcp_client_server.py | 0 | \ name: updated flow nodes: a: chatinput b: languagemodelcomponent c: chatoutput edges: a.message -> b.input_value b.tex | STRING |
| HIGH | src/lfx/tests/unit/extension/migration/test_rewrite.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …/integration/extension/test_pilot_nextplaid_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_exa_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …integration/extension/test_pilot_duckduckgo_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …sts/integration/extension/test_pilot_paddle_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …ests/integration/extension/test_pilot_arxiv_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_ibm_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …sts/integration/extension/test_pilot_oracle_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …/integration/extension/test_pilot_firecrawl_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | …ntegration/extension/test_pilot_empiriolabs_upgrade.py | 0 | build a minimal saved-flow node skeleton for testing. | STRING |
| HIGH | src/lfx/tests/unit/utils/test_ssrf_requests.py | 0 | socket.getaddrinfo stub: hostnames resolve to a public ip, literal ips to themselves. | STRING |
| HIGH | …ts/unit/components/models_and_agents/test_a2a_agent.py | 0 | socket.getaddrinfo stub: hostnames resolve to a public ip, literal ips to themselves. | STRING |
| HIGH | src/backend/tests/unit/components/tools/test_searxng.py | 0 | socket.getaddrinfo stub: hostnames resolve to a public ip, literal ips to themselves. | STRING |
| HIGH | …/backend/tests/unit/components/data_source/test_rss.py | 0 | socket.getaddrinfo stub: hostnames resolve to a public ip, literal ips to themselves. | STRING |
| HIGH | …unit/components/langchain_utilities/test_json_agent.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …/unit/components/langchain_utilities/test_csv_agent.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | src/backend/tests/base.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …nit/components/models_and_agents/test_mcp_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …ponents/embeddings/test_ollama_embeddings_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …unit/components/processing/test_save_file_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …ponents/processing/test_data_to_dataframe_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …nit/components/processing/test_split_text_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …nts/vectorstores/test_chroma_vector_store_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …sts/unit/components/vectorstores/test_mongodb_atlas.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …t/components/bundles/chroma/test_local_db_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …mponents/bundles/elastic/test_opensearch_multimodal.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | …s/bundles/youtube/test_youtube_transcript_component.py | 0 | return the file names mapping for different versions. | STRING |
| HIGH | src/lfx/tests/unit/base/data/test_storage_utils.py | 0 | test getting size of non-existent file raises filenotfounderror. | STRING |
| HIGH | …ts/unit/services/storage/test_local_storage_service.py | 0 | test getting size of non-existent file raises filenotfounderror. | STRING |
| HIGH | …d/tests/integration/storage/test_s3_storage_service.py | 0 | test getting size of non-existent file raises filenotfounderror. | STRING |
| HIGH | …/integration/extension/test_pilot_nextplaid_upgrade.py | 0 | wrap nodes in the canonical langflow flow envelope. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_exa_upgrade.py | 0 | wrap nodes in the canonical langflow flow envelope. | STRING |
| HIGH | …integration/extension/test_pilot_duckduckgo_upgrade.py | 0 | wrap nodes in the canonical langflow flow envelope. | STRING |
| HIGH | …ests/integration/extension/test_pilot_arxiv_upgrade.py | 0 | wrap nodes in the canonical langflow flow envelope. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_ibm_upgrade.py | 0 | wrap nodes in the canonical langflow flow envelope. | STRING |
| HIGH | …sts/integration/extension/test_pilot_oracle_upgrade.py | 0 | wrap nodes in the canonical langflow flow envelope. | STRING |
| HIGH | …/integration/extension/test_pilot_nextplaid_upgrade.py | 0 | a pre-extraction flow saved with the dotted import path upgrades cleanly. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_exa_upgrade.py | 0 | a pre-extraction flow saved with the dotted import path upgrades cleanly. | STRING |
| HIGH | …ests/integration/extension/test_pilot_arxiv_upgrade.py | 0 | a pre-extraction flow saved with the dotted import path upgrades cleanly. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_ibm_upgrade.py | 0 | a pre-extraction flow saved with the dotted import path upgrades cleanly. | STRING |
| HIGH | …sts/integration/extension/test_pilot_oracle_upgrade.py | 0 | a pre-extraction flow saved with the dotted import path upgrades cleanly. | STRING |
| HIGH | …/integration/extension/test_pilot_nextplaid_upgrade.py | 0 | package-level import-path form (re-exported by ``__init__.py``) also upgrades. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_exa_upgrade.py | 0 | package-level import-path form (re-exported by ``__init__.py``) also upgrades. | STRING |
| HIGH | …ests/integration/extension/test_pilot_arxiv_upgrade.py | 0 | package-level import-path form (re-exported by ``__init__.py``) also upgrades. | STRING |
| HIGH | …/tests/integration/extension/test_pilot_ibm_upgrade.py | 0 | package-level import-path form (re-exported by ``__init__.py``) also upgrades. | STRING |
| HIGH | …sts/integration/extension/test_pilot_oracle_upgrade.py | 0 | package-level import-path form (re-exported by ``__init__.py``) also upgrades. | STRING |
| HIGH | …/integration/extension/test_pilot_nextplaid_upgrade.py | 0 | ``importlib.metadata`` can find ``extension.json`` for the installed dist. | STRING |
| HIGH | …sts/integration/extension/test_pilot_cohere_upgrade.py | 0 | ``importlib.metadata`` can find ``extension.json`` for the installed dist. | STRING |
| HIGH | …s/integration/extension/test_pilot_datastax_upgrade.py | 0 | ``importlib.metadata`` can find ``extension.json`` for the installed dist. | STRING |
| HIGH | …sts/integration/extension/test_pilot_valkey_upgrade.py | 0 | ``importlib.metadata`` can find ``extension.json`` for the installed dist. | STRING |
| HIGH | …/integration/extension/test_pilot_anthropic_upgrade.py | 0 | ``importlib.metadata`` can find ``extension.json`` for the installed dist. | STRING |
| 244 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ls/backend-code-review/references/architecture-rule.md | 200 | print(f"Error: {e}") | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 20 | except Exception as exc: | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 26 | except Exception: | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 20 | except Exception as exc: | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 26 | except Exception: | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 20 | except Exception as exc: | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 26 | except Exception: | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 20 | except Exception as exc: | CODE |
| LOW | …dditional-configuration-for-openai-client-libraries.py | 26 | except Exception: | CODE |
| LOW | scripts/generate_migration.py | 247 | except Exception as e: | STRING |
| LOW | scripts/test-api-examples-local.sh | 232 | except Exception: | CODE |
| LOW | scripts/test-api-examples-local.sh | 242 | except Exception as exc: | CODE |
| MEDIUM | scripts/check_changes_filter.py | 161 | print(f"Error: Filter file not found at {filter_file}") | CODE |
| MEDIUM | scripts/migrate_secret_key.py | 250 | print("Error: Could not find current secret key.") | CODE |
| MEDIUM | scripts/migrate_secret_key.py | 264 | print("Error: Old and new secret keys are the same") | CODE |
| MEDIUM | scripts/migrate_secret_key.py | 478 | print("Error: Could not determine database URL.") | STRING |
| LOW | scripts/build_component_index.py | 87 | except Exception as e: | CODE |
| LOW | scripts/build_component_index.py | 169 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | scripts/check_deprecated_imports.py | 64 | except Exception as e: # noqa: BLE001 | CODE |
| MEDIUM | scripts/check_deprecated_imports.py | 85 | print(f"Error: Components directory not found at {lfx_components}", file=sys.stderr) | CODE |
| LOW | scripts/check_deprecated_imports.py | 105 | except Exception as e: # noqa: BLE001 | CODE |
| MEDIUM | scripts/check_deprecated_imports.py | 107 | print(f"Error: {e}", file=sys.stderr) | CODE |
| LOW | scripts/ci/test_pypi_nightly_tag.py | 180 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/ci/test_langflow_pre_release_tag.py | 61 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 640 | def _run_list_types(self) -> tuple[str, str, Any | None]: | CODE |
| MEDIUM | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 660 | def _run_list_llms(self) -> tuple[str, str, Any | None]: | CODE |
| MEDIUM | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 811 | def _run_teardown(self) -> tuple[str, str, Any | None]: | CODE |
| LOW⚡ | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 1686 | except Exception: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 467 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 495 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 515 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 549 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 582 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 629 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 655 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 675 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 698 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 728 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 758 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 782 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 806 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 826 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 846 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 875 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 895 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 935 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 309 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 315 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 321 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1769 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1973 | except Exception as exc: | CODE |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 994 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1632 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1648 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1697 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1719 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1742 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/gp/check_backend_status.py | 81 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | scripts/gp/download.py | 64 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | scripts/gp/download.py | 91 | except Exception as e: # noqa: BLE001 | CODE |
| 1377 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ls/backend-code-review/references/architecture-rule.md | 176 | Convert timestamp to standardized string format. Args: timestamp: Input timestamp as datetime objec | STRING |
| HIGH | …tests/integration/cli/test_simple_agent_integration.py | 77 | Parse JSON from command output, searching in reverse if direct parsing fails. Args: output: The command out | STRING |
| HIGH | src/lfx/src/lfx/extension/reload.py | 229 | Reload one Bundle into ``registry`` via the five-stage atomic swap. Args: registry: The live :class:`Bundle | STRING |
| HIGH | src/lfx/src/lfx/extension/migration/rewrite.py | 421 | Rewrite legacy component references in ``payload`` in place. Args: payload: The flow payload as produced by | STRING |
| HIGH | src/lfx/src/lfx/memory/stubs.py | 22 | Store a message in the memory. Args: message (Message): The message to store. flow_id (Optional[str | STRING |
| HIGH | src/lfx/src/lfx/memory/stubs.py | 103 | DEPRECATED: Stores a message in the memory. DEPRECATED: Use `astore_message` instead. Args: message (M | STRING |
| HIGH | src/lfx/src/lfx/memory/stubs.py | 124 | Update stored messages. Args: messages: Message or list of messages to update. Returns: List[M | STRING |
| HIGH | src/lfx/src/lfx/graph/graph/state_model.py | 12 | Create a Pydantic state model from a graph representation. This function generates a Pydantic model that represents | STRING |
| HIGH | src/lfx/src/lfx/graph/graph/utils.py | 819 | Sorts the vertices so that chat inputs come first in the layers. Only one chat input is allowed in the entire graph | STRING |
| HIGH | src/lfx/src/lfx/graph/graph/base.py | 1812 | Builds a vertex in the graph. Args: vertex_id (str): The ID of the vertex to build. get | STRING |
| HIGH | src/lfx/src/lfx/graph/state/model.py | 40 | Builds an output getter function for a given method in a graph component. This function creates a new callable that | STRING |
| HIGH | src/lfx/src/lfx/graph/state/model.py | 92 | Build an output setter function for a given method in a graph component. This function creates a new callable that, | STRING |
| HIGH | src/lfx/src/lfx/graph/state/model.py | 140 | Create a dynamic Pydantic state model based on the provided keyword arguments. This function generates a Pydantic m | STRING |
| HIGH | src/lfx/src/lfx/utils/ssrf_requests.py | 46 | Perform a GET request with SSRF validation on the initial URL and every redirect hop. Automatic redirect following | STRING |
| HIGH | src/lfx/src/lfx/utils/ssrf_protection.py | 227 | Resolve a hostname to its IP addresses. Args: hostname: Hostname to resolve Returns: list[str] | STRING |
| HIGH | src/lfx/src/lfx/utils/ssrf_protection.py | 280 | Validate that hostname exists in the URL. Args: hostname: Hostname to validate (may be None) Returns: | STRING |
| HIGH | src/lfx/src/lfx/utils/ssrf_protection.py | 298 | Validate a direct IP address in the URL. Args: hostname: Hostname that may be an IP address Returns: | STRING |
| HIGH | src/lfx/src/lfx/utils/ssrf_protection.py | 540 | Validate a connector URL and return IPs for DNS-pinned HTTP clients. This applies the same connector policy as :fun | STRING |
| HIGH | src/lfx/src/lfx/utils/ssrf_protection.py | 726 | Validate URL for SSRF and return validated IP addresses for DNS pinning. This function is the core of DNS pinning-b | STRING |
| HIGH | src/lfx/src/lfx/utils/file_path_security.py | 138 | Ensure a local path is inside the current user/flow storage scope when restricted. Symlinks are resolved before the | STRING |
| HIGH | src/lfx/src/lfx/utils/mustache_security.py | 64 | Safely render a mustache template with only simple variable substitution. This function performs a single-pass repl | STRING |
| HIGH | src/lfx/src/lfx/utils/helpers.py | 15 | Get the MIME type of a file based on its extension. Args: file_path: Path to the file Returns: | STRING |
| HIGH | src/lfx/src/lfx/utils/image.py | 16 | Convert an image file to a base64 encoded string. Handles both local files and S3 storage paths. Args: | STRING |
| HIGH | src/lfx/src/lfx/utils/image.py | 53 | Create a data URL from an image file. Args: image_path: Path to the image file (local or S3 path like "flow | STRING |
| HIGH | src/lfx/src/lfx/utils/image.py | 80 | Create a content dictionary for multimodal inputs from an image file. Args: image_path: Path to the image f | STRING |
| HIGH | src/lfx/src/lfx/cli/serve_app.py | 542 | Consumes events from a queue and yields them to the client while tracking timing metrics. This coroutine continuous | STRING |
| HIGH | src/lfx/src/lfx/cli/common.py | 228 | Download a Python script from a URL and save it to a temporary file. Args: url: URL to download the script | STRING |
| HIGH | src/lfx/src/lfx/cli/common.py | 279 | Validate script path or URL and return file extension and resolved path. Args: script_path: Path to the scr | STRING |
| HIGH | src/lfx/src/lfx/cli/common.py | 322 | Load a graph from a Python script or JSON file. Args: script_path: Path to the script file file_ext | STRING |
| HIGH | src/lfx/src/lfx/cli/common.py | 397 | Execute a graph and capture output. Args: graph: Graph object to execute input_value: Input value t | STRING |
| HIGH | src/lfx/src/lfx/schema/validators.py | 25 | Convert timestamp to standardized string format. Handles multiple input formats and ensures consistent UTC timezone | STRING |
| HIGH | src/lfx/src/lfx/schema/validators.py | 60 | Convert timestamp to datetime object. Handles multiple input formats and ensures consistent UTC timezone output. | STRING |
| HIGH | src/lfx/src/lfx/schema/validators.py | 89 | Convert timestamp to string format including fractional seconds. Handles multiple input formats and ensures consist | STRING |
| HIGH | src/lfx/src/lfx/schema/dotdict.py | 17 | Override dot access to behave like dictionary lookup. Automatically convert nested dicts to dotdicts. Args: | STRING |
| HIGH | …x/components/models_and_agents/policies/llm_wrapper.py | 94 | Generate a response from the language model. Args: messages: List of message dicts with 'role' and | STRING |
| HIGH | src/lfx/src/lfx/components/data_source/url.py | 247 | Ensures the given string is a valid URL and returns validated IPs for DNS pinning. Args: url: The U | STRING |
| HIGH | …fx/src/lfx/components/agentics/helpers/model_config.py | 16 | Validate and extract model name and provider from component input. Ensures the model selection is properly formatte | STRING |
| HIGH | …c/lfx/src/lfx/components/agentics/helpers/llm_setup.py | 22 | Prepare and configure an LLM instance from component settings. Extracts model selection, validates configuration, r | STRING |
| HIGH | …lfx/src/lfx/components/agentics/helpers/llm_factory.py | 35 | Create and configure an LLM instance for the specified provider. Args: provider: The LLM provider name (e.g | STRING |
| HIGH | …x/components/files_ingestion/file_content_retriever.py | 384 | Retrieve file content as text. Args: file_path: The full file path as a string (e.g., '/path/to/fil | STRING |
| HIGH | …x/components/files_ingestion/file_content_retriever.py | 429 | Retrieve file content as a DataFrame for tabular data files. Args: file_path: The full file path as | STRING |
| HIGH | src/lfx/src/lfx/load/utils.py | 12 | Upload a file to Langflow and return the file path. The upload endpoint now requires authentication (see Langflow | STRING |
| HIGH | src/lfx/src/lfx/load/utils.py | 56 | Upload a file to Langflow and return the file path. Args: file_path (str): The path to the file to be uploa | STRING |
| HIGH | src/lfx/src/lfx/load/load.py | 33 | Load a flow graph from a JSON file or a JSON object. Args: flow (Union[Path, str, dict]): The flow to load. | STRING |
| HIGH | src/lfx/src/lfx/load/load.py | 110 | Load a flow graph from a JSON file or a JSON object. Args: flow (Union[Path, str, dict]): The flow to load. | STRING |
| HIGH | src/lfx/src/lfx/run/base.py | 219 | Execute a Langflow graph script or JSON flow and return the result. This function analyzes and executes either a Py | STRING |
| HIGH | src/lfx/src/lfx/custom/validate.py | 195 | Dynamically create a class from a string of code and a specified class name. Args: code: String containing | STRING |
| HIGH | src/lfx/src/lfx/custom/validate.py | 330 | Prepares the global scope with necessary imports from the provided code module. Args: module: AST parsed mo | STRING |
| HIGH | src/lfx/src/lfx/custom/validate.py | 526 | Extract the name of the first Component subclass found in the code. Args: code (str): The source code to pa | STRING |
| HIGH | src/lfx/src/lfx/custom/utils.py | 44 | Generate a hash of the component source code. Args: source_code: The source code string modname: Th | STRING |
| HIGH | …fx/src/lfx/custom/custom_component/custom_component.py | 280 | Converts input data into a list of Data objects. Args: data (Any): The input data to be converted. | STRING |
| HIGH | src/lfx/src/lfx/custom/custom_component/component.py | 531 | Connects the component to other components or sets parameters and attributes. Args: **kwargs: Keywo | STRING |
| HIGH | src/lfx/src/lfx/custom/custom_component/component.py | 574 | Retrieves the value of the input with the specified name. Args: name (str): The name of the input. | STRING |
| HIGH | src/lfx/src/lfx/custom/custom_component/component.py | 591 | Retrieves the output with the specified name. Args: name (str): The name of the output to retrieve. | STRING |
| HIGH | src/lfx/src/lfx/custom/custom_component/component.py | 623 | Maps the given list of outputs to the component. Args: outputs (List[Output]): The list of outputs | STRING |
| HIGH | src/lfx/src/lfx/custom/custom_component/component.py | 817 | Find the output method from the given component and input name. Find the output method from the given component | STRING |
| HIGH | src/lfx/src/lfx/custom/custom_component/component.py | 1853 | Send a message with optional database update control. This is the central method for sending messages in Langfl | STRING |
| HIGH | src/lfx/src/lfx/helpers/flow.py | 94 | Lists flows for the given user and in the same folder as the specified flow. Retrieves all flows belonging to the g | STRING |
| HIGH | src/lfx/src/lfx/helpers/flow.py | 162 | Lists flows for the given user and in the same folder as the specified folder. Retrieves all flows belonging to the | STRING |
| HIGH | src/lfx/src/lfx/helpers/data.py | 73 | Format text from Data objects using a template string. This function processes Data objects and formats their conte | STRING |
| 115 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docs/static/files/Conversational_Notion_Agent.json | 3035 | "value": "from typing import Any, cast\n\nfrom langflow.custom import Component\nfrom langflow.inputs im | CODE |
| LOW | docs/static/files/AssemblyAI_Flow.json | 225 | "value": "import os\n\nimport assemblyai as aai\nfrom loguru import logger\n\nfrom langf | CODE |
| LOW | scripts/generate_migration.py | 81 | # Check if column has data | STRING |
| LOW | scripts/generate_coverage_config.py | 62 | # Check if file contains 'legacy = True' | COMMENT |
| LOW⚡ | scripts/factory_restart_space.py | 30 | # Check if the space name is provided; exit with an error message if not. | COMMENT |
| LOW⚡ | scripts/factory_restart_space.py | 35 | # Check if the API token is provided; exit with an error message if not. | COMMENT |
| LOW | scripts/release-lfx.sh | 68 | # Check if we're in the right directory | COMMENT |
| LOW | scripts/ci/update_uv_dependency.py | 27 | # Check if the pattern is found | COMMENT |
| LOW | scripts/ci/update_lf_base_dependency.py | 25 | # Check if the pattern is found | COMMENT |
| LOW | scripts/ci/update_lf_base_dependency.py | 59 | # Check if the pattern is found | COMMENT |
| LOW | scripts/setup/check_env.sh | 16 | # Check if Python version is compatible | COMMENT |
| LOW⚡ | scripts/gcp/deploy_langflow_gcp_spot.sh | 17 | # Check if the VPC exists, and create it if not | COMMENT |
| LOW⚡ | scripts/gcp/deploy_langflow_gcp_spot.sh | 23 | # Check if the subnet exists, and create it if not | COMMENT |
| LOW⚡ | scripts/gcp/deploy_langflow_gcp.sh | 17 | # Check if the VPC exists, and create it if not | COMMENT |
| LOW⚡ | scripts/gcp/deploy_langflow_gcp.sh | 23 | # Check if the subnet exists, and create it if not | COMMENT |
| LOW | .github/workflows/release.yml | 96 | # Check if the input exists as a tag | COMMENT |
| LOW | .github/workflows/release.yml | 104 | # Check if the input also exists as a branch (warn if so, but don't fail) | COMMENT |
| LOW | .github/workflows/release.yml | 531 | # Check if langflow-sdk exists on PyPI (may be first release) | COMMENT |
| LOW | .github/workflows/release.yml | 855 | # Check if the server is still running | COMMENT |
| LOW | .github/workflows/release.yml | 1002 | # Check if the server is still running | COMMENT |
| LOW | .github/workflows/release_nightly.yml | 231 | # Check if the server is still running | COMMENT |
| LOW | .github/workflows/release_nightly.yml | 326 | # Check if the server is still running | COMMENT |
| LOW | .github/workflows/python_test.yml | 259 | # Check if the server is still running | COMMENT |
| LOW | .github/workflows/release-lfx.yml | 77 | # Check if version already exists on PyPI | COMMENT |
| LOW | .github/workflows/deploy-docs-draft.yml | 34 | # Check if branch names contain invalid characters. Only alphanumeric, _, -, ., and / are allowed. | COMMENT |
| LOW | .github/workflows/deploy-docs-draft.yml | 52 | # Check if input_branch starts with "refs/heads/" | COMMENT |
| LOW | .github/workflows/ci.yml | 133 | # Check if response is valid JSON before proceeding | COMMENT |
| LOW | .github/workflows/ci.yml | 163 | # Check if the release date is today | COMMENT |
| LOW | src/lfx/tests/conftest.py | 39 | # Check if langflow is installed first - fail fast | COMMENT |
| LOW | src/lfx/tests/unit/graph/graph/test_cycles.py | 333 | # Check if the max_iterations logic is working | COMMENT |
| LOW | src/lfx/tests/unit/schema/test_schema_data_set.py | 80 | # Check if data is preserved | COMMENT |
| LOW | …tests/integration/cli/test_simple_agent_integration.py | 335 | # Check if process exited | COMMENT |
| LOW | …tests/integration/cli/test_simple_agent_integration.py | 363 | # Check if server switched to a different port | COMMENT |
| LOW⚡ | src/lfx/tests/data/MemoryChatbotNoLLM.json | 1014 | "value": "from typing import Any, cast\n\nfrom lfx.custom import Component\nfrom lfx.inputs import Handl | CODE |
| LOW | src/lfx/tests/data/LoopTest.json | 486 | "value": "from lfx.custom import Component\nfrom lfx.io import DataInput, Output\nfrom lfx.schema import | CODE |
| LOW | …tests/data/starter_projects_1_6_0/Market Research.json | 1685 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW⚡ | …s/data/starter_projects_1_6_0/Knowledge Ingestion.json | 788 | "value": "from __future__ import annotations\n\nimport asyncio\nimport contextlib\nimport hashlib\nimpor | CODE |
| LOW | …ta/starter_projects_1_6_0/Text Sentiment Analysis.json | 1321 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …ta/starter_projects_1_6_0/Text Sentiment Analysis.json | 1617 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …ta/starter_projects_1_6_0/Text Sentiment Analysis.json | 1912 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW⚡ | …/tests/data/starter_projects_1_6_0/Memory Chatbot.json | 858 | "value": "from typing import Any, cast\n\nfrom langflow.custom.custom_component.component import Compone | CODE |
| LOW | …/tests/data/starter_projects_1_6_0/Memory Chatbot.json | 1217 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW⚡ | …sts/data/starter_projects_1_6_0/Hybrid Search RAG.json | 2108 | "value": "import re\nfrom collections import defaultdict\nfrom dataclasses import asdict, dataclass, fie | CODE |
| LOW | …sts/data/starter_projects_1_6_0/Hybrid Search RAG.json | 1137 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …sts/data/starter_projects_1_6_0/Hybrid Search RAG.json | 1431 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW⚡ | …ests/data/starter_projects_1_6_0/Vector Store RAG.json | 2986 | "value": "import re\nfrom collections import defaultdict\nfrom dataclasses import asdict, dataclass, fie | CODE |
| LOW⚡ | …ests/data/starter_projects_1_6_0/Vector Store RAG.json | 3775 | "value": "import re\nfrom collections import defaultdict\nfrom dataclasses import asdict, dataclass, fie | CODE |
| LOW | …ests/data/starter_projects_1_6_0/Vector Store RAG.json | 2614 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …tests/data/starter_projects_1_6_0/Basic Prompting.json | 851 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …lfx/tests/data/starter_projects_1_6_0/Blog Writer.json | 1331 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …a/starter_projects_1_6_0/Twitter Thread Generator.json | 1778 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …/tests/data/starter_projects_1_6_0/Research Agent.json | 1892 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …/tests/data/starter_projects_1_6_0/Research Agent.json | 2185 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …/starter_projects_1_6_0/Research Translation Loop.json | 1249 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …/data/starter_projects_1_6_0/Instagram Copywriter.json | 2573 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …/data/starter_projects_1_6_0/Instagram Copywriter.json | 2867 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW | …ta/starter_projects_1_6_0/Financial Report Parser.json | 926 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| LOW⚡ | …tests/data/starter_projects_1_6_0/Meeting Summary.json | 1508 | "value": "from typing import Any, cast\n\nfrom langflow.custom.custom_component.component import Compone | CODE |
| LOW | …tests/data/starter_projects_1_6_0/Meeting Summary.json | 2270 | "value": "from pathlib import Path\n\nimport assemblyai as aai\n\nfrom langflow.custom.custom_component. | CODE |
| LOW | …tests/data/starter_projects_1_6_0/Meeting Summary.json | 2768 | "value": "from typing import Any\n\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google | CODE |
| 355 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/migrate_secret_key.py | 162 | CODE | |
| LOW | scripts/migrate_secret_key.py | 225 | CODE | |
| LOW | scripts/check_deprecated_imports.py | 19 | CODE | |
| LOW | scripts/lint/check_component_env_writes.py | 86 | CODE | |
| LOW | scripts/lint/check_component_env_writes.py | 141 | CODE | |
| LOW | …ts/e2e_deployment_tests/watsonx_orchestrate/adapter.py | 3279 | CODE | |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 887 | CODE | |
| LOW | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 975 | CODE | |
| LOW | scripts/migrate/check_router_trust.py | 300 | CODE | |
| LOW | scripts/migrate/check_router_trust.py | 398 | CODE | |
| LOW | scripts/migrate/check_router_trust.py | 520 | CODE | |
| LOW | scripts/migrate/consolidate_bundles.py | 362 | CODE | |
| LOW | scripts/migrate/port_bundle.py | 661 | CODE | |
| LOW | scripts/migrate/port_bundle.py | 779 | CODE | |
| LOW | scripts/migrate/port_bundle.py | 1183 | CODE | |
| LOW | scripts/gp/download.py | 37 | CODE | |
| LOW | scripts/gp/extract_backend_strings.py | 39 | CODE | |
| LOW | scripts/a11y/a11y_scan.py | 286 | CODE | |
| LOW | scripts/a11y/a11y_scan.py | 959 | CODE | |
| LOW | src/lfx/tests/conftest.py | 85 | CODE | |
| LOW | src/lfx/tests/unit/cli/test_run_starter_projects.py | 57 | CODE | |
| LOW | src/lfx/tests/unit/cli/test_run_real_flows.py | 87 | CODE | |
| LOW | src/lfx/tests/unit/cli/test_run_real_flows.py | 369 | CODE | |
| LOW | src/lfx/tests/unit/cli/test_run_real_flows.py | 487 | CODE | |
| LOW | …li/test_run_starter_projects_backward_compatibility.py | 54 | CODE | |
| LOW | …/tests/unit/components/test_component_display_names.py | 29 | CODE | |
| LOW | …nd_agents/agent_helpers/test_messages_input_builder.py | 18 | CODE | |
| LOW | src/lfx/tests/unit/workflow/test_agui_translator.py | 962 | CODE | |
| LOW | …/lfx/tests/unit/base/models/test_models_dev_catalog.py | 722 | CODE | |
| LOW | src/lfx/tests/unit/base/data/test_base_file.py | 34 | CODE | |
| LOW | …ts/unit/services/settings/test_mcp_composer_windows.py | 276 | CODE | |
| LOW | …ts/unit/services/settings/test_mcp_composer_windows.py | 393 | CODE | |
| LOW | …tests/integration/cli/test_simple_agent_integration.py | 295 | CODE | |
| LOW | …tests/integration/cli/test_simple_agent_integration.py | 405 | CODE | |
| LOW | src/lfx/src/lfx/interface/components.py | 124 | CODE | |
| LOW | src/lfx/src/lfx/interface/components.py | 314 | CODE | |
| LOW | src/lfx/src/lfx/interface/components.py | 402 | CODE | |
| LOW | src/lfx/src/lfx/interface/components.py | 450 | CODE | |
| LOW | src/lfx/src/lfx/interface/components.py | 1396 | CODE | |
| LOW | src/lfx/src/lfx/interface/initialize/loading.py | 131 | CODE | |
| LOW | src/lfx/src/lfx/interface/initialize/loading.py | 166 | CODE | |
| LOW | src/lfx/src/lfx/interface/initialize/loading.py | 288 | CODE | |
| LOW | src/lfx/src/lfx/upgrade/applier.py | 53 | CODE | |
| LOW | src/lfx/src/lfx/extension/discovery.py | 210 | CODE | |
| LOW | src/lfx/src/lfx/extension/discovery.py | 261 | CODE | |
| LOW | src/lfx/src/lfx/extension/validate.py | 449 | CODE | |
| LOW | src/lfx/src/lfx/extension/validate.py | 492 | CODE | |
| LOW | src/lfx/src/lfx/extension/loader/_orchestrator.py | 668 | CODE | |
| LOW | src/lfx/src/lfx/extension/loader/_plugins.py | 52 | CODE | |
| LOW | src/lfx/src/lfx/processing/process.py | 165 | CODE | |
| LOW | src/lfx/src/lfx/processing/process.py | 233 | CODE | |
| LOW | src/lfx/src/lfx/graph/utils.py | 341 | CODE | |
| LOW | src/lfx/src/lfx/graph/schema.py | 33 | CODE | |
| LOW | src/lfx/src/lfx/graph/flow_builder/spec.py | 60 | CODE | |
| LOW | src/lfx/src/lfx/graph/flow_builder/builder.py | 24 | CODE | |
| LOW | src/lfx/src/lfx/graph/graph/utils.py | 359 | CODE | |
| LOW | src/lfx/src/lfx/graph/graph/utils.py | 538 | CODE | |
| LOW | src/lfx/src/lfx/graph/graph/utils.py | 815 | CODE | |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 387 | CODE | |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 463 | CODE | |
| 604 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/migrate_secret_key.py | 55 | def set_secure_permissions(file_path: Path) -> None: | CODE |
| LOW | scripts/ci/update_pyproject_name.py | 11 | def update_pyproject_name(pyproject_path: str, new_project_name: str) -> None: | CODE |
| LOW | scripts/ci/update_pyproject_name.py | 50 | def update_uv_dep(pyproject_path: str, new_project_name: str) -> None: | CODE |
| LOW | scripts/ci/update_component_index_version.py | 12 | def update_component_index_version(index_path: str | Path, version: str) -> None: | CODE |
| LOW | scripts/ci/update_uv_dependency.py | 11 | def update_uv_dep(base_version: str) -> None: | CODE |
| LOW | scripts/ci/test_update_lfx_version.py | 41 | def update_temp_pyproject(relative_path: str, version: str) -> None: | CODE |
| LOW | scripts/ci/update_lf_base_dependency.py | 13 | def update_base_dep(pyproject_path: str, new_version: str) -> None: | CODE |
| LOW | scripts/ci/update_lf_base_dependency.py | 42 | def update_lfx_dep_in_base(pyproject_path: str, lfx_version: str) -> None: | CODE |
| LOW | scripts/ci/update_pyproject_version.py | 13 | def update_pyproject_version(pyproject_path: str, new_version: str) -> None: | CODE |
| LOW | scripts/ci/update_lfx_version.py | 28 | def update_sdk_dependency_in_lfx(pyproject_path: str, sdk_version: str) -> None: | CODE |
| LOW⚡ | scripts/e2e_deployment_tests/watsonx_orchestrate/api.py | 1774 | async def _setup_provider_clients_context(self) -> None: | CODE |
| LOW | scripts/migrate/consolidate_bundles.py | 338 | def update_bundles_pyproject(new_extras: dict[str, list[str]], *, apply: bool) -> None: | CODE |
| LOW | …/interface/test_loading_custom_component_code_param.py | 33 | def set_artifacts(self, artifacts) -> None: | CODE |
| LOW | …/interface/test_loading_custom_component_code_param.py | 36 | def set_results(self, results) -> None: | CODE |
| LOW | …/interface/test_loading_custom_component_code_param.py | 55 | def set_artifacts(self, artifacts) -> None: | CODE |
| LOW | …/interface/test_loading_custom_component_code_param.py | 58 | def set_results(self, results) -> None: | CODE |
| LOW⚡ | …ests/unit/utils/test_resolve_trusted_code_for_build.py | 17 | def _set_allow_custom_components(monkeypatch, *, allow: bool) -> None: | CODE |
| LOW | src/lfx/tests/unit/workflow/test_converters.py | 55 | def _setup_graph_get_vertex(graph: Mock, vertices: list[Mock]) -> None: | CODE |
| LOW | src/lfx/src/lfx/field_typing/__init__.py | 5 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/interface/__init__.py | 6 | __all__ = ["components", "importing", "initialize", "listing", "run", "utils"] | CODE |
| LOW | src/lfx/src/lfx/interface/utils.py | 97 | def set_langchain_cache(settings) -> None: | CODE |
| LOW | src/lfx/src/lfx/interface/initialize/__init__.py | 3 | __all__ = ["loading"] | CODE |
| LOW | src/lfx/src/lfx/interface/importing/__init__.py | 5 | __all__ = ["import_class", "import_module"] | CODE |
| LOW | src/lfx/src/lfx/upgrade/__init__.py | 6 | __all__ = ["CompatibilityReport", "NodeStatus", "apply_safe_upgrades", "check_flow_compatibility"] | CODE |
| LOW | src/lfx/src/lfx/extension/reload_swap.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/lfx/src/lfx/extension/dev_registry.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/lfx/src/lfx/extension/reload.py | 100 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/lfx/src/lfx/extension/reload.py | 685 | __all__ = [ | CODE |
| LOW⚡ | src/lfx/src/lfx/extension/discovery.py | 59 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/lfx/src/lfx/extension/registry.py | 351 | def update_entry(self, extension_id: str, **changes: object) -> None: | CODE |
| LOW | src/lfx/src/lfx/extension/__init__.py | 217 | __all__ = [ | CODE |
| LOW⚡ | src/lfx/src/lfx/extension/bundle_registry.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/lfx/src/lfx/extension/loader/_orchestrator.py | 55 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/lfx/src/lfx/extension/loader/_plugins.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/lfx/src/lfx/extension/loader/__init__.py | 83 | __all__ = [ | CODE |
| LOW⚡ | src/lfx/src/lfx/extension/loader/_discovery.py | 37 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/extension/migration/__init__.py | 42 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/memory/__init__.py | 75 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/type_extraction/__init__.py | 12 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/config/__init__.py | 5 | __all__ = ["ConfigError", "LangflowEnvironment", "resolve_environment"] | CODE |
| LOW | src/lfx/src/lfx/serialization/__init__.py | 5 | __all__ = ["serialize", "serialize_or_str"] | CODE |
| LOW | src/lfx/src/lfx/io/__init__.py | 36 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/graph/__init__.py | 6 | __all__ = ["CustomComponentVertex", "Edge", "Graph", "InterfaceVertex", "StateVertex", "Vertex"] | CODE |
| LOW | src/lfx/src/lfx/graph/checkpoint/store.py | 90 | def set_default_checkpoint_store(store: CheckpointStore | None) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/checkpoint/__init__.py | 9 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/graph/flow_builder/__init__.py | 23 | __all__ = [ | CODE |
| LOW | src/lfx/src/lfx/graph/graph/utils.py | 117 | def update_template(template, g_nodes) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/graph/utils.py | 166 | def set_new_target_handle(proxy_id, new_edge, target_handle, node) -> None: | CODE |
| LOW | …c/lfx/src/lfx/graph/graph/runnable_vertices_manager.py | 51 | def update_run_state(self, run_predecessors: dict, vertices_to_run: set) -> None: | CODE |
| LOW⚡ | …c/lfx/src/lfx/graph/graph/runnable_vertices_manager.py | 118 | def update_vertex_run_state(self, vertex_id: str, *, is_runnable: bool) -> None: | CODE |
| LOW⚡ | src/lfx/src/lfx/graph/graph/base.py | 1624 | def _set_cache_if_listen_notify_components(self) -> None: | CODE |
| LOW⚡ | src/lfx/src/lfx/graph/graph/base.py | 1638 | def _set_cache_to_vertices_in_cycle(self) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 327 | def _set_start_and_end(self, start: Component, end: Component) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 687 | def set_run_id(self, run_id: uuid.UUID | str | None = None) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 863 | def _set_inputs(self, input_components: list[str], inputs: dict[str, str], input_type: InputType | None) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 1478 | def update_edges_from_vertex(self, other_vertex: Vertex) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 1549 | def update_vertex_from_another(self, vertex: Vertex, other_vertex: Vertex) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 1591 | def _update_edges(self, vertex: Vertex) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/vertex/vertex_types.py | 61 | def _update_built_object_and_artifacts(self, result) -> None: | CODE |
| LOW | src/lfx/src/lfx/graph/vertex/base.py | 131 | def set_input_value(self, name: str, value: Any) -> None: | CODE |
| 403 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/generate_coverage_config.py | 164 | print("cd src/backend && python -m pytest --cov=src/backend/base/langflow --cov-config=.coveragerc") | CODE |
| HIGH | scripts/ci/test_pypi_nightly_tag.py | 5 | cd scripts/ci && uv run python -m pytest test_pypi_nightly_tag.py -q | STRING |
| HIGH | scripts/ci/test_pypi_nightly_tag.py | 6 | cd scripts/ci && uv run python test_pypi_nightly_tag.py | STRING |
| HIGH | scripts/ci/test_langflow_pre_release_tag.py | 5 | cd scripts/ci && uv run python test_langflow_pre_release_tag.py | STRING |
| HIGH | scripts/ci/test_langflow_pre_release_tag.py | 6 | cd scripts/ci && uv run python -m pytest test_langflow_pre_release_tag.py -q | STRING |
| HIGH⚡ | scripts/a11y/a11y_scan.py | 218 | source: item.source ?? null, | STRING |
| HIGH⚡ | scripts/a11y/a11y_scan.py | 219 | path: item.path?.dom ?? item.path?.aria ?? null, | STRING |
| HIGH⚡ | scripts/a11y/a11y_scan.py | 220 | snippet: item.snippet ?? null, | STRING |
| HIGH | scripts/a11y/a11y_scan.py | 248 | id: el.id || null, | STRING |
| HIGH | scripts/a11y/a11y_scan.py | 248 | id: el.id || null, | STRING |
| HIGH⚡ | scripts/a11y/a11y_scan.py | 270 | focusedWithinDialog: dialogs.some((dialog) => active && dialog.contains(active)), | STRING |
| HIGH⚡ | scripts/a11y/a11y_scan.py | 274 | id: active.id || null, | STRING |
| HIGH⚡ | scripts/a11y/a11y_scan.py | 274 | id: active.id || null, | STRING |
| HIGH | …fx/tests/unit/services/test_request_scope_isolation.py | 170 | blob = '{"shared_token": "from-env-blob", "null_cred": null, "nested": {"a": 1}}' | CODE |
| HIGH | src/lfx/src/lfx/schema/json_schema.py | 9 | NULLABLE_TYPE_LENGTH = 2 # Number of types in a nullable union (the type itself + null) | CODE |
| HIGH | src/lfx/src/lfx/schema/json_schema.py | 94 | # Handle common pattern for nullable types (anyOf with string and null) | COMMENT |
| HIGH | src/lfx/src/lfx/schema/workflow.py | 408 | "answer; when it's null, ``output.reason`` says why (``multiple`` / ``none`` / " | CODE |
| HIGH | src/lfx/src/lfx/base/data/base_file.py | 527 | # Try JSON first (handles true/false/null) | COMMENT |
| HIGH | src/backend/tests/unit/utils/test_data_structure.py | 52 | assert result == "list(null)" | CODE |
| HIGH | …tests/unit/agentic/api/test_sessions_reset_endpoint.py | 112 | fresh_conversation_buffer.push( | CODE |
| HIGH⚡ | …tests/unit/agentic/api/test_sessions_reset_endpoint.py | 158 | fresh_conversation_buffer.push( | CODE |
| HIGH⚡ | …tests/unit/agentic/api/test_sessions_reset_endpoint.py | 163 | fresh_conversation_buffer.push( | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 33 | buf.push(USER, "s1", turn) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 47 | buf.push(USER, "s1", t1) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 48 | buf.push(USER, "s1", t2) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 49 | buf.push(USER, "s1", t3) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 56 | buf.push(USER, "s1", ConversationTurn(user=f"u{i}", assistant=f"a{i}")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 66 | buf.push(USER, "s1", ConversationTurn(user=f"u{i}", assistant=f"a{i}")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 78 | buf.push("alice", "s1", ConversationTurn(user="hi-a", assistant="ack-a")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 79 | buf.push("alice", "s2", ConversationTurn(user="hi-b", assistant="ack-b")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 86 | buf.push("alice", "s1", ConversationTurn(user="hi-a", assistant="ack-a")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 87 | buf.push("alice", "s2", ConversationTurn(user="hi-b", assistant="ack-b")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 110 | buf.push("alice", "shared-sid", ConversationTurn(user="secret", assistant="ok")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 117 | buf.push("alice", "shared-sid", ConversationTurn(user="alice-1", assistant="ok")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 118 | buf.push("bob", "shared-sid", ConversationTurn(user="bob-1", assistant="ok")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 126 | buf.push("alice", "shared-sid", ConversationTurn(user="alice-1", assistant="ok")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 127 | buf.push("bob", "shared-sid", ConversationTurn(user="bob-1", assistant="ok")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 143 | buf.push(USER, f"s{i}", ConversationTurn(user=f"u{i}", assistant=f"a{i}")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 154 | buf.push(USER, f"s{i}", ConversationTurn(user=f"u{i}", assistant=f"a{i}")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 157 | buf.push(USER, "s0", ConversationTurn(user="u0-fresh", assistant="a0-fresh")) | CODE |
| HIGH⚡ | …ests/unit/agentic/services/test_conversation_buffer.py | 161 | buf.push(USER, "s-new", ConversationTurn(user="u-new", assistant="a-new")) | CODE |
| HIGH⚡ | …nit/agentic/services/test_assistant_service_history.py | 36 | fresh_buffer.push( | CODE |
| HIGH⚡ | …nit/agentic/services/test_assistant_service_history.py | 41 | fresh_buffer.push( | CODE |
| HIGH | …ntic/services/test_assistant_service_intent_context.py | 57 | fresh_buffer.push( | CODE |
| HIGH⚡ | …entic/services/test_assistant_service_history_clear.py | 30 | fresh_buffer.push("alice", "s1", ConversationTurn(user="x", assistant="y")) | CODE |
| HIGH⚡ | …entic/services/test_assistant_service_history_clear.py | 31 | fresh_buffer.push("alice", "s2", ConversationTurn(user="a", assistant="b")) | CODE |
| HIGH⚡ | …entic/services/test_assistant_service_history_clear.py | 43 | fresh_buffer.push("alice", "s1", ConversationTurn(user="x", assistant="y")) | CODE |
| HIGH⚡ | …entic/services/test_assistant_service_history_clear.py | 52 | fresh_buffer.push("alice", "s1", ConversationTurn(user="x", assistant="y")) | CODE |
| HIGH⚡ | …entic/services/test_assistant_service_history_clear.py | 65 | fresh_buffer.push("alice", "s1", ConversationTurn(user="x", assistant="y")) | CODE |
| HIGH⚡ | src/backend/tests/unit/base/mcp/test_mcp_util.py | 133 | "node server.js && rm -rf /", # logical-and chaining | CODE |
| HIGH⚡ | …s/unit/services/deployment/test_watsonx_orchestrate.py | 6444 | assert extract_error_detail('{"detail": null}') == '{"detail": null}' | CODE |
| HIGH | …/base/langflow/agentic/services/conversation_buffer.py | 99 | self.push(user_id, session_id, turn) | CODE |
| HIGH | src/backend/base/langflow/api/v1/flow_version.py | 108 | # If future nullable fields must be returned as explicit null, prefer splitting | COMMENT |
| HIGH | src/backend/base/langflow/api/v1/authz_roles.py | 225 | detail="permissions cannot be null; pass an empty list to clear", | CODE |
| HIGH | src/backend/base/langflow/api/utils/flow_utils.py | 103 | # If we delete messages directly, rather than setting flow_id to null, | COMMENT |
| HIGH⚡ | src/sdk/tests/test_file_io.py | 101 | # client.push() — sync | COMMENT |
| HIGH⚡ | src/sdk/tests/test_file_io.py | 111 | flow, created = client.push(flow_file) | CODE |
| HIGH⚡ | src/sdk/tests/test_file_io.py | 126 | _, created = client.push(flow_file) | CODE |
| HIGH⚡ | src/sdk/tests/test_file_io.py | 138 | flow, _ = client.push(str(flow_file)) # string, not Path | CODE |
| HIGH⚡ | src/sdk/tests/test_file_io.py | 152 | client.push(flow_file) | CODE |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …omponent-refactoring/references/component-splitting.md | 402 | my-component.tsx # Main orchestration (NOT index.tsx) | CODE |
| MEDIUM | docs/features/langflow-assistant-mcp.md | 1338 | ### ADR-MCP-007: Two MCP Servers — `lfx/mcp` (canvas-aware) and `agentic/mcp` (DB-aware) | COMMENT |
| MEDIUM | docs/features/langflow-assistant-mcp.md | 2826 | #### POST /api/v1/agentic/assist/stream (extended) | COMMENT |
| MEDIUM | docs/features/langflow-assistant-mcp.md | 2890 | #### POST /api/v1/agentic/sessions/reset | COMMENT |
| MEDIUM | docs/features/langflow-assistant-mcp.md | 2926 | #### MCP Server (agentic, `langflow/agentic/mcp/server.py`) | COMMENT |
| MEDIUM | docs/features/langflow-assistant-mcp.md | 2962 | #### Conversation Buffer (`langflow.agentic.services.conversation_buffer`) | COMMENT |
| MEDIUM | docs/features/langflow-assistant-mcp.md | 2972 | #### User-Components Registry (`langflow.agentic.services.user_components` + `user_components_overlay` + `user_component | COMMENT |
| MEDIUM | docs/features/langflow-assistant.md | 1611 | #### POST /api/v1/agentic/assist/stream | COMMENT |
| MEDIUM | docs/features/langflow-assistant.md | 1698 | #### GET /api/v1/agentic/check-config | COMMENT |
| MEDIUM | docs/features/langflow-assistant.md | 1727 | #### POST /api/v1/agentic/assist | COMMENT |
| MEDIUM⚡ | docs/openapi/openapi.json | 13473 | "description": "Executes a specified flow by ID with optional input values, output selection, tweaks, and stream | CODE |
| MEDIUM | scripts/migrate/check_bare_names.py | 75 | # Skip __pycache__ and __init__ scaffolding; class declarations | COMMENT |
| MEDIUM⚡ | src/lfx/tests/unit/extension/test_init_template.py | 144 | # Refuse to scaffold over a non-empty target | COMMENT |
| MEDIUM | src/lfx/tests/unit/mcp/test_mcp_stdio_security.py | 51 | # A tenant cannot supply the agentic user-id binding env var (case-insensitive); only | COMMENT |
| MEDIUM⚡ | …s/data/starter_projects_1_6_0/Knowledge Ingestion.json | 788 | "value": "from __future__ import annotations\n\nimport asyncio\nimport contextlib\nimport hashlib\nimpor | CODE |
| MEDIUM⚡ | …sts/data/starter_projects_1_6_0/Hybrid Search RAG.json | 2108 | "value": "import re\nfrom collections import defaultdict\nfrom dataclasses import asdict, dataclass, fie | CODE |
| MEDIUM | …sts/data/starter_projects_1_6_0/Hybrid Search RAG.json | 1899 | "description": "# Hybrid Search RAG\n\nHybrid search performs a vector similarity search and a lexical searc | CODE |
| MEDIUM⚡ | …ests/data/starter_projects_1_6_0/Vector Store RAG.json | 2986 | "value": "import re\nfrom collections import defaultdict\nfrom dataclasses import asdict, dataclass, fie | CODE |
| MEDIUM⚡ | …ests/data/starter_projects_1_6_0/Vector Store RAG.json | 3775 | "value": "import re\nfrom collections import defaultdict\nfrom dataclasses import asdict, dataclass, fie | CODE |
| MEDIUM⚡ | …s/data/starter_projects_1_6_0/Knowledge Retrieval.json | 495 | "value": "import json\nfrom pathlib import Path\nfrom typing import Any\n\nfrom cryptography.fernet impo | CODE |
| MEDIUM | src/lfx/src/lfx/extension/loader/_orchestrator.py | 803 | # :mod:`lfx.extension.loader._startup` (extracted to keep this orchestration | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/extension/loader/_discovery.py | 31 | # Files we never treat as bundle modules. Test scaffolding and dunder | COMMENT |
| MEDIUM | src/lfx/src/lfx/graph/utils.py | 270 | # Get the transaction service via dependency injection | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/utils/constants.py | 35 | # An enhanced version of claude-v1 with a 100,000 token (roughly 75,000 word) context window. | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/utils/constants.py | 39 | # Like claude-instant-v1 with a 100,000 token context window but retains its performance. | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/utils/constants.py | 44 | # An enhanced version of claude-v1.3 with a 100,000 token (roughly 75,000 word) context window. | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/utils/constants.py | 52 | # Version of claude-instant-v1.1 with a 100K token context window. | COMMENT |
| MEDIUM | src/lfx/src/lfx/cli/init.py | 10 | lfx init . # scaffold into the current directory | STRING |
| MEDIUM | …lfx/components/models_and_agents/policies_component.py | 359 | generated (or only the ``pass # FIXME`` scaffold was produced), so the | CODE |
| MEDIUM | …/src/lfx/components/models_and_agents/mcp_component.py | 58 | # orchestration logic in a follow-up PR. | COMMENT |
| MEDIUM | src/lfx/src/lfx/components/llm_operations/guardrails.py | 39 | documentation = "https://docs.langflow.org/guardrails" | CODE |
| MEDIUM⚡ | src/lfx/src/lfx/base/mcp/security.py | 34 | # Env var through which Langflow binds the agentic MCP server to an authenticated user's id. | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/base/mcp/security.py | 36 | # tenant-authored stdio config cannot set it. The agentic MCP tools read it and fail closed when | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/base/mcp/security.py | 38 | # the reader (langflow.agentic.mcp.server). | COMMENT |
| MEDIUM⚡ | src/lfx/src/lfx/base/mcp/security.py | 41 | # Substring identifying the agentic MCP server module in a stdio command, so update_tools knows | COMMENT |
| MEDIUM | src/lfx/src/lfx/base/mcp/security.py | 135 | # -- Langflow-internal trust binding: the agentic MCP server reads the owning user's id | COMMENT |
| MEDIUM | src/lfx/src/lfx/base/models/watsonx_constants.py | 23 | # flow; hidden from the embedding model picker until support is added. | COMMENT |
| MEDIUM | src/lfx/src/lfx/base/models/models_dev_catalog.py | 62 | # does not mean that a provider has deprecated an embedding model. | COMMENT |
| MEDIUM | …fx/src/lfx/base/models/unified_models/model_catalog.py | 379 | "model_type": "embeddings", # Mark as embedding model | CODE |
| MEDIUM⚡ | src/frontend/tests/assets/group_test_iadevs.json | 455 | "value": "from lfx.custom import Component\nfrom lfx.inputs import MessageTextInput, HandleInput\nfrom l | CODE |
| MEDIUM⚡ | src/frontend/tests/assets/group_test_iadevs.json | 1059 | "value": "from lfx.custom import Component\nfrom lfx.inputs import MessageTextInput, HandleI | CODE |
| MEDIUM | src/frontend/src/CustomNodes/GenericNode/index.tsx | 390 | // from outside the component (e.g. the agentic flow_builder updating the | COMMENT |
| MEDIUM | …nderComponent/components/modelInputComponent/index.tsx | 69 | // mutations like the agentic flow_builder). We subscribe to the live | COMMENT |
| MEDIUM | …onents/core/assistantPanel/hooks/use-assistant-chat.ts | 47 | // src/backend/base/langflow/agentic/services/flow_types.py. | COMMENT |
| MEDIUM | …eries/agentic/__tests__/use-post-assist-stream.test.ts | 29 | getURL: jest.fn(() => "http://localhost/api/v1/agentic/assist/stream"), | CODE |
| MEDIUM | …ackend/tests/unit/agentic/test_assistant_report_e2e.py | 12 | #1/#4 hallucination / fake success ........ TestNoFakeSuccessRealAgent | STRING |
| MEDIUM⚡ | …agentic/flows/test_translation_flow_requested_model.py | 31 | # LLM learns not to hallucinate a model for plain requests. | COMMENT |
| MEDIUM⚡ | …/agentic/flows/test_component_generator_tool_prompt.py | 100 | # the LLM gets confused and hallucinates values. | COMMENT |
| MEDIUM⚡ | …/unit/agentic/services/test_user_components_overlay.py | 193 | # reflect the user class's ACTUAL outputs, not the base scaffold. | COMMENT |
| MEDIUM | …/unit/agentic/services/test_user_components_overlay.py | 338 | # IntInput name='amount') got a generic scaffold node exposing only | COMMENT |
| MEDIUM | …nd/tests/unit/agentic/services/test_request_framing.py | 48 | # compound → orchestrating | COMMENT |
| MEDIUM | …nd/tests/unit/agentic/services/test_request_framing.py | 50 | # build_flow that ALSO asks to run → orchestrating | COMMENT |
| MEDIUM⚡ | …nd/tests/unit/agentic/services/test_request_framing.py | 79 | # NOT be mistaken for a build+run orchestration. | COMMENT |
| MEDIUM⚡ | …s/unit/agentic/services/helpers/test_intent_context.py | 79 | # the classifier's context window (confirmed e2e risk §1.5). | COMMENT |
| MEDIUM⚡ | …/unit/components/files_and_knowledge/test_retrieval.py | 337 | # ---- retrieve_data orchestration --------------------------------- | COMMENT |
| MEDIUM | …ponents/embeddings/test_ollama_embeddings_component.py | 374 | {component.JSON_CAPABILITIES_KEY: ["completion"]}, # Not an embedding model | CODE |
| MEDIUM⚡ | …components/llm_operations/test_guardrails_component.py | 446 | # Should raise because no guardrails are actually enabled | COMMENT |
| MEDIUM⚡ | …components/llm_operations/test_guardrails_component.py | 428 | default_kwargs["enabled_guardrails"] = [] # Disable default guardrails | CODE |
| MEDIUM | src/backend/base/langflow/main.py | 376 | # Gate: Initialize agentic global variables (when agentic_experience enabled) | COMMENT |
| MEDIUM | src/backend/base/langflow/main.py | 406 | # Gate: Auto-configure agentic MCP server (when agentic_experience enabled) | COMMENT |
| 75 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …x/tests/data/starter_projects_1_6_0/Pokédex Agent.json | 765 | "value": "import json\nimport re\nimport tempfile\nfrom datetime import datetime, timezone\nfrom pathlib | CODE |
| LOW⚡ | …fx/tests/data/starter_projects_1_6_0/SaaS Pricing.json | 1294 | "value": "# Subscription Pricing Calculator\n\n## Purpose\nCalculate the optimal monthly subscription pr | CODE |
| LOW⚡ | src/lfx/src/lfx/graph/utils.py | 236 | # if it is a list we need to check if the contents are python types | COMMENT |
| LOW | src/lfx/src/lfx/graph/edge/base.py | 219 | # so we need to check if any of the strings in source_types is in target_reqs | COMMENT |
| LOW | src/lfx/src/lfx/graph/edge/base.py | 247 | # so we need to check if any of the strings in source_types is in target_reqs | COMMENT |
| LOW | src/lfx/src/lfx/graph/vertex/utils.py | 15 | # if it is a list we need to check if the contents are python types | COMMENT |
| LOW | src/lfx/src/lfx/graph/vertex/vertex_types.py | 113 | # We need to check if the edge is a normal edge | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 774 | # Step 1: Check if SSRF protection is enabled | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 781 | # Step 2: Parse and validate URL format | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 791 | # Step 3: Validate URL scheme (raises SSRFProtectionError for any non-http/https scheme) | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 796 | # Step 4: Extract and validate hostname | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 801 | # Step 5: Check allowlist (early return for trusted hosts) | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 810 | # Step 6: Handle direct IP addresses | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 838 | # Step 7: Resolve hostname to IP addresses | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 846 | # Step 8: Validate all resolved IPs | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 868 | # Step 9: Block if any resolved IPs are private/internal | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 890 | # Step 10: Return validated IPs for DNS pinning | COMMENT |
| LOW | src/lfx/src/lfx/utils/exceptions.py | 62 | # We need to check if the __cause__ is a SyntaxError | COMMENT |
| LOW | src/lfx/src/lfx/components/data_source/api_request.py | 838 | # Step 3: Infer file extension or use part of the request URL if no filename | COMMENT |
| LOW⚡ | src/lfx/src/lfx/components/data_source/api_request.py | 857 | # Step 4: Define the full file path | COMMENT |
| LOW⚡ | src/lfx/src/lfx/components/data_source/api_request.py | 866 | # Step 5: Check if file exists asynchronously and handle accordingly | COMMENT |
| LOW | src/lfx/src/lfx/custom/custom_component/component.py | 879 | # We need to check if callable AND if it is a method from a class that inherits from Component | COMMENT |
| LOW⚡ | src/lfx/src/lfx/base/models/groq_model_discovery.py | 76 | # Step 1: Get list of available models | COMMENT |
| LOW⚡ | src/lfx/src/lfx/base/models/groq_model_discovery.py | 80 | # Step 2: Categorize models | COMMENT |
| LOW⚡ | src/lfx/src/lfx/base/models/groq_model_discovery.py | 90 | # Step 3: Test LLM models for chat completion and tool calling | COMMENT |
| LOW | src/lfx/src/lfx/base/models/groq_model_discovery.py | 116 | # Step 4: Add non-LLM models as unsupported | COMMENT |
| LOW | …lfx/src/lfx/base/models/unified_models/build_config.py | 509 | # Step 1: Refresh/cache model options, set defaults and input_types | COMMENT |
| LOW | …lfx/src/lfx/base/models/unified_models/build_config.py | 547 | # Step 2: Hide all provider-specific fields. We do NOT clear values | COMMENT |
| LOW | …lfx/src/lfx/base/models/unified_models/build_config.py | 562 | # Step 3: Show/configure the right fields for the selected provider | COMMENT |
| LOW | …c/frontend/tests/core/unit/fileUploadComponent.spec.ts | 684 | // Step 1: First navigate to files page and upload both files | COMMENT |
| LOW | …c/frontend/tests/core/unit/fileUploadComponent.spec.ts | 745 | // Step 2: Create a flow with File component and check if PSD file is disabled | COMMENT |
| LOW | …/regression/general-bugs-move-flow-from-folder.spec.ts | 38 | // Step 1: create a destination project. `add-project-button` | COMMENT |
| LOW⚡ | …/regression/general-bugs-move-flow-from-folder.spec.ts | 56 | // Step 2: go back to the source project. The destination's query | COMMENT |
| LOW⚡ | …/regression/general-bugs-move-flow-from-folder.spec.ts | 64 | // Step 3: real HTML5 drag-and-drop — `dragTo()` populates | COMMENT |
| LOW | …/regression/general-bugs-move-flow-from-folder.spec.ts | 79 | // Step 4: click the destination. The flow must be visible. Use a | COMMENT |
| LOW | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 441 | // Step 1: Start login | COMMENT |
| LOW | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 461 | // Step 2: Complete getUser | COMMENT |
| LOW⚡ | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 474 | // Step 3: Complete getGlobalVariables | COMMENT |
| LOW⚡ | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 481 | // Step 4: NOW isAuthenticated should be set | COMMENT |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 131 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 138 | expect(code).toContain("# Step 2: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 159 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 160 | expect(code).toContain("# Step 2: Upload file for ChatInput chatNode2"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 167 | expect(code).toContain("# Step 3: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 185 | "# Step 1: Upload file for File/VideoFile fileNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 192 | expect(code).toContain("# Step 2: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 209 | "# Step 1: Upload file for File/VideoFile videoNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 216 | expect(code).toContain("# Step 2: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 233 | "# Step 1: Upload file for File/VideoFile fileNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 236 | "# Step 2: Upload file for File/VideoFile videoNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 242 | expect(code).toContain("# Step 3: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 261 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 266 | "# Step 2: Upload file for File/VideoFile fileNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 269 | "# Step 3: Upload file for File/VideoFile videoNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 274 | expect(code).toContain("# Step 4: Execute flow with all file paths"); | CODE |
| LOW | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 291 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 349 | expect(code).not.toContain("# Step 1:"); | CODE |
| LOW | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 364 | expect(code).not.toContain("# Step 1:"); | CODE |
| LOW⚡ | …odals/apiModal/utils/__tests__/get-js-api-code.test.ts | 109 | expect(code).toContain("// Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW⚡ | …odals/apiModal/utils/__tests__/get-js-api-code.test.ts | 115 | expect(code).toContain("// Step 2: Execute flow with all file paths"); | CODE |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/component-refactoring/SKILL.md | 334 | ### Step 1: Assess Complexity | COMMENT |
| LOW | .agents/skills/component-refactoring/SKILL.md | 343 | ### Step 2: Plan | COMMENT |
| LOW | .agents/skills/component-refactoring/SKILL.md | 356 | ### Step 3: Execute Incrementally | COMMENT |
| LOW | .agents/skills/component-refactoring/SKILL.md | 373 | ### Step 4: Verify | COMMENT |
| LOW | …ls/component-refactoring/references/hook-extraction.md | 16 | ### Step 1: Identify State Groups | COMMENT |
| LOW | …ls/component-refactoring/references/hook-extraction.md | 29 | ### Step 2: Identify Related Effects | COMMENT |
| LOW | …ls/component-refactoring/references/hook-extraction.md | 49 | ### Step 3: Create the Hook | COMMENT |
| LOW | …ls/component-refactoring/references/hook-extraction.md | 107 | ### Step 4: Update Component | COMMENT |
| LOW | src/lfx/PLUGGABLE_SERVICES.md | 282 | ### Step 1: Implement the Service Class | COMMENT |
| LOW | src/lfx/PLUGGABLE_SERVICES.md | 308 | ### Step 2: Register the Service | COMMENT |
| LOW | src/lfx/PLUGGABLE_SERVICES.md | 337 | ### Step 3: Use the Service | COMMENT |
| LOW⚡ | …x/tests/data/starter_projects_1_6_0/Pokédex Agent.json | 765 | "value": "import json\nimport re\nimport tempfile\nfrom datetime import datetime, timezone\nfrom pathlib | CODE |
| LOW⚡ | …fx/tests/data/starter_projects_1_6_0/SaaS Pricing.json | 1294 | "value": "# Subscription Pricing Calculator\n\n## Purpose\nCalculate the optimal monthly subscription pr | CODE |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 774 | # Step 1: Check if SSRF protection is enabled | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 781 | # Step 2: Parse and validate URL format | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 791 | # Step 3: Validate URL scheme (raises SSRFProtectionError for any non-http/https scheme) | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 796 | # Step 4: Extract and validate hostname | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 801 | # Step 5: Check allowlist (early return for trusted hosts) | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 810 | # Step 6: Handle direct IP addresses | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 838 | # Step 7: Resolve hostname to IP addresses | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 846 | # Step 8: Validate all resolved IPs | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 868 | # Step 9: Block if any resolved IPs are private/internal | COMMENT |
| LOW⚡ | src/lfx/src/lfx/utils/ssrf_protection.py | 890 | # Step 10: Return validated IPs for DNS pinning | COMMENT |
| LOW | src/lfx/src/lfx/components/data_source/api_request.py | 838 | # Step 3: Infer file extension or use part of the request URL if no filename | COMMENT |
| LOW⚡ | src/lfx/src/lfx/components/data_source/api_request.py | 857 | # Step 4: Define the full file path | COMMENT |
| LOW⚡ | src/lfx/src/lfx/components/data_source/api_request.py | 866 | # Step 5: Check if file exists asynchronously and handle accordingly | COMMENT |
| LOW⚡ | src/lfx/src/lfx/base/models/groq_model_discovery.py | 76 | # Step 1: Get list of available models | COMMENT |
| LOW⚡ | src/lfx/src/lfx/base/models/groq_model_discovery.py | 80 | # Step 2: Categorize models | COMMENT |
| LOW⚡ | src/lfx/src/lfx/base/models/groq_model_discovery.py | 90 | # Step 3: Test LLM models for chat completion and tool calling | COMMENT |
| LOW | src/lfx/src/lfx/base/models/groq_model_discovery.py | 116 | # Step 4: Add non-LLM models as unsupported | COMMENT |
| LOW | …lfx/src/lfx/base/models/unified_models/build_config.py | 509 | # Step 1: Refresh/cache model options, set defaults and input_types | COMMENT |
| LOW | …lfx/src/lfx/base/models/unified_models/build_config.py | 547 | # Step 2: Hide all provider-specific fields. We do NOT clear values | COMMENT |
| LOW | …lfx/src/lfx/base/models/unified_models/build_config.py | 562 | # Step 3: Show/configure the right fields for the selected provider | COMMENT |
| LOW | …c/frontend/tests/core/unit/fileUploadComponent.spec.ts | 684 | // Step 1: First navigate to files page and upload both files | COMMENT |
| LOW | …c/frontend/tests/core/unit/fileUploadComponent.spec.ts | 745 | // Step 2: Create a flow with File component and check if PSD file is disabled | COMMENT |
| LOW | …/regression/general-bugs-move-flow-from-folder.spec.ts | 38 | // Step 1: create a destination project. `add-project-button` | COMMENT |
| LOW⚡ | …/regression/general-bugs-move-flow-from-folder.spec.ts | 56 | // Step 2: go back to the source project. The destination's query | COMMENT |
| LOW⚡ | …/regression/general-bugs-move-flow-from-folder.spec.ts | 64 | // Step 3: real HTML5 drag-and-drop — `dragTo()` populates | COMMENT |
| LOW | …/regression/general-bugs-move-flow-from-folder.spec.ts | 79 | // Step 4: click the destination. The flow must be visible. Use a | COMMENT |
| LOW | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 441 | // Step 1: Start login | COMMENT |
| LOW | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 461 | // Step 2: Complete getUser | COMMENT |
| LOW⚡ | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 474 | // Step 3: Complete getGlobalVariables | COMMENT |
| LOW⚡ | …/src/contexts/__tests__/authContext-login-fix.test.tsx | 481 | // Step 4: NOW isAuthenticated should be set | COMMENT |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 131 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 138 | expect(code).toContain("# Step 2: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 159 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 160 | expect(code).toContain("# Step 2: Upload file for ChatInput chatNode2"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 167 | expect(code).toContain("# Step 3: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 185 | "# Step 1: Upload file for File/VideoFile fileNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 192 | expect(code).toContain("# Step 2: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 209 | "# Step 1: Upload file for File/VideoFile videoNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 216 | expect(code).toContain("# Step 2: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 233 | "# Step 1: Upload file for File/VideoFile fileNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 236 | "# Step 2: Upload file for File/VideoFile videoNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 242 | expect(code).toContain("# Step 3: Execute flow with all file paths"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 261 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 266 | "# Step 2: Upload file for File/VideoFile fileNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 269 | "# Step 3: Upload file for File/VideoFile videoNode1", | CODE |
| LOW⚡ | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 274 | expect(code).toContain("# Step 4: Execute flow with all file paths"); | CODE |
| LOW | …s/apiModal/utils/__tests__/get-python-api-code.test.ts | 291 | expect(code).toContain("# Step 1: Upload file for ChatInput chatNode1"); | CODE |
| 80 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 357 | "S101", # Asserts ok in stress harness | STRING |
| MEDIUM | …/API-Reference/python-examples/test-python-examples.sh | 151 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM | …erence/javascript-examples/test-javascript-examples.sh | 150 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM | …docs/API-Reference/curl-examples/test-curl-examples.sh | 143 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM⚡ | docs/openapi/openapi.json | 13473 | "description": "Executes a specified flow by ID with optional input values, output selection, tweaks, and stream | CODE |
| MEDIUM | …/API-Reference/python-examples/test-python-examples.sh | 151 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM | …erence/javascript-examples/test-javascript-examples.sh | 150 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM | …11.0/API-Reference/curl-examples/test-curl-examples.sh | 143 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM | …/API-Reference/python-examples/test-python-examples.sh | 151 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM | …/API-Reference/python-examples/test-python-examples.sh | 151 | # Streaming / long-running examples: skip in local harness (hang, flaky, or need extra setup). | COMMENT |
| MEDIUM | scripts/test-api-examples-local.sh | 14 | # harness so a user-wide LANGFLOW_DEVELOPER_API_ENABLED=false does not break the suite. | COMMENT |
| MEDIUM | src/lfx/tests/conftest.py | 125 | # Additional fixtures for more comprehensive testing support | COMMENT |
| MEDIUM | …xtension/migration/test_bundle_api_changelog_script.py | 21 | return subprocess.run( # noqa: S603 - test harness invoking git on a tmp repo | CODE |
| MEDIUM | …xtension/migration/test_bundle_api_changelog_script.py | 37 | return subprocess.run( # noqa: S603 - test harness | CODE |
| MEDIUM | …ts/unit/extension/migration/test_append_only_script.py | 33 | return subprocess.run( # noqa: S603 - test harness invoking our own script | CODE |
| MEDIUM | …s/unit/extension/migration/test_router_trust_script.py | 26 | return subprocess.run( # noqa: S603 - test harness invoking our own script | CODE |
| MEDIUM | …sts/unit/extension/migration/test_bare_names_script.py | 40 | return subprocess.run( # noqa: S603 - test harness invoking our own script | CODE |
| MEDIUM | src/lfx/tests/unit/cli/test_prewarm_command.py | 171 | # process-global state — incl. harness threads — so it's not asserted here.) | COMMENT |
| LOW | …ructured_output/test_structured_output_orchestrator.py | 111 | # When schema is empty, no structuring should happen — just pass through. | COMMENT |
| MEDIUM⚡ | …c/lfx/tests/unit/base/models/test_provider_registry.py | 37 | # importlib against this module's name -- robust because the running test module | COMMENT |
| LOW⚡ | …ts/unit/services/settings/test_mcp_composer_windows.py | 123 | # Should not raise, just return False | COMMENT |
| LOW⚡ | …ts/unit/services/settings/test_mcp_composer_windows.py | 136 | # Should not raise, just return False | COMMENT |
| MEDIUM | …integration/extension/test_pilot_duckduckgo_upgrade.py | 391 | # string-match to be robust against either form. | COMMENT |
| MEDIUM | …tests/data/starter_projects_1_6_0/Market Research.json | 626 | "description": "# Market Research\nThis flow helps you gather comprehensive information about companies for | CODE |
| MEDIUM | …ta/starter_projects_1_6_0/Sequential Tasks Agents.json | 1845 | "value": "# Financial Analysis Expert Protocol\n\nYou are an elite financial analyst with access to Yaho | CODE |
| MEDIUM | …ests/data/starter_projects_1_6_0/Youtube Analysis.json | 1972 | "description": "# 📖 README\nThis flow performs comprehensive analysis of YouTube videos.\n1. Extract video | CODE |
| LOW | src/lfx/src/lfx/type_extraction.py | 58 | # If the return type is not a Union, then we just return it as a list | COMMENT |
| LOW | src/lfx/src/lfx/interface/initialize/loading.py | 368 | # so we can just call them | COMMENT |
| MEDIUM | src/lfx/src/lfx/extension/discovery.py | 392 | except Exception as exc: # noqa: BLE001 - pydantic raises ValidationError; bare Exception keeps the scan robust | CODE |
| LOW | src/lfx/src/lfx/type_extraction/type_extraction.py | 54 | # If the return type is not a Union, then we just return it as a list | COMMENT |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 1027 | # just add empty lists to complete the length | COMMENT |
| LOW⚡ | src/lfx/src/lfx/graph/state/model.py | 249 | # No computed fields, just create the model directly | COMMENT |
| MEDIUM | src/lfx/src/lfx/graph/vertex/base.py | 904 | # We should create a more robust comparison | COMMENT |
| LOW | src/lfx/src/lfx/utils/validate_cloud.py | 45 | # To add new disabled components in the future, simply add entries to this dictionary. | COMMENT |
| MEDIUM | src/lfx/src/lfx/utils/langflow_utils.py | 28 | # - Consider refactoring to use lazy loading or a more robust service discovery mechanism | COMMENT |
| LOW | src/lfx/src/lfx/cli/common.py | 808 | # If we can't read or parse the file, just return None | COMMENT |
| LOW | src/lfx/src/lfx/schema/data.py | 165 | # If the key is not in the first object, simply add it | STRING |
| MEDIUM | …/lfx/src/lfx/components/llm_operations/llm_selector.py | 499 | """Return the comprehensive routing decision explanation.""" | STRING |
| MEDIUM | src/lfx/src/lfx/custom/validate.py | 544 | # TODO: Build a more robust check for Component inheritance | COMMENT |
| MEDIUM | src/lfx/src/lfx/base/tools/run_flow.py | 212 | # TODO: make this more robust? | COMMENT |
| LOW | src/lfx/src/lfx/base/agents/altk_tool_wrappers.py | 238 | # If schema parsing fails, just use kwargs | COMMENT |
| LOW | src/lfx/src/lfx/base/agents/altk_tool_wrappers.py | 549 | # Already wrapped with this wrapper, just return it | COMMENT |
| LOW | …fx/src/lfx/base/models/unified_models/model_catalog.py | 400 | # If we can't get models, just create basic dicts | COMMENT |
| LOW | src/lfx/src/lfx/base/composio/composio_base.py | 1318 | # If action_button doesn't exist, just add the field normally | COMMENT |
| LOW | src/lfx/src/lfx/base/data/docling_utils.py | 312 | # crash the host process in single-worker setups. Instead, just set | COMMENT |
| MEDIUM | src/lfx/src/lfx/services/mcp_composer/service.py | 1539 | # Get comprehensive error information | COMMENT |
| MEDIUM | …frontend/src/modals/apiModal/utils/get-js-api-code.tsx | 27 | // Parse URL for robust hostname/port extraction | COMMENT |
| MEDIUM | …c/frontend/src/modals/apiModal/utils/get-curl-code.tsx | 84 | // PowerShell with here-string (most robust for complex JSON) | COMMENT |
| MEDIUM | …enderComponent/components/TableNodeComponent/index.tsx | 181 | // More robust header detection - check if first line contains column names | COMMENT |
| MEDIUM | …ow/src/langflow_stepflow/translation/node_processor.py | 395 | # Extract comprehensive component metadata | COMMENT |
| LOW | src/backend/tests/unit/test_get_api_key.py | 59 | # Patch ApiKeyRead.model_validate to just return the provided dict for easy assertions | COMMENT |
| LOW | src/backend/tests/unit/test_process.py | 167 | # Test twekas that just pass the param and value but no node id. | COMMENT |
| LOW⚡ | src/backend/tests/unit/test_api_key_source.py | 385 | # Should not raise, just return None | COMMENT |
| MEDIUM⚡ | …/backend/tests/unit/agentic/api/test_files_endpoint.py | 242 | # be robust if the LLM (or a future contributor) names a file weirdly. | COMMENT |
| MEDIUM | …/unit/agentic/services/test_user_components_overlay.py | 56 | # this fixture is robust to whatever ordering pytest-xdist picks. | COMMENT |
| LOW | …components/languagemodels/test_chatollama_component.py | 333 | # Should not raise an error, just set empty options | COMMENT |
| LOW | …components/languagemodels/test_chatollama_component.py | 620 | # Should not raise an error, just set empty options | COMMENT |
| LOW | …/components/data_source/table_schema_demo_component.py | 79 | # Already a Data object, just add it | COMMENT |
| MEDIUM | …nit/components/processing/test_dataframe_operations.py | 9 | """Create a comprehensive sample DataFrame for testing.""" | STRING |
| LOW | …/unit/components/bundles/altk/test_altk_agent_logic.py | 655 | # The tool should still be wrapped (even if just pass-through) | COMMENT |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 21 | # langflow-extensions:bundle-deps-start | COMMENT |
| LOW | deploy/docker-compose.yml | 41 | # Uses environment variable DOMAIN | COMMENT |
| LOW | …kills/frontend-testing/assets/utility-test.template.ts | 21 | // jest.mock("@/controllers/API/api", () => ({ | COMMENT |
| LOW | …kills/frontend-testing/assets/utility-test.template.ts | 61 | // { input: "hello", expected: "HELLO", description: "lowercase string" }, | COMMENT |
| LOW | …kills/frontend-testing/assets/utility-test.template.ts | 121 | // Type-Specific Tests | COMMENT |
| LOW | …kills/frontend-testing/assets/utility-test.template.ts | 141 | // const inputCopy = [...input]; | COMMENT |
| LOW | …kills/frontend-testing/assets/utility-test.template.ts | 161 | COMMENT | |
| LOW | …kills/frontend-testing/assets/utility-test.template.ts | 181 | // const intermediate = TEMPLATE_FUNCTION_A(rawInput); | COMMENT |
| LOW | …ls/frontend-testing/assets/component-test.template.tsx | 21 | // jest.mock("@/controllers/API/api", () => ({ | COMMENT |
| LOW | …ls/frontend-testing/assets/component-test.template.tsx | 61 | // Use this if the component requires providers (router, query client, context) | COMMENT |
| LOW | …ls/frontend-testing/assets/component-test.template.tsx | 141 | // describe("async behavior", () => { | COMMENT |
| LOW | …ls/frontend-testing/assets/component-test.template.tsx | 161 | // | COMMENT |
| LOW | …s/skills/frontend-testing/assets/hook-test.template.ts | 21 | // __esModule: true, | COMMENT |
| LOW | …s/skills/frontend-testing/assets/hook-test.template.ts | 121 | COMMENT | |
| LOW | …s/skills/frontend-testing/assets/hook-test.template.ts | 141 | // it("should handle fetch errors", async () => { | COMMENT |
| LOW | …s/skills/frontend-testing/assets/hook-test.template.ts | 161 | // afterEach(() => { | COMMENT |
| LOW | …s/skills/frontend-testing/assets/hook-test.template.ts | 221 | }); | COMMENT |
| LOW | docs/src/clientModules/redocA11y.js | 1 | // Accessibility patches for Redocusaurus pages. | COMMENT |
| LOW | scripts/build_component_index.py | 141 | index = _normalize_for_determinism(index) | COMMENT |
| LOW | scripts/lint/check_component_env_writes.py | 41 | COMMENT | |
| LOW | scripts/migrate/consolidate_bundles.py | 41 | BUNDLES_PYPROJECT = REPO_ROOT / "src" / "bundles" / "lfx-bundles" / "pyproject.toml" | COMMENT |
| LOW | .github/workflows/db-migration-validation.yml | 181 | echo "Version for PyPI: $VERSION" | COMMENT |
| LOW | .github/workflows/release_nightly.yml | 801 | # secrets: inherit | COMMENT |
| LOW | .github/workflows/deploy_gh-pages.yml | 41 | # The following lines assign commit authorship to the official | COMMENT |
| LOW | .github/workflows/codeql.yml | 41 | # By default, queries listed here will override any specified in a config file. | COMMENT |
| LOW | .github/workflows/cross-bundle-test.yml | 1 | name: Cross-Bundle Test | COMMENT |
| LOW | regressions/1.10.x.yaml | 21 | # "status": "triage", | COMMENT |
| LOW | src/lfx/tests/unit/extension/test_schema.py | 121 | # 2. id wrong pattern | COMMENT |
| LOW | src/lfx/tests/unit/graph/test_graph.py | 501 | graph.add_nodes_and_edges(flow_data["nodes"], flow_data["edges"]) | COMMENT |
| LOW | src/lfx/tests/unit/cli/test_serve.py | 1141 | ) | COMMENT |
| LOW | …c/lfx/tests/unit/schema/test_message_content_blocks.py | 661 | # The discriminator must survive so downstream validators that | COMMENT |
| LOW | src/lfx/tests/unit/custom/test_utils_metadata.py | 581 | # Verify metadata was added with generated module name | COMMENT |
| LOW | …x/tests/unit/custom/custom_component/test_component.py | 61 | # chatoutput = ChatOutput() | COMMENT |
| LOW | …x/tests/unit/base/agents/test_default_system_prompt.py | 201 | idx_a = a.find("# Environment") | COMMENT |
| LOW | …integration/extension/test_pilot_duckduckgo_upgrade.py | 301 | assert result.ok, [e.code for e in result.errors] | COMMENT |
| LOW | src/lfx/src/lfx/interface/components.py | 841 | COMMENT | |
| LOW | src/lfx/src/lfx/interface/components.py | 1021 | Components whose class fails to instantiate or template are skipped | COMMENT |
| LOW | src/lfx/src/lfx/interface/components.py | 1041 | # | COMMENT |
| LOW | src/lfx/src/lfx/interface/components.py | 1061 | dev_results = load_dev_extensions() | COMMENT |
| LOW | src/lfx/src/lfx/extension/reload.py | 101 | COMMENT | |
| LOW | src/lfx/src/lfx/extension/reload.py | 421 | # @extra inline bundles record source_path as the bundle directory | COMMENT |
| LOW | src/lfx/src/lfx/extension/errors.py | 81 | "component-name-ambiguous", | COMMENT |
| LOW | src/lfx/src/lfx/extension/errors.py | 121 | "duplicate-bundle-name", | COMMENT |
| LOW | src/lfx/src/lfx/extension/loader/_orchestrator.py | 481 | # Public entry point: discover_inline_bundles (LANGFLOW_COMPONENTS_PATH) | COMMENT |
| LOW | src/lfx/src/lfx/extension/loader/_orchestrator.py | 801 | COMMENT | |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 1381 | COMMENT | |
| LOW | src/lfx/src/lfx/utils/flow_validation.py | 61 | COMMENT | |
| LOW | src/lfx/src/lfx/utils/flow_validation.py | 101 | COMMENT | |
| LOW | src/lfx/src/lfx/utils/flow_validation.py | 281 | node_id = node_data.get("id") or node.get("id", "unknown") | COMMENT |
| LOW | src/lfx/src/lfx/utils/python_repl_security.py | 161 | # time, so it reaches the same sinks invisibly to the AST: a runtime-assembled | COMMENT |
| LOW | src/lfx/src/lfx/utils/ssrf_protection.py | 841 | # validation, and the returned IPs will be used for the actual HTTP request | COMMENT |
| LOW | src/lfx/src/lfx/utils/flow_requirements.py | 81 | COMMENT | |
| LOW | src/lfx/src/lfx/cli/serve_app.py | 261 | from lfx.cli.flow_store import NullFlowStore | COMMENT |
| LOW | src/lfx/src/lfx/cli/serve_preloaded_app.py | 21 | registry = build_registry_from_env() | COMMENT |
| LOW | src/lfx/src/lfx/cli/init.py | 21 | from rich.tree import Tree | COMMENT |
| LOW | src/lfx/src/lfx/schema/message.py | 301 | self.data["timestamp"] = self.timestamp | COMMENT |
| LOW | …/src/lfx/components/models_and_agents/mcp_component.py | 441 | except ModuleNotFoundError as e: | COMMENT |
| LOW | src/lfx/src/lfx/components/models_and_agents/agent.py | 521 | llm = self._get_llm() | COMMENT |
| LOW | src/lfx/src/lfx/components/models_and_agents/agent.py | 581 | max_iterations = getattr(self, "max_iterations", None) | COMMENT |
| LOW | …x/src/lfx/components/files_and_knowledge/filesystem.py | 41 | # mutation of `self._user_id` between the binding check and the path | COMMENT |
| 150 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | docs/openapi/openapi.json | 13473 | "description": "Executes a specified flow by ID with optional input values, output selection, tweaks, and stream | CODE |
| HIGH | src/lfx/LFX_MCP.md | 37 | "LANGFLOW_API_KEY": "<your-api-key>" | CODE |
| HIGH | src/lfx/LFX_MCP.md | 54 | "LANGFLOW_API_KEY": "<your-api-key>" | CODE |
| HIGH | src/lfx/src/lfx/templates/shell/ci-push.sh | 11 | # export LANGFLOW_API_KEY=<your-api-key> | COMMENT |
| HIGH | …rontend/tests/extended/features/mcp-server-tab.spec.ts | 144 | // Verify "YOUR_API_KEY" is present in the JSON before generation | COMMENT |
| HIGH | …rontend/tests/extended/features/mcp-server-tab.spec.ts | 145 | expect(jsonBeforeGeneration).toContain("YOUR_API_KEY"); | CODE |
| HIGH⚡ | …rontend/tests/extended/features/mcp-server-tab.spec.ts | 159 | // Wait for the JSON to update - it should no longer contain "YOUR_API_KEY" | COMMENT |
| HIGH⚡ | …rontend/tests/extended/features/mcp-server-tab.spec.ts | 160 | await expect(preElement).not.toContainText("YOUR_API_KEY", { | CODE |
| HIGH⚡ | …rontend/tests/extended/features/mcp-server-tab.spec.ts | 166 | // Verify that an actual API key (not "YOUR_API_KEY") is present | COMMENT |
| HIGH⚡ | …rontend/tests/extended/features/mcp-server-tab.spec.ts | 173 | expect(generatedApiKey).not.toBe("YOUR_API_KEY"); | CODE |
| HIGH | …d/src/pages/SettingsPage/pages/McpClientPage/index.tsx | 25 | LANGFLOW_API_KEY: "YOUR_API_KEY", // pragma: allowlist secret | CODE |
| HIGH | …d/src/pages/SettingsPage/pages/McpClientPage/index.tsx | 66 | -e LANGFLOW_API_KEY=YOUR_API_KEY`; | CODE |
| HIGH | …pages/MainPage/pages/homePage/utils/mcpServerUtils.tsx | 88 | return `"--headers","x-api-key","${apiKey || "YOUR_API_KEY"}"`; | CODE |
| HIGH | …pages/MainPage/pages/homePage/utils/mcpServerUtils.tsx | 92 | return `"--headers","x-api-key","${apiKey || "YOUR_API_KEY"}"`; | CODE |
| HIGH | …/pages/homePage/utils/__tests__/mcpServerUtils.test.ts | 97 | it("uses YOUR_API_KEY placeholder when no apiKey provided", () => { | CODE |
| HIGH | …/pages/homePage/utils/__tests__/mcpServerUtils.test.ts | 103 | expect(headers).toContain("YOUR_API_KEY"); | CODE |
| HIGH | …ponents/AgentMainContent/components/AgentCardPanel.tsx | 44 | const key = requiresApiKey ? " \\\n -H 'x-api-key: <YOUR_API_KEY>'" : ""; | CODE |
| HIGH | …ponents/AgentMainContent/components/AgentCardPanel.tsx | 44 | const key = requiresApiKey ? " \\\n -H 'x-api-key: <YOUR_API_KEY>'" : ""; | CODE |
| HIGH | src/backend/tests/locust/README.md | 145 | export API_KEY="your-api-key-from-setup" | CODE |
| HIGH | src/backend/tests/locust/README.md | 269 | export API_KEY="your-api-key" | CODE |
| HIGH | src/backend/base/langflow/api/v1/endpoints.py | 1135 | x-api-key: YOUR_API_KEY | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …nd/src/modals/apiModal/utils/get-v2-workflows-code.tsx | 170 | print(result["output"]["text"])`; | CODE |
| HIGH⚡ | …nd/src/modals/apiModal/utils/get-v2-workflows-code.tsx | 191 | print(event["data"]["chunk"], end="", flush=True) | CODE |
| HIGH⚡ | …nd/src/modals/apiModal/utils/get-v2-workflows-code.tsx | 192 | elif event["event"] == "add_message": | CODE |
| HIGH⚡ | …nd/src/modals/apiModal/utils/get-v2-workflows-code.tsx | 193 | print(event["data"]) | CODE |
| HIGH⚡ | …nd/src/modals/apiModal/utils/get-v2-workflows-code.tsx | 194 | elif event["event"] == "end": | CODE |
| HIGH⚡ | …nd/src/modals/apiModal/utils/get-v2-workflows-code.tsx | 195 | print("\\n[done]")`; | CODE |
| HIGH⚡ | …tend/src/modals/apiModal/utils/get-python-api-code.tsx | 65 | print(response.text) | CODE |
| HIGH⚡ | …tend/src/modals/apiModal/utils/get-python-api-code.tsx | 68 | print(f"Error making API request: {e}") | CODE |
| HIGH⚡ | …tend/src/modals/apiModal/utils/get-python-api-code.tsx | 70 | print(f"Error parsing response: {e}")`; | CODE |
| HIGH | …tend/src/modals/apiModal/utils/get-python-api-code.tsx | 187 | print(response.json())`; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/lfx/tests/unit/mcp/test_validate_flow.py | 154 | CODE | |
| MEDIUM | src/lfx/tests/unit/cli/test_serve_identity.py | 986 | CODE | |
| MEDIUM | src/lfx/tests/unit/cli/test_common.py | 402 | CODE | |
| MEDIUM | src/lfx/tests/unit/execution/test_registry.py | 11 | CODE | |
| MEDIUM | …c/lfx/tests/unit/execution/test_in_process_executor.py | 108 | CODE | |
| MEDIUM | src/lfx/tests/unit/run/test_base.py | 1370 | CODE | |
| MEDIUM | …/lfx/tests/unit/base/agents/test_agent_token_wiring.py | 22 | CODE | |
| MEDIUM | …lfx/base/knowledge_bases/ingestion_sources/onedrive.py | 48 | CODE | |
| MEDIUM | …x/base/knowledge_bases/ingestion_sources/sharepoint.py | 49 | CODE | |
| MEDIUM | …e/knowledge_bases/ingestion_sources/microsoft_graph.py | 50 | CODE | |
| MEDIUM | …base/knowledge_bases/ingestion_sources/google_drive.py | 49 | CODE | |
| MEDIUM | …x/src/lfx/base/knowledge_bases/ingestion_sources/s3.py | 52 | CODE | |
| MEDIUM | src/backend/tests/unit/test_redis_job_queue_service.py | 1594 | CODE | |
| MEDIUM | …nd/tests/unit/agentic/api/test_streaming_validation.py | 370 | CODE | |
| MEDIUM | …nd/tests/unit/agentic/api/test_streaming_validation.py | 421 | CODE | |
| MEDIUM | …t/agentic/services/test_assistant_service_streaming.py | 448 | CODE | |
| MEDIUM | …t/agentic/services/test_assistant_service_streaming.py | 487 | CODE | |
| MEDIUM | …ntic/services/test_assistant_service_model_fallback.py | 210 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 195 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 226 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 296 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 825 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 854 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 906 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 1000 | CODE | |
| MEDIUM | …kend/tests/unit/agentic/services/test_flow_executor.py | 1023 | CODE | |
| MEDIUM | src/backend/tests/unit/api/v1/test_traces_api.py | 347 | CODE | |
| MEDIUM | src/backend/tests/unit/api/v1/test_traces_api.py | 409 | CODE | |
| MEDIUM | …ase/langflow/services/background_execution/live_bus.py | 129 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/lfx/tests/unit/cli/test_push_command.py | 114 | CODE | |
| LOW | src/lfx/tests/unit/cli/test_export_command.py | 92 | CODE | |
| LOW | src/lfx/tests/unit/cli/test_pull_command.py | 125 | CODE | |
| LOW | src/lfx/src/lfx/memory/stubs.py | 186 | CODE | |
| LOW | src/lfx/src/lfx/memory/stubs.py | 225 | CODE | |
| LOW | src/lfx/src/lfx/graph/graph/utils.py | 870 | CODE | |
| LOW | src/lfx/src/lfx/graph/graph/base.py | 71 | CODE | |
| LOW | src/lfx/src/lfx/utils/util.py | 558 | CODE | |
| LOW | src/lfx/src/lfx/utils/ssrf_transport.py | 233 | CODE | |
| LOW | src/lfx/src/lfx/utils/ssrf_transport.py | 304 | CODE | |
| LOW | src/lfx/src/lfx/cli/run.py | 51 | CODE | |
| LOW | src/lfx/src/lfx/cli/_remote_commands.py | 68 | CODE | |
| LOW | src/lfx/src/lfx/cli/_remote_commands.py | 147 | CODE | |
| LOW | src/lfx/src/lfx/cli/_remote_commands.py | 223 | CODE | |
| LOW | src/lfx/src/lfx/cli/_authoring_commands.py | 120 | CODE | |
| LOW | src/lfx/src/lfx/cli/_running_commands.py | 13 | CODE | |
| LOW | src/lfx/src/lfx/cli/_running_commands.py | 127 | CODE | |
| LOW | src/lfx/src/lfx/cli/commands.py | 238 | CODE | |
| LOW | src/lfx/src/lfx/testing/runners.py | 305 | CODE | |
| LOW | src/lfx/src/lfx/testing/runners.py | 360 | CODE | |
| LOW | src/lfx/src/lfx/schema/log.py | 25 | CODE | |
| LOW | src/lfx/src/lfx/load/load.py | 145 | CODE | |
| LOW | src/lfx/src/lfx/load/load.py | 208 | CODE | |
| LOW | src/lfx/src/lfx/log/logger.py | 427 | CODE | |
| LOW | src/lfx/src/lfx/run/base.py | 198 | CODE | |
| LOW | src/lfx/src/lfx/helpers/flow.py | 258 | CODE | |
| LOW | src/lfx/src/lfx/base/models/model_metadata.py | 26 | CODE | |
| LOW | …fx/src/lfx/base/models/unified_models/instantiation.py | 77 | CODE | |
| LOW | …fx/src/lfx/base/models/unified_models/instantiation.py | 506 | CODE | |
| LOW | …fx/src/lfx/base/models/unified_models/instantiation.py | 763 | CODE | |
| LOW | …gflow-stepflow/tests/unit/test_tool_wrapper_handler.py | 13 | CODE | |
| LOW | …backend/tests/unit/services/tracing/test_formatting.py | 37 | CODE | |
| LOW | src/backend/base/langflow/memory.py | 24 | CODE | |
| LOW | src/backend/base/langflow/memory.py | 70 | CODE | |
| LOW | src/backend/base/langflow/memory.py | 114 | CODE | |
| LOW | src/backend/base/langflow/__main__.py | 321 | CODE | |
| LOW | …ackend/base/langflow/agentic/services/flow_executor.py | 77 | CODE | |
| LOW | …ackend/base/langflow/agentic/services/flow_executor.py | 158 | CODE | |
| LOW | …nd/base/langflow/agentic/services/assistant_service.py | 533 | CODE | |
| LOW | src/backend/base/langflow/schema/log.py | 17 | CODE | |
| LOW | src/backend/base/langflow/schema/playground_events.py | 88 | CODE | |
| LOW | src/backend/base/langflow/schema/playground_events.py | 123 | CODE | |
| LOW | src/backend/base/langflow/api/v1/store.py | 90 | CODE | |
| LOW | src/backend/base/langflow/api/v1/monitor.py | 227 | CODE | |
| LOW | src/backend/base/langflow/api/v1/models.py | 116 | CODE | |
| LOW | src/backend/base/langflow/api/v1/chat.py | 222 | CODE | |
| LOW | src/backend/base/langflow/api/v1/chat.py | 758 | CODE | |
| LOW | src/backend/base/langflow/api/v1/authz_audit.py | 57 | CODE | |
| LOW | src/backend/base/langflow/api/v1/traces.py | 46 | CODE | |
| LOW | src/backend/base/langflow/api/v1/endpoints.py | 357 | CODE | |
| LOW | …kend/base/langflow/api/utils/knowledge_base_service.py | 89 | CODE | |
| LOW | …kend/base/langflow/api/utils/knowledge_base_service.py | 217 | CODE | |
| LOW | src/backend/base/langflow/helpers/flow.py | 283 | CODE | |
| LOW | src/backend/base/langflow/services/job_queue/service.py | 858 | CODE | |
| LOW | src/backend/base/langflow/services/store/service.py | 201 | CODE | |
| LOW | src/backend/base/langflow/services/store/service.py | 507 | CODE | |
| LOW | src/backend/base/langflow/services/flow/flow_runner.py | 57 | CODE | |
| LOW | …ndles/src/lfx_bundles/elastic/opensearch_multimodal.py | 724 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/lfx/src/lfx/utils/image.py | 12 | from lfx.utils.helpers import get_mime_type | CODE |
| CRITICAL | src/lfx/src/lfx/base/data/base_file.py | 24 | from lfx.utils.helpers import build_content_type_from_extension | CODE |
| CRITICAL | src/backend/base/langflow/api/v1/files.py | 14 | from lfx.utils.helpers import build_content_type_from_extension | CODE |
| CRITICAL | src/backend/base/langflow/api/v1/mcp_utils.py | 20 | from lfx.utils.helpers import build_content_type_from_extension | CODE |
| CRITICAL | src/backend/base/langflow/services/storage/utils.py | 1 | from lfx.utils.helpers import build_content_type_from_extension | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/lfx/tests/unit/extension/test_validate.py | 278 | "def helper():\n" | CODE |
| LOW | src/lfx/tests/unit/services/test_edge_cases.py | 294 | def do_something(self): | CODE |
| LOW | …fx/components/flow_controls/data_conditional_router.py | 79 | def process_data(self) -> Data | list[Data]: | CODE |
| LOW | …c/lfx/src/lfx/events/observability/lifecycle_events.py | 40 | async def my_method(self, event_manager: EventManager, data: str): | STRING |
| LOW | src/frontend/tests/assets/test-file.py | 1 | def test_function(): | CODE |
| LOW | src/backend/tests/unit/test_validate_code.py | 19 | def my_function(x: str) -> Path: | CODE |
| LOW⚡ | src/backend/tests/unit/test_validate_code.py | 71 | def my_function(x): | CODE |
| LOW⚡ | src/backend/tests/unit/test_validate_code.py | 82 | def my_function(x): | CODE |
| LOW⚡ | src/backend/tests/unit/test_validate_code.py | 93 | def my_function(x): | CODE |
| LOW⚡ | src/backend/tests/unit/test_validate_code.py | 104 | def my_function(x): | CODE |
| LOW⚡ | src/backend/tests/unit/utils/test_validate.py | 206 | def helper(): | CODE |
| LOW⚡ | src/backend/tests/unit/utils/test_validate.py | 209 | def main_function(): | CODE |
| LOW⚡ | src/backend/tests/unit/utils/test_validate.py | 415 | def my_function(): | CODE |
| LOW | src/backend/tests/unit/utils/test_validate.py | 535 | def helper(): | CODE |
| LOW | src/backend/tests/unit/utils/test_validate.py | 555 | def helper(): | CODE |
| LOW⚡ | src/backend/tests/unit/schema/test_cross_module.py | 35 | def process_data(data: LangflowData) -> str: | CODE |
| LOW | …onents/models_and_agents/policies/test_guarded_tool.py | 15 | def my_function(person: Person) -> str: | CODE |
| LOW | …nd/tests/unit/services/tracing/test_tracing_service.py | 606 | async def run_task( | CODE |
| LOW⚡ | src/sdk/tests/test_streaming.py | 236 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW⚡ | src/sdk/tests/test_streaming.py | 321 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW | src/sdk/tests/test_streaming.py | 40 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW | src/sdk/tests/test_streaming.py | 272 | def handle_request(self, request: httpx.Request) -> httpx.Response: # noqa: ARG002 | CODE |
| LOW | src/sdk/tests/test_streaming.py | 288 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW⚡ | src/sdk/tests/test_file_io.py | 161 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW⚡ | src/sdk/tests/test_file_io.py | 183 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW⚡ | src/sdk/tests/test_file_io.py | 272 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW | src/sdk/tests/test_file_io.py | 68 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW | src/sdk/tests/test_file_io.py | 325 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW | src/sdk/tests/test_file_io.py | 355 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/static/files/eval_and_remediate_cleanlab.json | 1387 | "value": "from langflow.custom import Component\nfrom langflow.io import (\n MessageTextInput,\n P | CODE |
| MEDIUM | docs/static/files/eval_and_remediate_cleanlab.json | 1428 | "value": "Based on the available information, I cannot provide a complete answer to this question." | CODE |
| MEDIUM | docs/static/files/Meeting_Notes_Agent.json | 45 | "value": "Good morning. Thanks for joining this project review meeting. We've got quite | CODE |
| MEDIUM⚡ | …backend/tests/unit/agentic/api/test_code_extraction.py | 61 | text = f"Here is the component:\n\n```python\n{VALID_COMPONENT_CODE}\n```\n\nLet me know if you need changes." | CODE |
| MEDIUM | …backend/tests/unit/agentic/api/test_code_extraction.py | 431 | Let me know if you need any modifications!""" | CODE |
| MEDIUM⚡ | …backend/tests/unit/agentic/api/test_flow_extraction.py | 33 | "Let me know if you need changes." | CODE |
| MEDIUM | …undles/src/lfx_bundles/cleanlab/cleanlab_remediator.py | 98 | value="Based on the available information, I cannot provide a complete answer to this question.", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/data/starter_projects_1_6_0/Instagram Copywriter.json | 1371 | "description": "# 📖 README\n\nWelcome to the Instagram Copywriter! This flow helps you create compelling Ins | CODE |
| HIGH | …fx/src/lfx/base/models/unified_models/model_catalog.py | 129 | # Format as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | src/backend/base/langflow/locales/en.json | 6708 | "template_notes.basic_prompting.bd8ff52b": "# 📖 README\nThis template demonstrates a standard chat flow with additiona | CODE |
| HIGH | …ow/initial_setup/starter_projects/Basic Prompting.json | 522 | "description": "# 📖 README\nThis template demonstrates a standard chat flow with additional instructions pro | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/backend/tests/unit/base/load/test_load.py | 36 | # TODO: Add tests by loading a flow and running it need to text with fake llm and check if it | COMMENT |
| LOW | src/backend/base/langflow/api/v1/mcp_projects.py | 1338 | # TODO: implement an environment variable to enable/disable stateless mode | COMMENT |
| LOW | …les/lfx-bundles/src/lfx_bundles/google/google_drive.py | 59 | # TODO: Add validation to check if the document ID is valid | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/lfx/src/lfx/base/huggingface/model_bridge.py | 117 | # How to use | COMMENT |
| LOW | src/lfx/src/lfx/base/huggingface/model_bridge.py | 124 | # # Example usage | COMMENT |
| LOW | src/backend/base/langflow/api/v1/endpoints.py | 1132 | ### Example usage: | STRING |