feat: Add Python flow execution support for Assistant by Cristhianzl · Pull Request #11553 · langflow-ai/langflow (original) (raw)
- Add full provider variable metadata and multi-variable support
Enhances provider variable handling by introducing a metadata structure for all required variables per provider, including support for providers with multiple required variables (e.g., IBM WatsonX). Updates backend API to return full variable info, adapts frontend to dynamically render and save multiple variables, and adds comprehensive tests for the new API response. Also updates static mappings and introduces a new React hook for fetching provider variable metadata.
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Refactor provider variable saving to batch mode
Replaces per-variable auto-save with a batch save for all provider variables, improving UX and reducing API calls. Updates input handling to show masked values for secrets, disables save button until all required fields are filled, and provides clearer feedback for configured variables.
- use decrypt only for is secret
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
Update unified_models.py
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Refactor model provider metadata and validation logic
Centralize MODEL_PROVIDER_METADATA in model_metadata.py and update unified_models.py to import and use it. Refactor provider validation to accept all required variables as a dictionary, supporting providers with multiple required credentials. Simplify and generalize validation logic for all providers.
- Refactor provider param mappings for language models
Centralizes provider-specific parameter mappings in model_metadata.py and introduces get_provider_param_mapping for reuse. Updates unified_models.py to use this mapping, reducing duplication and improving maintainability for model class, API key, and other provider-specific parameters.
Update providerConstants.ts
Refactor provider config check to include all required variables
Replaces the API key-specific check with a more general configuration requirement, considering all required provider variables (not just secrets). Updates related UI logic and labels to reflect this broader configuration requirement.
Fixed overflow
[autofix.ci] apply automated fixes
Fix provider enablement to check all required variables
Update logic to consider both secret and non-secret variables when determining enabled providers. Refactor to fetch all required provider variables, not just credentials, and ensure correct values are passed for validation. This improves accuracy for providers that require non-secret configuration variables.
- Refactor language model config for provider flexibility
Replaces provider-specific field toggling logic in starter project LanguageModelComponent definitions with a call to apply_provider_variable_config_to_build_config. This centralizes provider-specific configuration, improving maintainability and extensibility for new model providers.
Update backend to include validation on variable enable, and validation endpoint
Deleted unused files
Added required provider API calls
Refactored frontend to allow handling multiple fields on the providers
updated component index
Merge remote-tracking branch 'origin/main' into EJ/add-multi-api-support
Changed LF assistant backend to work with new variables
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
fix: resolve merge conflicts for multi api support (#11807)
bug: unable to use Other Model for 'Language Model' in Agent Component (#11506)
fixed import issue on model provider
addressed commments
Co-authored-by: keval shah kevalvirat@gmail.com
test: Fix race condition in rename flow test (#11549)
fix: add Language Model components to Basic Prompt Chaining.json in starter_projects (#11567)
fix: add LM components to starter_projects in BPC
add Language Model components to Basic Prompt Chaining,json in starter_projects
feat(loop): implement isolated subgraph execution for LoopComponent (#11034)
refactor(loop): implement isolated subgraph execution for LoopComponent
- Refactor LoopComponent to execute loop body as isolated subgraph
- Add create_subgraph method to Graph class for creating isolated subgraphs
- Add loop_utils with get_loop_body_vertices helper function
- Add on_end_vertex event emission in async_start for progress tracking
- Add comprehensive tests for subgraph execution and event emission
This change enables proper vertex event streaming during loop execution by running each iteration as an isolated subgraph with its own context.
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
fix: Improve subgraph event streaming to UI
- Add event types to stream token event manager (end_vertex, error, build_start, build_end)
- Preserve start_component_id in async_start for proper subgraph execution
- Fix has_chat_output/has_chat_input to use vertex.base_name instead of string matching
- Add _stream_to_playground check to allow inner graph components to send events
- Fix _send_message_event to properly extract and forward message IDs
update index
fix: Enhance extract_loop_output to handle multiple message formats
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
fix: Improve intra-layer cycle detection logging in sorting function
refactor: Update loop execution to create fresh subgraph for each iteration
test: Add tests for subgraph isolation and state management
fix: Update LoopComponent description for clarity on item processing
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
fix: Add warning log for missing custom_component in loop item injection
refactor: Simplify loop event tests while preserving critical coverage
Reduced test complexity by removing excessive mocking while maintaining completeå event manager propagation coverage. Event manager tests are critical for ensuring UI updates work correctly during loop execution.
fix: Update Google dependency version to 2.5.0 across multiple components
fix: Update value format in Research Translation Loop JSON for clarity
fix: Inject loop items into HandleInput fields via raw_params
HandleInput fields (type="other") were receiving None instead of loop items because:
- Fields with type="other" are skipped during field param processing
- Loop->Parser edge is filtered out in subgraph creation
- updated_raw_params flag was reset too early by multiple build_params() calls
Fix:
- Inject loop items into template before prepare()
- Inject into raw_params after prepare() using update_raw_params()
- Persist updated_raw_params flag across all build_params() calls
- Reset flag in _build_each_vertex_in_params_dict() after processing
Tests:
- Add integration test exercising execute_loop_body() code path
- Verify update_raw_params() called with correct data per iteration
- Add full Loop+Parser integration test
- Fix fieldName -> field_name in existing tests
fix: Update done_output method to use internal event manager and improve event handling
refactor: Update execute_loop_body to use async context manager for subgraph creation and cleanup
fix: import json in unified_models.py
feat: Implement subgraph tracing context management
fix: Update code_hash and improve loop component execution logic
fix: Update code_hash and refine LoopComponent execution logic
[autofix.ci] apply automated fixes
fix: Update LoopComponent subgraph execution to set event manager as instance attribute
test: Enhance subgraph execution tests to verify event manager passing
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
feat: Missing 'Disconnect' Option in Model Providers Settings (#11373)
added disconnect styles from design
added motion to model provider
revert input to make sense
styles improved
backend fix
removed non used import
fixed disconnect (design suggestion)
added tests
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
updated templates
updated templates
re-run ci
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix: correctly handle httpexceptions in session scope (#11542)
Correctly handle httpexceptions in session scope
don't assume autologin
for distributed envs, diff backends may have diff autologin settings, so don't assume config
[autofix.ci] apply automated fixes
simplify conditional logic
update comp index
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix: remove authentication check on sign up endpoint (#11560)
Remove authentication check on sign up endpoint
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
- fix: Apply env var fallback fix to lfx module (#11584)
Applies the fix from PR #9422 (commit 18e2ff2d2d) to the lfx module, which was previously only applied to the backend module.
PR #9422 fixed a bug where environment variable fallback would fail when
load_from_db=True inputs couldn't find variables in the database.
The fix properly distinguishes between two error cases:
- "User id is not set" → always raise (authentication issue)
- "variable not found." → only raise if fallback_to_env_vars=False
However, this fix was only applied to:
- src/backend/base/langflow/interface/initialize/loading.py
And was missing from:
- src/lfx/src/lfx/interface/initialize/loading.py
PR #9902 added table field support and reorganized the test imports to use the lfx module (which has table support). The test was updated to use "Database connection failed" error message to work with the existing code, rather than "variable not found." which would trigger the bug.
This commit:
- Applies the bug fix to the lfx module's regular field handler
- Restores the original test behavior using "variable not found." to properly validate that the fix works
src/lfx/src/lfx/interface/initialize/loading.py Fixed error handling to respect fallback_to_env_vars flag
src/backend/tests/unit/interface/initialize/test_loading.py Restored "variable not found." error to properly validate the fix
Fixes: https://github.com/langflow-ai/langflow/issues/11422 Related: #9422, #9902
feat: add copy functionality to output modal with tooltip support (#11493)
feat: add copy functionality to output modal with tooltip support
[autofix.ci] apply automated fixes
refactor: streamline OutputModal component structure and improve readability
refactor: remove comment
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix: Improve Read File and Write File storage location UX (#11589)
advanced mode for storage
add tests
hide storage location
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix: modal autofocus close button (#11425)
fix: improve focus behavior in FlowLogsModal
fix: improve focus behavior in SaveChangesModal
refactor: extract onOpenAutoFocus handlers
check if element exists before prevent
[autofix.ci] apply automated fixes
Co-authored-by: Cristhian Zanforlin Lousa cristhian.lousa@gmail.com Co-authored-by: Carlos Coelho 80289056+carlosrcoelho@users.noreply.github.com Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
feat: Add Python flow execution support for Assistant (#11553)
add execution .py
fix verbose error
remove unecessary doc
[autofix.ci] apply automated fixes
add coderabbit suggestion and mypy fixes
fix mypy
add more tests to /agents related files
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
- build(deps-dev): bump @modelcontextprotocol/sdk from 1.25.3 to 1.26.0 in /src/frontend (#11595)
build(deps-dev): bump @modelcontextprotocol/sdk in /src/frontend
Bumps @modelcontextprotocol/sdk from 1.25.3 to 1.26.0.
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk" dependency-version: 1.26.0 dependency-type: indirect ...
Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gabriel Luiz Freitas Almeida gabriel@logspace.ai
ci: use correct labeling for nightly hash update workflow step (#11492)
Fix merging of nightly hash update to main
Add testing flag for just merge pr
fix'
try conditional logic to skip jobs
fix conditional
checkout new branch only pull in night hash
add hash history back
Remove test flag
fix conditionals
feat: fork branch for main (#11183)
feat: add chat-header feature and sliding container (#11045)
Add sliding playground layout (SimpleSidebar + sliding container + store) and toolbar button integration to open it directly + chat header/session components and hooks (SessionSelector, SessionRename, ChatHeaderTitle, use-get-flow-id, playgroundStore).
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
removed changes on the tailwind config
feat: add session management functionality (#11272)
feat: add session management functionality
- Add session selector component
- Add session more menu component
- Add session header component
- Add session edit info hook
- Add get/add sessions hook
- Hide delete button for default session
sync: update animated-close and simple-sidebar from pr4
Make sidebar continue to be fullscreen after closing and opening
[autofix.ci] apply automated fixes
reduce max width
Pr2 bis chat messages (#11308)
feat: add chat messages components and infrastructure
- Add bot message component
- Add thinking message component
- Add user message component
- Add chat message wrapper component
- Add message editing functionality
- Add error message component
- Add file card wrapper
- Add message options component
- Add chat history hook
- Add thinking duration hook
- Add typing effect hook
- Add message utilities (convert files, format file name, sort messages)
- Add content block display component
- Add send message hook
fix: remove typing animation from bot messages, show thinking immediately after user message, and use optional chaining for updateChat
[autofix.ci] apply automated fixes
feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
- refactor: sync chat-messages from pr3 with refactored utilities
- Copy refactored chat-messages components from pr3
- Add new hooks: use-message-duration, use-tool-durations
- Add consolidated utilities: format.ts, content-blocks.ts, extract-error-message.ts
- Add Indicator icon for error messages
- Update ContentBlockDisplay to use new utilities
- Remove format-file-name.tsx (merged into format.ts)
- Update lazyIconImports to include Indicator icon
sync: update animated-close and simple-sidebar from pr4
Pr3 chat input (#11310)
feat: add chat input components and improvements
- Add chat input component
- Add text area wrapper with auto-resize
- Add input wrapper component
- Add button send wrapper
- Add no-input component
- Add audio button component
- Add file preview component
- Add upload file button
- Add auto-resize text area hook
- Add audio recording hook
- Add drag and drop hook
- Update textarea UI component
- Update IOModal input wrapper
- Update constants for chat input
- feat: add file handling, UI enhancements, types, stores and dependencies
- Add file preview display component
- Add file utilities
- Add animated close component
- Add simple sidebar component
- Update sliding container with container queries support
- Update FlowPage components
- Update styles and Tailwind config
- Add chat types
- Add component types
- Add utility store types
- Add utility store
- Update package dependencies
fix: prevent chat input from growing on every letter and make updateChat optional with proper typing
fix: prevent chat input from growing on every letter
fix: sync message components with PR2 (remove typing animation, fix thinking timing, use optional chaining)
fix: sync message components with PR2 (remove typing animation, fix thinking timing, use optional chaining)
[autofix.ci] apply automated fixes
fix: apply message component fixes from PR2 (remove typing animation, fix thinking timing, use optional chaining)
[autofix.ci] apply automated fixes
fix: prevent textarea from resizing on every character by tracking previous scrollHeight
fix: prevent textarea from resizing on every character by tracking previous scrollHeight
fix: prevent textarea from growing on every character with 10px threshold
fix: prevent textarea from growing on every character with 10px threshold
Revert "fix: prevent textarea from growing on every character with 10px threshold"
This reverts commit ec3ed63fa8638a4b5d1777576aa7b4736e03c237.
- Revert "fix: prevent textarea from growing on every character with 10px threshold"
This reverts commit 93637ae4de873af2f89424d536459fda13b0f67f.
- feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
- feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
fix error making the flow crashing
resize user and bot icon and remove borders
fix flow crash when error
have the green duration be the sum of tool and sec part the entire thinking
refactor: extract and consolidate chat message utilities
- Extract duration tracking logic to use-message-duration hook
- Consolidate format utilities (formatTime, formatSeconds, formatToolTitle, formatFileName) into single format.ts file
- Merge content block utilities (getContentBlockState, getContentBlockLoadingState) into content-blocks.ts
- Move component-specific logic (hasTools, shouldShowAvatar, shouldShowContentBlocks) back into components
- Move errorMarkdownComponents into error-message.tsx component
- Simplify error-message.tsx by extracting sub-components
- Add Indicator icon for error messages
- Update all imports to use consolidated utilities
- refactor: sync chat-messages and chat-input from pr4
- Copy refactored chat-messages components from pr4
- Add new hooks: use-message-duration, use-tool-durations
- Add consolidated utilities: format.ts, content-blocks.ts, extract-error-message.ts
- Add Indicator icon for error messages
- Update ContentBlockDisplay to use new utilities
- Remove format-file-name.tsx (merged into format.ts)
- Update lazyIconImports to include Indicator icon
change duration animation
Only allow certain file types
feat: add file handling, UI enhancements, types, stores and dependencies (#11276)
[autofix.ci] apply automated fixes
feat: add clear chat option for default session in session management
- Add 'Clear chat' option to SessionMoreMenu component
- Show 'Clear chat' for default session (currentSessionId === currentFlowId)
- Show 'Delete' for other sessions (existing behavior)
- Clear chat deletes messages but keeps the session
- Delete removes the entire session
- Both options use same red color styling
adjust radius for error message border
show only the text An error occured
refactor: replace Zustand with React Query for message handling
- Move all message handling logic to chat-view/utils/
- Create message-event-handler.ts to handle build events
- Create message-utils.ts for React Query cache operations
- Update buildUtils.ts to delegate message events to chat-view
- Remove MemoizedChatMessage to fix streaming updates
- Simplify use-chat-history to use session cache as single source of truth
- Support placeholder messages for immediate UI feedback
- Handle streaming tokens with proper text accumulation
- fix: improve clear chat logic to prevent double clearing
- Fix clearSessionMessages to use removeQueries instead of invalidateQueries
- Prevents refetch that brings back deleted messages
- Clear chat only works for default session, delete works for other sessions
- Handle default session messages with null session_id (legacy)
fix padding and spacing issue on playground component
fix: message section padding
fix: padding
add time persistence and build perfect timer
[autofix.ci] apply automated fixes
fix display time styles
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
fix: format time in seconds and fix gap between duration and message
[autofix.ci] apply automated fixes
fix: fetch messages in session logs modal to prevent empty display
[autofix.ci] apply automated fixes
fix: added gap between image and message
fix header truncating
fix: apply card in the background of user message in smaller view
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Olfa Maslah olfamaslah@Olfas-MacBook-Pro.local Co-authored-by: Lucas Oliveira 62335616+lucaseduoli@users.noreply.github.com Co-authored-by: Keval718 kevalvirat@gmail.com Co-authored-by: cristhianzl cristhian.lousa@gmail.com Co-authored-by: Lucas Oliveira lucas.edu.oli@hotmail.com
Co-authored-by: Olfa Maslah olfamaslah@Olfas-MacBook-Pro.local Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Lucas Oliveira 62335616+lucaseduoli@users.noreply.github.com Co-authored-by: Lucas Oliveira lucas.edu.oli@hotmail.com Co-authored-by: Keval718 kevalvirat@gmail.com Co-authored-by: cristhianzl cristhian.lousa@gmail.com
Co-authored-by: Olfa Maslah olfamaslah@Olfas-MacBook-Pro.local Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Lucas Oliveira 62335616+lucaseduoli@users.noreply.github.com Co-authored-by: Lucas Oliveira lucas.edu.oli@hotmail.com Co-authored-by: Keval718 kevalvirat@gmail.com Co-authored-by: cristhianzl cristhian.lousa@gmail.com
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
Co-authored-by: Olfa Maslah olfamaslah@Olfas-MacBook-Pro.local Co-authored-by: Lucas Oliveira 62335616+lucaseduoli@users.noreply.github.com Co-authored-by: Lucas Oliveira lucas.edu.oli@hotmail.com Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Keval718 kevalvirat@gmail.com Co-authored-by: cristhianzl cristhian.lousa@gmail.com
fix: frontend tests
[autofix.ci] apply automated fixes
fix nested agents
[autofix.ci] apply automated fixes
Revert "fix nested agents"
This reverts commit f230c8c6dd25a88b47739f8a83c0c8296f24778c.
fix time on agent chain
[autofix.ci] apply automated fixes
fix(playground): display ChatInput default value on playground open (#11514)
fix(playground): display ChatInput default value on playground open
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix(ui): prevent layout shift when adding Chat Input with closed playground (#11531)
fix(ui): prevent layout shift when adding Chat Input with closed playground
fix(ui): remove unwanted import
fix(frontend): reset playground state when navigating between flows (#11533)
reset playground state when leaving the flow
- fix(frontend): prevent Message Logs table from dropping columns with falsy values (#11540)
fix(frontend): prevent Message Logs table from dropping columns with falsy values
fix(frontend): auto-close playground when all chat components are removed (#11537)
fix(frontend): auto-close playground when all chat components are removed
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix(frontend): prevent send button from being pushed off-screen in chat input (#11556)
fix(frontend): prevent send button from being pushed off-screen in chat input
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix(test): fix image upload process in chat input test
fix(test): improve chat message verification in chat input test
fix: add data-testID to ensure the testcases pass (#11573)
Co-authored-by: Olayinka Adelakun olayinkaadelakun@mac.war.can.ibm.com
feat(tests): add data-testid attributes for improved test targeting in chat header and session selector
fix: session rename create new session instead of remaining existing one (#11576)
fix(frontend): resolve session rename bugs and prevent message loss
fix(playground): Fix session rename not showing messages immediately
[autofix.ci] apply automated fixes
fix(playground): Eliminate duplicate logic in session-selector
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix(test): playground test
fix: rename session and test shard 9 (#11581)
fix: pass renameLocalSession to ChatHeader to fix session rename creating new session
The session rename from the chat header's more menu was creating a new session instead of renaming the existing one. This was because renameLocalSession was not being passed to useEditSessionInfo in chat-header.tsx.
- Added renameLocalSession to ChatHeaderProps type
- Pass renameLocalSession from flow-page-sliding-container to ChatHeader
- Pass renameLocalSession to useEditSessionInfo in chat-header
fix(frontend): prevent menu stacking and ensure proper close behavior (#11592)
fix(frontend): prevent menu stacking and ensure proper close behavior
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix: playground tests shard 13 (#11593)
fix: update Basic Prompting test to use specific test IDs for playground combobox
fix: skip voice assistant interaction test for review
test: skip voice-assistant tests pending playground refactor
fix: tests shard 16 (#11594)
fix: update Basic Prompting test to use specific test IDs for playground combobox
fix: skip voice assistant interaction test for review
test: skip voice-assistant tests pending playground refactor
fix: update Financial Report Parser and Image Sentiment Analysis tests
Financial Report Parser: Use stop_building_button instead of button-stop (which doesn't exist in playground chat input), wait for it to appear before waiting for hidden state, and use div-chat-message instead of .markdown selector which was matching node descriptions
Image Sentiment Analysis: Replace unreliable dispatchEvent("drop") with setInputFiles() for file upload, add proper flow completion wait, and use img[alt$="chain.png"] to handle server timestamp prefix
- fix(frontend): prevent duplicate session creation when renaming in non fullscreen mode (#11596)
fix(frontend): prevent duplicate session creation when renaming in non-fullscreen mode
- fix: tests shard 18 - Memory Chatbot and Simple Agent Memory (#11597)
Memory Chatbot:
- Replace fragile selectors (getByRole, getByLabel) with data-testid
- Use chat-header-more-menu and message-logs-option for message logs
- Replace .isVisible() with proper expect().toBeVisible() assertions
- Simplify test by removing session deletion
Simple Agent Memory:
- Add waitForSelector for input before filling
- Use stop_building_button instead of getByRole("button", { name: "Stop" })
- Use proper wait pattern: visible → hidden for build completion
- Add user message verification with chat-message-User-* test IDs
- Add wait for div-chat-message before asserting
fix: update News Aggregator test to streamline API key handling and increase timeout (#11598)
fix: tests shard 18 - Memory Chatbot and Simple Agent Memory
Memory Chatbot:
- Replace fragile selectors (getByRole, getByLabel) with data-testid
- Use chat-header-more-menu and message-logs-option for message logs
- Replace .isVisible() with proper expect().toBeVisible() assertions
- Simplify test by removing session deletion
Simple Agent Memory:
- Add waitForSelector for input before filling
- Use stop_building_button instead of getByRole("button", { name: "Stop" })
- Use proper wait pattern: visible → hidden for build completion
- Add user message verification with chat-message-User-* test IDs
- Add wait for div-chat-message before asserting
fix: update News Aggregator test to streamline API key handling and increase timeout
fix: refactor Pokedex Agent test for improved readability and consistency
fix: update Pokedex Agent test to correctly retrieve chat message output and adjust length expectation
fix: improve Research Translation Loop test structure and readability
fix: enhance readability and consistency in Simple Agent Memory test
fix: generalBugs-shard-9 test
fix: simplify file upload handling in limit-file-size-upload test
fix: file upload test
fix: update chat interaction test for improved sender name handling
fix: add data-testid attribute to hidden file input for improved test targeting
fix: refactor test structure for improved readability and maintainability
fix: revert upload file util
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Lucas Oliveira lucas.edu.oli@hotmail.com Co-authored-by: keval shah kevalvirat@gmail.com Co-authored-by: Olfa Maslah olfamaslah@Olfas-MacBook-Pro.local Co-authored-by: Lucas Oliveira 62335616+lucaseduoli@users.noreply.github.com Co-authored-by: cristhianzl cristhian.lousa@gmail.com Co-authored-by: Viktor Avelino viktor.avelino@gmail.com Co-authored-by: olayinkaadelakun olayinka.adelakun@ibm.com Co-authored-by: Olayinka Adelakun olayinkaadelakun@mac.war.can.ibm.com Co-authored-by: Viktor Avelino 64113566+viktoravelino@users.noreply.github.com
- fix: Link visibility and 404 URL in Auto-save modal (#11476)
fix: Fix link visibility and URL in save flow modal
Co-authored-by: Viktor Avelino 64113566+viktoravelino@users.noreply.github.com
Fix: runflow toolmode input progation (#11348)
fix input propogation to subflow in runflow component in toolmode
refactor runflow
remove print calls
allow Data inputs and refactoring of runflow component with updated tests
misc
misc
persist tweaks in multi-input scenario
add regression tests
chore: update component index
ruff (tests)
checkout component index from main
chore: update component index
obfuscate error message
chore: update component index
chore: update component index
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Carlos Coelho 80289056+carlosrcoelho@users.noreply.github.com
bug: fix for embedding model input/output handler (#11591)
fix for embedding model input/output
code clean up for connect other models
[autofix.ci] apply automated fixes
update templates
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
fix: Alphabetical Sorting for "Models & Agents" Components (#11489)
fix: make sure model and agent are alphabetically sorted
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Co-authored-by: Olayinka Adelakun olayinkaadelakun@Olayinkas-MacBook-Pro.local Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Olayinka Adelakun olayinkaadelakun@mac.war.can.ibm.com
feat: update pre-release flow to be useable for qa (#11322)
feat: create prerelease dedicated to qa
allow prerelease versions dedicated to qa
chore: revert lfx dep to 0.2.1
chore: lfx pyproject version 0.2.1 for testing
feat: use pythin script to determine rc version
use a python script to auto incremenet rc version so we do not have to manually maintain what rc version we are on. add it to both release.yml and docker-build-v2.yml for pypi, docker and ghrc.
[autofix.ci] apply automated fixes
chore: change script vars to more meaningful ones
chore: add meaningful echos
chore: add quotes to pass empty str if no version
test: REVERT always pass ci REVERT
chore: add normalization to built ver tests
chore: remove unused uv environment set up
chore: add back in checkout code
chore: disable caching for ensure-lfx-published
chore: revert changes added after merge
fix: allow prerelase python install flag
chore: test base and main install as 1
chore: seperate base and main
chore: install main using local base first
chore: try using reinstall
chore: create locl directory and use it first
chore: try --no-deps
chore: langflow-*.whl
[autofix.ci] apply automated fixes
fix: try using unsafe-best-match
use ./local-packages --index-strategy unsafe-best-match
- fix: add a dynamic constriant for langflow base
add a dynamic constriant for langflow base during build-main. if this works I will need to go back and remove any unneeded cross-platform test changes
chore: revert to normal install
fix: add pre-main option to make build
chore: remove hyphen in make var
chore: keep propigation wait for pre-release
chore: revert cross-platform-test.yml changes
chore: use else ifdef and add test echos
chore: remove --no-soruces
chore: use ifeq
chore: revert lfx 0.2.1
chore: downgrade to python 3.12
ragstack-ai-knowledge-store does not support pythong 3.13
chore: add else to Makefile
chore: back to ifdef
chore: reset to Makefile to main and add pre again
chore: revert to python 3.13
chore: set compatability check to 3.12
hopeffuly fixes
Found 1 incompatibility
The package ragstack-ai-knowledge-store requires Python >=3.9, <3.13, but 3.13.11 is installed
[autofix.ci] apply automated fixes
fix: new flow reset.
chore: update LFX Determine version
fix: remove buil-lfx dep on lfx release
chore: remove more inputs.release_lfx if statments
fix: uv pip install --find-links
chore: create uv venv before uv pip install
chire: attempt for reinatll of local whls
fix: add OBJC_DISABLE_INITIALIZE_FORK_SAFETY: YES
add OBJC_DISABLE_INITIALIZE_FORK_SAFETY: YES to macos cross-platform test builds
[autofix.ci] apply automated fixes
chore: add back in ci step
fix(ci): correctly generate pre-release rc tags
[autofix.ci] apply automated fixes
feat: update pre-release flow to be useable for qa
Revert "feat: update pre-release flow to be useable for qa"
This reverts commit 22737729a2d0ed64ea774a30af070f0010cba9e1.
feat: update pre-release flow to be useable for qa
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
feat: update pre-release flow to be useable for qa
feat: update pre-release flow to be useable for qa
feat: update pre-release flow to be useable for qa
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: vijay kumar katuri vijaykaturi@vijays-MacBook-Air.local Co-authored-by: vijay kumar katuri vijay.katuri@ibm.com
fix: remove fe from backend image build (#11579)
asdf
build langflow-backend image correctly with no frontend
Update docker/build_and_push_backend.Dockerfile
Co-authored-by: Adam-Aghili 149833988+Adam-Aghili@users.noreply.github.com
Fix version check for backend image
Add data dir
Add npm back for mcp support
Co-authored-by: Adam-Aghili 149833988+Adam-Aghili@users.noreply.github.com
feat: adds inspection panel to show node inputs (#11263)
First prototype of inspection panel
fixed value not being set
Hide inputs that are not handles from the node, show everything else on the inspection panel
[autofix.ci] apply automated fixes
Implemented close button on inspection panel
Re-show inputs on the node
remove code from node toolbar
change code design on inspection panel
create feature flag
disable code and controls on node based on feature flag
adjusted inspection panel size
[autofix.ci] apply automated fixes
disable inspection panel with feature flag
Show only connections on component
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
Add output and logs to inspect panel
[autofix.ci] apply automated fixes
removed label from code button
filter handleinputs
added description on inspection panel header
remove tabs from inspection panel and use inspect output on node again
Make inspect panel have flexible height and disable its animation
[autofix.ci] apply automated fixes
Removed division from node name and inputs
Reduce some gaps
[autofix.ci] apply automated fixes
Add docs button
show docs just when exists
[autofix.ci] apply automated fixes
added custom 4.5 height and width
Changed node text sizes and icon size
[autofix.ci] apply automated fixes
Added freeze always to the node toolbar
Updated input size on inspect panel and output size on node
[autofix.ci] apply automated fixes
Implemented name and description editing
Changed paddings to match design
Added advanced fields and trigger
fixed advanced and pencil design
Implemented new prompt component with inline editing
[autofix.ci] apply automated fixes
Remove console logs
Dont fetch data on inspection panel
Made inputs appear to perform calculations but not show up on nodes
Removed LanguageModel from input types of model input in basic prompting
Changed inputs to not render when showParameter is false, in order to run the useEffects
Change tests to select node to change model, and then unselect all
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
deleted unused file
extract filtering logic
[autofix.ci] apply automated fixes
removed Made with Bob comments
Fix error catching
[autofix.ci] apply automated fixes
Fixed dropdown not avoiding collisions
Remove dead zone below the inspection panel
Fixed prompt validation being done even if input didnt change
Fixed handle fields appearing
Fixed handle not showing up on minimized components
Fixed condition for minimizing component
fixed minimized nodes behavior to minimize when only one input is connected
[autofix.ci] apply automated fixes
fixed component not showing up as hidden
changed data test id of advanced modal and advanced trigger, to fix tests
Fixed custom component not having pink code button
[autofix.ci] apply automated fixes
fixed node exhibition when feature flag is disabled, fixed minimized field
added show and hide advanced button on inspection panel
[autofix.ci] apply automated fixes
Fixed fit view to contain padding when a component is clicked
fixed freeze path test
change label
changed gpt model test
added separator between description and fields
Changed advanced padding
fixed gpt setup and image sentiment analysis
fixed mcp server test
fixed freeze spec
[autofix.ci] apply automated fixes
fixed logs setup
Fixed stop building test
Fixed minimization text
changed variable name
[autofix.ci] apply automated fixes
Filter tool mode
fixed prompt component unfocusing every time
[autofix.ci] apply automated fixes
fixed blog writer
added select anthropic model, fixed custom component generator that didnt show the code
fixed inspection panel advanced
fixed tests that used advanced fields
fixed gpt model timeout
[autofix.ci] apply automated fixes
fixed toolbar button collision
always show language model input
fixed tests
[autofix.ci] apply automated fixes
disabled advanced shortcut when inspection panel is enabled
fixed tests
[autofix.ci] apply automated fixes
fixed flicker
[autofix.ci] apply automated fixes
fix tests
[autofix.ci] apply automated fixes
push to trigger tests
[autofix.ci] apply automated fixes
Update select-gpt-model and select-anthropic-model utilities
feat: improve Inspection Panel UX
- Prevent Inspector Panel from opening when clicking input fields
- Add onMouseDown stopPropagation to input wrapper
- UX improvements for panel interactions
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
[autofix.ci] apply automated fixes
Enable node toolbar items when inspect panel is disabled, save user preference on local storage, code cleanup
[autofix.ci] apply automated fixes
Show handle inputs on advanced
Adjusted description and name
[autofix.ci] apply automated fixes
disable select nodes on drag
Try to fix tests that have controls open
[autofix.ci] apply automated fixes
fix run flow test and select gpt model
Revert "Fixed dropdown not avoiding collisions"
This reverts commit acf21900017ad2b459340c73becde06a894adf83.
fixed collisions on inspection panel
[autofix.ci] apply automated fixes
fixed select gpt model and parameter render input
updated similarity test
[autofix.ci] apply automated fixes
changed playwright config
fix test text sentiment and and elect-gpt-model
fixed jest tests
[autofix.ci] apply automated fixes
Fixed tests related to the advanced modal
[autofix.ci] apply automated fixes
fix textAreaModalComponent test
fix freeze test
fix edit-name-description-node-spec
fix edit-name-description-node-spec plus adding timeout
fix lanflowShortcut test
fix edit-name-description-node test
fix userSettings test
fixed tests
[autofix.ci] apply automated fixes
fixed jest tests
fixed test
Added unit tests for inspection panel
[autofix.ci] apply automated fixes
re-added code and fixed tests
fixed header design
[autofix.ci] apply automated fixes
Fixed shortcuts, fixed advanced mode
[autofix.ci] apply automated fixes
fixed tests
[autofix.ci] apply automated fixes
fixed unit tests
[autofix.ci] apply automated fixes
fixed tests and sortable list component
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Cristhian Zanforlin Lousa cristhian.lousa@gmail.com Co-authored-by: Olfa Maslah olfamaslah@Olfas-MacBook-Pro.local Co-authored-by: Rodrigo Nader rodrigonader@Mac.localdomain Co-authored-by: Claude Opus 4.5 noreply@anthropic.com
feat: create guardrails component (#11451)
Create guardrails.py
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Update guardrails.py
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
tests: add unit tests for GuardrailsComponent functionality
[autofix.ci] apply automated fixes
fix: resolve linting errors in GuardrailsComponent and tests
- Fix line length issues (E501) by breaking long strings
- Fix docstring formatting (D205, D415) in _check_guardrail
- Use ternary operator for response content extraction (SIM108)
- Replace magic value with named constant (PLR2004)
- Move return to else block per try/except best practices (TRY300)
- Catch specific exceptions instead of blind Exception (BLE001)
- Use list comprehension for checks_to_run (PERF401)
- Mark unused variables with underscore prefix (RUF059, F841)
- Add noqa comment for intentionally unused mock argument (ARG002)
[autofix.ci] apply automated fixes
refactor: address pr comments
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes
feat: enhance heuristic detection with configurable threshold and scoring system
refactor: simplify heuristic test assertions by removing unused variable
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
feat: enhance guardrail validation logic and input handling
refactor: streamline import statements and clean up whitespace in guardrails component
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Fix: update empty input handling tests to raise ValueError and refactor related assertions
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
feat: add Guardrails component with unit tests
Add LLM-based guardrails component for detecting PII, tokens/passwords, jailbreak attempts, and custom guardrail rules, along with comprehensive unit tests.
[autofix.ci] apply automated fixes
fix: try removing logs
[autofix.ci] apply automated fixes
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Viktor Avelino viktor.avelino@gmail.com Co-authored-by: Viktor Avelino 64113566+viktoravelino@users.noreply.github.com
fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513)
fix: hide MCP tool from model & agent
fix: removing mcp searching
fix testcases
fix testcases
Co-authored-by: Olayinka Adelakun olayinkaadelakun@Olayinkas-MacBook-Pro.local Co-authored-by: Carlos Coelho 80289056+carlosrcoelho@users.noreply.github.com Co-authored-by: Olayinka Adelakun olayinkaadelakun@mac.war.can.ibm.com
feat(auth): Pluggable AuthService with abstract base class (#10702)
feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added
register_servicedecorator to allow services to self-register with the ServiceManager. - Enhanced
ServiceManagerto support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points. - Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
- feat: Implement VariableService for managing environment variables
- Introduced VariableService class to handle environment variables with in-memory caching.
- Added methods for getting, setting, deleting, and listing variables.
- Included logging for service initialization and variable operations.
- Created an init.py file to expose VariableService in the package namespace.
- feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
- feat: Implement telemetry service with abstract base class and minimal logging functionality
- Added
BaseTelemetryServiceas an abstract base class defining the interface for telemetry services. - Introduced
TelemetryService, a lightweight implementation that logs telemetry events without sending data. - Created
__init__.pyto expose the telemetry service in the package namespace. - Ensured robust async methods for logging various telemetry events and handling exceptions.
- feat: Introduce BaseTracingService and implement minimal TracingService
- Added
BaseTracingServiceas an abstract base class defining the interface for tracing services. - Implemented
TracingService, a lightweight version that logs trace events without external integrations. - Included async methods for starting and ending traces, tracing components, and managing logs and outputs.
- Enhanced documentation for clarity on method usage and parameters.
- feat: Add unit tests for service registration decorators
- Introduced a new test suite for validating the functionality of the @register_service decorator.
- Implemented tests for various service types including LocalStorageService, TelemetryService, and TracingService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Included tests for custom service implementations and preservation of class functionality.
- Enhanced overall test coverage for the service registration mechanism.
- feat: Add comprehensive unit and integration tests for ServiceManager
- Introduced a suite of unit tests covering edge cases for service registration, lifecycle management, and dependency resolution.
- Implemented integration tests to validate service loading from configuration files and environment variables.
- Enhanced test coverage for various service types including LocalStorageService, TelemetryService, and VariableService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Ensured robust handling of error conditions and edge cases in service creation and configuration parsing.
- feat: Add unit and integration tests for minimal service implementations
- Introduced comprehensive unit tests for LocalStorageService, TelemetryService, TracingService, and VariableService.
- Implemented integration tests to validate the interaction between minimal services.
- Ensured robust coverage for file operations, service readiness, and exception handling.
- Enhanced documentation within tests for clarity on functionality and expected behavior.
docs: Add detailed documentation for pluggable services architecture and usage
feat: Add example configuration file for Langflow services
docs: Update PLUGGABLE_SERVICES.md to enhance architecture benefits section
- Revised the documentation to highlight the advantages of the pluggable service system.
- Replaced the migration guide with a detailed overview of features such as automatic discovery, lazy instantiation, dependency injection, and lifecycle management.
- Clarified examples of service registration and improved overall documentation for better understanding.
[autofix.ci] apply automated fixes
test(services): improve variable service teardown test with public API assertions
docs(pluggable-service-layer): add docstrings for service manager and implementations
fix: remove duplicate teardown method from LocalStorageService
During rebase, the teardown method was added in two locations (lines 57 and 220). Removed the duplicate at line 57, keeping the one at the end of the class (line 220) which is the more appropriate location for cleanup methods.
- fix(tests): update service tests for LocalStorageService constructor changes
- Add MockSessionService fixtures to test files that use ServiceManager
- Update LocalStorageService test instantiation to use mock session and settings services
- Fix service count assertions to account for MockSessionService in fixtures
- Remove duplicate class-level clean_manager fixtures in test_edge_cases.py
These changes fix test failures caused by LocalStorageService requiring session_service and settings_service parameters instead of just data_dir.
- fix(services): Harden service lifecycle methods
- Fixed Diamond Inheritance in LocalStorageService
- Added Circular Dependency Detection in _create_service_from_class
- Fixed StorageService.teardown to Have Default Implementation
docs: Update discovery order for pluggable services
fix(lfx): replace aiofile with aiofiles for CI compatibility
- The aiofile library uses native async I/O (libaio) which fails with EAGAIN (SystemError: 11, 'Resource temporarily unavailable') in containerized environments like GitHub Actions runners.
- Switch to aiofiles which uses thread pool executors, providing reliable async file I/O across all environments including containers.
[autofix.ci] apply automated fixes
fix(lfx): prevent race condition in plugin discovery
The discover_plugins() method had a TOCTOU (time-of-check to time-of-use) race condition. Since get() uses a keyed lock (per service name), multiple threads requesting different services could concurrently see _plugins_discovered=False and trigger duplicate plugin discovery.
Wrap discover_plugins() with self._lock to ensure thread-safe access to the _plugins_discovered flag and prevent concurrent discovery execution.
[autofix.ci] apply automated fixes
feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added
register_servicedecorator to allow services to self-register with the ServiceManager. - Enhanced
ServiceManagerto support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points. - Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
- feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
docs(pluggable-service-layer): add docstrings for service manager and implementations
feat(auth): implement abstract base class for authentication services and add auth service retrieval function
refactor(auth): move authentication logic from utils to AuthService
Consolidate all authentication methods into the AuthService class to enable pluggable authentication implementations. The utils module now contains thin wrappers that delegate to the registered auth service.
This allows alternative auth implementations (e.g., OIDC) to be registered via the pluggable services system while maintaining backward compatibility with existing code that imports from utils.
Changes:
- Move all auth logic (token creation, user validation, API key security, password hashing, encryption) to AuthService
- Refactor utils.py to delegate to get_auth_service()
- Update function signatures to remove settings_service parameter (now obtained from the service internally)
refactor(auth): update authentication methods and remove settings_service parameter
- Changed function to retrieve current user from access token instead of JWT.
- Updated AuthServiceFactory to specify SettingsService type in create method.
- Removed settings_service dependency from encryption and decryption functions, simplifying the code.
This refactor enhances the clarity and maintainability of the authentication logic.
- test(auth): add unit tests for AuthService and pluggable authentication
- Introduced comprehensive unit tests for AuthService, covering token creation, user validation, and authentication methods.
- Added tests for pluggable authentication, ensuring correct delegation to registered services.
- Enhanced test coverage for user authentication scenarios, including active/inactive user checks and token validation.
These additions improve the reliability and maintainability of the authentication system.
- fix(tests): update test cases to use AuthService and correct user retrieval method
- Replaced the mock for retrieving the current user from JWT to access token in the TestSuperuserCommand.
- Refactored unit tests for MCP encryption to utilize AuthService instead of a mock settings service, enhancing test reliability.
- Updated patch decorators in tests to reflect the new method of obtaining the AuthService, ensuring consistency across test cases.
These changes improve the accuracy and maintainability of the authentication tests.
docs(pluggable-services): add auth_service to ServiceType enum documentation
fix(auth): Add missing type hints and abstract methods to AuthServiceBase (#10710)
Co-authored-by: ogabrielluiz 24829397+ogabrielluiz@users.noreply.github.com Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
[autofix.ci] apply automated fixes
fix(auth): refactor api_key_security method to accept optional database session and improve error handling
feat(auth): enhance AuthServiceBase with detailed design principles and JIT provisioning methods
fix(auth): remove settings_service from encrypt/decrypt_api_key calls
After the pluggable auth refactor, encrypt_api_key and decrypt_api_key no longer take a settings_service argument - they get it internally.
- Update check_key import path in main.py (moved to crud module)
- Remove settings_service argument from calls in:
- api/v1/api_key.py
- api/v1/store.py
- services/variable/service.py
- services/variable/kubernetes.py
- Fix auth service to use session_scope() instead of non-existent get_db_service().with_session()
fix(auth): resolve type errors and duplicate definitions in pluggable auth branch
- Add missing imports in auth/utils.py (Final, HTTPException, status, logger, SettingsService) that prevented application startup
- Remove duplicate NoServiceRegisteredError class in lfx/services/manager.py
- Remove duplicate teardown method in lfx/services/storage/local.py
- Fix invalid settings_service parameter in encrypt_api_key calls in variable/service.py and variable/kubernetes.py
- Add proper type guards for check_key calls to satisfy mypy
- Add null checks for password fields in users.py endpoints
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
[autofix.ci] apply automated fixes
replace jose with pyjwt
[autofix.ci] apply automated fixes
starter projects
fix BE mcp tests
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
remive legacy usage of session
fix user tests
[autofix.ci] apply automated fixes
fix lfx tests
starter project update
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
fix mypy errors
fix mypy errors on tests
fix tests for decrypt_api_key
resolve conflicts in auth utils
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Add pluggable authentication factory with provider enum
Add SSO feature flags to AuthSettings
Add SSO fields to User model
Add SSO configuration loader with YAML support
Add unit tests for SSO configuration loader
Add SSO configuration database model and CRUD operations
Add CRUD operations for SSO configuration management
Add SSO configuration service supporting both file and database configs
Add example SSO configuration file with W3ID and other providers
Implement OIDC authentication service with discovery and JIT provisioning
Update AuthServiceFactory to instantiate OIDC service when SSO enabled
Improve JWT token validation and API key decryption error handling
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes
fix: resolve ruff linting errors in auth services and add sso-config.yaml to gitignore
[autofix.ci] apply automated fixes
fix: use correct function name get_current_user_from_access_token in login endpoint
fix: remove incorrect settings_service parameter from decrypt_api_key call
fix: correct encryption logic to properly detect plaintext vs encrypted values
[autofix.ci] apply automated fixes
fix tests
[autofix.ci] apply automated fixes
fix mypy errors
fix tests
[autofix.ci] apply automated fixes
fix ruff errors
fix tests in service
[autofix.ci] apply automated fixes
fix test security cors
[autofix.ci] apply automated fixes
fix webhook issues
modify component index
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
fix webhook tests
[autofix.ci] apply automated fixes
build component index
remove SSO functionality
[autofix.ci] apply automated fixes
fix variable creation
[autofix.ci] apply automated fixes
refactor: move MCPServerConfig schema to a separate file and update model_dump usage
refactor: streamline AuthServiceFactory to use service_class for instance creation
handle access token type
[autofix.ci] apply automated fixes
remove SSO fields from user model
[autofix.ci] apply automated fixes
replace is_encrypted back
fix mypy errors
remove sso config example
feat: Refactor framework agnostic auth service (#11565)
modify auth service layer
[autofix.ci] apply automated fixes
fix ruff errorrs
[autofix.ci] apply automated fixes
Update src/backend/base/langflow/services/deps.py
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
address review comments
[autofix.ci] apply automated fixes
fix ruff errors
remove cache
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
move base to lfx
[autofix.ci] apply automated fixes
resolve review comments
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
add auth protocol
[autofix.ci] apply automated fixes
revert models.py execption handling
revert wrappers to ensure backwards compatibility
fix http error code
fix FE tests
fix test_variables.py
[autofix.ci] apply automated fixes
fix ruff errors
fix tests
add wrappers for create token methods
fix ruff errors
[autofix.ci] apply automated fixes
update error message
modify status code for inactive user
fix ruff errors
fix patch for webhook tests
fix error message when getting active users
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Mike Pawlowski mike.pawlowski@datastax.com Co-authored-by: Mike Pawlowski mpawlow@ca.ibm.com Co-authored-by: Himavarsha 40851462+HimavarshaVS@users.noreply.github.com Co-authored-by: Copilot 198982749+Copilot@users.noreply.github.com Co-authored-by: ogabrielluiz 24829397+ogabrielluiz@users.noreply.github.com Co-authored-by: himavarshagoutham himavarshajan17@gmail.com Co-authored-by: Deon Sanchez 69873175+deon-sanchez@users.noreply.github.com Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
fix: Fix flaky Market Research test timeout on CI (#11665)
add wait for statement to prevent ra…