* Refine condition to check for undefined value in use-handle-new-value hook
* update mutateTemplate to use APIClassType
* Refactor Component class to update inputs and validate outputs
This commit refactors the Component class in the `component.py` file. It introduces two new methods: `update_inputs` and `run_and_validate_update_outputs`. The `update_inputs` method allows for updating the build configuration with new field values, while the `run_and_validate_update_outputs` method updates the frontend node and validates the outputs. Additionally, the `_validate_frontend_node` method is added to check if all outputs are valid. The `_set_output_types` method is modified to accept a list of outputs and set their return types. Overall, these changes improve the functionality and maintainability of the Component class.
* Add dynamic output validation in API endpoint for component updates
* Update build_config to store field_value under "value" key
* Refactor: Convert dict values to list in _set_output_types call
* Add type check for `cc_instance` before calling `run_and_validate_update_outputs`
* Add DynamicOutputComponent with configurable outputs based on input
* Add test for updating component outputs with dynamic code input
* Refactor: Make get_dynamic_output_component_code asynchronous for improved performance
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* Added required ShadCN Components
* Added required colors
* Added required icons
* Changed backend to not return beta tag
* Added sidebar categories api call
* Added required use-mobile hook
* Refactored icons to allow sizing
* Added type for sidebar category
* Allowed no name on shortcut display
* Added flow sidebar component that uses ShadCN sidebar
* Added SidebarDraggableComponent with the new style
* Replaced sidebar with current one on FlowPage
* Added sidebar fixed footer with options to go to store and add custom component
* Updated sidebar categories
* Updated background color for sidebar
* Changed size of Components title
* Added color to PageComponent
* Added required icons
* added CustomComponent category and removed custom component from helpers
* create hook useAddComponent
* Use hook to add components both in PageComponent and flowSidebarComponent
* Implement search
* Implement searching and filtering by clicking on edge
* Added check to see if store is present
* Updated colors to match new color schema
* Changed styling of filter component
* Added Beta and Legacy badges
* Implement Show Beta Components and Show Legacy Components
* Fixed styling for sidebar config when collapsed
* Refactored search to filter for tags
* Refactor useeffect
* Updated config button styling
* Implemented keyboard navigation
* Fixed filtering
* Updated color of canvas
* Implemented disclosure on sidebar settings and fetched bundles
* Added temp sidebar bundles
* Fixed badge styling
* Added bundles to categories response in frontend
* Added legacy to components
* Added link to store instead of langflow.store
* Added required data-testids
* Fixed tests to use new data-testids and new sidebar disposition
* Fix github star bug
* Fixed tests that used the custom component
* Changed test to test beta and legacy checkers
* added a test for keyboard navigation on sidebar
* Added a test to check component add by hover the plus button
* [autofix.ci] apply automated fixes
* updated sidebar switch change
* Removed changes on Backend and used only Frontend constants for categories
* merge fix
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* 📝 (custom_component): Add CustomComponent class with input and output definitions
📝 (custom_component): Create CustomComponent class with display name, description, and documentation link
📝 (custom_component): Define input and output properties for CustomComponent class
📝 (custom_component): Implement build_output method in CustomComponent class
📝 (Ollama): Remove unnecessary whitespace in SvgOllama component
* formatting
* ♻️ (custom_component/__init__.py): refactor import statement to match the correct case of the file name for better consistency and readability
* 🔧 (FlowPage/index.tsx): remove FlowToolbar component when view prop is false to improve UI consistency
* 📝 (integration-side-bar.spec.ts): Comment out unnecessary code blocks related to API requests and modals to improve test readability and focus on the main test scenarios.
* [autofix.ci] apply automated fixes
* ✨ (flowSidebarComponent/index.tsx): add data-testid attribute to Sidebar component for testing purposes
🔧 (integration-side-bar.spec.ts): update test to use new data-testid attribute 'shad-sidebar' for Sidebar component to match changes in the codebase
* ✨ (stop-building.spec.ts): refactor test case to use a more descriptive test element for clicking on the sidebar custom component button
* format
* 🐛 (AstraDB): Fix variable naming inconsistency for isDark to isdark in AstraDB component
🐛 (HCD): Fix variable naming inconsistency for isDark to isdark in HCD component
🐛 (index.tsx): Fix variable naming inconsistency for isDark to isdark in index.tsx files
📝 (flowSidebarComponent): Refactor search functionality to normalize search terms and improve metadata search
📝 (filterEdge-shard-1.spec.ts): Update test to check visibility of specific model specs in the sidebar
* [autofix.ci] apply automated fixes
* ✅ (decisionFlow.spec.ts): add a delay of 500ms to ensure proper timing in the test case execution
* ✨ (decisionFlow.spec.ts): Update the X positions of elements in the flow to improve the visual representation and alignment of the elements.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* Add async support and dependencies to pyproject.toml files
- Added `asgi-lifespan>=2.1.0` to dependencies.
- Configured `asyncio_mode` and `asyncio_default_fixture_loop_scope` for pytest.
- Updated `tool.uv` section with `asgi-lifespan` in dev-dependencies.
* Convert test fixtures to async and use AsyncClient for HTTP requests
* Handle 'ImportFrom' nodes in AST validation to support module attribute imports
* Convert test cases to use async HTTP client
- Updated test cases in `test_database.py`, `test_endpoints.py`, `test_user.py`, `test_variable.py`, `test_files.py`, `test_chat_endpoint.py`, `test_misc.py`, `test_messages_endpoints.py`, `test_api_key.py`, `test_webhook.py`, and `test_login.py` to use `httpx.AsyncClient` instead of `fastapi.TestClient`.
- Modified test functions to be asynchronous and use `await` for HTTP requests.
- Adjusted fixtures and helper functions to support asynchronous operations.
- Ensured consistency in endpoint paths and request methods across all test cases.
* Refactor string concatenation to f-string in test_chat_endpoint.py
* [autofix.ci] apply automated fixes
* Refactor import validation to use pattern matching for AST nodes
* Set `startup_timeout` and `shutdown_timeout` to `None` in `LifespanManager` for test files.
* Convert test functions to async in `test_messages_endpoints.py`
* Add `api_key_required` marker to assistant component tests
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* first attempt to edit variables on the data table
* refactor: Rename AddNewVariableButton to GlobalVariableModal and update its usage
The component AddNewVariableButton has been renamed to GlobalVariableModal to better reflect its purpose. The component is now used in multiple places, including the GlobalVariablesPage and InputGlobalComponent. This change improves code clarity and consistency.
* fix: fix apply to fields on table edit option
* refactor: Trim field names before checking for availability in GlobalVariableModal and GlobalVariablesPage
Trim field names before checking for availability in GlobalVariableModal and GlobalVariablesPage to ensure consistent comparison and avoid any potential issues with leading or trailing spaces.
* Refactor GlobalVariablesPage to remove unused cellRenderer in the "value" field
* [autofix.ci] apply automated fixes
* Add validation for 'value' field in VariableRead model and import CREDENTIAL_TYPE
- Introduced a field validator for the 'value' field in the VariableRead model to handle cases where the variable type is CREDENTIAL_TYPE.
- Added necessary import for CREDENTIAL_TYPE.
- Removed an unnecessary blank line in the variable API.
* Add constants for credential and generic types in variable service
* Refactor import statements in `kubernetes.py` to improve module organization
* Refactor imports in test_service.py for better organization
* refactor: Update import statements in variable.py for better organization
* Refactor import and reorder fields in VariableRead model
- Changed import of `CREDENTIAL_TYPE` from `service` to `constants` module.
- Reordered fields in `VariableRead` model to place `type` before `value`.
* ✨ (userSettings.spec.ts): Add additional randomName variables for testing purposes
📝 (userSettings.spec.ts): Update test to interact with global variables and improve readability and maintainability of the code
* test: fix test_create_variable
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
* test: add tests for global variable endpoints
* test: add unit tests variable service
* fix: anticipate checks to prevent the code from breaking
* feat: add a new method to interface
* feat: add method to update fields in variable service
* feat: replace variable api code
* fix: mypy error
* fix: mypy error
* feat(variable): Allow deleting variables by name or ID in DatabaseVariableService.
* refactor(api): Simplify delete method in variable router.
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* feat: suggest updating outdated components in API exception handling
Suggest updating the outdated components in the API exception handling. This commit adds a suggestion message to the API exception response when there are outdated components in the flow. The suggestion message provides the number of outdated components and recommends updating them. The suggestion is generated based on the list of outdated components obtained from the flow data.
* feat: refactor code
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/exceptions/api.py
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Update src/backend/base/langflow/api/utils.py
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Update src/backend/base/langflow/exceptions/api.py
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* update function name
* [autofix.ci] apply automated fixes
* refactor: fix import casing in langflow.api.utils and langflow.exceptions.api
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* refactor: remove unused code and update exception handling in langflow.api.utils and langflow.exceptions.api
* [autofix.ci] apply automated fixes
* refactor: update exception handling and class in langflow.api.utils and langflow.exceptions.api
* [autofix.ci] apply automated fixes
* update function name and refactor none flow logic
* [autofix.ci] apply automated fixes
* refactor: fix typo in get_suggestion_message function name
* refactor: improve get_suggestion_message function in langflow.api.utils
* refactor: add unit tests for get_suggestion_message and get_outdated_components functions
* refactor: add unit tests for APIException in langflow.exceptions.api
* refactor: improve test coverage for APIException and related functions
* [autofix.ci] apply automated fixes
* update file name
* refactor: update build_exception_body method in APIException to handle Exception type
* refactor: handle None flow data in get_components_versions
* [autofix.ci] apply automated fixes
* refactor: update useDeleteBuilds function signature in _builds API query
* fix: Fix test changing screen before request ended
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>