* test: enhance agent component tests and add new fixture for database-less sessions - Added `use_noop_session` fixture to facilitate testing without a database. - Expanded `TestAgentComponent` with new tests for agent responses using the Calculator tool and validation across all OpenAI and Anthropic models. - Updated `test_component.py` to include tests for message sending without a database, ensuring proper event handling and message integrity. - Refactored existing tests for clarity and consistency. * fix: enhance user retrieval logic in get_or_create_super_user and teardown_superuser functions - Updated user retrieval in both functions to handle different result types from the database query, ensuring robustness against unexpected return values. - Added checks for `first()` method and list type to improve error handling and maintainability. * feat: add support for no-op database operations in settings - Introduced `use_noop_database` configuration option to disable all database operations, controlled by the `LANGFLOW_USE_NOOP_DATABASE` environment variable. - Updated the `use_noop_session` fixture to reflect the new environment variable for testing without a database. * feat: implement NoopSession for database-less operations - Added NoopSession class to provide a no-operation database session, allowing for testing and operation without a real database connection. - Updated DatabaseService to utilize NoopSession when the `use_noop_database` setting is enabled, ensuring all database operations are disabled in this mode. - Enhanced error handling and logging for session management, improving robustness in scenarios where the database is not in use. * refactor: update import paths for NoopSession in test files - Changed import path for NoopSession from `langflow.services.database.service` to `langflow.services.database.session` in both `test_agent_component.py` and `test_component.py`. - This refactor improves code organization and aligns with recent changes in the project structure. * feat: enhance NoopSession with result handling methods - Added an internal _NoopResult class to the NoopSession, providing methods `first()`, `all()`, and `one_or_none()` for better handling of no-operation results. - This enhancement improves the usability of NoopSession in testing scenarios by mimicking expected database query behaviors. * refactor: improve logging for NOOP database session - Changed the log level from warning to info for the NOOP database session message in the DatabaseService class. - This adjustment enhances clarity in logging, indicating that all DB operations are disabled without implying an error condition. * docs: improve docstring formatting for custom_component_update function - Reformatted the docstring for the custom_component_update function to enhance readability by breaking long lines into multiple lines. - This change improves documentation clarity, making it easier for developers to understand the function's purpose and behavior. * docs: add LANGFLOW_USE_NOOP_DATABASE environment variable documentation - Introduced documentation for the new LANGFLOW_USE_NOOP_DATABASE environment variable, which allows users to enable a no-op database mode, avoiding database connections and operations. - This addition enhances the clarity of configuration options available for Langflow, aiding users in understanding how to run flows without a database. * refactor: move NOOP database session logging to settings - Removed the logging statement from the DatabaseService class and added it to the `set_use_noop_database` field validator in the Settings class. - This change centralizes the logging for the NOOP database session, improving code organization and ensuring that the message is logged whenever the setting is applied. |
||
|---|---|---|
| .cursor/rules | ||
| .devcontainer | ||
| .github | ||
| .vscode | ||
| deploy | ||
| docker | ||
| docker_example | ||
| docs | ||
| scripts | ||
| src | ||
| test-results | ||
| .coderabbit.yaml | ||
| .composio.lock | ||
| .env.example | ||
| .eslintrc.json | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| DEVELOPMENT.md | ||
| eslint.config.js | ||
| LICENSE | ||
| Makefile | ||
| Makefile.frontend | ||
| pyproject.toml | ||
| README.md | ||
| render.yaml | ||
| SECURITY.md | ||
| uv.lock | ||
Caution
Users must update to Langflow >= 1.3 to protect against CVE-2025-3248.
Langflow is a powerful tool for building and deploying AI-powered agents and workflows. It provides developers with both a visual authoring experience and built-in API and MCP servers that turn every workflow into a tool that can be integrated into applications built on any framework or stack. Langflow comes with batteries included and supports all major LLMs, vector databases and a growing library of AI tools.
✨ Highlight features
- Visual builder interface to quickly get started and iterate .
- Source code access lets you customize any component using Python.
- Interactive playground to immediately test and refine your flows with step-by-step control.
- Multi-agent orchestration with conversation management and retrieval.
- Deploy as an API or export as JSON for Python apps.
- Deploy as an MCP server and turn your flows into tools for MCP clients.
- Observability with LangSmith, LangFuse and other integrations.
- Enterprise-ready security and scalability.
⚡️ Quickstart
Langflow requires Python 3.10 to 3.13 and uv.
- To install Langflow, run:
uv pip install langflow -U
- To run Langflow, run:
uv run langflow run
- Go to the default Langflow URL at
http://127.0.0.1:7860.
For more information about installing Langflow, including Docker and Desktop options, see Install Langflow.
📦 Deployment
Langflow is completely open source and you can deploy it to all major deployment clouds. To learn how to use Docker to deploy Langflow, see the Docker deployment guide.
⭐ Stay up-to-date
Star Langflow on GitHub to be instantly notified of new releases.
👋 Contribute
We welcome contributions from developers of all levels. If you'd like to contribute, please check our contributing guidelines and help make Langflow more accessible.