Skip to content

Commit 093cc42

Browse files
lucaseduoliautofix-ci[bot]ogabrielluizpedrocassalpachecoNadirJ
authored
feat: adds file management feature under feature flag, adds file dialog, adds files page (#6134)
* Create file management feature flag * Added file manager modal * Open file manager modal on clicking button * Added file dragger * Changed drag files component to be like the design * Optimize code * Implemented Import Files component * Implemented Recent Files component * Added Import Files and Recent Files into File Manager modal and added necessary icons * Added file rendering to be used on component * Added rendering of files selected on component * Added icons for Dropbox, GoogleDrive and Onedrive * Added dropdown menu for selecting import source * Added button to navigate to My Files * Added Files page, with Import button and search * Added files table * Updated uv and package lock * Added tooltip for file types * Added cursor pointer to file dragger * Added file options dropdown * Added files context menu to files page * Changed side of dropdown * Implemented search on modal * Added Inverted AWS icon * Added Import Button as morphed button * Modularized Morphing Menu * Updated Files Renderer height * Added File endpoint and types * Added Download File mutation * Added Get Files query * Added Rename File mutation * Added Upload File mutation * Added Use Upload File hook * Added drop of files on dragFilesComponent * Changed upload and rename to refetch get * Added delete endpoint * Changed get files to return correctly * Make FilesRendererComponent render with correct file type * Get files from correct endpoint * Exported sort by date * Added file_path to input file component * Added file_path to File Component Type * Implement showing correct files in FIle component and removing and adding selected files * Removed open * Changed selected files to handle ID * Handled sorting of recent results * Added sort By Boolean aux function * Updated to use path for selected files, and to not update the selected values when Files change * Change delete to handle id on params * Change upload file to return files IDs * Added duplicate file * Added void to download files without params * Select uploaded files * Added onUpload to select uploaded files * Added context menu options * Changed to handle selected files with path * Changed recentFiles to handle selected files with path * Changed FilesContextMenu params * Turned updatedAt optional * Added files to the Files Page * Changed file icons * used size as number and get type from path * Added correct CardsWrapComponent to home page * Fixed flows and components drop in home and empty pages * Fixed files drop in files management * Implemented types validation when uploading via modal * Fixed types for files page(allow all) * Filter files on modal by file types * Implemented multiple files handling when list parameter is true on FileInput * Hidden unused import feature * Added value correction if component values are incongruent * Fixed size validator * Add new size validator to use-upload-file * Changed icon for rename * removed replace function * Implemented renaming file * Added v2 api support * Added v2 api on file_management * Changed duplicate and download to include file type * Implemented renaming on clicking rename option on files page * Implemented rename on modal * Implemented empty state for search and no files * Changed text of empty state * Added variants to morphing menu * Fixed design of import from button and file search * Implemented modal height changes to keep initial height * Replace rename icon * Removed duplicate from modal * Added min height * Fixed height * Delete unused state * Fixed size of import from button * Added successful upload toast * Implement plus button when files are selected * implemented progress on uploads * Added error handling to uploaded file * Added delete confirmation * Added maxFIleSizeUpload to the dialog * Implement file upload retry * Readded import from to files * Added empty state to file browser * Added list on base file * [autofix.ci] apply automated fixes * Try to fix crash * Add check on files page * Added DragWrapComponent with dragging area and opacity * Added DragWrapComponent to files page * [autofix.ci] apply automated fixes * Added test ids for making tests for files page * Added example files for tests * Added boolean on await bootstrap to not open modal * Added files page tests * Added the extension on the file names * Added datatestid and made context menu close on delete * Added search with types * Add type to filetype * Added datatestid * Changed formatFileSize to show B instead of bytes * Updated files page test to use random names * Changed file upload test to test file management functionality * Modularized generate filename * Fixed files page test * Added ignore to pyproject * Dont retry and dont clear * Enable file management feature flag * Remove import from button * Refetch files on open of dialog * Added upload failed state to my files * Made not upload extensionless files * Add toast on delete file * removed standalone upload button * Increased padding * Updated row hover color * Update padding of component * Fixed dash lines * Fixed api routes on vite config * added api v2 endpoints to docker compose * Adds router v2 and v1 to parent router * Adds trailing slash to file management endpoint * Fixed dash array * Readded px-5 * Refactor dispatch methods and cleanup code for improved readability in middleware and app setup * [autofix.ci] apply automated fixes * Feat: add a support for OpenSearch and AstraDB components to yield the langchain vector_store connection object (#6998) * Added decorator, decorator test, and modified supported vector stores * Renamed module file name to reflect that this is for generic use, not use for graph rag * Updated docsstring * Improved documentation and modification to UT to support graph rag * Remove extra file from PR * rollback vector store template * [autofix.ci] apply automated fixes --------- Co-authored-by: Nadir J <[email protected]> Co-authored-by: cristhianzl <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * chore: Bump frontend package version and enhance test reliability (#7049) * chore: bump frontend package version from 0.1.2 to 1.2.0 in package-lock.json * test: enhance error message wait condition in generalBugs-shard-6.spec.ts Updated the test to wait for the error message to appear with a minimum length of 20 characters, improving reliability in detecting error states. This change replaces the previous fixed timeout with a dynamic check, enhancing the robustness of the test. * fix: Disable retries in usePostValidateComponentCode mutation (#7044) ♻️ (use-post-validate-component-code.ts): refactor usePostValidateComponentCode function to include retry and retryDelay options for better control over mutation behavior Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> * feat: Add updateHiddenOutputs helper function to manage output visibility (#6932) ✨ (update-hidden-outputs.ts): add a new helper function to update hidden outputs in the frontend CustomNodes module ♻️ (use-update-all-nodes.ts): refactor useUpdateAllNodes hook to update hidden outputs for all nodes in the frontend CustomNodes module ♻️ (use-update-node-code.ts): refactor useUpdateNodeCode hook to update hidden outputs for a specific node's code in the frontend CustomNodes module ♻️ (index.ts): refactor types in the flow module to include OutputFieldType for better type checking and consistency * docs: fix syntax errors at build (#7047) * docs-fix-linking-errors * docs-fix-codehike-errors * add-mit-license-field-to-package-json * add-tailwind-config-file --------- Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> * chore: update test durations (#6975) Co-authored-by: github-merge-queue <[email protected]> * docs: revised README (#7052) * revised README * fixed links * Update README.md Co-authored-by: Mendon Kissling <[email protected]> * Update README.md Co-authored-by: Mendon Kissling <[email protected]> * reverting --------- Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> Co-authored-by: Mendon Kissling <[email protected]> * test: Parameterize DeepSeek model component test correctly (#7019) test: Parameterize DeepSeek model component test with temperature and max tokens * fix: docker test trigger for poetry is wrong now is uv (#6743) also delete useless actions yml for now Signed-off-by: yihong0618 <[email protected]> Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> * docs: Pull request draft workflow (#7046) Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> * feat: Sync flows from FS to DB if flow has fs_path (#7043) * feat: Sync flows from FS to DB if flow has fs_path * Changes following review * Simplify flow_mtimes handling * Move sync_flows_from_fs to setup.py --------- Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> * ci: fix false positive on ci sucess status (#6868) ci: fix ci EXIT_CODE * docs: api build and run examples update (#6904) * run-endpoint-parameters * docs: Update build flow API documentation with detailed examples and parameters * table-cleanup * cleanup * Apply suggestions from code review Co-authored-by: KimberlyFields <[email protected]> * Apply suggestions from code review * comments-from-code-review * Update docs/docs/API-Reference/api-reference-api-examples.md Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> --------- Co-authored-by: KimberlyFields <[email protected]> Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> * build(deps): bump @babel/runtime-corejs3 from 7.26.9 to 7.26.10 in /docs (#7051) Bumps [@babel/runtime-corejs3](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime-corejs3) from 7.26.9 to 7.26.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime-corejs3) --- updated-dependencies: - dependency-name: "@babel/runtime-corejs3" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add a unified language model component. (#6994) * add a unified language model component with a few providers * [autofix.ci] apply automated fixes * fix errors and add tests * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Edwin Jose <[email protected]> * fix: Rename AgentQL components and add prompt parameter (#6834) * renamed components * add prompt parameter * [autofix.ci] apply automated fixes * prevent both query and prompt * ruff checks * [autofix.ci] apply automated fixes * amend conditional check * change error message * update templates * [autofix.ci] apply automated fixes * fix tags * fix tags in news aggregator --------- Co-authored-by: huwenjie912 <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Edwin Jose <[email protected]> * ref: Refactor tracing service (#7011) * Refactor tracing service * Remove start, flush and stop * fix: pass props to SvgAnthropicBox component (#7057) * fix: pass props to SvgAnthropicBox component * fix: pass props to SvgAnthropicBox component in light mode --------- Co-authored-by: Edwin Jose <[email protected]> * fix: check if component is in tool mode as well to display Tool Mode switch (#7042) feat: Enhance checkHasToolMode function to include tool mode detection Updated the checkHasToolMode function to account for an additional condition where the template is considered to be in tool mode if it contains exactly three fields: _type, code, and tools_metadata. This improves the function's ability to accurately determine the tool mode status of a template. * Fix: Text split issues related to separator (#6993) * fixes text split issues related to separator * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * format error fix * Update Vector Store RAG.json * [autofix.ci] apply automated fixes * 📝 (freeze.spec.ts): update test description to match the actual element being tested for better clarity and maintainability * ✅ (stop-building.spec.ts): update test description to improve clarity and maintainability ✅ (stop-button-playground.spec.ts): add wait time before filling search input to ensure proper loading and interaction with the element --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Edwin Jose <[email protected]> Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> Co-authored-by: cristhianzl <[email protected]> Co-authored-by: Ítalo Johnny <[email protected]> * docs: mcp integration (#6986) * docs: Add MCP (Model Context Protocol) integration documentation * docs: Update Astra DB MCP integration documentation * docs: Update Astra DB MCP integration documentation with Cursor connection section * docs: Update MCP integration guide with Datastax Astra DB connection details and prerequisites * Apply suggestions from code review Co-authored-by: KimberlyFields <[email protected]> * docs-peer-reviews * remove-cursor-integration * code-review * Apply suggestions from code review Co-authored-by: April I. Murphy <[email protected]> * docs: update MCP integration guide for clarity and consistency --------- Co-authored-by: KimberlyFields <[email protected]> Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> Co-authored-by: April I. Murphy <[email protected]> * feat: add regex pattern extractor component (#6015) * feat: add regex pattern extractor component * [autofix.ci] apply automated fixes * fix: consistent schema and cleaner code style * fix: type annotation in regex.py * [autofix.ci] apply automated fixes * Fix: regex component unit tests to match implementation behavior --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Ítalo Johnny <[email protected]> * docs: Add workflow to automate updates to docs/openapi.json (#7072) Co-authored-by: Mendon Kissling <[email protected]> * docs: test and update google oauth integration (#6949) * update-template * update-integration-doc * document-id * Apply suggestions from code review Co-authored-by: brian-f <[email protected]> --------- Co-authored-by: brian-f <[email protected]> * feat: add pokedex agent template (#6885) * add-pokedex-agent-json * update with the latest agent component * Update Pokédex Agent.json --------- Co-authored-by: Edwin Jose <[email protected]> * feat: apify starter template (#6784) * add social media agent apify template * example default values, update starter template * revert package-lock.json * format * note-cleanup * [autofix.ci] apply automated fixes * updates to the components * update the agent component --------- Co-authored-by: Edwin Jose <[email protected]> Co-authored-by: Mendon Kissling <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * feat: Needle Search Tool With Template (#6648) * feat: Needle Search Tool With Templte * lint * lint * lint * lint * refactor: Use Langflow Agent instead of CrewAI Agent * techdebt: adjust Needle component to use tool mode and remove tool component * lint * lint * Update Invoice Summarizer.json * Update Invoice Summarizer.json * update to the component * refactor: Use Needle icon svg * make format * component updates * update with latest agent component * updated a missing connection when updating the agent component * update template --------- Co-authored-by: Edwin Jose <[email protected]> * feat: New parser component with multiple input types and stringify add on (#6652) * update to parser * error handling * solve lint error and added tests * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes * Update parser.py * fix format errors * [autofix.ci] apply automated fixes * refactor: Remove hardcoded name attribute from ParserComponent * Update src/backend/base/langflow/components/processing/parser.py Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> * error fix * [autofix.ci] apply automated fixes * feat: mark ParserComponent as beta Added a beta flag to the ParserComponent to indicate its experimental status. --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> Co-authored-by: Ítalo Johnny <[email protected]> Co-authored-by: Rodrigo <[email protected]> * [autofix.ci] apply automated fixes * format * remove console log Co-authored-by: Copilot <[email protected]> * add space in docker compose Co-authored-by: Copilot <[email protected]> * [autofix.ci] apply automated fixes * Update package lock * Removed unused file * Fixed naming on handleChangeFiles * Update src/frontend/src/pages/MainPage/pages/filesPage/index.tsx Co-authored-by: Mike Fortman <[email protected]> * Used format file size * updated file browser to My Files * Updated cursor * Added error on selecting no files * Updated base FileInput name to Files * Added truncate and tooltip to files * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * merge fix * Update src/frontend/src/components/core/parameterRenderComponent/components/inputFileComponent/index.tsx * Update src/frontend/src/modals/fileManagerModal/components/filesContextMenuComponent/index.tsx * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * [autofix.ci] apply automated fixes (attempt 3/3) * Fixed files not maintaining state * Update info position * adjusted getCustomParameterTitle * removed console.log * updated utils.py * Added upload file util * Added check on upload-file to use old one if unavailable * Use new upload file function in Document QA * uploaded tests to use new UploadFile util * updated general bugs to use new uploadFile * updated upload-file * Update file mixin to have temp file * Update file component to not enable file management if temp file is true * Put temp file as true for chat input * Update starter projects * Updated starter templates * added tempFile condition on useEffect * Fixed invalid size alert * Fixed limit file test * Fixed backend test --------- Signed-off-by: yihong0618 <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]> Co-authored-by: Pedro Pacheco <[email protected]> Co-authored-by: Nadir J <[email protected]> Co-authored-by: cristhianzl <[email protected]> Co-authored-by: Mendon Kissling <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-merge-queue <[email protected]> Co-authored-by: Carter Rabasa <[email protected]> Co-authored-by: yihong <[email protected]> Co-authored-by: Ronnie Miller <[email protected]> Co-authored-by: Christophe Bornet <[email protected]> Co-authored-by: Ítalo Johnny <[email protected]> Co-authored-by: KimberlyFields <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Rodrigo Nader <[email protected]> Co-authored-by: Edwin Jose <[email protected]> Co-authored-by: wjwjtf <[email protected]> Co-authored-by: huwenjie912 <[email protected]> Co-authored-by: Eddie Ho <[email protected]> Co-authored-by: April I. Murphy <[email protected]> Co-authored-by: Raphael Valdetaro <[email protected]> Co-authored-by: brian-f <[email protected]> Co-authored-by: Jakub Kopecký <[email protected]> Co-authored-by: Jan Heimes <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Mike Fortman <[email protected]>
1 parent 5c6ebec commit 093cc42

File tree

115 files changed

+5452
-7049
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+5452
-7049
lines changed

deploy/docker-compose.override.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ services:
4242
labels:
4343
- traefik.enable=true
4444
- traefik.constraint-label-stack=${TRAEFIK_TAG?Variable not set}
45-
- traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=PathPrefix(`/api/v1`) || PathPrefix(`/docs`) || PathPrefix(`/health`)
45+
- traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=PathPrefix(`/api/v1`) || PathPrefix(`/api/v2`) || PathPrefix(`/docs`) || PathPrefix(`/health`)
4646
- traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=7860
4747

4848
frontend:
@@ -56,7 +56,7 @@ services:
5656
labels:
5757
- traefik.enable=true
5858
- traefik.constraint-label-stack=${TRAEFIK_TAG?Variable not set}
59-
- traefik.http.routers.${STACK_NAME?Variable not set}-celeryworker-http.rule=PathPrefix(`/api/v1`) || PathPrefix(`/docs`) || PathPrefix(`/health`)
59+
- traefik.http.routers.${STACK_NAME?Variable not set}-celeryworker-http.rule=PathPrefix(`/api/v1`) || PathPrefix(`/api/v2`) || PathPrefix(`/docs`) || PathPrefix(`/health`)
6060
- traefik.http.services.${STACK_NAME?Variable not set}-celeryworker.loadbalancer.server.port=7860
6161

6262
networks:

deploy/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ services:
8080
labels:
8181
- traefik.enable=true
8282
- traefik.constraint-label-stack=${TRAEFIK_TAG?Variable not set}
83-
- traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=PathPrefix(`/api/v1`) || PathPrefix(`/docs`) || PathPrefix(`/health`)
83+
- traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=PathPrefix(`/api/v1`) || PathPrefix(`/api/v2`) || PathPrefix(`/docs`) || PathPrefix(`/health`)
8484
- traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=7860
8585

8686
db:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ directory = "coverage"
253253

254254

255255
[tool.ruff]
256-
exclude = ["src/backend/base/langflow/alembic/*"]
256+
exclude = ["src/backend/base/langflow/alembic/*", "src/frontend/tests/assets/*"]
257257
line-length = 120
258258

259259
[tool.ruff.lint]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from langflow.api.health_check_router import health_check_router
22
from langflow.api.log_router import log_router
3-
from langflow.api.router import router, router_v2
3+
from langflow.api.router import router
44

5-
__all__ = ["health_check_router", "log_router", "router", "router_v2"]
5+
__all__ = ["health_check_router", "log_router", "router"]

src/backend/base/langflow/api/router.py

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,32 @@
1919
from langflow.api.v2 import files_router as files_router_v2
2020

2121
router = APIRouter(
22-
prefix="/api/v1",
22+
prefix="/api",
23+
)
24+
25+
router_v1 = APIRouter(
26+
prefix="/v1",
2327
)
2428

2529
router_v2 = APIRouter(
26-
prefix="/api/v2",
30+
prefix="/v2",
2731
)
2832

29-
router.include_router(chat_router)
30-
router.include_router(endpoints_router)
31-
router.include_router(validate_router)
32-
router.include_router(store_router)
33-
router.include_router(flows_router)
34-
router.include_router(users_router)
35-
router.include_router(api_key_router)
36-
router.include_router(login_router)
37-
router.include_router(variables_router)
38-
router.include_router(files_router)
39-
router.include_router(monitor_router)
40-
router.include_router(folders_router)
41-
router.include_router(starter_projects_router)
33+
router_v1.include_router(chat_router)
34+
router_v1.include_router(endpoints_router)
35+
router_v1.include_router(validate_router)
36+
router_v1.include_router(store_router)
37+
router_v1.include_router(flows_router)
38+
router_v1.include_router(users_router)
39+
router_v1.include_router(api_key_router)
40+
router_v1.include_router(login_router)
41+
router_v1.include_router(variables_router)
42+
router_v1.include_router(files_router)
43+
router_v1.include_router(monitor_router)
44+
router_v1.include_router(folders_router)
45+
router_v1.include_router(starter_projects_router)
4246

4347
router_v2.include_router(files_router_v2)
48+
49+
router.include_router(router_v1)
50+
router.include_router(router_v2)

src/backend/base/langflow/base/data/base_file.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,12 @@ def __init__(self, *args, **kwargs):
117117
_base_inputs = [
118118
FileInput(
119119
name="path",
120-
display_name="Path",
120+
display_name="Files",
121121
fileTypes=[], # Dynamically set in __init__
122122
info="", # Dynamically set in __init__
123123
required=False,
124-
value="",
124+
list=True,
125+
value=[],
125126
),
126127
HandleInput(
127128
name="file_path",

src/backend/base/langflow/components/inputs/chat.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ class ChatInput(ChatComponent):
6666
info="Files to be sent with the message.",
6767
advanced=True,
6868
is_list=True,
69+
temp_file=True,
6970
),
7071
MessageTextInput(
7172
name="background_color",

0 commit comments

Comments
 (0)