From 879e9df2c0cea470bf768df2b4bda4762f0e3617 Mon Sep 17 00:00:00 2001 From: "github-merge-queue[bot]" Date: Wed, 23 Jul 2025 14:04:38 +0000 Subject: [PATCH] deploy: d59c890dcee5040e9ca74c5de4aa94433d376067 --- 404.html | 2 +- about-langflow.html | 2 +- agent-tutorial.html | 2 +- agents-tools.html | 2 +- agents.html | 2 +- api-build.html | 2 +- api-files.html | 2 +- api-flows-run.html | 2 +- api-flows.html | 2 +- api-logs.html | 2 +- api-monitor.html | 2 +- api-projects.html | 2 +- api-reference-api-examples.html | 2 +- api-users.html | 2 +- api.html | 2 +- api/add-server.html | 2 +- api/add-user.html | 2 +- api/auto-login.html | 2 +- api/build-flow.html | 2 +- api/build-public-tmp.html | 2 +- api/build-vertex-stream.html | 2 +- api/build-vertex.html | 2 +- api/cancel-build.html | 2 +- api/check-if-store-has-api-key.html | 2 +- api/check-if-store-is-enabled.html | 2 +- api/check-installed-mcp-servers.html | 2 +- api/create-api-key-route.html | 2 +- api/create-flow.html | 2 +- api/create-flows.html | 2 +- api/create-folder-redirect.html | 2 +- api/create-project.html | 2 +- api/create-upload-file.html | 2 +- api/create-variable.html | 2 +- api/custom-component-update.html | 2 +- api/custom-component.html | 2 +- api/delete-all-files-1.html | 2 +- api/delete-all-files.html | 2 +- api/delete-api-key-route.html | 2 +- api/delete-file-1.html | 2 +- api/delete-file.html | 2 +- api/delete-files-batch.html | 2 +- api/delete-flow.html | 2 +- api/delete-folder-redirect.html | 2 +- api/delete-messages-session.html | 2 +- api/delete-messages.html | 2 +- api/delete-multiple-flows.html | 2 +- api/delete-project.html | 2 +- api/delete-server.html | 2 +- api/delete-user.html | 2 +- api/delete-variable.html | 2 +- api/delete-vertex-builds.html | 2 +- api/download-component.html | 2 +- api/download-file-1.html | 2 +- api/download-file-2.html | 2 +- api/download-file-redirect.html | 2 +- api/download-file.html | 2 +- api/download-files-batch.html | 2 +- api/download-image.html | 2 +- api/download-multiple-file.html | 2 +- api/download-profile-picture.html | 2 +- api/edit-file-name.html | 2 +- api/experimental-run-flow.html | 2 +- api/get-all.html | 2 +- api/get-api-keys-route.html | 2 +- api/get-build-events.html | 2 +- api/get-components.html | 2 +- api/get-config.html | 2 +- api/get-elevenlabs-voice-ids.html | 2 +- api/get-list-of-components-liked-by-user.html | 2 +- api/get-message-sessions.html | 2 +- api/get-messages.html | 2 +- api/get-server-endpoint.html | 2 +- api/get-servers.html | 2 +- api/get-starter-projects.html | 2 +- api/get-tags.html | 2 +- api/get-task-status.html | 2 +- api/get-transactions.html | 2 +- api/get-version.html | 2 +- api/get-vertex-builds.html | 2 +- api/handle-messages-1.html | 2 +- api/handle-messages.html | 2 +- api/handle-project-messages-with-slash.html | 2 +- api/handle-project-messages.html | 2 +- api/handle-project-sse.html | 2 +- api/handle-sse-1.html | 2 +- api/handle-sse.html | 2 +- api/health-check.html | 2 +- api/health.html | 2 +- api/install-mcp-config.html | 2 +- api/like-component.html | 2 +- api/list-files-1.html | 2 +- api/list-files-2.html | 2 +- api/list-files.html | 2 +- api/list-profile-pictures.html | 2 +- api/list-project-tools.html | 2 +- api/login-to-get-access-token.html | 2 +- api/logout.html | 2 +- api/logs.html | 2 +- api/patch-user.html | 2 +- api/post-validate-code.html | 2 +- api/post-validate-prompt.html | 2 +- api/process-1.html | 2 +- api/process.html | 2 +- api/read-all-users.html | 2 +- api/read-basic-examples.html | 2 +- api/read-current-user.html | 2 +- api/read-flow.html | 2 +- api/read-flows.html | 2 +- api/read-folder-redirect.html | 2 +- api/read-folders-redirect.html | 2 +- api/read-project.html | 2 +- api/read-projects.html | 2 +- api/read-public-flow.html | 2 +- api/read-variables.html | 2 +- api/refresh-token.html | 2 +- api/reset-password.html | 2 +- api/retrieve-vertices-order.html | 2 +- api/save-store-api-key.html | 2 +- api/share-component.html | 2 +- api/simplified-run-flow.html | 2 +- api/stream-logs.html | 2 +- api/update-flow.html | 2 +- api/update-folder-redirect.html | 2 +- api/update-message.html | 2 +- api/update-project-mcp-settings.html | 2 +- api/update-project.html | 2 +- api/update-server-endpoint.html | 2 +- api/update-session-id.html | 2 +- api/update-shared-component.html | 2 +- api/update-variable.html | 2 +- api/upload-file-1.html | 2 +- api/upload-file-2.html | 2 +- api/upload-file-redirect.html | 2 +- api/upload-file.html | 2 +- api/upload-user-file-1.html | 2 +- api/upload-user-file.html | 2 +- api/webhook-run-flow.html | 2 +- assets/js/{16ceb5d2.c0784422.js => 16ceb5d2.65c85829.js} | 2 +- assets/js/2ab0d4f5.0ee77f40.js | 1 - assets/js/2ab0d4f5.8d4399d8.js | 1 + assets/js/3a71638d.9e133460.js | 1 + assets/js/3a71638d.fbc85520.js | 1 - assets/js/8d3cdb68.65a1ac17.js | 1 - assets/js/8d3cdb68.d918db7d.js | 1 + assets/js/{e6c6a4d2.d62d3928.js => e6c6a4d2.8d3f3031.js} | 2 +- ...{runtime~main.6df31775.js => runtime~main.7074028a.js} | 2 +- basic-prompting.html | 2 +- blog-writer.html | 2 +- chat-with-files.html | 2 +- chat-with-rag.html | 2 +- components-agents.html | 2 +- components-bundle-components.html | 2 +- components-custom-components.html | 2 +- components-data.html | 2 +- components-embedding-models.html | 2 +- components-helpers.html | 2 +- components-io.html | 2 +- components-logic.html | 2 +- components-memories.html | 2 +- components-models.html | 2 +- components-processing.html | 2 +- components-prompts.html | 2 +- components-tools.html | 2 +- components-vector-stores.html | 2 +- concepts-components.html | 2 +- concepts-file-management.html | 2 +- concepts-flows-import.html | 2 +- concepts-flows.html | 2 +- concepts-overview.html | 2 +- concepts-playground.html | 2 +- concepts-publish.html | 2 +- concepts-voice-mode.html | 2 +- configuration-api-keys.html | 8 ++++---- configuration-authentication.html | 8 ++++---- configuration-cli.html | 2 +- configuration-custom-database.html | 2 +- configuration-global-variables.html | 2 +- contributing-bundles.html | 2 +- contributing-community.html | 2 +- contributing-component-tests.html | 2 +- contributing-components.html | 2 +- contributing-github-issues.html | 2 +- contributing-how-to-contribute.html | 2 +- contributing-telemetry.html | 2 +- contributing-templates.html | 2 +- data-types.html | 2 +- deployment-caddyfile.html | 2 +- deployment-docker.html | 2 +- deployment-gcp.html | 2 +- deployment-hugging-face-spaces.html | 2 +- deployment-kubernetes-dev.html | 2 +- deployment-kubernetes-prod.html | 2 +- deployment-overview.html | 2 +- deployment-prod-best-practices.html | 2 +- deployment-public-server.html | 2 +- deployment-railway.html | 2 +- deployment-render.html | 2 +- develop-application.html | 2 +- develop-overview.html | 2 +- document-qa.html | 2 +- environment-variables.html | 4 ++-- financial-report-parser.html | 2 +- get-started-installation.html | 2 +- get-started-quickstart.html | 2 +- index.html | 2 +- install-custom-dependencies.html | 2 +- integrations-apify.html | 2 +- integrations-arize.html | 2 +- integrations-assemblyai.html | 2 +- integrations-cleanlab.html | 2 +- integrations-composio.html | 2 +- integrations-docling.html | 2 +- integrations-google-big-query.html | 2 +- integrations-langfuse.html | 2 +- integrations-langsmith.html | 2 +- integrations-langwatch.html | 2 +- integrations-nvidia-g-assist.html | 2 +- integrations-nvidia-ingest-wsl2.html | 2 +- integrations-nvidia-ingest.html | 2 +- integrations-opik.html | 2 +- integrations-setup-google-cloud-vertex-ai-langflow.html | 2 +- integrations/notion/notion-agent-conversational.html | 2 +- integrations/notion/notion-agent-meeting-notes.html | 2 +- integrations/notion/setup.html | 2 +- logging.html | 2 +- luna-for-langflow.html | 2 +- mcp-client.html | 2 +- mcp-component-astra.html | 2 +- mcp-server.html | 2 +- mcp-tutorial.html | 2 +- memory-chatbot.html | 2 +- memory.html | 2 +- release-notes.html | 2 +- search.html | 2 +- sequential-agent.html | 2 +- session-id.html | 2 +- simple-agent.html | 2 +- sitemap.xml | 2 +- travel-planning-agent.html | 2 +- troubleshoot.html | 2 +- typescript-client.html | 2 +- vector-store-rag.html | 2 +- webhook.html | 2 +- 243 files changed, 247 insertions(+), 247 deletions(-) rename assets/js/{16ceb5d2.c0784422.js => 16ceb5d2.65c85829.js} (61%) delete mode 100644 assets/js/2ab0d4f5.0ee77f40.js create mode 100644 assets/js/2ab0d4f5.8d4399d8.js create mode 100644 assets/js/3a71638d.9e133460.js delete mode 100644 assets/js/3a71638d.fbc85520.js delete mode 100644 assets/js/8d3cdb68.65a1ac17.js create mode 100644 assets/js/8d3cdb68.d918db7d.js rename assets/js/{e6c6a4d2.d62d3928.js => e6c6a4d2.8d3f3031.js} (55%) rename assets/js/{runtime~main.6df31775.js => runtime~main.7074028a.js} (97%) diff --git a/404.html b/404.html index ec028aeae6..a1d3a57aa8 100644 --- a/404.html +++ b/404.html @@ -23,7 +23,7 @@ - + diff --git a/about-langflow.html b/about-langflow.html index ce8b6a2cd9..f5e88e5819 100644 --- a/about-langflow.html +++ b/about-langflow.html @@ -23,7 +23,7 @@ - + diff --git a/agent-tutorial.html b/agent-tutorial.html index d1429c5c00..f24876efb4 100644 --- a/agent-tutorial.html +++ b/agent-tutorial.html @@ -23,7 +23,7 @@ - + diff --git a/agents-tools.html b/agents-tools.html index 7365655454..6d9e7b9280 100644 --- a/agents-tools.html +++ b/agents-tools.html @@ -23,7 +23,7 @@ - + diff --git a/agents.html b/agents.html index 640f878752..c423ff89a0 100644 --- a/agents.html +++ b/agents.html @@ -23,7 +23,7 @@ - + diff --git a/api-build.html b/api-build.html index 5fb9d99fa8..58c6a0fd14 100644 --- a/api-build.html +++ b/api-build.html @@ -23,7 +23,7 @@ - + diff --git a/api-files.html b/api-files.html index 370c5b0b37..9b238188d7 100644 --- a/api-files.html +++ b/api-files.html @@ -23,7 +23,7 @@ - + diff --git a/api-flows-run.html b/api-flows-run.html index 2ac923ef69..d3f7acb341 100644 --- a/api-flows-run.html +++ b/api-flows-run.html @@ -23,7 +23,7 @@ - + diff --git a/api-flows.html b/api-flows.html index 9c0f4fcda8..904b65dcd4 100644 --- a/api-flows.html +++ b/api-flows.html @@ -23,7 +23,7 @@ - + diff --git a/api-logs.html b/api-logs.html index 65dcf58fd3..19459dfeca 100644 --- a/api-logs.html +++ b/api-logs.html @@ -23,7 +23,7 @@ - + diff --git a/api-monitor.html b/api-monitor.html index 41c1f54f29..0cbf4cee32 100644 --- a/api-monitor.html +++ b/api-monitor.html @@ -23,7 +23,7 @@ - + diff --git a/api-projects.html b/api-projects.html index 6aaafd60f9..fda6a59993 100644 --- a/api-projects.html +++ b/api-projects.html @@ -23,7 +23,7 @@ - + diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index 32b234337c..35b57a664a 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -23,7 +23,7 @@ - + diff --git a/api-users.html b/api-users.html index f32845a1e9..291dfe100e 100644 --- a/api-users.html +++ b/api-users.html @@ -23,7 +23,7 @@ - + diff --git a/api.html b/api.html index 0d0382a35a..d724080445 100644 --- a/api.html +++ b/api.html @@ -23,7 +23,7 @@ - + diff --git a/api/add-server.html b/api/add-server.html index 20801cf212..49da7a365f 100644 --- a/api/add-server.html +++ b/api/add-server.html @@ -23,7 +23,7 @@ - + diff --git a/api/add-user.html b/api/add-user.html index 71c1091ae6..c9b7449f35 100644 --- a/api/add-user.html +++ b/api/add-user.html @@ -23,7 +23,7 @@ - + diff --git a/api/auto-login.html b/api/auto-login.html index 94853528a2..8155ee92a8 100644 --- a/api/auto-login.html +++ b/api/auto-login.html @@ -23,7 +23,7 @@ - + diff --git a/api/build-flow.html b/api/build-flow.html index 064d9ba9de..2e64700b2d 100644 --- a/api/build-flow.html +++ b/api/build-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/build-public-tmp.html b/api/build-public-tmp.html index d9ae61bd41..b1eb23a301 100644 --- a/api/build-public-tmp.html +++ b/api/build-public-tmp.html @@ -23,7 +23,7 @@ - + diff --git a/api/build-vertex-stream.html b/api/build-vertex-stream.html index 932377dadf..20e3f09616 100644 --- a/api/build-vertex-stream.html +++ b/api/build-vertex-stream.html @@ -23,7 +23,7 @@ - + diff --git a/api/build-vertex.html b/api/build-vertex.html index 72c898b2aa..446ab2c61e 100644 --- a/api/build-vertex.html +++ b/api/build-vertex.html @@ -23,7 +23,7 @@ - + diff --git a/api/cancel-build.html b/api/cancel-build.html index ee12ec00b6..04c3e6f419 100644 --- a/api/cancel-build.html +++ b/api/cancel-build.html @@ -23,7 +23,7 @@ - + diff --git a/api/check-if-store-has-api-key.html b/api/check-if-store-has-api-key.html index f4f747c18c..0f61e948c3 100644 --- a/api/check-if-store-has-api-key.html +++ b/api/check-if-store-has-api-key.html @@ -23,7 +23,7 @@ - + diff --git a/api/check-if-store-is-enabled.html b/api/check-if-store-is-enabled.html index 94c25be715..b31e0d551a 100644 --- a/api/check-if-store-is-enabled.html +++ b/api/check-if-store-is-enabled.html @@ -23,7 +23,7 @@ - + diff --git a/api/check-installed-mcp-servers.html b/api/check-installed-mcp-servers.html index 56d6391459..d75b6c2393 100644 --- a/api/check-installed-mcp-servers.html +++ b/api/check-installed-mcp-servers.html @@ -23,7 +23,7 @@ - + diff --git a/api/create-api-key-route.html b/api/create-api-key-route.html index 3dbc29fffb..5523ad3dfa 100644 --- a/api/create-api-key-route.html +++ b/api/create-api-key-route.html @@ -23,7 +23,7 @@ - + diff --git a/api/create-flow.html b/api/create-flow.html index 10bc2da830..cc9a326904 100644 --- a/api/create-flow.html +++ b/api/create-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/create-flows.html b/api/create-flows.html index 772a20672b..42268f91e6 100644 --- a/api/create-flows.html +++ b/api/create-flows.html @@ -23,7 +23,7 @@ - + diff --git a/api/create-folder-redirect.html b/api/create-folder-redirect.html index 26845f631f..0eeb3a17e1 100644 --- a/api/create-folder-redirect.html +++ b/api/create-folder-redirect.html @@ -23,7 +23,7 @@ - + diff --git a/api/create-project.html b/api/create-project.html index 8057863c03..76726b5343 100644 --- a/api/create-project.html +++ b/api/create-project.html @@ -23,7 +23,7 @@ - + diff --git a/api/create-upload-file.html b/api/create-upload-file.html index 6cd7f4c940..9dfb8cbba3 100644 --- a/api/create-upload-file.html +++ b/api/create-upload-file.html @@ -23,7 +23,7 @@ - + diff --git a/api/create-variable.html b/api/create-variable.html index cdf809a8d6..fc8399fa54 100644 --- a/api/create-variable.html +++ b/api/create-variable.html @@ -23,7 +23,7 @@ - + diff --git a/api/custom-component-update.html b/api/custom-component-update.html index 67adf670a1..46ac2f7ac0 100644 --- a/api/custom-component-update.html +++ b/api/custom-component-update.html @@ -23,7 +23,7 @@ - + diff --git a/api/custom-component.html b/api/custom-component.html index 7df3ea90d3..e05e25d13e 100644 --- a/api/custom-component.html +++ b/api/custom-component.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-all-files-1.html b/api/delete-all-files-1.html index bb79aaba6c..bfdcfd54ad 100644 --- a/api/delete-all-files-1.html +++ b/api/delete-all-files-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-all-files.html b/api/delete-all-files.html index a4df0ed992..30a85b5667 100644 --- a/api/delete-all-files.html +++ b/api/delete-all-files.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-api-key-route.html b/api/delete-api-key-route.html index 8f3ebd2f6d..ada89d7b3d 100644 --- a/api/delete-api-key-route.html +++ b/api/delete-api-key-route.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-file-1.html b/api/delete-file-1.html index 372324ff85..80d148e49e 100644 --- a/api/delete-file-1.html +++ b/api/delete-file-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-file.html b/api/delete-file.html index a107178196..afdd2fa750 100644 --- a/api/delete-file.html +++ b/api/delete-file.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-files-batch.html b/api/delete-files-batch.html index 0841501d66..b9b8b824f2 100644 --- a/api/delete-files-batch.html +++ b/api/delete-files-batch.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-flow.html b/api/delete-flow.html index 74db2046d8..6d6392adca 100644 --- a/api/delete-flow.html +++ b/api/delete-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-folder-redirect.html b/api/delete-folder-redirect.html index 3907093419..beed8f5247 100644 --- a/api/delete-folder-redirect.html +++ b/api/delete-folder-redirect.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-messages-session.html b/api/delete-messages-session.html index d64f7a5620..7f08c583d0 100644 --- a/api/delete-messages-session.html +++ b/api/delete-messages-session.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-messages.html b/api/delete-messages.html index 103995463c..bd1d30b954 100644 --- a/api/delete-messages.html +++ b/api/delete-messages.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-multiple-flows.html b/api/delete-multiple-flows.html index b5516402c2..fdaf1110de 100644 --- a/api/delete-multiple-flows.html +++ b/api/delete-multiple-flows.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-project.html b/api/delete-project.html index 869d5220de..3bcf7a6f42 100644 --- a/api/delete-project.html +++ b/api/delete-project.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-server.html b/api/delete-server.html index 5b59be98bc..11f91eb35e 100644 --- a/api/delete-server.html +++ b/api/delete-server.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-user.html b/api/delete-user.html index d8f2c219b5..eadd5dfa2e 100644 --- a/api/delete-user.html +++ b/api/delete-user.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-variable.html b/api/delete-variable.html index c171e1523e..481ee947d3 100644 --- a/api/delete-variable.html +++ b/api/delete-variable.html @@ -23,7 +23,7 @@ - + diff --git a/api/delete-vertex-builds.html b/api/delete-vertex-builds.html index 5a2be3147a..44c616b211 100644 --- a/api/delete-vertex-builds.html +++ b/api/delete-vertex-builds.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-component.html b/api/download-component.html index 62ca84cb3a..1c9db5902e 100644 --- a/api/download-component.html +++ b/api/download-component.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-file-1.html b/api/download-file-1.html index c41ace485f..a1d60638df 100644 --- a/api/download-file-1.html +++ b/api/download-file-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-file-2.html b/api/download-file-2.html index 76ecbf98ad..ac7979e9ad 100644 --- a/api/download-file-2.html +++ b/api/download-file-2.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-file-redirect.html b/api/download-file-redirect.html index 2dfeb5ff48..11a52c9cb4 100644 --- a/api/download-file-redirect.html +++ b/api/download-file-redirect.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-file.html b/api/download-file.html index bbcd6ee4b6..bf0c535e18 100644 --- a/api/download-file.html +++ b/api/download-file.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-files-batch.html b/api/download-files-batch.html index a28327c2de..3b6a413a6e 100644 --- a/api/download-files-batch.html +++ b/api/download-files-batch.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-image.html b/api/download-image.html index e6220a065e..7718a67829 100644 --- a/api/download-image.html +++ b/api/download-image.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-multiple-file.html b/api/download-multiple-file.html index 074e3956bf..43a2d0179a 100644 --- a/api/download-multiple-file.html +++ b/api/download-multiple-file.html @@ -23,7 +23,7 @@ - + diff --git a/api/download-profile-picture.html b/api/download-profile-picture.html index ff948c6c1a..5e5ab87a70 100644 --- a/api/download-profile-picture.html +++ b/api/download-profile-picture.html @@ -23,7 +23,7 @@ - + diff --git a/api/edit-file-name.html b/api/edit-file-name.html index 098d7e729d..c584a327ad 100644 --- a/api/edit-file-name.html +++ b/api/edit-file-name.html @@ -23,7 +23,7 @@ - + diff --git a/api/experimental-run-flow.html b/api/experimental-run-flow.html index b26a8456ac..5e421d938a 100644 --- a/api/experimental-run-flow.html +++ b/api/experimental-run-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-all.html b/api/get-all.html index 9f831d00d2..b4863f27d9 100644 --- a/api/get-all.html +++ b/api/get-all.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-api-keys-route.html b/api/get-api-keys-route.html index fa5f51844d..c94a20a3cb 100644 --- a/api/get-api-keys-route.html +++ b/api/get-api-keys-route.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-build-events.html b/api/get-build-events.html index 1cb43b5bea..8100d7eb5a 100644 --- a/api/get-build-events.html +++ b/api/get-build-events.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-components.html b/api/get-components.html index b534ac5c30..b3efbc645d 100644 --- a/api/get-components.html +++ b/api/get-components.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-config.html b/api/get-config.html index d766bfc6e4..c3d6e3482d 100644 --- a/api/get-config.html +++ b/api/get-config.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-elevenlabs-voice-ids.html b/api/get-elevenlabs-voice-ids.html index 2ceee195fa..b46e3a95db 100644 --- a/api/get-elevenlabs-voice-ids.html +++ b/api/get-elevenlabs-voice-ids.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-list-of-components-liked-by-user.html b/api/get-list-of-components-liked-by-user.html index f94659e56b..b769d626f9 100644 --- a/api/get-list-of-components-liked-by-user.html +++ b/api/get-list-of-components-liked-by-user.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-message-sessions.html b/api/get-message-sessions.html index 860c97f6f6..e01ce6dc1e 100644 --- a/api/get-message-sessions.html +++ b/api/get-message-sessions.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-messages.html b/api/get-messages.html index 3daffcb9ec..caac26662a 100644 --- a/api/get-messages.html +++ b/api/get-messages.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-server-endpoint.html b/api/get-server-endpoint.html index 9ea034e46c..9cf4891ba2 100644 --- a/api/get-server-endpoint.html +++ b/api/get-server-endpoint.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-servers.html b/api/get-servers.html index af22f41569..bc63df1efd 100644 --- a/api/get-servers.html +++ b/api/get-servers.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-starter-projects.html b/api/get-starter-projects.html index 174c10a006..ba95de3f3c 100644 --- a/api/get-starter-projects.html +++ b/api/get-starter-projects.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-tags.html b/api/get-tags.html index ec7b7b28d1..e8da886f17 100644 --- a/api/get-tags.html +++ b/api/get-tags.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-task-status.html b/api/get-task-status.html index e4e4aa839f..3cabd73731 100644 --- a/api/get-task-status.html +++ b/api/get-task-status.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-transactions.html b/api/get-transactions.html index 6a6e5f9a25..2fd8e2a913 100644 --- a/api/get-transactions.html +++ b/api/get-transactions.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-version.html b/api/get-version.html index 1114855377..1891520ee5 100644 --- a/api/get-version.html +++ b/api/get-version.html @@ -23,7 +23,7 @@ - + diff --git a/api/get-vertex-builds.html b/api/get-vertex-builds.html index 49f604311f..196e1585f5 100644 --- a/api/get-vertex-builds.html +++ b/api/get-vertex-builds.html @@ -23,7 +23,7 @@ - + diff --git a/api/handle-messages-1.html b/api/handle-messages-1.html index 3ef02ead9b..a41ced66c7 100644 --- a/api/handle-messages-1.html +++ b/api/handle-messages-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/handle-messages.html b/api/handle-messages.html index bb4014af35..d25c6eabc5 100644 --- a/api/handle-messages.html +++ b/api/handle-messages.html @@ -23,7 +23,7 @@ - + diff --git a/api/handle-project-messages-with-slash.html b/api/handle-project-messages-with-slash.html index 40ebaa6bb7..bff4a0a47e 100644 --- a/api/handle-project-messages-with-slash.html +++ b/api/handle-project-messages-with-slash.html @@ -23,7 +23,7 @@ - + diff --git a/api/handle-project-messages.html b/api/handle-project-messages.html index beef248dc0..60b9758928 100644 --- a/api/handle-project-messages.html +++ b/api/handle-project-messages.html @@ -23,7 +23,7 @@ - + diff --git a/api/handle-project-sse.html b/api/handle-project-sse.html index 6476727697..0e9c5f632b 100644 --- a/api/handle-project-sse.html +++ b/api/handle-project-sse.html @@ -23,7 +23,7 @@ - + diff --git a/api/handle-sse-1.html b/api/handle-sse-1.html index 82f1a9b856..9db3c39d04 100644 --- a/api/handle-sse-1.html +++ b/api/handle-sse-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/handle-sse.html b/api/handle-sse.html index 48cff82d62..3ce8ddf730 100644 --- a/api/handle-sse.html +++ b/api/handle-sse.html @@ -23,7 +23,7 @@ - + diff --git a/api/health-check.html b/api/health-check.html index b8ac8703aa..54095992ab 100644 --- a/api/health-check.html +++ b/api/health-check.html @@ -23,7 +23,7 @@ - + diff --git a/api/health.html b/api/health.html index 04372a660d..68572f63fa 100644 --- a/api/health.html +++ b/api/health.html @@ -23,7 +23,7 @@ - + diff --git a/api/install-mcp-config.html b/api/install-mcp-config.html index 901e38af03..e84482fc9e 100644 --- a/api/install-mcp-config.html +++ b/api/install-mcp-config.html @@ -23,7 +23,7 @@ - + diff --git a/api/like-component.html b/api/like-component.html index 77eef43838..6f77ebe416 100644 --- a/api/like-component.html +++ b/api/like-component.html @@ -23,7 +23,7 @@ - + diff --git a/api/list-files-1.html b/api/list-files-1.html index 9f0c067644..00656165ea 100644 --- a/api/list-files-1.html +++ b/api/list-files-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/list-files-2.html b/api/list-files-2.html index 57ab306ff2..1ea82a46b8 100644 --- a/api/list-files-2.html +++ b/api/list-files-2.html @@ -23,7 +23,7 @@ - + diff --git a/api/list-files.html b/api/list-files.html index ed360a125c..6511cddc46 100644 --- a/api/list-files.html +++ b/api/list-files.html @@ -23,7 +23,7 @@ - + diff --git a/api/list-profile-pictures.html b/api/list-profile-pictures.html index 1f10d7eaa8..fb9e6b9a70 100644 --- a/api/list-profile-pictures.html +++ b/api/list-profile-pictures.html @@ -23,7 +23,7 @@ - + diff --git a/api/list-project-tools.html b/api/list-project-tools.html index 4e1d68bcfa..3584dfec29 100644 --- a/api/list-project-tools.html +++ b/api/list-project-tools.html @@ -23,7 +23,7 @@ - + diff --git a/api/login-to-get-access-token.html b/api/login-to-get-access-token.html index 9126e219f6..fc708cb458 100644 --- a/api/login-to-get-access-token.html +++ b/api/login-to-get-access-token.html @@ -23,7 +23,7 @@ - + diff --git a/api/logout.html b/api/logout.html index 9529399e6e..a18377f1ac 100644 --- a/api/logout.html +++ b/api/logout.html @@ -23,7 +23,7 @@ - + diff --git a/api/logs.html b/api/logs.html index e917dc97bb..b2c648b91f 100644 --- a/api/logs.html +++ b/api/logs.html @@ -23,7 +23,7 @@ - + diff --git a/api/patch-user.html b/api/patch-user.html index 7f04565039..e875f378e0 100644 --- a/api/patch-user.html +++ b/api/patch-user.html @@ -23,7 +23,7 @@ - + diff --git a/api/post-validate-code.html b/api/post-validate-code.html index c921e2ea9d..f7bf3d90b9 100644 --- a/api/post-validate-code.html +++ b/api/post-validate-code.html @@ -23,7 +23,7 @@ - + diff --git a/api/post-validate-prompt.html b/api/post-validate-prompt.html index c40e84c636..35c1efc26c 100644 --- a/api/post-validate-prompt.html +++ b/api/post-validate-prompt.html @@ -23,7 +23,7 @@ - + diff --git a/api/process-1.html b/api/process-1.html index 86d7ba21d3..d5482ec760 100644 --- a/api/process-1.html +++ b/api/process-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/process.html b/api/process.html index b3a23bf459..9785fd5529 100644 --- a/api/process.html +++ b/api/process.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-all-users.html b/api/read-all-users.html index c4153db112..b7770c7039 100644 --- a/api/read-all-users.html +++ b/api/read-all-users.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-basic-examples.html b/api/read-basic-examples.html index 029864c483..fa3e757d5f 100644 --- a/api/read-basic-examples.html +++ b/api/read-basic-examples.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-current-user.html b/api/read-current-user.html index 061987332d..85d94e1b4f 100644 --- a/api/read-current-user.html +++ b/api/read-current-user.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-flow.html b/api/read-flow.html index 4b47ae4d37..aa65c77187 100644 --- a/api/read-flow.html +++ b/api/read-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-flows.html b/api/read-flows.html index 4e584089a6..c48426fbf9 100644 --- a/api/read-flows.html +++ b/api/read-flows.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-folder-redirect.html b/api/read-folder-redirect.html index ab244a81a8..128f68e457 100644 --- a/api/read-folder-redirect.html +++ b/api/read-folder-redirect.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-folders-redirect.html b/api/read-folders-redirect.html index c4b756de04..c946ecb153 100644 --- a/api/read-folders-redirect.html +++ b/api/read-folders-redirect.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-project.html b/api/read-project.html index a450e7c385..04552c5e7e 100644 --- a/api/read-project.html +++ b/api/read-project.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-projects.html b/api/read-projects.html index 383ef4a11d..71539d6349 100644 --- a/api/read-projects.html +++ b/api/read-projects.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-public-flow.html b/api/read-public-flow.html index dcae3d9524..b66dce8962 100644 --- a/api/read-public-flow.html +++ b/api/read-public-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/read-variables.html b/api/read-variables.html index 3cc3db2a01..e5d08bc5f4 100644 --- a/api/read-variables.html +++ b/api/read-variables.html @@ -23,7 +23,7 @@ - + diff --git a/api/refresh-token.html b/api/refresh-token.html index 889d8423df..1d8483d875 100644 --- a/api/refresh-token.html +++ b/api/refresh-token.html @@ -23,7 +23,7 @@ - + diff --git a/api/reset-password.html b/api/reset-password.html index 2600f4d5e6..7740747654 100644 --- a/api/reset-password.html +++ b/api/reset-password.html @@ -23,7 +23,7 @@ - + diff --git a/api/retrieve-vertices-order.html b/api/retrieve-vertices-order.html index c99b99a825..1b778631d6 100644 --- a/api/retrieve-vertices-order.html +++ b/api/retrieve-vertices-order.html @@ -23,7 +23,7 @@ - + diff --git a/api/save-store-api-key.html b/api/save-store-api-key.html index b61c02cacc..d3a5c2d81c 100644 --- a/api/save-store-api-key.html +++ b/api/save-store-api-key.html @@ -23,7 +23,7 @@ - + diff --git a/api/share-component.html b/api/share-component.html index 1f6c757d5d..dadd1d6960 100644 --- a/api/share-component.html +++ b/api/share-component.html @@ -23,7 +23,7 @@ - + diff --git a/api/simplified-run-flow.html b/api/simplified-run-flow.html index 8d66b76148..5406c87ec4 100644 --- a/api/simplified-run-flow.html +++ b/api/simplified-run-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/stream-logs.html b/api/stream-logs.html index ce3a1467c6..abc3b3f34e 100644 --- a/api/stream-logs.html +++ b/api/stream-logs.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-flow.html b/api/update-flow.html index 417320ce3d..1d8ccacbbb 100644 --- a/api/update-flow.html +++ b/api/update-flow.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-folder-redirect.html b/api/update-folder-redirect.html index 9768ac3202..e5f4c93678 100644 --- a/api/update-folder-redirect.html +++ b/api/update-folder-redirect.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-message.html b/api/update-message.html index f7f1c20238..cf8b115754 100644 --- a/api/update-message.html +++ b/api/update-message.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-project-mcp-settings.html b/api/update-project-mcp-settings.html index 5a314e8e45..f3a91e88bc 100644 --- a/api/update-project-mcp-settings.html +++ b/api/update-project-mcp-settings.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-project.html b/api/update-project.html index 52a91bcffd..1a3395a660 100644 --- a/api/update-project.html +++ b/api/update-project.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-server-endpoint.html b/api/update-server-endpoint.html index 11383f83b0..6736f285c5 100644 --- a/api/update-server-endpoint.html +++ b/api/update-server-endpoint.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-session-id.html b/api/update-session-id.html index cc99ff8f29..dc7cf81e21 100644 --- a/api/update-session-id.html +++ b/api/update-session-id.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-shared-component.html b/api/update-shared-component.html index 6c5f3e586e..7610235e75 100644 --- a/api/update-shared-component.html +++ b/api/update-shared-component.html @@ -23,7 +23,7 @@ - + diff --git a/api/update-variable.html b/api/update-variable.html index e1e8737afa..704dac6502 100644 --- a/api/update-variable.html +++ b/api/update-variable.html @@ -23,7 +23,7 @@ - + diff --git a/api/upload-file-1.html b/api/upload-file-1.html index 60789f8323..10993a4cfb 100644 --- a/api/upload-file-1.html +++ b/api/upload-file-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/upload-file-2.html b/api/upload-file-2.html index 4db8fde50a..e8ce661da6 100644 --- a/api/upload-file-2.html +++ b/api/upload-file-2.html @@ -23,7 +23,7 @@ - + diff --git a/api/upload-file-redirect.html b/api/upload-file-redirect.html index da685caf76..cb35e90c65 100644 --- a/api/upload-file-redirect.html +++ b/api/upload-file-redirect.html @@ -23,7 +23,7 @@ - + diff --git a/api/upload-file.html b/api/upload-file.html index 1b0d506da5..63629ab432 100644 --- a/api/upload-file.html +++ b/api/upload-file.html @@ -23,7 +23,7 @@ - + diff --git a/api/upload-user-file-1.html b/api/upload-user-file-1.html index 17ffe6e3b9..2caa10e3b4 100644 --- a/api/upload-user-file-1.html +++ b/api/upload-user-file-1.html @@ -23,7 +23,7 @@ - + diff --git a/api/upload-user-file.html b/api/upload-user-file.html index d4550c212a..adbd7011ee 100644 --- a/api/upload-user-file.html +++ b/api/upload-user-file.html @@ -23,7 +23,7 @@ - + diff --git a/api/webhook-run-flow.html b/api/webhook-run-flow.html index d476056e8a..895e86e29f 100644 --- a/api/webhook-run-flow.html +++ b/api/webhook-run-flow.html @@ -23,7 +23,7 @@ - + diff --git a/assets/js/16ceb5d2.c0784422.js b/assets/js/16ceb5d2.65c85829.js similarity index 61% rename from assets/js/16ceb5d2.c0784422.js rename to assets/js/16ceb5d2.65c85829.js index be7f7fb252..bf0a4ccc35 100644 --- a/assets/js/16ceb5d2.c0784422.js +++ b/assets/js/16ceb5d2.65c85829.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1399],{11470:(e,n,o)=>{o.d(n,{A:()=>y});var t=o(96540),s=o(18215),r=o(23104),l=o(56347),c=o(205),i=o(57485),d=o(31682),a=o(70679);function p(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:n,children:o}=e;return(0,t.useMemo)(()=>{const e=n??function(e){return p(e).map(({props:{value:e,label:n,attributes:o,default:t}})=>({value:e,label:n,attributes:o,default:t}))}(o);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,o])}function x({value:e,tabValues:n}){return n.some(n=>n.value===e)}function L({queryString:e=!1,groupId:n}){const o=(0,l.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,i.aZ)(s),(0,t.useCallback)(e=>{if(!s)return;const n=new URLSearchParams(o.location.search);n.set(s,e),o.replace({...o.location,search:n.toString()})},[s,o])]}function j(e){const{defaultValue:n,queryString:o=!1,groupId:s}=e,r=h(e),[l,i]=(0,t.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!x({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const o=n.find(e=>e.default)??n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:n,tabValues:r})),[d,p]=L({queryString:o,groupId:s}),[j,A]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[o,s]=(0,a.Dv)(n);return[o,(0,t.useCallback)(e=>{n&&s.set(e)},[n,s])]}({groupId:s}),_=(()=>{const e=d??j;return x({value:e,tabValues:r})?e:null})();(0,c.A)(()=>{_&&i(_)},[_]);return{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!x({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),p(e),A(e)},[p,A,r]),tabValues:r}}var A=o(92303);const _={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var u=o(74848);function F({className:e,block:n,selectedValue:o,selectValue:t,tabValues:l}){const c=[],{blockElementScrollPositionUntilNextRender:i}=(0,r.a_)(),d=e=>{const n=e.currentTarget,s=c.indexOf(n),r=l[s].value;r!==o&&(i(n),t(r))},a=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const o=c.indexOf(e.currentTarget)+1;n=c[o]??c[0];break}case"ArrowLeft":{const o=c.indexOf(e.currentTarget)-1;n=c[o]??c[c.length-1];break}}n?.focus()};return(0,u.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:t})=>(0,u.jsx)("li",{role:"tab",tabIndex:o===e?0:-1,"aria-selected":o===e,ref:e=>{c.push(e)},onKeyDown:a,onClick:d,...t,className:(0,s.A)("tabs__item",_.tabItem,t?.className,{"tabs__item--active":o===e}),children:n??e},e))})}function f({lazy:e,children:n,selectedValue:o}){const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=r.find(e=>e.props.value===o);return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,u.jsx)("div",{className:"margin-top--md",children:r.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==o}))})}function E(e){const n=j(e);return(0,u.jsxs)("div",{className:(0,s.A)("tabs-container",_.tabList),children:[(0,u.jsx)(F,{...n,...e}),(0,u.jsx)(f,{...n,...e})]})}function y(e){const n=(0,A.A)();return(0,u.jsx)(E,{...e,children:p(e.children)},String(n))}},19365:(e,n,o)=>{o.d(n,{A:()=>l});o(96540);var t=o(18215);const s={tabItem:"tabItem_Ymn6"};var r=o(74848);function l({children:e,hidden:n,className:o}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,o),hidden:n,children:e})}},33439:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>x,assets:()=>h,chCodeConfig:()=>L,contentTitle:()=>p,default:()=>_,frontMatter:()=>a,metadata:()=>t,toc:()=>j});const t=JSON.parse('{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","source":"@site/docs/Configuration/environment-variables.mdx","sourceDirName":"Configuration","slug":"/environment-variables","permalink":"/environment-variables","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Environment variables","slug":"/environment-variables"},"sidebar":"docs","previous":{"title":"Global variables","permalink":"/configuration-global-variables"},"next":{"title":"Telemetry","permalink":"/contributing-telemetry"}}');var s=o(74848),r=o(28453),l=o(24754),c=o(11470),i=o(19365),d=o(28774);const a={title:"Environment variables",slug:"/environment-variables"},p=void 0,h={},x={annotations:l.hk,Code:l.Cy},L={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Configure environment variables",id:"configure-environment-variables",level:2},{value:"Set environment variables in your terminal",id:"configure-variables-terminal",level:3},{value:"Import environment variables from a .env file",id:"configure-variables-env-file",level:3},{value:"Precedence",id:"precedence",level:2},{value:"Supported environment variables",id:"supported-variables",level:2},{value:"Configure .env, override.conf, and tasks.json files",id:"configure-env-overrideconf-and-tasksjson-files",level:2},{value:"Set environment variables for Langflow Desktop",id:"set-environment-variables-for-langflow-desktop",level:2}];function A(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return x||u("CH",!1),x.Code||u("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(n.p,{children:"Langflow lets you configure a number of settings using environment variables."}),"\n",(0,s.jsx)(n.h2,{id:"configure-environment-variables",children:"Configure environment variables"}),"\n",(0,s.jsxs)(n.p,{children:["Langflow recognizes ",(0,s.jsx)(n.a,{href:"#supported-variables",children:"supported environment variables"})," from the following sources:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Environment variables that you've set in your terminal."}),"\n",(0,s.jsxs)(n.li,{children:["Environment variables that you've imported from a ",(0,s.jsx)(n.code,{children:".env"})," file using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option in the Langflow CLI."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can choose to use one source exclusively, or use both sources together.\nIf you choose to use both sources together, be aware that environment variables imported from a ",(0,s.jsx)(n.code,{children:".env"})," file take ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence"})," over those set in your terminal."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-terminal",children:"Set environment variables in your terminal"}),"\n",(0,s.jsx)(n.p,{children:"Run the following commands to set environment variables for your current terminal session:"}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" VARIABLE_NAME",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'VALUE'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"windows",label:"Windows",children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"docker",label:"Docker",children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -e ",props:{style:{color:"#79C0FF"}}},{content:"VARIABLE_NAME='VALUE' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(n.p,{children:["When you start Langflow, it looks for environment variables that you've set in your terminal.\nIf it detects a supported environment variable, then it automatically adopts the specified value, subject to ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence rules"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-env-file",children:"Import environment variables from a .env file"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"If Langflow is running, quit Langflow."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a ",(0,s.jsx)(n.code,{children:".env"})," file, and then open it in your preferred editor."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Define ",(0,s.jsx)(n.a,{href:"#supported-variables",children:"Langflow environment variables"})," in the ",(0,s.jsx)(n.code,{children:".env"})," file. For example:"]}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=localhost",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_ITEMS_LENGTH=100",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_TEXT_LENGTH=1000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["For additional examples, see the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,s.jsx)(n.code,{children:".env.example"})})," file in the Langflow repository."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Save and close ",(0,s.jsx)(n.code,{children:".env"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Start Langflow with your ",(0,s.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"local",label:"Local",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"docker",label:"Docker",children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --env-file ",props:{style:{color:"#79C0FF"}}},{content:".env ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(n.p,{children:["If your ",(0,s.jsx)(n.code,{children:".env"})," file isn't in the same directory, provide the path to your ",(0,s.jsx)(n.code,{children:".env"})," file."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["On startup, Langflow imports the environment variables from your ",(0,s.jsx)(n.code,{children:".env"})," file, as well as any that you ",(0,s.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),", and adopts their specified values."]}),"\n",(0,s.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,s.jsxs)(n.p,{children:["You can set Langflow environment variables in your terminal, in ",(0,s.jsx)(n.code,{children:".env"}),", and with ",(0,s.jsx)(n.a,{href:"/configuration-cli",children:"Langflow CLI options"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"If an environment variable is set in multiple places, the following hierarchy applies:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Langflow CLI options override ",(0,s.jsx)(n.code,{children:".env"})," and terminal variables."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:".env"})," overrides terminal variables."]}),"\n",(0,s.jsxs)(n.li,{children:["Terminal variables are used only if the variable isn't set in ",(0,s.jsx)(n.code,{children:".env"})," or Langflow CLI options."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For example, if you set ",(0,s.jsx)(n.code,{children:"LANGFLOW_PORT"})," in ",(0,s.jsx)(n.code,{children:".env"})," and your terminal, then Langflow uses the value from ",(0,s.jsx)(n.code,{children:".env"}),".\nSimilarly, if you run a Langflow CLI command with ",(0,s.jsx)(n.code,{children:"--port"}),", Langflow uses that port number instead of the ",(0,s.jsx)(n.code,{children:"LANGFLOW_PORT"})," in ",(0,s.jsx)(n.code,{children:".env"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"supported-variables",children:"Supported environment variables"}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the environment variables supported by Langflow."}),"\n",(0,s.jsx)("style",{children:"\n.env-table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n}\n.env-table td:first-child {\n width: 30%;\n font-family: var(--ifm-font-family-monospace);\n background: var(--prism-background);\n border-radius: 6px;\n padding: 8px;\n word-break: break-word;\n}\n.env-table td:nth-child(2) {\n width: 15%;\n}\n.env-table td:nth-child(3) {\n width: 15%;\n}\n.env-table td:nth-child(4) {\n width: 40%;\n}\n.env-table td {\n padding: 8px;\n vertical-align: top;\n}\n.env-prefix {\n opacity: 0.7;\n}\n.env-table tr {\n border-top: 1px solid var(--ifm-table-border-color);\n}\n.env-table code {\n white-space: nowrap;\n}\n"}),"\n",(0,s.jsx)("div",{class:"env-table",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Format"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"DO_NOT_TRACK"}),"DO_NOT_TRACK"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow does not track telemetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_LOGIN"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable automatic login for Langflow. Set to ",(0,s.jsx)(n.code,{children:"false"})," to disable automatic login and require the login form to log into the Langflow UI. Setting to ",(0,s.jsx)(n.code,{children:"false"})," requires ",(0,s.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})})," and ",(0,s.jsx)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})})," to be set. For more information, see ",(0,s.jsx)(n.a,{href:"/configuration-authentication",children:"Authentication"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable flow auto-saving.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving",children:[(0,s.jsx)(n.code,{children:"--auto-saving"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING_INTERVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING_INTERVAL"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1000"})}),(0,s.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving-interval",children:[(0,s.jsx)(n.code,{children:"--auto-saving-interval"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BACKEND_ONLY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BACKEND_ONLY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-backend-only",children:[(0,s.jsx)(n.code,{children:"--backend-only"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BUNDLE_URLS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BUNDLE_URLS"]}),(0,s.jsx)(n.td,{children:"List[String]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsxs)(n.td,{children:["A list of URLs from which to load component bundles and flows. Supports GitHub URLs. If ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled, flows from these bundles are loaded into the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CACHE_TYPE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"async"})}),(0,s.jsxs)(n.td,{children:["Set the cache type for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"async"}),", ",(0,s.jsx)(n.code,{children:"redis"}),", ",(0,s.jsx)(n.code,{children:"memory"}),", ",(0,s.jsx)(n.code,{children:"disk"}),".",(0,s.jsx)("br",{}),"If you set the type to ",(0,s.jsx)(n.code,{children:"redis"}),", then you must also set the following environment variables: ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_HOST"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_PORT"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_DB"}),", and ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_CACHE_EXPIRE"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_COMPONENTS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"COMPONENTS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow/components"})}),(0,s.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-components-path",children:[(0,s.jsx)(n.code,{children:"--components-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"See description"}),(0,s.jsxs)(n.td,{children:["Set the Langflow configuration directory where files, logs, and the Langflow database are stored. Defaults:",(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"macOS Desktop cache"}),": ",(0,s.jsx)(n.code,{children:"/Users//.langflow/cache"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"Windows Desktop cache"}),": ",(0,s.jsx)(n.code,{children:"C:\\Users\\\\AppData\\Roaming\\com.Langflow\\cache"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"OSS macOS/Windows/Linux/WSL (uv pip install) cache"}),": ",(0,s.jsx)(n.code,{children:"/lib/python3.12/site-packages/langflow/cache"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"OSS macOS/Windows/Linux/WSL (git clone) cache"}),": ",(0,s.jsx)(n.code,{children:"/src/backend/base/langflow/cache"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_URL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_URL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Set the database URL for Langflow. If not provided, Langflow uses a SQLite database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_USE_NOOP_DATABASE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"USE_NOOP_DATABASE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Use a no-op database, which avoids database connections and operations. Useful for running flows without a database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_CONNECTION_RETRY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_CONNECTION_RETRY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If True, Langflow tries to connect to the database again if it fails."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_POOL_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_POOL_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_MAX_OVERFLOW"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_MAX_OVERFLOW"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECT_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECT_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsx)(n.td,{children:"The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECTION_SETTINGS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS"]}),(0,s.jsx)(n.td,{children:"JSON"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["A JSON dictionary to centralize database connection parameters. Example: ",(0,s.jsx)(n.code,{children:'{"pool_size": 10, "max_overflow": 20}'})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DISABLE_TRACK_APIKEY_USAGE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DISABLE_TRACK_APIKEY_USAGE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["If set to ",(0,s.jsx)(n.code,{children:"true"}),", disables tracking of API key usage (",(0,s.jsx)(n.code,{children:"total_uses"})," and ",(0,s.jsx)(n.code,{children:"last_used_at"}),") to avoid database contention under high concurrency."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_ENABLE_LOG_RETRIEVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"ENABLE_LOG_RETRIEVAL"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Enable log retrieval functionality."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FALLBACK_TO_ENV_VAR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FALLBACK_TO_ENV_VAR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If enabled, ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FRONTEND_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FRONTEND_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"./frontend"})}),(0,s.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-frontend-path",children:[(0,s.jsx)(n.code,{children:"--frontend-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HEALTH_CHECK_MAX_RETRIES"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5"})}),(0,s.jsxs)(n.td,{children:["Set the maximum number of retries for the health check.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-health-check-max-retries",children:[(0,s.jsx)(n.code,{children:"--health-check-max-retries"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-host",children:[(0,s.jsx)(n.code,{children:"--host"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LANGCHAIN_CACHE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LANGCHAIN_CACHE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InMemoryCache"})}),(0,s.jsxs)(n.td,{children:["Type of cache to use. Possible values: ",(0,s.jsx)(n.code,{children:"InMemoryCache"}),", ",(0,s.jsx)(n.code,{children:"SQLiteCache"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-cache",children:[(0,s.jsx)(n.code,{children:"--cache"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_LEVEL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_LEVEL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"INFO"})}),(0,s.jsxs)(n.td,{children:["Set the logging level for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"DEBUG"}),", ",(0,s.jsx)(n.code,{children:"INFO"}),", ",(0,s.jsx)(n.code,{children:"WARNING"}),", ",(0,s.jsx)(n.code,{children:"ERROR"}),", ",(0,s.jsx)(n.code,{children:"CRITICAL"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the log file. If this option is not set, logs are written to stdout."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_RETRIEVER_BUFFER_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10000"})}),(0,s.jsxs)(n.td,{children:["Set the buffer size for log retrieval. Only used if ",(0,s.jsx)(n.code,{children:"LANGFLOW_ENABLE_LOG_RETRIEVAL"})," is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_FILE_SIZE_UPLOAD"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})}),(0,s.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-max-file-size-upload",children:[(0,s.jsx)(n.code,{children:"--max-file-size-upload"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_ITEMS_LENGTH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_ITEMS_LENGTH"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})}),(0,s.jsx)(n.td,{children:"Maximum number of items to store and display in the UI. Lists longer than this will be truncated when displayed in the UI. Does not affect data passed between components nor outputs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_TEXT_LENGTH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_TEXT_LENGTH"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1000"})}),(0,s.jsx)(n.td,{children:"Maximum number of characters to store and display in the UI. Responses longer than this will be truncated when displayed in the UI. Does not truncate responses between components nor outputs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is set to False, Langflow does not enable the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is set to True, Langflow sends progress notifications in the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_NEW_USER_IS_ACTIVE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"NEW_USER_IS_ACTIVE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_OPEN_BROWSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"OPEN_BROWSER"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Open the system web browser on startup.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-open-browser",children:[(0,s.jsx)(n.code,{children:"--open-browser"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"7860"})}),(0,s.jsxs)(n.td,{children:["The port on which the Langflow server runs. The server automatically selects a free port if the specified port is in use.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-port",children:[(0,s.jsx)(n.code,{children:"--port"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Expose Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"9090"})}),(0,s.jsx)(n.td,{children:"Set the port on which Langflow exposes Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_CACHE_EXPIRE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_CACHE_EXPIRE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3600"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_DB"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_DB"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"0"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PORT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"6379"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Password for Redis authentication when using Redis cache type."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REMOVE_API_KEYS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REMOVE_API_KEYS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-remove-api-keys",children:[(0,s.jsx)(n.code,{children:"--remove-api-keys"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SAVE_DB_IN_CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Save the Langflow database in ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (",(0,s.jsx)(n.code,{children:"false"}),"), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SECRET_KEY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SECRET_KEY"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Auto-generated"}),(0,s.jsx)(n.td,{children:"Key used for encrypting sensitive data like API keys. If a key is not provided, a secure key is auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable the Langflow Store.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-store",children:[(0,s.jsx)(n.code,{children:"--store"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE_ENVIRONMENT_VARIABLES"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Store environment variables as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CREATE_STARTER_PROJECTS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CREATE_STARTER_PROJECTS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If this option is enabled, Langflow creates starter projects during initialization. Set to ",(0,s.jsx)(n.code,{children:"false"})," to skip all starter project creation and updates."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_UPDATE_STARTER_PROJECTS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"UPDATE_STARTER_PROJECTS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow updates starter projects with the latest component versions when initializing."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the name for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-username",children:[(0,s.jsx)(n.code,{children:"superuser --username"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the password for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-password",children:[(0,s.jsx)(n.code,{children:"superuser --password"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"VARIABLES_TO_GET_FROM_ENVIRONMENT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Comma-separated list of environment variables to get from the environment and store as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOAD_FLOWS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOAD_FLOWS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Path to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKER_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKER_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"300"})}),(0,s.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-worker-timeout",children:[(0,s.jsx)(n.code,{children:"--worker-timeout"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKERS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKERS"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1"})}),(0,s.jsxs)(n.td,{children:["Number of worker processes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-workers",children:[(0,s.jsx)(n.code,{children:"--workers"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_CERT_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_CERT_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL certificate file on the local system."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_KEY_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_KEY_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL key file on the local system."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"SKIP_AUTH_AUTO_LOGIN"}),"SKIP_AUTH_AUTO_LOGIN"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["If set to ",(0,s.jsx)(n.code,{children:"true"}),", disables automatic login and enforces authentication, regardless of the value of ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"}),"."]})]})]})]})}),"\n",(0,s.jsx)(n.h2,{id:"configure-env-overrideconf-and-tasksjson-files",children:"Configure .env, override.conf, and tasks.json files"}),"\n",(0,s.jsx)(n.p,{children:"The following examples show how to configure Langflow using environment variables in different scenarios."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsxs)(i.A,{value:"env",label:".env File",default:!0,children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:".env"})," file is a text file that contains key-value pairs of environment variables."]}),(0,s.jsxs)(n.p,{children:["Create or edit a file named ",(0,s.jsx)(n.code,{children:".env"})," in your project root directory and add your configuration:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=localhost",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_ITEMS_LENGTH=100",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_TEXT_LENGTH=1000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]})]}),(0,s.jsxs)(i.A,{value:"systemd",label:"Systemd service",children:[(0,s.jsx)(n.p,{children:"A systemd service configuration file configures Linux system services."}),(0,s.jsxs)(n.p,{children:["To add environment variables, create or edit a service configuration file and add an ",(0,s.jsx)(n.code,{children:"override.conf"})," file. This file allows you to override the default environment variables for the service."]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'"override.conf"',focus:"",code:{lines:[{tokens:[{content:"[Service]",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"DO_NOT_TRACK=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_LOGIN=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING_INTERVAL=1000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BACKEND_ONLY=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BUNDLE_URLS=[\\"',props:{style:{color:"#A5D6FF"}}},{content:"https://github.com/user/repo/commit/hash\\",props:{style:{color:"#C9D1D9"}}},{content:'"]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CACHE_TYPE=async"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_COMPONENTS_PATH=/path/to/components/"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR=/path/to/config"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DEV=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_FALLBACK_TO_ENV_VAR=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HOST=localhost"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_ITEMS_LENGTH=100"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_TEXT_LENGTH=1000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_ENV=container_json"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_FILE=logs/langflow.log"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_LEVEL=error"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_OPEN_BROWSER=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_PORT=7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_REMOVE_API_KEYS=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SECRET_KEY=somesecretkey"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER=adminuser"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER_PASSWORD=adminpass"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKER_TIMEOUT=60000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKERS=3"',props:{style:{color:"#A5D6FF"}}}]}],lang:"ini"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["For more information on systemd, see the ",(0,s.jsx)(n.a,{href:"https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_systemd_unit_files_to_customize_and_optimize_your_system/assembly_working-with-systemd-unit-files_working-with-systemd",children:"Red Hat documentation"}),"."]})]}),(0,s.jsxs)(i.A,{value:"vscode",label:"VSCode tasks.json",children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"tasks.json"})," file located in ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," is a configuration file for development environments using Visual Studio Code."]}),(0,s.jsxs)(n.p,{children:["Create or edit the ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," file in your project root:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".vscode/tasks.json"',focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "version"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2.0.0"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "env"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "DO_NOT_TRACK"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_LOGIN"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING_INTERVAL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BACKEND_ONLY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BUNDLE_URLS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[',props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:"https://github.com/user/repo/commit/hash",props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:']"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CACHE_TYPE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"async"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_COMPONENTS_PATH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/components/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/config/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DATABASE_URL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"postgresql://postgres:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DEV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_FALLBACK_TO_ENV_VAR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HEALTH_CHECK_MAX_RETRIES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HOST"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"localhost"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LANGCHAIN_CACHE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"InMemoryCache"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_FILE_SIZE_UPLOAD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"10000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_ITEMS_LENGTH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"100"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_TEXT_LENGTH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_ENV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"container_csv"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_FILE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow.log"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_LEVEL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"error"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_OPEN_BROWSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_PORT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"7860"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_REMOVE_API_KEYS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SAVE_DB_IN_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SECRET_KEY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"somesecretkey"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE_ENVIRONMENT_VARIABLES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminuser"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER_PASSWORD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminpass"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKER_TIMEOUT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"60000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKERS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tasks"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "label"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow backend"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"shell"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'". ./langflownightly/Scripts/activate && langflow run"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "isBackground"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "problemMatcher"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["To run Langflow using the above VSCode ",(0,s.jsx)(n.code,{children:"tasks.json"})," file, in the VSCode command palette, select ",(0,s.jsx)(n.strong,{children:"Tasks: Run Task"})," > ",(0,s.jsx)(n.strong,{children:"langflow backend"}),"."]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"set-environment-variables-for-langflow-desktop",children:"Set environment variables for Langflow Desktop"}),"\n",(0,s.jsx)(n.p,{children:"Environment variables set in your terminal aren't automatically available to GUI-based applications like Langflow Desktop when you launch them from the Windows or macOS GUI."}),"\n",(0,s.jsx)(n.p,{children:"For Windows, this means any GUI-based app launched from the Start menu, desktop shortcuts, or Windows Explorer."}),"\n",(0,s.jsx)(n.p,{children:"For macOS, this means any GUI-based app launched from Finder, Spotlight, Launchpad, or the Dock."}),"\n",(0,s.jsx)(n.p,{children:"To set environment variables for Langflow Desktop, you need to use specific commands or files, depending on your OS."}),"\n",(0,s.jsxs)(c.A,{groupId:"",children:[(0,s.jsxs)(i.A,{value:"macOS",label:"macOS",default:!0,children:[(0,s.jsxs)(n.p,{children:["Langflow Desktop for macOS cannot automatically use variables set in your terminal, such as those in",(0,s.jsx)(n.code,{children:".zshrc"})," or ",(0,s.jsx)(n.code,{children:".bash_profile"}),", when launched from the macOS GUI."]}),(0,s.jsxs)(n.p,{children:["To make environment variables available to GUI apps on macOS, you need to use ",(0,s.jsx)(n.code,{children:"launchctl"})," with a ",(0,s.jsx)(n.code,{children:"plist"})," file:"]}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Create the ",(0,s.jsx)(n.code,{children:"LaunchAgents"})," directory if it doesn't exist:"]}),"\n"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"mkdir ",props:{style:{color:"#FFA657"}}},{content:"-p ",props:{style:{color:"#79C0FF"}}},{content:"~/Library/LaunchAgents",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),(0,s.jsxs)(n.ol,{start:"2",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.code,{children:"LaunchAgents"})," directory, create a ",(0,s.jsx)(n.code,{children:".plist"})," file called ",(0,s.jsx)(n.code,{children:"dev.langflow.env"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Add the following content to ",(0,s.jsx)(n.code,{children:"dev.langflow.env.plist"}),", and then add, change, or remove Langflow environment variables as needed for your configuration.\nThis example sets the ",(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})," environment variable for all GUI apps launched from the macOS GUI."]}),"\n"]}),"\n"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"',props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"<",props:{style:{color:"#C9D1D9"}}},{content:"plist ",props:{style:{color:"#7EE787"}}},{content:"version",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"1.0"',props:{style:{color:"#A5D6FF"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">Label",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">dev.langflow.env",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">ProgramArguments",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"array",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">launchctl",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">setenv",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">LANGFLOW_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">/Users/your_user/custom/config",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">RunAtLoad",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#7EE787"}}},{content:"/>",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"xml"},annotations:[]}]}),(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:["Load the file with ",(0,s.jsx)(n.code,{children:"launchctl"}),":"]}),"\n"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"launchctl ",props:{style:{color:"#FFA657"}}},{content:"load ~/Library/LaunchAgents/dev.langflow.env.plist",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})]}),(0,s.jsxs)(i.A,{value:"System Properties",label:"System Properties",children:[(0,s.jsxs)(n.p,{children:["Langflow Desktop for Windows cannot automatically use variables set in your terminal, such as those defined with ",(0,s.jsx)(n.code,{children:"set"})," in ",(0,s.jsx)(n.code,{children:"cmd"})," or ",(0,s.jsx)(n.code,{children:"$env:VAR=..."})," in PowerShell, when launched from the Windows GUI."]}),(0,s.jsxs)(n.p,{children:["To make environment variables available to the Langflow Desktop app, you must set them at the user or system level using the ",(0,s.jsx)(n.strong,{children:"System Properties"})," interface or the Terminal."]}),(0,s.jsx)(n.p,{children:"To set environment variables using the System Properties interface, do the following:"}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Press ",(0,s.jsx)("kbd",{children:"Win + R"}),", enter ",(0,s.jsx)(n.code,{children:"SystemPropertiesAdvanced"}),", and then press ",(0,s.jsx)("kbd",{children:"Enter"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Environment Variables"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Under ",(0,s.jsx)(n.strong,{children:"User variables"}),", click ",(0,s.jsx)(n.strong,{children:"New"}),"."]}),"\n"]}),(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["To apply the setting to all users, select ",(0,s.jsx)(n.strong,{children:"System variables"}),"."]})}),(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:["Enter the name of the Langflow variable you want to set, such as ",(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"}),", and the desired value, such as ",(0,s.jsx)(n.code,{children:"C:\\Users\\your_user\\.langflow_config"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"OK"})," to save the variable."]}),"\n",(0,s.jsx)(n.li,{children:"Repeat until you have set all necessary Langflow environment variables."}),"\n",(0,s.jsx)(n.li,{children:"Launch or restart Langflow Desktop to apply the environment variables."}),"\n"]})]}),(0,s.jsxs)(i.A,{value:"Powershell",label:"Powershell",children:[(0,s.jsx)(n.p,{children:"To define environment variables for Windows using PowerShell, do the following:"}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Enter the name of the Langflow variable you want to set, such as ",(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"}),", and the desired value, such as ",(0,s.jsx)(n.code,{children:"C:\\Users\\your_user\\.langflow_config"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To set an environment variable for the current user:"}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}},{content:"System.Environment",props:{style:{color:"#FF7B72"}}},{content:"]::SetEnvironmentVariable(",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"C:\\Users\\your_user\\.langflow_config"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"powershell"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To set an environment variable for all users (you must have Administrator priveleges):"}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}},{content:"System.Environment",props:{style:{color:"#FF7B72"}}},{content:"]::SetEnvironmentVariable(",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"C:\\Langflow\\Config"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"powershell"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Repeat until you have set all necessary Langflow environment variables."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Launch or restart Langflow Desktop to apply the environment variables."}),"\n"]}),"\n"]})]})]})]})}function _(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(A,{...e})}):A(e)}function u(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1399],{11470:(e,n,o)=>{o.d(n,{A:()=>y});var t=o(96540),s=o(18215),r=o(23104),l=o(56347),c=o(205),i=o(57485),d=o(31682),a=o(70679);function p(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:n,children:o}=e;return(0,t.useMemo)(()=>{const e=n??function(e){return p(e).map(({props:{value:e,label:n,attributes:o,default:t}})=>({value:e,label:n,attributes:o,default:t}))}(o);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,o])}function x({value:e,tabValues:n}){return n.some(n=>n.value===e)}function L({queryString:e=!1,groupId:n}){const o=(0,l.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,i.aZ)(s),(0,t.useCallback)(e=>{if(!s)return;const n=new URLSearchParams(o.location.search);n.set(s,e),o.replace({...o.location,search:n.toString()})},[s,o])]}function j(e){const{defaultValue:n,queryString:o=!1,groupId:s}=e,r=h(e),[l,i]=(0,t.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!x({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const o=n.find(e=>e.default)??n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:n,tabValues:r})),[d,p]=L({queryString:o,groupId:s}),[j,A]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[o,s]=(0,a.Dv)(n);return[o,(0,t.useCallback)(e=>{n&&s.set(e)},[n,s])]}({groupId:s}),_=(()=>{const e=d??j;return x({value:e,tabValues:r})?e:null})();(0,c.A)(()=>{_&&i(_)},[_]);return{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!x({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),p(e),A(e)},[p,A,r]),tabValues:r}}var A=o(92303);const _={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var u=o(74848);function F({className:e,block:n,selectedValue:o,selectValue:t,tabValues:l}){const c=[],{blockElementScrollPositionUntilNextRender:i}=(0,r.a_)(),d=e=>{const n=e.currentTarget,s=c.indexOf(n),r=l[s].value;r!==o&&(i(n),t(r))},a=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const o=c.indexOf(e.currentTarget)+1;n=c[o]??c[0];break}case"ArrowLeft":{const o=c.indexOf(e.currentTarget)-1;n=c[o]??c[c.length-1];break}}n?.focus()};return(0,u.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:t})=>(0,u.jsx)("li",{role:"tab",tabIndex:o===e?0:-1,"aria-selected":o===e,ref:e=>{c.push(e)},onKeyDown:a,onClick:d,...t,className:(0,s.A)("tabs__item",_.tabItem,t?.className,{"tabs__item--active":o===e}),children:n??e},e))})}function f({lazy:e,children:n,selectedValue:o}){const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=r.find(e=>e.props.value===o);return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,u.jsx)("div",{className:"margin-top--md",children:r.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==o}))})}function E(e){const n=j(e);return(0,u.jsxs)("div",{className:(0,s.A)("tabs-container",_.tabList),children:[(0,u.jsx)(F,{...n,...e}),(0,u.jsx)(f,{...n,...e})]})}function y(e){const n=(0,A.A)();return(0,u.jsx)(E,{...e,children:p(e.children)},String(n))}},19365:(e,n,o)=>{o.d(n,{A:()=>l});o(96540);var t=o(18215);const s={tabItem:"tabItem_Ymn6"};var r=o(74848);function l({children:e,hidden:n,className:o}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,o),hidden:n,children:e})}},33439:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>x,assets:()=>h,chCodeConfig:()=>L,contentTitle:()=>p,default:()=>_,frontMatter:()=>a,metadata:()=>t,toc:()=>j});const t=JSON.parse('{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","source":"@site/docs/Configuration/environment-variables.mdx","sourceDirName":"Configuration","slug":"/environment-variables","permalink":"/environment-variables","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Environment variables","slug":"/environment-variables"},"sidebar":"docs","previous":{"title":"Global variables","permalink":"/configuration-global-variables"},"next":{"title":"Telemetry","permalink":"/contributing-telemetry"}}');var s=o(74848),r=o(28453),l=o(24754),c=o(11470),i=o(19365),d=o(28774);const a={title:"Environment variables",slug:"/environment-variables"},p=void 0,h={},x={annotations:l.hk,Code:l.Cy},L={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Configure environment variables",id:"configure-environment-variables",level:2},{value:"Set environment variables in your terminal",id:"configure-variables-terminal",level:3},{value:"Import environment variables from a .env file",id:"configure-variables-env-file",level:3},{value:"Precedence",id:"precedence",level:2},{value:"Supported environment variables",id:"supported-variables",level:2},{value:"Configure .env, override.conf, and tasks.json files",id:"configure-env-overrideconf-and-tasksjson-files",level:2},{value:"Set environment variables for Langflow Desktop",id:"set-environment-variables-for-langflow-desktop",level:2}];function A(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return x||u("CH",!1),x.Code||u("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(n.p,{children:"Langflow lets you configure a number of settings using environment variables."}),"\n",(0,s.jsx)(n.h2,{id:"configure-environment-variables",children:"Configure environment variables"}),"\n",(0,s.jsxs)(n.p,{children:["Langflow recognizes ",(0,s.jsx)(n.a,{href:"#supported-variables",children:"supported environment variables"})," from the following sources:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Environment variables that you've set in your terminal."}),"\n",(0,s.jsxs)(n.li,{children:["Environment variables that you've imported from a ",(0,s.jsx)(n.code,{children:".env"})," file using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option in the Langflow CLI."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can choose to use one source exclusively, or use both sources together.\nIf you choose to use both sources together, be aware that environment variables imported from a ",(0,s.jsx)(n.code,{children:".env"})," file take ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence"})," over those set in your terminal."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-terminal",children:"Set environment variables in your terminal"}),"\n",(0,s.jsx)(n.p,{children:"Run the following commands to set environment variables for your current terminal session:"}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" VARIABLE_NAME",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'VALUE'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"windows",label:"Windows",children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"docker",label:"Docker",children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -e ",props:{style:{color:"#79C0FF"}}},{content:"VARIABLE_NAME='VALUE' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(n.p,{children:["When you start Langflow, it looks for environment variables that you've set in your terminal.\nIf it detects a supported environment variable, then it automatically adopts the specified value, subject to ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence rules"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-env-file",children:"Import environment variables from a .env file"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"If Langflow is running, quit Langflow."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a ",(0,s.jsx)(n.code,{children:".env"})," file, and then open it in your preferred editor."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Define ",(0,s.jsx)(n.a,{href:"#supported-variables",children:"Langflow environment variables"})," in the ",(0,s.jsx)(n.code,{children:".env"})," file. For example:"]}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=localhost",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_ITEMS_LENGTH=100",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_TEXT_LENGTH=1000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["For additional examples, see the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,s.jsx)(n.code,{children:".env.example"})})," file in the Langflow repository."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Save and close ",(0,s.jsx)(n.code,{children:".env"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Start Langflow with your ",(0,s.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"local",label:"Local",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"docker",label:"Docker",children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --env-file ",props:{style:{color:"#79C0FF"}}},{content:".env ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(n.p,{children:["If your ",(0,s.jsx)(n.code,{children:".env"})," file isn't in the same directory, provide the path to your ",(0,s.jsx)(n.code,{children:".env"})," file."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["On startup, Langflow imports the environment variables from your ",(0,s.jsx)(n.code,{children:".env"})," file, as well as any that you ",(0,s.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),", and adopts their specified values."]}),"\n",(0,s.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,s.jsxs)(n.p,{children:["You can set Langflow environment variables in your terminal, in ",(0,s.jsx)(n.code,{children:".env"}),", and with ",(0,s.jsx)(n.a,{href:"/configuration-cli",children:"Langflow CLI options"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"If an environment variable is set in multiple places, the following hierarchy applies:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Langflow CLI options override ",(0,s.jsx)(n.code,{children:".env"})," and terminal variables."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:".env"})," overrides terminal variables."]}),"\n",(0,s.jsxs)(n.li,{children:["Terminal variables are used only if the variable isn't set in ",(0,s.jsx)(n.code,{children:".env"})," or Langflow CLI options."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For example, if you set ",(0,s.jsx)(n.code,{children:"LANGFLOW_PORT"})," in ",(0,s.jsx)(n.code,{children:".env"})," and your terminal, then Langflow uses the value from ",(0,s.jsx)(n.code,{children:".env"}),".\nSimilarly, if you run a Langflow CLI command with ",(0,s.jsx)(n.code,{children:"--port"}),", Langflow uses that port number instead of the ",(0,s.jsx)(n.code,{children:"LANGFLOW_PORT"})," in ",(0,s.jsx)(n.code,{children:".env"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"supported-variables",children:"Supported environment variables"}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the environment variables supported by Langflow."}),"\n",(0,s.jsx)("style",{children:"\n.env-table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n}\n.env-table td:first-child {\n width: 30%;\n font-family: var(--ifm-font-family-monospace);\n background: var(--prism-background);\n border-radius: 6px;\n padding: 8px;\n word-break: break-word;\n}\n.env-table td:nth-child(2) {\n width: 15%;\n}\n.env-table td:nth-child(3) {\n width: 15%;\n}\n.env-table td:nth-child(4) {\n width: 40%;\n}\n.env-table td {\n padding: 8px;\n vertical-align: top;\n}\n.env-prefix {\n opacity: 0.7;\n}\n.env-table tr {\n border-top: 1px solid var(--ifm-table-border-color);\n}\n.env-table code {\n white-space: nowrap;\n}\n"}),"\n",(0,s.jsx)("div",{class:"env-table",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Format"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"DO_NOT_TRACK"}),"DO_NOT_TRACK"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow does not track telemetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_LOGIN"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable automatic login for Langflow. Set to ",(0,s.jsx)(n.code,{children:"false"})," to disable automatic login and require the login form to log into the Langflow UI. Setting to ",(0,s.jsx)(n.code,{children:"false"})," requires ",(0,s.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})})," and ",(0,s.jsx)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})})," to be set. For more information, see ",(0,s.jsx)(n.a,{href:"/configuration-authentication",children:"Authentication"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable flow auto-saving.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving",children:[(0,s.jsx)(n.code,{children:"--auto-saving"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING_INTERVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING_INTERVAL"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1000"})}),(0,s.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving-interval",children:[(0,s.jsx)(n.code,{children:"--auto-saving-interval"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BACKEND_ONLY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BACKEND_ONLY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-backend-only",children:[(0,s.jsx)(n.code,{children:"--backend-only"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BUNDLE_URLS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BUNDLE_URLS"]}),(0,s.jsx)(n.td,{children:"List[String]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsxs)(n.td,{children:["A list of URLs from which to load component bundles and flows. Supports GitHub URLs. If ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled, flows from these bundles are loaded into the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CACHE_TYPE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"async"})}),(0,s.jsxs)(n.td,{children:["Set the cache type for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"async"}),", ",(0,s.jsx)(n.code,{children:"redis"}),", ",(0,s.jsx)(n.code,{children:"memory"}),", ",(0,s.jsx)(n.code,{children:"disk"}),".",(0,s.jsx)("br",{}),"If you set the type to ",(0,s.jsx)(n.code,{children:"redis"}),", then you must also set the following environment variables: ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_HOST"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_PORT"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_DB"}),", and ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_CACHE_EXPIRE"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_COMPONENTS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"COMPONENTS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow/components"})}),(0,s.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-components-path",children:[(0,s.jsx)(n.code,{children:"--components-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"See description"}),(0,s.jsxs)(n.td,{children:["Set the Langflow configuration directory where files, logs, and the Langflow database are stored. Defaults:",(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"macOS Desktop cache"}),": ",(0,s.jsx)(n.code,{children:"/Users//.langflow/cache"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"Windows Desktop cache"}),": ",(0,s.jsx)(n.code,{children:"C:\\Users\\\\AppData\\Roaming\\com.Langflow\\cache"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"OSS macOS/Windows/Linux/WSL (uv pip install) cache"}),": ",(0,s.jsx)(n.code,{children:"/lib/python3.12/site-packages/langflow/cache"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"OSS macOS/Windows/Linux/WSL (git clone) cache"}),": ",(0,s.jsx)(n.code,{children:"/src/backend/base/langflow/cache"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_URL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_URL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Set the database URL for Langflow. If not provided, Langflow uses a SQLite database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_USE_NOOP_DATABASE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"USE_NOOP_DATABASE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Use a no-op database, which avoids database connections and operations. Useful for running flows without a database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_CONNECTION_RETRY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_CONNECTION_RETRY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If True, Langflow tries to connect to the database again if it fails."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_POOL_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_POOL_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_MAX_OVERFLOW"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_MAX_OVERFLOW"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECT_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECT_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsx)(n.td,{children:"The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECTION_SETTINGS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS"]}),(0,s.jsx)(n.td,{children:"JSON"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["A JSON dictionary to centralize database connection parameters. Example: ",(0,s.jsx)(n.code,{children:'{"pool_size": 10, "max_overflow": 20}'})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DISABLE_TRACK_APIKEY_USAGE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DISABLE_TRACK_APIKEY_USAGE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["If set to ",(0,s.jsx)(n.code,{children:"true"}),", disables tracking of API key usage (",(0,s.jsx)(n.code,{children:"total_uses"})," and ",(0,s.jsx)(n.code,{children:"last_used_at"}),") to avoid database contention under high concurrency."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_ENABLE_LOG_RETRIEVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"ENABLE_LOG_RETRIEVAL"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Enable log retrieval functionality."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FALLBACK_TO_ENV_VAR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FALLBACK_TO_ENV_VAR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If enabled, ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FRONTEND_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FRONTEND_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"./frontend"})}),(0,s.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-frontend-path",children:[(0,s.jsx)(n.code,{children:"--frontend-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HEALTH_CHECK_MAX_RETRIES"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5"})}),(0,s.jsxs)(n.td,{children:["Set the maximum number of retries for the health check.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-health-check-max-retries",children:[(0,s.jsx)(n.code,{children:"--health-check-max-retries"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-host",children:[(0,s.jsx)(n.code,{children:"--host"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LANGCHAIN_CACHE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LANGCHAIN_CACHE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InMemoryCache"})}),(0,s.jsxs)(n.td,{children:["Type of cache to use. Possible values: ",(0,s.jsx)(n.code,{children:"InMemoryCache"}),", ",(0,s.jsx)(n.code,{children:"SQLiteCache"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-cache",children:[(0,s.jsx)(n.code,{children:"--cache"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_LEVEL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_LEVEL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"INFO"})}),(0,s.jsxs)(n.td,{children:["Set the logging level for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"DEBUG"}),", ",(0,s.jsx)(n.code,{children:"INFO"}),", ",(0,s.jsx)(n.code,{children:"WARNING"}),", ",(0,s.jsx)(n.code,{children:"ERROR"}),", ",(0,s.jsx)(n.code,{children:"CRITICAL"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the log file. If this option is not set, logs are written to stdout."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_RETRIEVER_BUFFER_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10000"})}),(0,s.jsxs)(n.td,{children:["Set the buffer size for log retrieval. Only used if ",(0,s.jsx)(n.code,{children:"LANGFLOW_ENABLE_LOG_RETRIEVAL"})," is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_FILE_SIZE_UPLOAD"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})}),(0,s.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-max-file-size-upload",children:[(0,s.jsx)(n.code,{children:"--max-file-size-upload"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_ITEMS_LENGTH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_ITEMS_LENGTH"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})}),(0,s.jsx)(n.td,{children:"Maximum number of items to store and display in the UI. Lists longer than this will be truncated when displayed in the UI. Does not affect data passed between components nor outputs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_TEXT_LENGTH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_TEXT_LENGTH"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1000"})}),(0,s.jsx)(n.td,{children:"Maximum number of characters to store and display in the UI. Responses longer than this will be truncated when displayed in the UI. Does not truncate responses between components nor outputs."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is set to False, Langflow does not enable the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is set to True, Langflow sends progress notifications in the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_NEW_USER_IS_ACTIVE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"NEW_USER_IS_ACTIVE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_OPEN_BROWSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"OPEN_BROWSER"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Open the system web browser on startup.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-open-browser",children:[(0,s.jsx)(n.code,{children:"--open-browser"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"7860"})}),(0,s.jsxs)(n.td,{children:["The port on which the Langflow server runs. The server automatically selects a free port if the specified port is in use.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-port",children:[(0,s.jsx)(n.code,{children:"--port"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Expose Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"9090"})}),(0,s.jsx)(n.td,{children:"Set the port on which Langflow exposes Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_CACHE_EXPIRE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_CACHE_EXPIRE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3600"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_DB"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_DB"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"0"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PORT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"6379"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Password for Redis authentication when using Redis cache type."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REMOVE_API_KEYS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REMOVE_API_KEYS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-remove-api-keys",children:[(0,s.jsx)(n.code,{children:"--remove-api-keys"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SAVE_DB_IN_CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Save the Langflow database in ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (",(0,s.jsx)(n.code,{children:"false"}),"), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SECRET_KEY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SECRET_KEY"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Auto-generated"}),(0,s.jsx)(n.td,{children:"Key used for encrypting sensitive data like API keys. If a key is not provided, a secure key is auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable the Langflow Store.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-store",children:[(0,s.jsx)(n.code,{children:"--store"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE_ENVIRONMENT_VARIABLES"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Store environment variables as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CREATE_STARTER_PROJECTS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CREATE_STARTER_PROJECTS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If this option is enabled, Langflow creates starter projects during initialization. Set to ",(0,s.jsx)(n.code,{children:"false"})," to skip all starter project creation and updates."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_UPDATE_STARTER_PROJECTS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"UPDATE_STARTER_PROJECTS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow updates starter projects with the latest component versions when initializing."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the name for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-username",children:[(0,s.jsx)(n.code,{children:"superuser --username"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the password for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-password",children:[(0,s.jsx)(n.code,{children:"superuser --password"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"VARIABLES_TO_GET_FROM_ENVIRONMENT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Comma-separated list of environment variables to get from the environment and store as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOAD_FLOWS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOAD_FLOWS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Path to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKER_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKER_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"300"})}),(0,s.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-worker-timeout",children:[(0,s.jsx)(n.code,{children:"--worker-timeout"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKERS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKERS"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1"})}),(0,s.jsxs)(n.td,{children:["Number of worker processes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-workers",children:[(0,s.jsx)(n.code,{children:"--workers"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_CERT_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_CERT_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL certificate file on the local system."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_KEY_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_KEY_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL key file on the local system."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SKIP_AUTH_AUTO_LOGIN"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SKIP_AUTH_AUTO_LOGIN"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If set to ",(0,s.jsx)(n.code,{children:"true"}),", and ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,s.jsx)(n.code,{children:"true"}),", skips authentication and allows automatic login as the superuser. If set to ",(0,s.jsx)(n.code,{children:"false"}),", and ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,s.jsx)(n.code,{children:"true"}),", disables automatic login and enforces authentication. If ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is ",(0,s.jsx)(n.code,{children:"false"}),", has no effect."]})]})]})]})}),"\n",(0,s.jsx)(n.h2,{id:"configure-env-overrideconf-and-tasksjson-files",children:"Configure .env, override.conf, and tasks.json files"}),"\n",(0,s.jsx)(n.p,{children:"The following examples show how to configure Langflow using environment variables in different scenarios."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsxs)(i.A,{value:"env",label:".env File",default:!0,children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:".env"})," file is a text file that contains key-value pairs of environment variables."]}),(0,s.jsxs)(n.p,{children:["Create or edit a file named ",(0,s.jsx)(n.code,{children:".env"})," in your project root directory and add your configuration:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=localhost",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_ITEMS_LENGTH=100",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_TEXT_LENGTH=1000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]})]}),(0,s.jsxs)(i.A,{value:"systemd",label:"Systemd service",children:[(0,s.jsx)(n.p,{children:"A systemd service configuration file configures Linux system services."}),(0,s.jsxs)(n.p,{children:["To add environment variables, create or edit a service configuration file and add an ",(0,s.jsx)(n.code,{children:"override.conf"})," file. This file allows you to override the default environment variables for the service."]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'"override.conf"',focus:"",code:{lines:[{tokens:[{content:"[Service]",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"DO_NOT_TRACK=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_LOGIN=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING_INTERVAL=1000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BACKEND_ONLY=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BUNDLE_URLS=[\\"',props:{style:{color:"#A5D6FF"}}},{content:"https://github.com/user/repo/commit/hash\\",props:{style:{color:"#C9D1D9"}}},{content:'"]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CACHE_TYPE=async"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_COMPONENTS_PATH=/path/to/components/"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR=/path/to/config"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DEV=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_FALLBACK_TO_ENV_VAR=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HOST=localhost"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_ITEMS_LENGTH=100"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_TEXT_LENGTH=1000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_ENV=container_json"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_FILE=logs/langflow.log"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_LEVEL=error"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_OPEN_BROWSER=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_PORT=7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_REMOVE_API_KEYS=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SECRET_KEY=somesecretkey"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER=adminuser"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER_PASSWORD=adminpass"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKER_TIMEOUT=60000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKERS=3"',props:{style:{color:"#A5D6FF"}}}]}],lang:"ini"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["For more information on systemd, see the ",(0,s.jsx)(n.a,{href:"https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_systemd_unit_files_to_customize_and_optimize_your_system/assembly_working-with-systemd-unit-files_working-with-systemd",children:"Red Hat documentation"}),"."]})]}),(0,s.jsxs)(i.A,{value:"vscode",label:"VSCode tasks.json",children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"tasks.json"})," file located in ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," is a configuration file for development environments using Visual Studio Code."]}),(0,s.jsxs)(n.p,{children:["Create or edit the ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," file in your project root:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".vscode/tasks.json"',focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "version"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2.0.0"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "env"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "DO_NOT_TRACK"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_LOGIN"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING_INTERVAL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BACKEND_ONLY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BUNDLE_URLS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[',props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:"https://github.com/user/repo/commit/hash",props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:']"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CACHE_TYPE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"async"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_COMPONENTS_PATH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/components/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/config/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DATABASE_URL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"postgresql://postgres:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DEV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_FALLBACK_TO_ENV_VAR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HEALTH_CHECK_MAX_RETRIES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HOST"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"localhost"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LANGCHAIN_CACHE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"InMemoryCache"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_FILE_SIZE_UPLOAD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"10000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_ITEMS_LENGTH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"100"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_TEXT_LENGTH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_ENV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"container_csv"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_FILE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow.log"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_LEVEL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"error"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_OPEN_BROWSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_PORT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"7860"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_REMOVE_API_KEYS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SAVE_DB_IN_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SECRET_KEY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"somesecretkey"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE_ENVIRONMENT_VARIABLES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminuser"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER_PASSWORD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminpass"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKER_TIMEOUT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"60000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKERS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tasks"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "label"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow backend"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"shell"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'". ./langflownightly/Scripts/activate && langflow run"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "isBackground"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "problemMatcher"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["To run Langflow using the above VSCode ",(0,s.jsx)(n.code,{children:"tasks.json"})," file, in the VSCode command palette, select ",(0,s.jsx)(n.strong,{children:"Tasks: Run Task"})," > ",(0,s.jsx)(n.strong,{children:"langflow backend"}),"."]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"set-environment-variables-for-langflow-desktop",children:"Set environment variables for Langflow Desktop"}),"\n",(0,s.jsx)(n.p,{children:"Environment variables set in your terminal aren't automatically available to GUI-based applications like Langflow Desktop when you launch them from the Windows or macOS GUI."}),"\n",(0,s.jsx)(n.p,{children:"For Windows, this means any GUI-based app launched from the Start menu, desktop shortcuts, or Windows Explorer."}),"\n",(0,s.jsx)(n.p,{children:"For macOS, this means any GUI-based app launched from Finder, Spotlight, Launchpad, or the Dock."}),"\n",(0,s.jsx)(n.p,{children:"To set environment variables for Langflow Desktop, you need to use specific commands or files, depending on your OS."}),"\n",(0,s.jsxs)(c.A,{groupId:"",children:[(0,s.jsxs)(i.A,{value:"macOS",label:"macOS",default:!0,children:[(0,s.jsxs)(n.p,{children:["Langflow Desktop for macOS cannot automatically use variables set in your terminal, such as those in",(0,s.jsx)(n.code,{children:".zshrc"})," or ",(0,s.jsx)(n.code,{children:".bash_profile"}),", when launched from the macOS GUI."]}),(0,s.jsxs)(n.p,{children:["To make environment variables available to GUI apps on macOS, you need to use ",(0,s.jsx)(n.code,{children:"launchctl"})," with a ",(0,s.jsx)(n.code,{children:"plist"})," file:"]}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Create the ",(0,s.jsx)(n.code,{children:"LaunchAgents"})," directory if it doesn't exist:"]}),"\n"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"mkdir ",props:{style:{color:"#FFA657"}}},{content:"-p ",props:{style:{color:"#79C0FF"}}},{content:"~/Library/LaunchAgents",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),(0,s.jsxs)(n.ol,{start:"2",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.code,{children:"LaunchAgents"})," directory, create a ",(0,s.jsx)(n.code,{children:".plist"})," file called ",(0,s.jsx)(n.code,{children:"dev.langflow.env"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Add the following content to ",(0,s.jsx)(n.code,{children:"dev.langflow.env.plist"}),", and then add, change, or remove Langflow environment variables as needed for your configuration.\nThis example sets the ",(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})," environment variable for all GUI apps launched from the macOS GUI."]}),"\n"]}),"\n"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"',props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"<",props:{style:{color:"#C9D1D9"}}},{content:"plist ",props:{style:{color:"#7EE787"}}},{content:"version",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"1.0"',props:{style:{color:"#A5D6FF"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">Label",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">dev.langflow.env",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">ProgramArguments",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"array",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">launchctl",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">setenv",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">LANGFLOW_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">/Users/your_user/custom/config",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">RunAtLoad",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#7EE787"}}},{content:"/>",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"xml"},annotations:[]}]}),(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:["Load the file with ",(0,s.jsx)(n.code,{children:"launchctl"}),":"]}),"\n"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"launchctl ",props:{style:{color:"#FFA657"}}},{content:"load ~/Library/LaunchAgents/dev.langflow.env.plist",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})]}),(0,s.jsxs)(i.A,{value:"System Properties",label:"System Properties",children:[(0,s.jsxs)(n.p,{children:["Langflow Desktop for Windows cannot automatically use variables set in your terminal, such as those defined with ",(0,s.jsx)(n.code,{children:"set"})," in ",(0,s.jsx)(n.code,{children:"cmd"})," or ",(0,s.jsx)(n.code,{children:"$env:VAR=..."})," in PowerShell, when launched from the Windows GUI."]}),(0,s.jsxs)(n.p,{children:["To make environment variables available to the Langflow Desktop app, you must set them at the user or system level using the ",(0,s.jsx)(n.strong,{children:"System Properties"})," interface or the Terminal."]}),(0,s.jsx)(n.p,{children:"To set environment variables using the System Properties interface, do the following:"}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Press ",(0,s.jsx)("kbd",{children:"Win + R"}),", enter ",(0,s.jsx)(n.code,{children:"SystemPropertiesAdvanced"}),", and then press ",(0,s.jsx)("kbd",{children:"Enter"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Environment Variables"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Under ",(0,s.jsx)(n.strong,{children:"User variables"}),", click ",(0,s.jsx)(n.strong,{children:"New"}),"."]}),"\n"]}),(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["To apply the setting to all users, select ",(0,s.jsx)(n.strong,{children:"System variables"}),"."]})}),(0,s.jsxs)(n.ol,{start:"4",children:["\n",(0,s.jsxs)(n.li,{children:["Enter the name of the Langflow variable you want to set, such as ",(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"}),", and the desired value, such as ",(0,s.jsx)(n.code,{children:"C:\\Users\\your_user\\.langflow_config"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"OK"})," to save the variable."]}),"\n",(0,s.jsx)(n.li,{children:"Repeat until you have set all necessary Langflow environment variables."}),"\n",(0,s.jsx)(n.li,{children:"Launch or restart Langflow Desktop to apply the environment variables."}),"\n"]})]}),(0,s.jsxs)(i.A,{value:"Powershell",label:"Powershell",children:[(0,s.jsx)(n.p,{children:"To define environment variables for Windows using PowerShell, do the following:"}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Enter the name of the Langflow variable you want to set, such as ",(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"}),", and the desired value, such as ",(0,s.jsx)(n.code,{children:"C:\\Users\\your_user\\.langflow_config"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To set an environment variable for the current user:"}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}},{content:"System.Environment",props:{style:{color:"#FF7B72"}}},{content:"]::SetEnvironmentVariable(",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"C:\\Users\\your_user\\.langflow_config"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"powershell"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To set an environment variable for all users (you must have Administrator priveleges):"}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}},{content:"System.Environment",props:{style:{color:"#FF7B72"}}},{content:"]::SetEnvironmentVariable(",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"C:\\Langflow\\Config"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#FF7B72"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"powershell"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Repeat until you have set all necessary Langflow environment variables."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Launch or restart Langflow Desktop to apply the environment variables."}),"\n"]}),"\n"]})]})]})]})}function _(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(A,{...e})}):A(e)}function u(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/2ab0d4f5.0ee77f40.js b/assets/js/2ab0d4f5.0ee77f40.js deleted file mode 100644 index 90fdbc3712..0000000000 --- a/assets/js/2ab0d4f5.0ee77f40.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Simplified Run Flow","description":{"content":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","type":"text/plain"},"url":{"path":["api","v1","run",":flow_id_or_name"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"key":"stream","value":"false"},{"disabled":false,"key":"user_id","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id_or_name"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"input_value\\": \\"\\",\\n \\"input_type\\": \\"\\",\\n \\"output_type\\": \\"\\",\\n \\"output_component\\": \\"\\",\\n \\"tweaks\\": {\\n \\"tempor_e\\": \\"\\",\\n \\"mollit313\\": \\"\\",\\n \\"qui_e5\\": \\"\\",\\n \\"eiusmod465\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/2ab0d4f5.8d4399d8.js b/assets/js/2ab0d4f5.8d4399d8.js new file mode 100644 index 0000000000..cb9e23a302 --- /dev/null +++ b/assets/js/2ab0d4f5.8d4399d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Simplified Run Flow","description":{"content":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","type":"text/plain"},"url":{"path":["api","v1","run",":flow_id_or_name"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"key":"stream","value":"false"},{"disabled":false,"key":"user_id","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id_or_name"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"input_value\\": \\"\\",\\n \\"input_type\\": \\"\\",\\n \\"output_type\\": \\"\\",\\n \\"output_component\\": \\"\\",\\n \\"tweaks\\": {\\n \\"sunt_df_\\": \\"\\",\\n \\"dolor1\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/3a71638d.9e133460.js b/assets/js/3a71638d.9e133460.js new file mode 100644 index 0000000000..d2d7d1b9b1 --- /dev/null +++ b/assets/js/3a71638d.9e133460.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3930],{11470:(e,n,t)=>{t.d(n,{A:()=>F});var o=t(96540),r=t(18215),s=t(23104),a=t(56347),i=t(205),l=t(57485),c=t(31682),d=t(70679);function u(e){return o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,o.useMemo)(()=>{const e=n??function(e){return u(e).map(({props:{value:e,label:n,attributes:t,default:o}})=>({value:e,label:n,attributes:t,default:o}))}(t);return function(e){const n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}function f({queryString:e=!1,groupId:n}){const t=(0,a.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,l.aZ)(r),(0,o.useCallback)(e=>{if(!r)return;const n=new URLSearchParams(t.location.search);n.set(r,e),t.replace({...t.location,search:n.toString()})},[r,t])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=h(e),[a,l]=(0,o.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!p({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find(e=>e.default)??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s})),[c,u]=f({queryString:t,groupId:r}),[g,y]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,r]=(0,d.Dv)(n);return[t,(0,o.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{const e=c??g;return p({value:e,tabValues:s})?e:null})();(0,i.A)(()=>{x&&l(x)},[x]);return{selectedValue:a,selectValue:(0,o.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),y(e)},[u,y,s]),tabValues:s}}var y=t(92303);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var m=t(74848);function v({className:e,block:n,selectedValue:t,selectValue:o,tabValues:a}){const i=[],{blockElementScrollPositionUntilNextRender:l}=(0,s.a_)(),c=e=>{const n=e.currentTarget,r=i.indexOf(n),s=a[r].value;s!==t&&(l(n),o(s))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=i.indexOf(e.currentTarget)+1;n=i[t]??i[0];break}case"ArrowLeft":{const t=i.indexOf(e.currentTarget)-1;n=i[t]??i[i.length-1];break}}n?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:o})=>(0,m.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>{i.push(e)},onKeyDown:d,onClick:c,...o,className:(0,r.A)("tabs__item",x.tabItem,o?.className,{"tabs__item--active":t===e}),children:n??e},e))})}function _({lazy:e,children:n,selectedValue:t}){const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=s.find(e=>e.props.value===t);return e?(0,o.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function j(e){const n=g(e);return(0,m.jsxs)("div",{className:(0,r.A)("tabs-container",x.tabList),children:[(0,m.jsx)(v,{...n,...e}),(0,m.jsx)(_,{...n,...e})]})}function F(e){const n=(0,y.A)();return(0,m.jsx)(j,{...e,children:u(e.children)},String(n))}},19365:(e,n,t)=>{t.d(n,{A:()=>a});t(96540);var o=t(18215);const r={tabItem:"tabItem_Ymn6"};var s=t(74848);function a({children:e,hidden:n,className:t}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,t),hidden:n,children:e})}},96415:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>h,assets:()=>u,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>y,frontMatter:()=>c,metadata:()=>o,toc:()=>f});const o=JSON.parse('{"id":"Configuration/configuration-authentication","title":"Authentication","description":"This guide covers Langflow\'s authentication system and API key management, including how to secure your deployment and manage access to flows and components.","source":"@site/docs/Configuration/configuration-authentication.mdx","sourceDirName":"Configuration","slug":"/configuration-authentication","permalink":"/configuration-authentication","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Authentication","slug":"/configuration-authentication"},"sidebar":"docs","previous":{"title":"API keys","permalink":"/configuration-api-keys"},"next":{"title":"Langflow CLI","permalink":"/configuration-cli"}}');var r=t(74848),s=t(28453),a=t(24754),i=t(11470),l=t(19365);const c={title:"Authentication",slug:"/configuration-authentication"},d=void 0,u={},h={annotations:a.hk,Code:a.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Authentication configuration values",id:"authentication-configuration-values",level:2},{value:"LANGFLOW_AUTO_LOGIN",id:"langflow_auto_login",level:3},{value:"LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD",id:"langflow_superuser-and-langflow_superuser_password",level:3},{value:"LANGFLOW_SECRET_KEY",id:"langflow_secret_key",level:3},{value:"LANGFLOW_NEW_USER_IS_ACTIVE",id:"langflow_new_user_is_active",level:3},{value:"Start a secure Langflow server with authentication",id:"start-a-secure-langflow-server-with-authentication",level:2},{value:"Start the Langflow server",id:"start-the-langflow-server",level:3},{value:"Manage users as an administrator",id:"manage-users-as-an-administrator",level:3}];function g(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components},{Details:t}=n;return h||x("CH",!1),h.Code||x("CH.Code",!0),t||x("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.p,{children:"This guide covers Langflow's authentication system and API key management, including how to secure your deployment and manage access to flows and components."}),"\n",(0,r.jsxs)(n.admonition,{type:"warning",children:[(0,r.jsx)(n.p,{children:"Never expose Langflow ports directly to the internet without proper security measures."}),(0,r.jsxs)(n.p,{children:["Disable ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"}),", use a secure ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"}),", and ensure your Langflow server is behind a reverse proxy with authentication enabled.\nFor more information, see ",(0,r.jsx)(n.a,{href:"#start-a-secure-langflow-server-with-authentication",children:"Start a secure Langflow server with authentication"}),"."]})]}),"\n",(0,r.jsx)(n.h2,{id:"authentication-configuration-values",children:"Authentication configuration values"}),"\n",(0,r.jsx)(n.p,{children:"The section describes the available authentication configuration variables."}),"\n",(0,r.jsxs)(n.p,{children:["You can use the ",(0,r.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,r.jsx)(n.code,{children:".env.example"})})," file in the Langflow repository as a template for your own ",(0,r.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_auto_login",children:"LANGFLOW_AUTO_LOGIN"}),"\n",(0,r.jsxs)(n.p,{children:["Langflow ",(0,r.jsx)(n.strong,{children:"does not"})," allow users to have simultaneous or shared access to flows.\nIf ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is enabled and user management is disabled (",(0,r.jsx)(n.code,{children:"LANGFLOW_NEW_USER_IS_ACTIVE=true"}),"), users can access the same environment, but it is not password protected. If two users access the same flow, Langflow saves only the work of the last user to save."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(n.p,{children:["In Langflow versions 1.5 and later, most API endpoints require a Langflow API key, even when ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is set to ",(0,r.jsx)(n.code,{children:"True"}),".\nThe only exceptions are the MCP endpoints ",(0,r.jsx)(n.code,{children:"/v1/mcp"}),", ",(0,r.jsx)(n.code,{children:"/v1/mcp-projects"}),", and ",(0,r.jsx)(n.code,{children:"/v2/mcp"}),", which never require authentication."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"AUTO_LOGIN and SKIP_AUTH options"}),(0,r.jsxs)(n.p,{children:["In Langflow versions earlier than 1.5, if ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN=true"}),", then Langflow automatically logs users in as a superuser without requiring authentication.\nIn this case, API requests don't require a Langflow API key."]}),(0,r.jsxs)(n.p,{children:["In Langflow version 1.5, you can set ",(0,r.jsx)(n.code,{children:"LANGFLOW_SKIP_AUTH_AUTO_LOGIN=true"})," and ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN=true"})," to skip authentication for API requests.\nHowever, the ",(0,r.jsx)(n.code,{children:"LANGFLOW_SKIP_AUTH_AUTO_LOGIN"})," option will be removed in a future release."]})]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_superuser-and-langflow_superuser_password",children:"LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD"}),"\n",(0,r.jsxs)(n.p,{children:["These environment variables are only relevant when ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,r.jsx)(n.code,{children:"False"}),".\nThey specify the username and password for the superuser, which is essential for administrative tasks:"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER=administrator",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=securepassword",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_secret_key",children:"LANGFLOW_SECRET_KEY"}),"\n",(0,r.jsxs)(n.p,{children:["This environment variable holds a secret key used for encrypting sensitive data like API keys.\nLangflow uses the ",(0,r.jsx)(n.a,{href:"https://pypi.org/project/cryptography/",children:"Fernet"})," library for secret key encryption."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY=dBuuuB_FHLvU8T9eUNlxQF9ppqRxwWpXXQ42kM2_fb",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsx)(n.p,{children:"If no secret key is provided, Langflow automatically generates one. This is not recommended for production environments, especially in multi-instance deployments like Kubernetes, where auto-generated keys can't decrypt data encrypted by other instances."})}),"\n",(0,r.jsxs)(n.p,{children:["To generate a ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"}),", follow these steps:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Run the command to generate and copy a secret to the clipboard."}),"\n"]}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)(l.A,{value:"unix",label:"macOS/Linux",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard (macOS)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"pbcopy",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Copy to clipboard (Linux)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"xclip ",props:{style:{color:"#FFA657"}}},{content:"-selection ",props:{style:{color:"#79C0FF"}}},{content:"clipboard",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,r.jsx)(l.A,{value:"windows",label:"Windows",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"clip",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["Paste the value into your ",(0,r.jsx)(n.code,{children:".env"})," file:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY=dBuuuB_FHLvU8T9eUNlxQF9ppqRxwWpXXQ42kM2_fb",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_new_user_is_active",children:"LANGFLOW_NEW_USER_IS_ACTIVE"}),"\n",(0,r.jsxs)(n.p,{children:["When this option is set to ",(0,r.jsx)(n.code,{children:"True"}),", new users are automatically activated and can log in without requiring explicit activation by the superuser from the ",(0,r.jsx)(n.strong,{children:"Admin page"}),".\nBy default, this variable is set to ",(0,r.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE=False",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h2,{id:"start-a-secure-langflow-server-with-authentication",children:"Start a secure Langflow server with authentication"}),"\n",(0,r.jsxs)(n.p,{children:["Start a secure Langflow server with authentication enabled and secret key encryption using the variables described in ",(0,r.jsx)(n.a,{href:"/configuration-authentication#authentication-configuration-values",children:"Authentication configuration values"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Once you are logged in as a superuser, create a new user on your server."}),"\n",(0,r.jsx)(n.h3,{id:"start-the-langflow-server",children:"Start the Langflow server"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Create a ",(0,r.jsx)(n.code,{children:".env"})," file and populate it with values for a secure server.\nThis server creates a superuser account, requires users to log in before using Langflow, and encrypts secrets with ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"}),", which is added in the next step.\nCreate a ",(0,r.jsx)(n.code,{children:".env"})," file with the following configuration:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN=False",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=administrator",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=securepassword",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=your_generated_key",props:{}}]},{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE=False",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsx)(n.li,{children:"Generate a secret key for encrypting sensitive data."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Generate your secret key using one of the following commands:"}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)(l.A,{value:"unix",label:"macOS/Linux",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard (macOS)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"pbcopy",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Copy to clipboard (Linux)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"xclip ",props:{style:{color:"#FFA657"}}},{content:"-selection ",props:{style:{color:"#79C0FF"}}},{content:"clipboard",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,r.jsx)(l.A,{value:"windows",label:"Windows",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"clip",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Paste your ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"})," into the ",(0,r.jsx)(n.code,{children:".env"})," file."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Start Langflow with the configuration from your ",(0,r.jsx)(n.code,{children:".env"})," file."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run --env-file .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["Verify the server is running. The default location is ",(0,r.jsx)(n.code,{children:"http://localhost:7860"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"manage-users-as-an-administrator",children:"Manage users as an administrator"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["To complete your first-time login as a superuser, go to ",(0,r.jsx)(n.code,{children:"http://localhost:7860/login"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"Log in with your superuser credentials:"}),"\n"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Username: Value of ",(0,r.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})," (for example, ",(0,r.jsx)(n.code,{children:"administrator"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["Password: Value of ",(0,r.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})," (for example, ",(0,r.jsx)(n.code,{children:"securepassword"}),")"]}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["The default values are ",(0,r.jsx)(n.code,{children:"langflow"})," and ",(0,r.jsx)(n.code,{children:"langflow"}),"."]})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["To manage users on your server, navigate to the ",(0,r.jsx)(n.code,{children:"/admin"})," page at ",(0,r.jsx)(n.code,{children:"http://localhost:7860/admin"}),".\nClick your user profile image, and then click ",(0,r.jsx)(n.strong,{children:"Admin Page"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"As a superuser, you can create users, set permissions, reset passwords, and delete accounts."}),"\n",(0,r.jsxs)(n.ol,{start:"4",children:["\n",(0,r.jsxs)(n.li,{children:["To create a user, in the Langflow UI, click ",(0,r.jsx)(n.strong,{children:"New User"}),", and then complete the following fields:"]}),"\n"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"Username"})}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Password"})," and ",(0,r.jsx)(n.strong,{children:"Confirm Password"})]}),"\n",(0,r.jsxs)(n.li,{children:["Select ",(0,r.jsx)(n.strong,{children:"Active"})," and deselect ",(0,r.jsx)(n.strong,{children:"Superuser"})," for the new user.\n",(0,r.jsx)(n.strong,{children:"Active"})," users can log into the system and access their flows. ",(0,r.jsx)(n.strong,{children:"Inactive"})," users cannot log in or see their flows.\nA ",(0,r.jsx)(n.strong,{children:"Superuser"})," has full administrative privileges."]}),"\n"]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["To complete user creation, click ",(0,r.jsx)(n.strong,{children:"Save"}),".\nYour new user appears in the ",(0,r.jsx)(n.strong,{children:"Admin Page"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To confirm your new user's functionality, log out of Langflow, and log back in with your new user's credentials.\nAttempt to access the ",(0,r.jsx)(n.code,{children:"/admin"})," page. You should be redirected to the ",(0,r.jsx)(n.code,{children:"/flows"})," page, because the new user is not a superuser."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"You have started a secure Langflow server with authentication enabled and secret key encryption."})]})}function y(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/3a71638d.fbc85520.js b/assets/js/3a71638d.fbc85520.js deleted file mode 100644 index 7af2ba38ec..0000000000 --- a/assets/js/3a71638d.fbc85520.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3930],{11470:(e,n,t)=>{t.d(n,{A:()=>F});var o=t(96540),r=t(18215),s=t(23104),a=t(56347),i=t(205),l=t(57485),c=t(31682),d=t(70679);function u(e){return o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,o.useMemo)(()=>{const e=n??function(e){return u(e).map(({props:{value:e,label:n,attributes:t,default:o}})=>({value:e,label:n,attributes:t,default:o}))}(t);return function(e){const n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}function f({queryString:e=!1,groupId:n}){const t=(0,a.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,l.aZ)(r),(0,o.useCallback)(e=>{if(!r)return;const n=new URLSearchParams(t.location.search);n.set(r,e),t.replace({...t.location,search:n.toString()})},[r,t])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=h(e),[a,l]=(0,o.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!p({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find(e=>e.default)??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s})),[c,u]=f({queryString:t,groupId:r}),[g,y]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,r]=(0,d.Dv)(n);return[t,(0,o.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),x=(()=>{const e=c??g;return p({value:e,tabValues:s})?e:null})();(0,i.A)(()=>{x&&l(x)},[x]);return{selectedValue:a,selectValue:(0,o.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),y(e)},[u,y,s]),tabValues:s}}var y=t(92303);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var m=t(74848);function v({className:e,block:n,selectedValue:t,selectValue:o,tabValues:a}){const i=[],{blockElementScrollPositionUntilNextRender:l}=(0,s.a_)(),c=e=>{const n=e.currentTarget,r=i.indexOf(n),s=a[r].value;s!==t&&(l(n),o(s))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=i.indexOf(e.currentTarget)+1;n=i[t]??i[0];break}case"ArrowLeft":{const t=i.indexOf(e.currentTarget)-1;n=i[t]??i[i.length-1];break}}n?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:a.map(({value:e,label:n,attributes:o})=>(0,m.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>{i.push(e)},onKeyDown:d,onClick:c,...o,className:(0,r.A)("tabs__item",x.tabItem,o?.className,{"tabs__item--active":t===e}),children:n??e},e))})}function j({lazy:e,children:n,selectedValue:t}){const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=s.find(e=>e.props.value===t);return e?(0,o.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function _(e){const n=g(e);return(0,m.jsxs)("div",{className:(0,r.A)("tabs-container",x.tabList),children:[(0,m.jsx)(v,{...n,...e}),(0,m.jsx)(j,{...n,...e})]})}function F(e){const n=(0,y.A)();return(0,m.jsx)(_,{...e,children:u(e.children)},String(n))}},19365:(e,n,t)=>{t.d(n,{A:()=>a});t(96540);var o=t(18215);const r={tabItem:"tabItem_Ymn6"};var s=t(74848);function a({children:e,hidden:n,className:t}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,t),hidden:n,children:e})}},96415:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>h,assets:()=>u,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>y,frontMatter:()=>c,metadata:()=>o,toc:()=>f});const o=JSON.parse('{"id":"Configuration/configuration-authentication","title":"Authentication","description":"This guide covers Langflow\'s authentication system and API key management, including how to secure your deployment and manage access to flows and components.","source":"@site/docs/Configuration/configuration-authentication.mdx","sourceDirName":"Configuration","slug":"/configuration-authentication","permalink":"/configuration-authentication","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Authentication","slug":"/configuration-authentication"},"sidebar":"docs","previous":{"title":"API keys","permalink":"/configuration-api-keys"},"next":{"title":"Langflow CLI","permalink":"/configuration-cli"}}');var r=t(74848),s=t(28453),a=t(24754),i=t(11470),l=t(19365);const c={title:"Authentication",slug:"/configuration-authentication"},d=void 0,u={},h={annotations:a.hk,Code:a.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Authentication configuration values",id:"authentication-configuration-values",level:2},{value:"LANGFLOW_AUTO_LOGIN",id:"langflow_auto_login",level:3},{value:"LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD",id:"langflow_superuser-and-langflow_superuser_password",level:3},{value:"LANGFLOW_SECRET_KEY",id:"langflow_secret_key",level:3},{value:"LANGFLOW_NEW_USER_IS_ACTIVE",id:"langflow_new_user_is_active",level:3},{value:"Start a secure Langflow server with authentication",id:"start-a-secure-langflow-server-with-authentication",level:2},{value:"Start the Langflow server",id:"start-the-langflow-server",level:3},{value:"Manage users as an administrator",id:"manage-users-as-an-administrator",level:3}];function g(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components},{Details:t}=n;return h||x("CH",!1),h.Code||x("CH.Code",!0),t||x("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.p,{children:"This guide covers Langflow's authentication system and API key management, including how to secure your deployment and manage access to flows and components."}),"\n",(0,r.jsxs)(n.admonition,{type:"warning",children:[(0,r.jsx)(n.p,{children:"Never expose Langflow ports directly to the internet without proper security measures."}),(0,r.jsxs)(n.p,{children:["Disable ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"}),", use a secure ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"}),", and ensure your Langflow server is behind a reverse proxy with authentication enabled.\nFor more information, see ",(0,r.jsx)(n.a,{href:"#start-a-secure-langflow-server-with-authentication",children:"Start a secure Langflow server with authentication"}),"."]})]}),"\n",(0,r.jsx)(n.h2,{id:"authentication-configuration-values",children:"Authentication configuration values"}),"\n",(0,r.jsx)(n.p,{children:"The section describes the available authentication configuration variables."}),"\n",(0,r.jsxs)(n.p,{children:["You can use the ",(0,r.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,r.jsx)(n.code,{children:".env.example"})})," file in the Langflow repository as a template for your own ",(0,r.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_auto_login",children:"LANGFLOW_AUTO_LOGIN"}),"\n",(0,r.jsxs)(n.p,{children:["Langflow ",(0,r.jsx)(n.strong,{children:"does not"})," allow users to have simultaneous or shared access to flows.\nIf ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is enabled and user management is disabled (",(0,r.jsx)(n.code,{children:"LANGFLOW_NEW_USER_IS_ACTIVE=true"}),"), users can access the same environment, but it is not password protected. If two users access the same flow, Langflow saves only the work of the last user to save."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(n.p,{children:["In Langflow versions 1.5 and later, most API endpoints require a Langflow API key, even when ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is set to ",(0,r.jsx)(n.code,{children:"True"}),".\nThe only exceptions are the MCP endpoints ",(0,r.jsx)(n.code,{children:"/v1/mcp"}),", ",(0,r.jsx)(n.code,{children:"/v1/mcp-projects"}),", and ",(0,r.jsx)(n.code,{children:"/v2/mcp"}),", which never require authentication."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"AUTO_LOGIN and SKIP_AUTH options"}),(0,r.jsxs)(n.p,{children:["In Langflow versions earlier than 1.5, if ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN=true"}),", then Langflow automatically logs users in as a superuser without requiring authentication.\nIn this case, API requests don't require a Langflow API key."]}),(0,r.jsxs)(n.p,{children:["In Langflow version 1.5, you can set ",(0,r.jsx)(n.code,{children:"SKIP_AUTH_AUTO_LOGIN=true"})," and ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN=true"})," to skip authentication for API requests.\nHowever, the ",(0,r.jsx)(n.code,{children:"SKIP_AUTH_AUTO_LOGIN"})," option will be removed in a future release."]})]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_superuser-and-langflow_superuser_password",children:"LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD"}),"\n",(0,r.jsxs)(n.p,{children:["These environment variables are only relevant when ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,r.jsx)(n.code,{children:"False"}),".\nThey specify the username and password for the superuser, which is essential for administrative tasks:"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER=administrator",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=securepassword",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_secret_key",children:"LANGFLOW_SECRET_KEY"}),"\n",(0,r.jsxs)(n.p,{children:["This environment variable holds a secret key used for encrypting sensitive data like API keys.\nLangflow uses the ",(0,r.jsx)(n.a,{href:"https://pypi.org/project/cryptography/",children:"Fernet"})," library for secret key encryption."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY=dBuuuB_FHLvU8T9eUNlxQF9ppqRxwWpXXQ42kM2_fb",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsx)(n.p,{children:"If no secret key is provided, Langflow automatically generates one. This is not recommended for production environments, especially in multi-instance deployments like Kubernetes, where auto-generated keys can't decrypt data encrypted by other instances."})}),"\n",(0,r.jsxs)(n.p,{children:["To generate a ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"}),", follow these steps:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Run the command to generate and copy a secret to the clipboard."}),"\n"]}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)(l.A,{value:"unix",label:"macOS/Linux",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard (macOS)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"pbcopy",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Copy to clipboard (Linux)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"xclip ",props:{style:{color:"#FFA657"}}},{content:"-selection ",props:{style:{color:"#79C0FF"}}},{content:"clipboard",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,r.jsx)(l.A,{value:"windows",label:"Windows",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"clip",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["Paste the value into your ",(0,r.jsx)(n.code,{children:".env"})," file:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY=dBuuuB_FHLvU8T9eUNlxQF9ppqRxwWpXXQ42kM2_fb",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h3,{id:"langflow_new_user_is_active",children:"LANGFLOW_NEW_USER_IS_ACTIVE"}),"\n",(0,r.jsxs)(n.p,{children:["When this option is set to ",(0,r.jsx)(n.code,{children:"True"}),", new users are automatically activated and can log in without requiring explicit activation by the superuser from the ",(0,r.jsx)(n.strong,{children:"Admin page"}),".\nBy default, this variable is set to ",(0,r.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE=False",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h2,{id:"start-a-secure-langflow-server-with-authentication",children:"Start a secure Langflow server with authentication"}),"\n",(0,r.jsxs)(n.p,{children:["Start a secure Langflow server with authentication enabled and secret key encryption using the variables described in ",(0,r.jsx)(n.a,{href:"/configuration-authentication#authentication-configuration-values",children:"Authentication configuration values"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Once you are logged in as a superuser, create a new user on your server."}),"\n",(0,r.jsx)(n.h3,{id:"start-the-langflow-server",children:"Start the Langflow server"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Create a ",(0,r.jsx)(n.code,{children:".env"})," file and populate it with values for a secure server.\nThis server creates a superuser account, requires users to log in before using Langflow, and encrypts secrets with ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"}),", which is added in the next step.\nCreate a ",(0,r.jsx)(n.code,{children:".env"})," file with the following configuration:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN=False",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=administrator",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=securepassword",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=your_generated_key",props:{}}]},{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE=False",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsx)(n.li,{children:"Generate a secret key for encrypting sensitive data."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Generate your secret key using one of the following commands:"}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)(l.A,{value:"unix",label:"macOS/Linux",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard (macOS)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"pbcopy",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Copy to clipboard (Linux)",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"xclip ",props:{style:{color:"#FFA657"}}},{content:"-selection ",props:{style:{color:"#79C0FF"}}},{content:"clipboard",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python3 ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,r.jsx)(l.A,{value:"windows",label:"Windows",children:(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Copy to clipboard",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\" ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"clip",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Or just print",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Paste your ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"})," into the ",(0,r.jsx)(n.code,{children:".env"})," file."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Start Langflow with the configuration from your ",(0,r.jsx)(n.code,{children:".env"})," file."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run --env-file .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["Verify the server is running. The default location is ",(0,r.jsx)(n.code,{children:"http://localhost:7860"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"manage-users-as-an-administrator",children:"Manage users as an administrator"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["To complete your first-time login as a superuser, go to ",(0,r.jsx)(n.code,{children:"http://localhost:7860/login"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"Log in with your superuser credentials:"}),"\n"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Username: Value of ",(0,r.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})," (for example, ",(0,r.jsx)(n.code,{children:"administrator"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["Password: Value of ",(0,r.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})," (for example, ",(0,r.jsx)(n.code,{children:"securepassword"}),")"]}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["The default values are ",(0,r.jsx)(n.code,{children:"langflow"})," and ",(0,r.jsx)(n.code,{children:"langflow"}),"."]})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["To manage users on your server, navigate to the ",(0,r.jsx)(n.code,{children:"/admin"})," page at ",(0,r.jsx)(n.code,{children:"http://localhost:7860/admin"}),".\nClick your user profile image, and then click ",(0,r.jsx)(n.strong,{children:"Admin Page"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"As a superuser, you can create users, set permissions, reset passwords, and delete accounts."}),"\n",(0,r.jsxs)(n.ol,{start:"4",children:["\n",(0,r.jsxs)(n.li,{children:["To create a user, in the Langflow UI, click ",(0,r.jsx)(n.strong,{children:"New User"}),", and then complete the following fields:"]}),"\n"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.strong,{children:"Username"})}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Password"})," and ",(0,r.jsx)(n.strong,{children:"Confirm Password"})]}),"\n",(0,r.jsxs)(n.li,{children:["Select ",(0,r.jsx)(n.strong,{children:"Active"})," and deselect ",(0,r.jsx)(n.strong,{children:"Superuser"})," for the new user.\n",(0,r.jsx)(n.strong,{children:"Active"})," users can log into the system and access their flows. ",(0,r.jsx)(n.strong,{children:"Inactive"})," users cannot log in or see their flows.\nA ",(0,r.jsx)(n.strong,{children:"Superuser"})," has full administrative privileges."]}),"\n"]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["To complete user creation, click ",(0,r.jsx)(n.strong,{children:"Save"}),".\nYour new user appears in the ",(0,r.jsx)(n.strong,{children:"Admin Page"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To confirm your new user's functionality, log out of Langflow, and log back in with your new user's credentials.\nAttempt to access the ",(0,r.jsx)(n.code,{children:"/admin"})," page. You should be redirected to the ",(0,r.jsx)(n.code,{children:"/flows"})," page, because the new user is not a superuser."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"You have started a secure Langflow server with authentication enabled and secret key encryption."})]})}function y(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/8d3cdb68.65a1ac17.js b/assets/js/8d3cdb68.65a1ac17.js deleted file mode 100644 index cabd95bd62..0000000000 --- a/assets/js/8d3cdb68.65a1ac17.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1013],{11470:(e,n,t)=>{t.d(n,{A:()=>w});var o=t(96540),r=t(18215),s=t(23104),l=t(56347),a=t(205),c=t(57485),i=t(31682),d=t(70679);function u(e){return o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,o.useMemo)(()=>{const e=n??function(e){return u(e).map(({props:{value:e,label:n,attributes:t,default:o}})=>({value:e,label:n,attributes:t,default:o}))}(t);return function(e){const n=(0,i.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}function y({queryString:e=!1,groupId:n}){const t=(0,l.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,o.useCallback)(e=>{if(!r)return;const n=new URLSearchParams(t.location.search);n.set(r,e),t.replace({...t.location,search:n.toString()})},[r,t])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=h(e),[l,c]=(0,o.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!p({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find(e=>e.default)??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s})),[i,u]=y({queryString:t,groupId:r}),[f,g]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,r]=(0,d.Dv)(n);return[t,(0,o.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),k=(()=>{const e=i??f;return p({value:e,tabValues:s})?e:null})();(0,a.A)(()=>{k&&c(k)},[k]);return{selectedValue:l,selectValue:(0,o.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);c(e),u(e),g(e)},[u,g,s]),tabValues:s}}var g=t(92303);const k={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(74848);function m({className:e,block:n,selectedValue:t,selectValue:o,tabValues:l}){const a=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.a_)(),i=e=>{const n=e.currentTarget,r=a.indexOf(n),s=l[r].value;s!==t&&(c(n),o(s))},d=e=>{let n=null;switch(e.key){case"Enter":i(e);break;case"ArrowRight":{const t=a.indexOf(e.currentTarget)+1;n=a[t]??a[0];break}case"ArrowLeft":{const t=a.indexOf(e.currentTarget)-1;n=a[t]??a[a.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:o})=>(0,x.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>{a.push(e)},onKeyDown:d,onClick:i,...o,className:(0,r.A)("tabs__item",k.tabItem,o?.className,{"tabs__item--active":t===e}),children:n??e},e))})}function j({lazy:e,children:n,selectedValue:t}){const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=s.find(e=>e.props.value===t);return e?(0,o.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function A(e){const n=f(e);return(0,x.jsxs)("div",{className:(0,r.A)("tabs-container",k.tabList),children:[(0,x.jsx)(m,{...n,...e}),(0,x.jsx)(j,{...n,...e})]})}function w(e){const n=(0,g.A)();return(0,x.jsx)(A,{...e,children:u(e.children)},String(n))}},17886:(e,n,t)=>{t.d(n,{A:()=>s});t(96540);var o=t(64058),r=t(74848);function s({name:e,...n}){const t=o[e];return t?(0,r.jsx)(t,{...n}):null}},19365:(e,n,t)=>{t.d(n,{A:()=>l});t(96540);var o=t(18215);const r={tabItem:"tabItem_Ymn6"};var s=t(74848);function l({children:e,hidden:n,className:t}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,t),hidden:n,children:e})}},39265:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>y,contentTitle:()=>u,default:()=>k,frontMatter:()=>d,metadata:()=>o,toc:()=>f});const o=JSON.parse('{"id":"Configuration/configuration-api-keys","title":"API keys","description":"You can use Langflow API keys to interact with Langflow programmatically.","source":"@site/docs/Configuration/configuration-api-keys.mdx","sourceDirName":"Configuration","slug":"/configuration-api-keys","permalink":"/configuration-api-keys","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API keys","slug":"/configuration-api-keys"},"sidebar":"docs","previous":{"title":"Use Langflow as an MCP client","permalink":"/mcp-client"},"next":{"title":"Authentication","permalink":"/configuration-authentication"}}');var r=t(74848),s=t(28453),l=t(24754),a=t(11470),c=t(19365),i=t(17886);const d={title:"API keys",slug:"/configuration-api-keys"},u=void 0,h={},p={annotations:l.hk,Code:l.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Generate a Langflow API key",id:"generate-a-langflow-api-key",level:2},{value:"Authenticate requests with the Langflow API key",id:"authenticate-requests-with-the-langflow-api-key",level:2},{value:"Generate a Langflow secret key",id:"generate-a-langflow-secret-key",level:2},{value:"Revoke an API key",id:"revoke-an-api-key",level:2},{value:"Add component API keys to Langflow",id:"add-component-api-keys-to-langflow",level:2},{value:"Add component API keys with the .env file",id:"add-component-api-keys-with-the-env-file",level:3},{value:"Add component API keys with the Langflow UI",id:"add-component-api-keys-with-the-langflow-ui",level:3}];function g(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components},{Details:t}=n;return p||x("CH",!1),p.Code||x("CH.Code",!0),t||x("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.p,{children:"You can use Langflow API keys to interact with Langflow programmatically."}),"\n",(0,r.jsx)(n.p,{children:"The API key has the same permissions and access as you do when you launch Langflow. This means your API key can only access your own flows, components, and data. You cannot access other users' resources with your own Langflow API keys.\nAn API key represents the user who created it. If you create a key as a superuser, then that key will have superuser privileges.\nAnyone who has that key can authorize superuser actions through the Langflow API, including user management and flow management."}),"\n",(0,r.jsxs)(n.p,{children:["In Langflow versions 1.5 and later, most API endpoints require a Langflow API key, even when ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is set to ",(0,r.jsx)(n.code,{children:"True"}),".\nThe only exceptions are the MCP endpoints ",(0,r.jsx)(n.code,{children:"/v1/mcp"}),", ",(0,r.jsx)(n.code,{children:"/v1/mcp-projects"}),", and ",(0,r.jsx)(n.code,{children:"/v2/mcp"}),", which never require authentication."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"AUTO_LOGIN and SKIP_AUTH options"}),(0,r.jsxs)(n.p,{children:["In Langflow versions earlier than 1.5, if ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN=true"}),", then Langflow automatically logs users in as a superuser without requiring authentication.\nIn this case, API requests don't require a Langflow API key."]}),(0,r.jsxs)(n.p,{children:["In Langflow version 1.5, you can set ",(0,r.jsx)(n.code,{children:"SKIP_AUTH_AUTO_LOGIN=true"})," and ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN=true"})," to skip authentication for API requests.\nHowever, the ",(0,r.jsx)(n.code,{children:"SKIP_AUTH_AUTO_LOGIN"})," option will be removed in a future release."]})]}),"\n",(0,r.jsx)(n.h2,{id:"generate-a-langflow-api-key",children:"Generate a Langflow API key"}),"\n",(0,r.jsx)(n.p,{children:"You can generate a Langflow API key with the UI or the CLI."}),"\n",(0,r.jsxs)(n.p,{children:["The UI-generated key is appropriate for most cases. The CLI-generated key is needed when your Langflow server is running in ",(0,r.jsx)(n.code,{children:"--backend-only"})," mode."]}),"\n",(0,r.jsxs)(a.A,{children:[(0,r.jsx)(c.A,{value:"Langflow UI",label:"Langflow UI",default:!0,children:(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the Langflow UI header, click your profile icon, and then select ",(0,r.jsx)(n.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Langflow API Keys"}),", and then click ",(0,r.jsx)(n.strong,{children:"Add New"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Name your key, and then click ",(0,r.jsx)(n.strong,{children:"Create API Key"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"Copy the API key and store it securely."}),"\n"]})}),(0,r.jsxs)(c.A,{value:"Langflow CLI",label:"Langflow CLI",children:[(0,r.jsxs)(n.p,{children:["If you're serving your flow with ",(0,r.jsx)(n.code,{children:"--backend-only=true"}),", you can't create API keys in the UI, because the frontend is not running."]}),(0,r.jsx)(n.p,{children:"Depending on your authentication settings, note the following requirements for creating API keys with the Langflow CLI:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["If ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is ",(0,r.jsx)(n.code,{children:"FALSE"}),", you must be logged in as a superuser."]}),"\n",(0,r.jsxs)(n.li,{children:["If ",(0,r.jsx)(n.code,{children:"AUTO LOGIN"})," is ",(0,r.jsx)(n.code,{children:"TRUE"}),", you're already logged in as superuser."]}),"\n"]}),(0,r.jsx)(n.p,{children:"To create an API key for a user from the CLI, do the following:"}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In your ",(0,r.jsx)(n.code,{children:".env"})," file, set ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN=FALSE"}),", and set superuser credentials for your server."]}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN=False",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=administrator",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=securepassword",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To confirm your superuser status, call ",(0,r.jsx)(n.a,{href:"/api-users#get-current-user",children:(0,r.jsx)(n.code,{children:"GET /users/whoami"})}),", and then check that the response contains ",(0,r.jsx)(n.code,{children:'"is_superuser": true'}),":"]}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/users/whoami" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t,{closed:!0,children:[(0,r.jsx)("summary",{children:"Result"}),(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"07e5b864-e367-4f52-b647-a48035ae7e5e"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "username"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "profile_image"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "store_api_key"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_active"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_superuser"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "create_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-05-08T17:59:07.855965"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-05-29T15:06:56.157860"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "last_login_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-05-29T15:06:56.157016"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Create an API key:"}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow api-key",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n"]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"authenticate-requests-with-the-langflow-api-key",children:"Authenticate requests with the Langflow API key"}),"\n",(0,r.jsx)(n.p,{children:"Include your API key in API requests to authenticate requests to Langflow."}),"\n",(0,r.jsx)(n.p,{children:"API keys allow access only to the flows and components of the specific user who created the key."}),"\n",(0,r.jsxs)(a.A,{children:[(0,r.jsxs)(c.A,{value:"HTTP header",label:"HTTP header",default:!0,children:[(0,r.jsx)(n.p,{children:"To use the API key when making API requests, include the API key in the HTTP header:"}),(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key: LANGFLOW_API_KEY' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]})]}),(0,r.jsxs)(c.A,{value:"Query parameter",label:"Query parameter",children:[(0,r.jsx)(n.p,{children:"To pass the API key as a query parameter:"}),(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID?x-api-key=LANGFLOW_API_KEY" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"generate-a-langflow-secret-key",children:"Generate a Langflow secret key"}),"\n",(0,r.jsxs)(n.p,{children:["Langflow uses the ",(0,r.jsx)(n.a,{href:"https://pypi.org/project/cryptography/",children:"Fernet"})," library for encrypting sensitive data."]}),"\n",(0,r.jsxs)(n.p,{children:["If no ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"})," is provided, Langflow automatically generates one."]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"/configuration-authentication#langflow_secret_key",children:"Authentication"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"revoke-an-api-key",children:"Revoke an API key"}),"\n",(0,r.jsx)(n.p,{children:"To revoke an API key, delete it from your Langflow settings:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the Langflow UI header, click your profile icon, and then select ",(0,r.jsx)(n.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Langflow API Keys"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Select the keys you want to delete, and then click ",(0,r.jsx)(i.A,{name:"Trash2","aria-hidden":"true"})," ",(0,r.jsx)(n.strong,{children:"Delete"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This action immediately invalidates the key and prevents it from being used again."}),"\n",(0,r.jsx)(n.h2,{id:"add-component-api-keys-to-langflow",children:"Add component API keys to Langflow"}),"\n",(0,r.jsxs)(n.p,{children:["These are credentials for external services like OpenAI. They can be added to Langflow with the ",(0,r.jsx)(n.code,{children:".env"})," file or in the Langflow UI."]}),"\n",(0,r.jsx)(n.p,{children:"Component API keys that are set in the UI override those that are set in the environment variables."}),"\n",(0,r.jsx)(n.h3,{id:"add-component-api-keys-with-the-env-file",children:"Add component API keys with the .env file"}),"\n",(0,r.jsxs)(n.p,{children:["To add component API keys to your ",(0,r.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"OPENAI_API_KEY=sk-...",props:{}}]},{tokens:[{content:"ANTHROPIC_API_KEY=sk-...",props:{}}]},{tokens:[{content:"GOOGLE_API_KEY=...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h3,{id:"add-component-api-keys-with-the-langflow-ui",children:"Add component API keys with the Langflow UI"}),"\n",(0,r.jsxs)(n.p,{children:["You can store API keys for Langflow components as ",(0,r.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in Langflow:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the Langflow UI header, click your profile icon, and then select ",(0,r.jsx)(n.strong,{children:"Settings"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Global Variables"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Add New"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", select ",(0,r.jsx)(n.strong,{children:"Credential"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Name"}),", enter a name for the variable that will store the API key."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Value"}),", enter the API key that you want to store."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Apply to fields"}),", you can select component fields to automatically populate with this variable."]}),"\n",(0,r.jsx)(n.p,{children:"You can override automatically set variables by manually entering a different variable name or value when you add the affected component to a flow."}),"\n",(0,r.jsxs)(n.p,{children:["Additionally, you can override all component settings by ",(0,r.jsx)(n.a,{href:"/concepts-publish#input-schema",children:"running a flow with tweaks"}),", which are modifications to component settings that you make at runtime and apply to a single flow run only."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]})]})}function k(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/8d3cdb68.d918db7d.js b/assets/js/8d3cdb68.d918db7d.js new file mode 100644 index 0000000000..a2a02b2b69 --- /dev/null +++ b/assets/js/8d3cdb68.d918db7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1013],{11470:(e,n,t)=>{t.d(n,{A:()=>w});var o=t(96540),r=t(18215),s=t(23104),l=t(56347),a=t(205),c=t(57485),i=t(31682),d=t(70679);function u(e){return o.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,o.useMemo)(()=>{const e=n??function(e){return u(e).map(({props:{value:e,label:n,attributes:t,default:o}})=>({value:e,label:n,attributes:t,default:o}))}(t);return function(e){const n=(0,i.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}function y({queryString:e=!1,groupId:n}){const t=(0,l.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,o.useCallback)(e=>{if(!r)return;const n=new URLSearchParams(t.location.search);n.set(r,e),t.replace({...t.location,search:n.toString()})},[r,t])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=h(e),[l,c]=(0,o.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!p({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find(e=>e.default)??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s})),[i,u]=y({queryString:t,groupId:r}),[f,g]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,r]=(0,d.Dv)(n);return[t,(0,o.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),k=(()=>{const e=i??f;return p({value:e,tabValues:s})?e:null})();(0,a.A)(()=>{k&&c(k)},[k]);return{selectedValue:l,selectValue:(0,o.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);c(e),u(e),g(e)},[u,g,s]),tabValues:s}}var g=t(92303);const k={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(74848);function m({className:e,block:n,selectedValue:t,selectValue:o,tabValues:l}){const a=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.a_)(),i=e=>{const n=e.currentTarget,r=a.indexOf(n),s=l[r].value;s!==t&&(c(n),o(s))},d=e=>{let n=null;switch(e.key){case"Enter":i(e);break;case"ArrowRight":{const t=a.indexOf(e.currentTarget)+1;n=a[t]??a[0];break}case"ArrowLeft":{const t=a.indexOf(e.currentTarget)-1;n=a[t]??a[a.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:o})=>(0,x.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>{a.push(e)},onKeyDown:d,onClick:i,...o,className:(0,r.A)("tabs__item",k.tabItem,o?.className,{"tabs__item--active":t===e}),children:n??e},e))})}function A({lazy:e,children:n,selectedValue:t}){const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=s.find(e=>e.props.value===t);return e?(0,o.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,o.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function j(e){const n=f(e);return(0,x.jsxs)("div",{className:(0,r.A)("tabs-container",k.tabList),children:[(0,x.jsx)(m,{...n,...e}),(0,x.jsx)(A,{...n,...e})]})}function w(e){const n=(0,g.A)();return(0,x.jsx)(j,{...e,children:u(e.children)},String(n))}},17886:(e,n,t)=>{t.d(n,{A:()=>s});t(96540);var o=t(64058),r=t(74848);function s({name:e,...n}){const t=o[e];return t?(0,r.jsx)(t,{...n}):null}},19365:(e,n,t)=>{t.d(n,{A:()=>l});t(96540);var o=t(18215);const r={tabItem:"tabItem_Ymn6"};var s=t(74848);function l({children:e,hidden:n,className:t}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,t),hidden:n,children:e})}},39265:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>y,contentTitle:()=>u,default:()=>k,frontMatter:()=>d,metadata:()=>o,toc:()=>f});const o=JSON.parse('{"id":"Configuration/configuration-api-keys","title":"API keys","description":"You can use Langflow API keys to interact with Langflow programmatically.","source":"@site/docs/Configuration/configuration-api-keys.mdx","sourceDirName":"Configuration","slug":"/configuration-api-keys","permalink":"/configuration-api-keys","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API keys","slug":"/configuration-api-keys"},"sidebar":"docs","previous":{"title":"Use Langflow as an MCP client","permalink":"/mcp-client"},"next":{"title":"Authentication","permalink":"/configuration-authentication"}}');var r=t(74848),s=t(28453),l=t(24754),a=t(11470),c=t(19365),i=t(17886);const d={title:"API keys",slug:"/configuration-api-keys"},u=void 0,h={},p={annotations:l.hk,Code:l.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Generate a Langflow API key",id:"generate-a-langflow-api-key",level:2},{value:"Authenticate requests with the Langflow API key",id:"authenticate-requests-with-the-langflow-api-key",level:2},{value:"Generate a Langflow secret key",id:"generate-a-langflow-secret-key",level:2},{value:"Revoke an API key",id:"revoke-an-api-key",level:2},{value:"Add component API keys to Langflow",id:"add-component-api-keys-to-langflow",level:2},{value:"Add component API keys with the .env file",id:"add-component-api-keys-with-the-env-file",level:3},{value:"Add component API keys with the Langflow UI",id:"add-component-api-keys-with-the-langflow-ui",level:3}];function g(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components},{Details:t}=n;return p||x("CH",!1),p.Code||x("CH.Code",!0),t||x("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.p,{children:"You can use Langflow API keys to interact with Langflow programmatically."}),"\n",(0,r.jsx)(n.p,{children:"The API key has the same permissions and access as you do when you launch Langflow. This means your API key can only access your own flows, components, and data. You cannot access other users' resources with your own Langflow API keys.\nAn API key represents the user who created it. If you create a key as a superuser, then that key will have superuser privileges.\nAnyone who has that key can authorize superuser actions through the Langflow API, including user management and flow management."}),"\n",(0,r.jsxs)(n.p,{children:["In Langflow versions 1.5 and later, most API endpoints require a Langflow API key, even when ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is set to ",(0,r.jsx)(n.code,{children:"True"}),".\nThe only exceptions are the MCP endpoints ",(0,r.jsx)(n.code,{children:"/v1/mcp"}),", ",(0,r.jsx)(n.code,{children:"/v1/mcp-projects"}),", and ",(0,r.jsx)(n.code,{children:"/v2/mcp"}),", which never require authentication."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"AUTO_LOGIN and SKIP_AUTH options"}),(0,r.jsxs)(n.p,{children:["In Langflow versions earlier than 1.5, if ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN=true"}),", then Langflow automatically logs users in as a superuser without requiring authentication.\nIn this case, API requests don't require a Langflow API key."]}),(0,r.jsxs)(n.p,{children:["In Langflow version 1.5, you can set ",(0,r.jsx)(n.code,{children:"LANGFLOW_SKIP_AUTH_AUTO_LOGIN=true"})," and ",(0,r.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN=true"})," to skip authentication for API requests.\nHowever, the ",(0,r.jsx)(n.code,{children:"LANGFLOW_SKIP_AUTH_AUTO_LOGIN"})," option will be removed in a future release."]})]}),"\n",(0,r.jsx)(n.h2,{id:"generate-a-langflow-api-key",children:"Generate a Langflow API key"}),"\n",(0,r.jsx)(n.p,{children:"You can generate a Langflow API key with the UI or the CLI."}),"\n",(0,r.jsxs)(n.p,{children:["The UI-generated key is appropriate for most cases. The CLI-generated key is needed when your Langflow server is running in ",(0,r.jsx)(n.code,{children:"--backend-only"})," mode."]}),"\n",(0,r.jsxs)(a.A,{children:[(0,r.jsx)(c.A,{value:"Langflow UI",label:"Langflow UI",default:!0,children:(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the Langflow UI header, click your profile icon, and then select ",(0,r.jsx)(n.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Langflow API Keys"}),", and then click ",(0,r.jsx)(n.strong,{children:"Add New"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Name your key, and then click ",(0,r.jsx)(n.strong,{children:"Create API Key"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"Copy the API key and store it securely."}),"\n"]})}),(0,r.jsxs)(c.A,{value:"Langflow CLI",label:"Langflow CLI",children:[(0,r.jsxs)(n.p,{children:["If you're serving your flow with ",(0,r.jsx)(n.code,{children:"--backend-only=true"}),", you can't create API keys in the UI, because the frontend is not running."]}),(0,r.jsx)(n.p,{children:"Depending on your authentication settings, note the following requirements for creating API keys with the Langflow CLI:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["If ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN"})," is ",(0,r.jsx)(n.code,{children:"FALSE"}),", you must be logged in as a superuser."]}),"\n",(0,r.jsxs)(n.li,{children:["If ",(0,r.jsx)(n.code,{children:"AUTO LOGIN"})," is ",(0,r.jsx)(n.code,{children:"TRUE"}),", you're already logged in as superuser."]}),"\n"]}),(0,r.jsx)(n.p,{children:"To create an API key for a user from the CLI, do the following:"}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In your ",(0,r.jsx)(n.code,{children:".env"})," file, set ",(0,r.jsx)(n.code,{children:"AUTO_LOGIN=FALSE"}),", and set superuser credentials for your server."]}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN=False",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=administrator",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=securepassword",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To confirm your superuser status, call ",(0,r.jsx)(n.a,{href:"/api-users#get-current-user",children:(0,r.jsx)(n.code,{children:"GET /users/whoami"})}),", and then check that the response contains ",(0,r.jsx)(n.code,{children:'"is_superuser": true'}),":"]}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/users/whoami" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t,{closed:!0,children:[(0,r.jsx)("summary",{children:"Result"}),(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"07e5b864-e367-4f52-b647-a48035ae7e5e"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "username"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "profile_image"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "store_api_key"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_active"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_superuser"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "create_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-05-08T17:59:07.855965"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-05-29T15:06:56.157860"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "last_login_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-05-29T15:06:56.157016"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Create an API key:"}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow api-key",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n"]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"authenticate-requests-with-the-langflow-api-key",children:"Authenticate requests with the Langflow API key"}),"\n",(0,r.jsx)(n.p,{children:"Include your API key in API requests to authenticate requests to Langflow."}),"\n",(0,r.jsx)(n.p,{children:"API keys allow access only to the flows and components of the specific user who created the key."}),"\n",(0,r.jsxs)(a.A,{children:[(0,r.jsxs)(c.A,{value:"HTTP header",label:"HTTP header",default:!0,children:[(0,r.jsx)(n.p,{children:"To use the API key when making API requests, include the API key in the HTTP header:"}),(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key: LANGFLOW_API_KEY' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]})]}),(0,r.jsxs)(c.A,{value:"Query parameter",label:"Query parameter",children:[(0,r.jsx)(n.p,{children:"To pass the API key as a query parameter:"}),(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID?x-api-key=LANGFLOW_API_KEY" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"generate-a-langflow-secret-key",children:"Generate a Langflow secret key"}),"\n",(0,r.jsxs)(n.p,{children:["Langflow uses the ",(0,r.jsx)(n.a,{href:"https://pypi.org/project/cryptography/",children:"Fernet"})," library for encrypting sensitive data."]}),"\n",(0,r.jsxs)(n.p,{children:["If no ",(0,r.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"})," is provided, Langflow automatically generates one."]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"/configuration-authentication#langflow_secret_key",children:"Authentication"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"revoke-an-api-key",children:"Revoke an API key"}),"\n",(0,r.jsx)(n.p,{children:"To revoke an API key, delete it from your Langflow settings:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the Langflow UI header, click your profile icon, and then select ",(0,r.jsx)(n.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Langflow API Keys"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Select the keys you want to delete, and then click ",(0,r.jsx)(i.A,{name:"Trash2","aria-hidden":"true"})," ",(0,r.jsx)(n.strong,{children:"Delete"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This action immediately invalidates the key and prevents it from being used again."}),"\n",(0,r.jsx)(n.h2,{id:"add-component-api-keys-to-langflow",children:"Add component API keys to Langflow"}),"\n",(0,r.jsxs)(n.p,{children:["These are credentials for external services like OpenAI. They can be added to Langflow with the ",(0,r.jsx)(n.code,{children:".env"})," file or in the Langflow UI."]}),"\n",(0,r.jsx)(n.p,{children:"Component API keys that are set in the UI override those that are set in the environment variables."}),"\n",(0,r.jsx)(n.h3,{id:"add-component-api-keys-with-the-env-file",children:"Add component API keys with the .env file"}),"\n",(0,r.jsxs)(n.p,{children:["To add component API keys to your ",(0,r.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,r.jsx)(p.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"OPENAI_API_KEY=sk-...",props:{}}]},{tokens:[{content:"ANTHROPIC_API_KEY=sk-...",props:{}}]},{tokens:[{content:"GOOGLE_API_KEY=...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.h3,{id:"add-component-api-keys-with-the-langflow-ui",children:"Add component API keys with the Langflow UI"}),"\n",(0,r.jsxs)(n.p,{children:["You can store API keys for Langflow components as ",(0,r.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in Langflow:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the Langflow UI header, click your profile icon, and then select ",(0,r.jsx)(n.strong,{children:"Settings"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Global Variables"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Add New"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", select ",(0,r.jsx)(n.strong,{children:"Credential"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Name"}),", enter a name for the variable that will store the API key."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Value"}),", enter the API key that you want to store."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["For ",(0,r.jsx)(n.strong,{children:"Apply to fields"}),", you can select component fields to automatically populate with this variable."]}),"\n",(0,r.jsx)(n.p,{children:"You can override automatically set variables by manually entering a different variable name or value when you add the affected component to a flow."}),"\n",(0,r.jsxs)(n.p,{children:["Additionally, you can override all component settings by ",(0,r.jsx)(n.a,{href:"/concepts-publish#input-schema",children:"running a flow with tweaks"}),", which are modifications to component settings that you make at runtime and apply to a single flow run only."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]})]})}function k(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/e6c6a4d2.d62d3928.js b/assets/js/e6c6a4d2.8d3f3031.js similarity index 55% rename from assets/js/e6c6a4d2.d62d3928.js rename to assets/js/e6c6a4d2.8d3f3031.js index 70c5cf8f4c..12b4d20669 100644 --- a/assets/js/e6c6a4d2.d62d3928.js +++ b/assets/js/e6c6a4d2.8d3f3031.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Experimental Run Flow","description":{"content":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","type":"text/plain"},"url":{"path":["api","v1","run","advanced",":flow_id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"inputs\\": [\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n },\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n }\\n ],\\n \\"outputs\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"tweaks\\": {\\n \\"inb\\": \\"\\",\\n \\"in_06\\": \\"\\",\\n \\"elit1\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/flow_id\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Experimental Run Flow","description":{"content":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","type":"text/plain"},"url":{"path":["api","v1","run","advanced",":flow_id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"inputs\\": [\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n },\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n }\\n ],\\n \\"outputs\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"tweaks\\": {\\n \\"dolore__\\": \\"\\",\\n \\"ullamco1\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/flow_id\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.6df31775.js b/assets/js/runtime~main.7074028a.js similarity index 97% rename from assets/js/runtime~main.6df31775.js rename to assets/js/runtime~main.7074028a.js index c60f53faf9..a26dddc762 100644 --- a/assets/js/runtime~main.6df31775.js +++ b/assets/js/runtime~main.7074028a.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,d,f,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=b,r.c=t,e=[],r.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,f,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach(a=>b[a]=()=>e[a]);return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,d)=>(r.f[d](e,a),a),[])),r.u=e=>"assets/js/"+({11:"d2df9b4e",31:"03e862ce",78:"b768a3a5",118:"650a6085",188:"7f7a8893",191:"c643a6d5",230:"bc63ae25",253:"bb45d4f9",299:"9b5a408c",368:"07c30ae4",375:"3d81f1cf",416:"ccb2a150",417:"93e16042",548:"37f47bc1",598:"db4f3bbd",606:"1d59d55f",656:"e67e8b00",743:"e0f2017c",750:"33b5ee95",768:"6d684b63",785:"5f59ded8",787:"672a0eba",800:"a4c0ff01",824:"5015646b",879:"8bee5443",957:"c141421f",964:"05d835b4",1006:"47e58a89",1013:"8d3cdb68",1022:"1f19c1a1",1035:"24d32e91",1068:"f4c28b6b",1162:"f7e6b9d6",1185:"c2de64b8",1193:"444a6da6",1303:"41d45d82",1308:"ec030ab7",1361:"ff296c8d",1399:"16ceb5d2",1408:"2fc7e024",1426:"220d55f5",1483:"af6600d9",1488:"ac3cc3f5",1500:"1e9025f7",1515:"2c05a87f",1556:"264ffc80",1567:"22dd74f7",1625:"92852ade",1628:"07e388ca",1690:"41a97a99",1845:"2ab0d4f5",1895:"d375ca1d",1954:"6ffef3f1",1956:"fe6f9601",2073:"7b7db446",2089:"ad06d5f0",2100:"9cc9f218",2138:"1a4e3797",2272:"ca5faf5d",2273:"e756fa26",2307:"8bd4a540",2323:"b9f9404d",2360:"017d425f",2423:"19bcb67f",2475:"1ab69cbd",2551:"394022bb",2565:"622fd833",2624:"5aaddd60",2642:"ad13630c",2651:"8cd0650d",2777:"b3ba68b4",2818:"a9b73094",2847:"080b9ac1",2901:"03aeaaab",3094:"46d346a5",3147:"4e56251d",3164:"67f2dc6c",3225:"99a4401d",3240:"b079b393",3263:"730da84e",3274:"564a0250",3347:"b5257597",3361:"8f633f11",3549:"6d20d6ec",3576:"64045095",3694:"c2b1730c",3795:"c85076de",3832:"c3d82421",3859:"7679ca6e",3930:"3a71638d",3934:"e190040d",3953:"238e6167",4036:"fbcfc90d",4056:"6ef91a5f",4218:"d5bb0e16",4223:"f01590dc",4314:"f6a246db",4341:"e1a0f423",4498:"24996c2f",4645:"fef056e9",4656:"b37620f5",4778:"e189eece",4784:"438e4337",4841:"8298c1cb",4867:"d73246f8",4876:"f735f5f3",4891:"ca67d85f",4907:"86116998",4954:"a71efd4a",5107:"10156854",5110:"e9fe1d10",5138:"309383dc",5144:"944c5f91",5179:"41e3c105",5281:"a0511a5b",5284:"64ca91f1",5339:"9447891f",5352:"e627b1b2",5412:"a6d50436",5467:"40d13080",5474:"d175aa8b",5482:"9895db20",5513:"20d49d07",5514:"02955c09",5628:"bd7ab245",5657:"e82d58ff",5673:"73af8c33",5716:"946d1cee",5739:"69079906",5742:"aba21aa0",5761:"7f193c41",5772:"4e7126f8",5799:"364e949f",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5894:"f178e9b3",5983:"28fb019d",6003:"4d983c8e",6006:"7819cc1c",6010:"60c70af6",6053:"dfc50084",6063:"464a5f06",6080:"4d15791b",6108:"2fed9fb3",6214:"b1220dbd",6281:"c96ce3ed",6311:"cce672fb",6330:"5d73b2d0",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6541:"a03d4ed9",6559:"6f13807a",6608:"391afd3f",6649:"02e43f39",6682:"5a6d6120",6688:"388c3769",6753:"ff349d2f",6757:"86bd0a2e",6801:"acefda8b",6855:"0d8750f2",6920:"c817e236",6934:"d745f4e6",6947:"acebef04",6949:"b36bb719",7098:"a7bd4aaa",7108:"688feaef",7142:"d0c1f670",7165:"547df4a1",7253:"709203b3",7257:"8321259f",7324:"ab072087",7339:"7a774ddf",7414:"7a88e433",7472:"744aaf8b",7507:"651ef245",7512:"4c09a7b3",7713:"3a82b27e",7774:"8e9a8774",7800:"f48363a4",7807:"1a8a0a64",7824:"2b56b65e",7841:"0132780e",7859:"593d9d00",7894:"0f44198a",7968:"9b0af131",8064:"274fd934",8069:"e267ad05",8082:"08d5c80a",8085:"cc44357e",8102:"019dbd1f",8184:"222029a9",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8268:"a4b6c971",8298:"153f2b62",8304:"73d1a090",8323:"b109d082",8374:"261f8123",8392:"20177945",8401:"17896441",8483:"a84e1c02",8504:"e6c6a4d2",8593:"56350599",8641:"8a61012d",8649:"7de42fc9",8667:"4bc8c03c",8679:"3705a9c0",8750:"8a484c94",8790:"bfca1e36",8978:"aeae39fc",9036:"850d3674",9048:"a94703ab",9099:"b1bc5ffe",9126:"169603ea",9331:"ffcd190c",9363:"f3312674",9371:"991799c5",9431:"cd8dccb5",9459:"97254d1d",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9509:"49311ca0",9555:"dedd5914",9592:"e24b341f",9619:"29b8e27a",9640:"3b25a2ae",9647:"5e95c892",9648:"e3230154",9705:"ee3b5967",9731:"52edee88",9751:"25255263",9752:"72d61395",9839:"54980a8a",9857:"09f5326a",9888:"be76515e",9905:"43df3697"}[e]||e)+"."+{11:"ee0a3ee3",31:"26dc4e99",78:"a2b07490",118:"decb0d18",188:"3754e235",191:"edff055d",230:"b57a23a7",253:"710f6a2e",299:"bdeb4e18",368:"fef33bfb",375:"63406bcd",416:"1a59d9e7",417:"fc55d568",548:"718b93e5",598:"6d6daee4",606:"80cda23c",656:"fa4717b0",743:"4b9153fa",750:"b2ba1ace",768:"99c78c40",785:"39f9122c",787:"341d64e3",800:"d44b313b",824:"87a2bea0",879:"6757f7b7",900:"7cc4aadf",957:"da9e1d2b",964:"ced13117",1006:"84de0fce",1013:"65a1ac17",1022:"d46d4330",1035:"74d533fb",1068:"18a645fb",1162:"94f5d8fc",1185:"fd7f55b7",1193:"eb7f6e2a",1303:"266c70c4",1308:"660adba7",1361:"3c3f429c",1399:"c0784422",1408:"aa199180",1426:"2796edc7",1483:"08884a4f",1488:"feb8009a",1500:"1d36ec42",1515:"89bd0b57",1556:"c5e65a31",1567:"f16b727a",1625:"14cdddbe",1628:"e40e043f",1690:"dca3012e",1845:"0ee77f40",1895:"234f1abb",1954:"59f19c41",1956:"6cc326f3",2073:"a62c0e8f",2089:"6d2b6a9f",2100:"747a02c2",2138:"f62f93d0",2237:"8bc4ac99",2272:"d7347f64",2273:"1f2d928d",2307:"afac5822",2323:"654b4632",2360:"3c8c73c7",2423:"1889896a",2475:"482a6f09",2551:"4668f2c8",2565:"0862c177",2624:"270681fd",2642:"2b4802bc",2651:"63a3bcdb",2777:"f3f737db",2818:"1c1a2f0d",2847:"fd4285dc",2901:"12f90601",3094:"9949d432",3147:"14eef125",3164:"001eb3e6",3225:"f4c930e3",3240:"89c52171",3263:"9b6be8e0",3274:"2260e55a",3347:"0cb92093",3361:"91557f53",3477:"a7eba177",3549:"dfaf2e76",3576:"8a47b866",3694:"f8c0479d",3795:"185f4ac0",3832:"54c9637f",3859:"08f4a6d2",3930:"fbc85520",3934:"c45617d7",3953:"a6992679",4036:"2711473f",4056:"7b2cb763",4058:"7658d33f",4218:"e29d0b76",4223:"7fbbd871",4314:"57d83837",4341:"c39b81ea",4498:"5458fc38",4645:"a81075b1",4656:"b2c39d04",4778:"0ab1de71",4784:"2850454f",4841:"11ff17e7",4867:"fd3a87c6",4876:"6791a1bf",4891:"a37b37df",4907:"cf6988a5",4954:"43103154",5107:"d00d19cd",5110:"89a5dc57",5138:"afe151cb",5144:"f0942dcd",5179:"ca564891",5281:"a41c4fe4",5284:"9a1ac6d4",5339:"bdef02a0",5352:"f40b102a",5412:"5778d6d9",5467:"f78004bb",5474:"074af722",5482:"affc11dd",5513:"5ed04f5c",5514:"5765db12",5628:"7f3691c6",5657:"5a813344",5673:"af9e481c",5716:"3e6dabc0",5739:"c37db3a8",5742:"60b1d5b2",5761:"824df9c5",5772:"6298bef5",5799:"76948292",5865:"5f49417d",5866:"e1a54aee",5883:"7d7b0c34",5894:"7b6c867a",5983:"cd3355c2",6003:"4371ec66",6006:"60de8093",6010:"c74728ad",6053:"62555e59",6063:"eca91535",6080:"d7040d78",6108:"13b6a8b1",6214:"85b870d8",6281:"2d0ca3f3",6311:"5b8b5899",6330:"c1cc298a",6332:"228b947b",6350:"4b95a419",6419:"e6eeb5a6",6445:"257386eb",6473:"b5e32ff9",6541:"1c2210e4",6559:"5d0db366",6608:"d532f0ce",6649:"0ea7221f",6682:"ee292934",6688:"a09e1894",6753:"5143c73f",6757:"168201ac",6801:"676be59f",6855:"46e9ac75",6920:"e0632a00",6934:"a578bc85",6947:"55d9b1b3",6949:"ef6c0edc",7098:"fc1f6434",7108:"a251e652",7142:"8f7d5522",7165:"1940f465",7253:"fd13bdcf",7257:"69a169c8",7324:"5eb84420",7339:"350f484c",7397:"385da999",7414:"cfbe2149",7472:"ec3ce7db",7507:"64b2ab53",7512:"a5eea792",7713:"0a9565a6",7774:"1b22f20b",7800:"4c99e1a1",7807:"3282c74d",7824:"a01f7410",7841:"735c4ee0",7859:"8e485694",7894:"a7021e43",7968:"b36f8529",8035:"87ec3f77",8064:"2b2c4924",8069:"b45894ee",8082:"d96e0513",8085:"51f6d0db",8102:"06a5c133",8158:"20de8b80",8184:"f223b902",8188:"4736ecea",8196:"8409b15b",8208:"000afae6",8268:"39c65e66",8298:"d9604336",8304:"1146f31c",8323:"81a62512",8374:"4b006095",8392:"95b0ee32",8401:"23c55f2d",8483:"21fb59b0",8504:"d62d3928",8593:"aab616cc",8641:"1497af0e",8649:"d962d75c",8667:"a0f46cd3",8679:"b71a6a45",8750:"9ed09830",8790:"c24795d7",8913:"47209f3b",8978:"0825f88e",9036:"b970c848",9048:"bdc69ee3",9099:"decaeb70",9126:"3a0b3e32",9331:"a6e3ff48",9363:"04dac4f4",9371:"da2c97f3",9431:"5b4b6ef6",9459:"1dd237dc",9476:"f50300b7",9479:"c2b519f3",9483:"61933302",9495:"49162ef8",9509:"329a1685",9555:"362358d6",9592:"5edae105",9619:"5ab2715e",9640:"9c0437ec",9647:"5cb928a1",9648:"390406f2",9705:"097cca43",9731:"74089fe0",9751:"fd414b25",9752:"5f89276d",9839:"6a957b83",9857:"d319445c",9888:"9c7044bb",9905:"55d8058e"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="langflow-docs:",r.l=(e,a,d,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={10156854:"5107",17896441:"8401",20177945:"8392",25255263:"9751",56350599:"8593",64045095:"3576",69079906:"5739",86116998:"4907",d2df9b4e:"11","03e862ce":"31",b768a3a5:"78","650a6085":"118","7f7a8893":"188",c643a6d5:"191",bc63ae25:"230",bb45d4f9:"253","9b5a408c":"299","07c30ae4":"368","3d81f1cf":"375",ccb2a150:"416","93e16042":"417","37f47bc1":"548",db4f3bbd:"598","1d59d55f":"606",e67e8b00:"656",e0f2017c:"743","33b5ee95":"750","6d684b63":"768","5f59ded8":"785","672a0eba":"787",a4c0ff01:"800","5015646b":"824","8bee5443":"879",c141421f:"957","05d835b4":"964","47e58a89":"1006","8d3cdb68":"1013","1f19c1a1":"1022","24d32e91":"1035",f4c28b6b:"1068",f7e6b9d6:"1162",c2de64b8:"1185","444a6da6":"1193","41d45d82":"1303",ec030ab7:"1308",ff296c8d:"1361","16ceb5d2":"1399","2fc7e024":"1408","220d55f5":"1426",af6600d9:"1483",ac3cc3f5:"1488","1e9025f7":"1500","2c05a87f":"1515","264ffc80":"1556","22dd74f7":"1567","92852ade":"1625","07e388ca":"1628","41a97a99":"1690","2ab0d4f5":"1845",d375ca1d:"1895","6ffef3f1":"1954",fe6f9601:"1956","7b7db446":"2073",ad06d5f0:"2089","9cc9f218":"2100","1a4e3797":"2138",ca5faf5d:"2272",e756fa26:"2273","8bd4a540":"2307",b9f9404d:"2323","017d425f":"2360","19bcb67f":"2423","1ab69cbd":"2475","394022bb":"2551","622fd833":"2565","5aaddd60":"2624",ad13630c:"2642","8cd0650d":"2651",b3ba68b4:"2777",a9b73094:"2818","080b9ac1":"2847","03aeaaab":"2901","46d346a5":"3094","4e56251d":"3147","67f2dc6c":"3164","99a4401d":"3225",b079b393:"3240","730da84e":"3263","564a0250":"3274",b5257597:"3347","8f633f11":"3361","6d20d6ec":"3549",c2b1730c:"3694",c85076de:"3795",c3d82421:"3832","7679ca6e":"3859","3a71638d":"3930",e190040d:"3934","238e6167":"3953",fbcfc90d:"4036","6ef91a5f":"4056",d5bb0e16:"4218",f01590dc:"4223",f6a246db:"4314",e1a0f423:"4341","24996c2f":"4498",fef056e9:"4645",b37620f5:"4656",e189eece:"4778","438e4337":"4784","8298c1cb":"4841",d73246f8:"4867",f735f5f3:"4876",ca67d85f:"4891",a71efd4a:"4954",e9fe1d10:"5110","309383dc":"5138","944c5f91":"5144","41e3c105":"5179",a0511a5b:"5281","64ca91f1":"5284","9447891f":"5339",e627b1b2:"5352",a6d50436:"5412","40d13080":"5467",d175aa8b:"5474","9895db20":"5482","20d49d07":"5513","02955c09":"5514",bd7ab245:"5628",e82d58ff:"5657","73af8c33":"5673","946d1cee":"5716",aba21aa0:"5742","7f193c41":"5761","4e7126f8":"5772","364e949f":"5799",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883",f178e9b3:"5894","28fb019d":"5983","4d983c8e":"6003","7819cc1c":"6006","60c70af6":"6010",dfc50084:"6053","464a5f06":"6063","4d15791b":"6080","2fed9fb3":"6108",b1220dbd:"6214",c96ce3ed:"6281",cce672fb:"6311","5d73b2d0":"6330","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473",a03d4ed9:"6541","6f13807a":"6559","391afd3f":"6608","02e43f39":"6649","5a6d6120":"6682","388c3769":"6688",ff349d2f:"6753","86bd0a2e":"6757",acefda8b:"6801","0d8750f2":"6855",c817e236:"6920",d745f4e6:"6934",acebef04:"6947",b36bb719:"6949",a7bd4aaa:"7098","688feaef":"7108",d0c1f670:"7142","547df4a1":"7165","709203b3":"7253","8321259f":"7257",ab072087:"7324","7a774ddf":"7339","7a88e433":"7414","744aaf8b":"7472","651ef245":"7507","4c09a7b3":"7512","3a82b27e":"7713","8e9a8774":"7774",f48363a4:"7800","1a8a0a64":"7807","2b56b65e":"7824","0132780e":"7841","593d9d00":"7859","0f44198a":"7894","9b0af131":"7968","274fd934":"8064",e267ad05:"8069","08d5c80a":"8082",cc44357e:"8085","019dbd1f":"8102","222029a9":"8184",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208",a4b6c971:"8268","153f2b62":"8298","73d1a090":"8304",b109d082:"8323","261f8123":"8374",a84e1c02:"8483",e6c6a4d2:"8504","8a61012d":"8641","7de42fc9":"8649","4bc8c03c":"8667","3705a9c0":"8679","8a484c94":"8750",bfca1e36:"8790",aeae39fc:"8978","850d3674":"9036",a94703ab:"9048",b1bc5ffe:"9099","169603ea":"9126",ffcd190c:"9331",f3312674:"9363","991799c5":"9371",cd8dccb5:"9431","97254d1d":"9459","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483","49311ca0":"9509",dedd5914:"9555",e24b341f:"9592","29b8e27a":"9619","3b25a2ae":"9640","5e95c892":"9647",e3230154:"9648",ee3b5967:"9705","52edee88":"9731","72d61395":"9752","54980a8a":"9839","09f5326a":"9857",be76515e:"9888","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var c=new Promise((d,c)=>f=e[a]=[d,c]);d.push(f[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,f[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,c,b=d[0],t=d[1],o=d[2],n=0;if(b.some(a=>0!==e[a])){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n{"use strict";var e,a,d,f,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=b,r.c=t,e=[],r.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,f,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach(a=>b[a]=()=>e[a]);return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,d)=>(r.f[d](e,a),a),[])),r.u=e=>"assets/js/"+({11:"d2df9b4e",31:"03e862ce",78:"b768a3a5",118:"650a6085",188:"7f7a8893",191:"c643a6d5",230:"bc63ae25",253:"bb45d4f9",299:"9b5a408c",368:"07c30ae4",375:"3d81f1cf",416:"ccb2a150",417:"93e16042",548:"37f47bc1",598:"db4f3bbd",606:"1d59d55f",656:"e67e8b00",743:"e0f2017c",750:"33b5ee95",768:"6d684b63",785:"5f59ded8",787:"672a0eba",800:"a4c0ff01",824:"5015646b",879:"8bee5443",957:"c141421f",964:"05d835b4",1006:"47e58a89",1013:"8d3cdb68",1022:"1f19c1a1",1035:"24d32e91",1068:"f4c28b6b",1162:"f7e6b9d6",1185:"c2de64b8",1193:"444a6da6",1303:"41d45d82",1308:"ec030ab7",1361:"ff296c8d",1399:"16ceb5d2",1408:"2fc7e024",1426:"220d55f5",1483:"af6600d9",1488:"ac3cc3f5",1500:"1e9025f7",1515:"2c05a87f",1556:"264ffc80",1567:"22dd74f7",1625:"92852ade",1628:"07e388ca",1690:"41a97a99",1845:"2ab0d4f5",1895:"d375ca1d",1954:"6ffef3f1",1956:"fe6f9601",2073:"7b7db446",2089:"ad06d5f0",2100:"9cc9f218",2138:"1a4e3797",2272:"ca5faf5d",2273:"e756fa26",2307:"8bd4a540",2323:"b9f9404d",2360:"017d425f",2423:"19bcb67f",2475:"1ab69cbd",2551:"394022bb",2565:"622fd833",2624:"5aaddd60",2642:"ad13630c",2651:"8cd0650d",2777:"b3ba68b4",2818:"a9b73094",2847:"080b9ac1",2901:"03aeaaab",3094:"46d346a5",3147:"4e56251d",3164:"67f2dc6c",3225:"99a4401d",3240:"b079b393",3263:"730da84e",3274:"564a0250",3347:"b5257597",3361:"8f633f11",3549:"6d20d6ec",3576:"64045095",3694:"c2b1730c",3795:"c85076de",3832:"c3d82421",3859:"7679ca6e",3930:"3a71638d",3934:"e190040d",3953:"238e6167",4036:"fbcfc90d",4056:"6ef91a5f",4218:"d5bb0e16",4223:"f01590dc",4314:"f6a246db",4341:"e1a0f423",4498:"24996c2f",4645:"fef056e9",4656:"b37620f5",4778:"e189eece",4784:"438e4337",4841:"8298c1cb",4867:"d73246f8",4876:"f735f5f3",4891:"ca67d85f",4907:"86116998",4954:"a71efd4a",5107:"10156854",5110:"e9fe1d10",5138:"309383dc",5144:"944c5f91",5179:"41e3c105",5281:"a0511a5b",5284:"64ca91f1",5339:"9447891f",5352:"e627b1b2",5412:"a6d50436",5467:"40d13080",5474:"d175aa8b",5482:"9895db20",5513:"20d49d07",5514:"02955c09",5628:"bd7ab245",5657:"e82d58ff",5673:"73af8c33",5716:"946d1cee",5739:"69079906",5742:"aba21aa0",5761:"7f193c41",5772:"4e7126f8",5799:"364e949f",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5894:"f178e9b3",5983:"28fb019d",6003:"4d983c8e",6006:"7819cc1c",6010:"60c70af6",6053:"dfc50084",6063:"464a5f06",6080:"4d15791b",6108:"2fed9fb3",6214:"b1220dbd",6281:"c96ce3ed",6311:"cce672fb",6330:"5d73b2d0",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6541:"a03d4ed9",6559:"6f13807a",6608:"391afd3f",6649:"02e43f39",6682:"5a6d6120",6688:"388c3769",6753:"ff349d2f",6757:"86bd0a2e",6801:"acefda8b",6855:"0d8750f2",6920:"c817e236",6934:"d745f4e6",6947:"acebef04",6949:"b36bb719",7098:"a7bd4aaa",7108:"688feaef",7142:"d0c1f670",7165:"547df4a1",7253:"709203b3",7257:"8321259f",7324:"ab072087",7339:"7a774ddf",7414:"7a88e433",7472:"744aaf8b",7507:"651ef245",7512:"4c09a7b3",7713:"3a82b27e",7774:"8e9a8774",7800:"f48363a4",7807:"1a8a0a64",7824:"2b56b65e",7841:"0132780e",7859:"593d9d00",7894:"0f44198a",7968:"9b0af131",8064:"274fd934",8069:"e267ad05",8082:"08d5c80a",8085:"cc44357e",8102:"019dbd1f",8184:"222029a9",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8268:"a4b6c971",8298:"153f2b62",8304:"73d1a090",8323:"b109d082",8374:"261f8123",8392:"20177945",8401:"17896441",8483:"a84e1c02",8504:"e6c6a4d2",8593:"56350599",8641:"8a61012d",8649:"7de42fc9",8667:"4bc8c03c",8679:"3705a9c0",8750:"8a484c94",8790:"bfca1e36",8978:"aeae39fc",9036:"850d3674",9048:"a94703ab",9099:"b1bc5ffe",9126:"169603ea",9331:"ffcd190c",9363:"f3312674",9371:"991799c5",9431:"cd8dccb5",9459:"97254d1d",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9509:"49311ca0",9555:"dedd5914",9592:"e24b341f",9619:"29b8e27a",9640:"3b25a2ae",9647:"5e95c892",9648:"e3230154",9705:"ee3b5967",9731:"52edee88",9751:"25255263",9752:"72d61395",9839:"54980a8a",9857:"09f5326a",9888:"be76515e",9905:"43df3697"}[e]||e)+"."+{11:"ee0a3ee3",31:"26dc4e99",78:"a2b07490",118:"decb0d18",188:"3754e235",191:"edff055d",230:"b57a23a7",253:"710f6a2e",299:"bdeb4e18",368:"fef33bfb",375:"63406bcd",416:"1a59d9e7",417:"fc55d568",548:"718b93e5",598:"6d6daee4",606:"80cda23c",656:"fa4717b0",743:"4b9153fa",750:"b2ba1ace",768:"99c78c40",785:"39f9122c",787:"341d64e3",800:"d44b313b",824:"87a2bea0",879:"6757f7b7",900:"7cc4aadf",957:"da9e1d2b",964:"ced13117",1006:"84de0fce",1013:"d918db7d",1022:"d46d4330",1035:"74d533fb",1068:"18a645fb",1162:"94f5d8fc",1185:"fd7f55b7",1193:"eb7f6e2a",1303:"266c70c4",1308:"660adba7",1361:"3c3f429c",1399:"65c85829",1408:"aa199180",1426:"2796edc7",1483:"08884a4f",1488:"feb8009a",1500:"1d36ec42",1515:"89bd0b57",1556:"c5e65a31",1567:"f16b727a",1625:"14cdddbe",1628:"e40e043f",1690:"dca3012e",1845:"8d4399d8",1895:"234f1abb",1954:"59f19c41",1956:"6cc326f3",2073:"a62c0e8f",2089:"6d2b6a9f",2100:"747a02c2",2138:"f62f93d0",2237:"8bc4ac99",2272:"d7347f64",2273:"1f2d928d",2307:"afac5822",2323:"654b4632",2360:"3c8c73c7",2423:"1889896a",2475:"482a6f09",2551:"4668f2c8",2565:"0862c177",2624:"270681fd",2642:"2b4802bc",2651:"63a3bcdb",2777:"f3f737db",2818:"1c1a2f0d",2847:"fd4285dc",2901:"12f90601",3094:"9949d432",3147:"14eef125",3164:"001eb3e6",3225:"f4c930e3",3240:"89c52171",3263:"9b6be8e0",3274:"2260e55a",3347:"0cb92093",3361:"91557f53",3477:"a7eba177",3549:"dfaf2e76",3576:"8a47b866",3694:"f8c0479d",3795:"185f4ac0",3832:"54c9637f",3859:"08f4a6d2",3930:"9e133460",3934:"c45617d7",3953:"a6992679",4036:"2711473f",4056:"7b2cb763",4058:"7658d33f",4218:"e29d0b76",4223:"7fbbd871",4314:"57d83837",4341:"c39b81ea",4498:"5458fc38",4645:"a81075b1",4656:"b2c39d04",4778:"0ab1de71",4784:"2850454f",4841:"11ff17e7",4867:"fd3a87c6",4876:"6791a1bf",4891:"a37b37df",4907:"cf6988a5",4954:"43103154",5107:"d00d19cd",5110:"89a5dc57",5138:"afe151cb",5144:"f0942dcd",5179:"ca564891",5281:"a41c4fe4",5284:"9a1ac6d4",5339:"bdef02a0",5352:"f40b102a",5412:"5778d6d9",5467:"f78004bb",5474:"074af722",5482:"affc11dd",5513:"5ed04f5c",5514:"5765db12",5628:"7f3691c6",5657:"5a813344",5673:"af9e481c",5716:"3e6dabc0",5739:"c37db3a8",5742:"60b1d5b2",5761:"824df9c5",5772:"6298bef5",5799:"76948292",5865:"5f49417d",5866:"e1a54aee",5883:"7d7b0c34",5894:"7b6c867a",5983:"cd3355c2",6003:"4371ec66",6006:"60de8093",6010:"c74728ad",6053:"62555e59",6063:"eca91535",6080:"d7040d78",6108:"13b6a8b1",6214:"85b870d8",6281:"2d0ca3f3",6311:"5b8b5899",6330:"c1cc298a",6332:"228b947b",6350:"4b95a419",6419:"e6eeb5a6",6445:"257386eb",6473:"b5e32ff9",6541:"1c2210e4",6559:"5d0db366",6608:"d532f0ce",6649:"0ea7221f",6682:"ee292934",6688:"a09e1894",6753:"5143c73f",6757:"168201ac",6801:"676be59f",6855:"46e9ac75",6920:"e0632a00",6934:"a578bc85",6947:"55d9b1b3",6949:"ef6c0edc",7098:"fc1f6434",7108:"a251e652",7142:"8f7d5522",7165:"1940f465",7253:"fd13bdcf",7257:"69a169c8",7324:"5eb84420",7339:"350f484c",7397:"385da999",7414:"cfbe2149",7472:"ec3ce7db",7507:"64b2ab53",7512:"a5eea792",7713:"0a9565a6",7774:"1b22f20b",7800:"4c99e1a1",7807:"3282c74d",7824:"a01f7410",7841:"735c4ee0",7859:"8e485694",7894:"a7021e43",7968:"b36f8529",8035:"87ec3f77",8064:"2b2c4924",8069:"b45894ee",8082:"d96e0513",8085:"51f6d0db",8102:"06a5c133",8158:"20de8b80",8184:"f223b902",8188:"4736ecea",8196:"8409b15b",8208:"000afae6",8268:"39c65e66",8298:"d9604336",8304:"1146f31c",8323:"81a62512",8374:"4b006095",8392:"95b0ee32",8401:"23c55f2d",8483:"21fb59b0",8504:"8d3f3031",8593:"aab616cc",8641:"1497af0e",8649:"d962d75c",8667:"a0f46cd3",8679:"b71a6a45",8750:"9ed09830",8790:"c24795d7",8913:"47209f3b",8978:"0825f88e",9036:"b970c848",9048:"bdc69ee3",9099:"decaeb70",9126:"3a0b3e32",9331:"a6e3ff48",9363:"04dac4f4",9371:"da2c97f3",9431:"5b4b6ef6",9459:"1dd237dc",9476:"f50300b7",9479:"c2b519f3",9483:"61933302",9495:"49162ef8",9509:"329a1685",9555:"362358d6",9592:"5edae105",9619:"5ab2715e",9640:"9c0437ec",9647:"5cb928a1",9648:"390406f2",9705:"097cca43",9731:"74089fe0",9751:"fd414b25",9752:"5f89276d",9839:"6a957b83",9857:"d319445c",9888:"9c7044bb",9905:"55d8058e"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="langflow-docs:",r.l=(e,a,d,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={10156854:"5107",17896441:"8401",20177945:"8392",25255263:"9751",56350599:"8593",64045095:"3576",69079906:"5739",86116998:"4907",d2df9b4e:"11","03e862ce":"31",b768a3a5:"78","650a6085":"118","7f7a8893":"188",c643a6d5:"191",bc63ae25:"230",bb45d4f9:"253","9b5a408c":"299","07c30ae4":"368","3d81f1cf":"375",ccb2a150:"416","93e16042":"417","37f47bc1":"548",db4f3bbd:"598","1d59d55f":"606",e67e8b00:"656",e0f2017c:"743","33b5ee95":"750","6d684b63":"768","5f59ded8":"785","672a0eba":"787",a4c0ff01:"800","5015646b":"824","8bee5443":"879",c141421f:"957","05d835b4":"964","47e58a89":"1006","8d3cdb68":"1013","1f19c1a1":"1022","24d32e91":"1035",f4c28b6b:"1068",f7e6b9d6:"1162",c2de64b8:"1185","444a6da6":"1193","41d45d82":"1303",ec030ab7:"1308",ff296c8d:"1361","16ceb5d2":"1399","2fc7e024":"1408","220d55f5":"1426",af6600d9:"1483",ac3cc3f5:"1488","1e9025f7":"1500","2c05a87f":"1515","264ffc80":"1556","22dd74f7":"1567","92852ade":"1625","07e388ca":"1628","41a97a99":"1690","2ab0d4f5":"1845",d375ca1d:"1895","6ffef3f1":"1954",fe6f9601:"1956","7b7db446":"2073",ad06d5f0:"2089","9cc9f218":"2100","1a4e3797":"2138",ca5faf5d:"2272",e756fa26:"2273","8bd4a540":"2307",b9f9404d:"2323","017d425f":"2360","19bcb67f":"2423","1ab69cbd":"2475","394022bb":"2551","622fd833":"2565","5aaddd60":"2624",ad13630c:"2642","8cd0650d":"2651",b3ba68b4:"2777",a9b73094:"2818","080b9ac1":"2847","03aeaaab":"2901","46d346a5":"3094","4e56251d":"3147","67f2dc6c":"3164","99a4401d":"3225",b079b393:"3240","730da84e":"3263","564a0250":"3274",b5257597:"3347","8f633f11":"3361","6d20d6ec":"3549",c2b1730c:"3694",c85076de:"3795",c3d82421:"3832","7679ca6e":"3859","3a71638d":"3930",e190040d:"3934","238e6167":"3953",fbcfc90d:"4036","6ef91a5f":"4056",d5bb0e16:"4218",f01590dc:"4223",f6a246db:"4314",e1a0f423:"4341","24996c2f":"4498",fef056e9:"4645",b37620f5:"4656",e189eece:"4778","438e4337":"4784","8298c1cb":"4841",d73246f8:"4867",f735f5f3:"4876",ca67d85f:"4891",a71efd4a:"4954",e9fe1d10:"5110","309383dc":"5138","944c5f91":"5144","41e3c105":"5179",a0511a5b:"5281","64ca91f1":"5284","9447891f":"5339",e627b1b2:"5352",a6d50436:"5412","40d13080":"5467",d175aa8b:"5474","9895db20":"5482","20d49d07":"5513","02955c09":"5514",bd7ab245:"5628",e82d58ff:"5657","73af8c33":"5673","946d1cee":"5716",aba21aa0:"5742","7f193c41":"5761","4e7126f8":"5772","364e949f":"5799",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883",f178e9b3:"5894","28fb019d":"5983","4d983c8e":"6003","7819cc1c":"6006","60c70af6":"6010",dfc50084:"6053","464a5f06":"6063","4d15791b":"6080","2fed9fb3":"6108",b1220dbd:"6214",c96ce3ed:"6281",cce672fb:"6311","5d73b2d0":"6330","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473",a03d4ed9:"6541","6f13807a":"6559","391afd3f":"6608","02e43f39":"6649","5a6d6120":"6682","388c3769":"6688",ff349d2f:"6753","86bd0a2e":"6757",acefda8b:"6801","0d8750f2":"6855",c817e236:"6920",d745f4e6:"6934",acebef04:"6947",b36bb719:"6949",a7bd4aaa:"7098","688feaef":"7108",d0c1f670:"7142","547df4a1":"7165","709203b3":"7253","8321259f":"7257",ab072087:"7324","7a774ddf":"7339","7a88e433":"7414","744aaf8b":"7472","651ef245":"7507","4c09a7b3":"7512","3a82b27e":"7713","8e9a8774":"7774",f48363a4:"7800","1a8a0a64":"7807","2b56b65e":"7824","0132780e":"7841","593d9d00":"7859","0f44198a":"7894","9b0af131":"7968","274fd934":"8064",e267ad05:"8069","08d5c80a":"8082",cc44357e:"8085","019dbd1f":"8102","222029a9":"8184",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208",a4b6c971:"8268","153f2b62":"8298","73d1a090":"8304",b109d082:"8323","261f8123":"8374",a84e1c02:"8483",e6c6a4d2:"8504","8a61012d":"8641","7de42fc9":"8649","4bc8c03c":"8667","3705a9c0":"8679","8a484c94":"8750",bfca1e36:"8790",aeae39fc:"8978","850d3674":"9036",a94703ab:"9048",b1bc5ffe:"9099","169603ea":"9126",ffcd190c:"9331",f3312674:"9363","991799c5":"9371",cd8dccb5:"9431","97254d1d":"9459","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483","49311ca0":"9509",dedd5914:"9555",e24b341f:"9592","29b8e27a":"9619","3b25a2ae":"9640","5e95c892":"9647",e3230154:"9648",ee3b5967:"9705","52edee88":"9731","72d61395":"9752","54980a8a":"9839","09f5326a":"9857",be76515e:"9888","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var c=new Promise((d,c)=>f=e[a]=[d,c]);d.push(f[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,f[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,c,b=d[0],t=d[1],o=d[2],n=0;if(b.some(a=>0!==e[a])){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n - + diff --git a/blog-writer.html b/blog-writer.html index 429626f29b..79f97f9df4 100644 --- a/blog-writer.html +++ b/blog-writer.html @@ -23,7 +23,7 @@ - + diff --git a/chat-with-files.html b/chat-with-files.html index 553004f8f4..875a28c8f4 100644 --- a/chat-with-files.html +++ b/chat-with-files.html @@ -23,7 +23,7 @@ - + diff --git a/chat-with-rag.html b/chat-with-rag.html index cbc41b17db..001da23a7a 100644 --- a/chat-with-rag.html +++ b/chat-with-rag.html @@ -23,7 +23,7 @@ - + diff --git a/components-agents.html b/components-agents.html index 364d4e5d9f..f0fd5fd3ea 100644 --- a/components-agents.html +++ b/components-agents.html @@ -23,7 +23,7 @@ - + diff --git a/components-bundle-components.html b/components-bundle-components.html index 1349f7f301..90f220c370 100644 --- a/components-bundle-components.html +++ b/components-bundle-components.html @@ -23,7 +23,7 @@ - + diff --git a/components-custom-components.html b/components-custom-components.html index 532e7f7ab8..6cb8b1695e 100644 --- a/components-custom-components.html +++ b/components-custom-components.html @@ -23,7 +23,7 @@ - + diff --git a/components-data.html b/components-data.html index 14629e967f..82d89228ca 100644 --- a/components-data.html +++ b/components-data.html @@ -23,7 +23,7 @@ - + diff --git a/components-embedding-models.html b/components-embedding-models.html index cec61e9432..b0bdbf192b 100644 --- a/components-embedding-models.html +++ b/components-embedding-models.html @@ -23,7 +23,7 @@ - + diff --git a/components-helpers.html b/components-helpers.html index b08af73a37..012f3900a6 100644 --- a/components-helpers.html +++ b/components-helpers.html @@ -23,7 +23,7 @@ - + diff --git a/components-io.html b/components-io.html index f12da5b19c..a878be5b51 100644 --- a/components-io.html +++ b/components-io.html @@ -23,7 +23,7 @@ - + diff --git a/components-logic.html b/components-logic.html index 8fa3f1c025..efdc1f08b4 100644 --- a/components-logic.html +++ b/components-logic.html @@ -23,7 +23,7 @@ - + diff --git a/components-memories.html b/components-memories.html index 38b878781a..ad1af9c468 100644 --- a/components-memories.html +++ b/components-memories.html @@ -23,7 +23,7 @@ - + diff --git a/components-models.html b/components-models.html index 9de314c103..f25647c4a5 100644 --- a/components-models.html +++ b/components-models.html @@ -23,7 +23,7 @@ - + diff --git a/components-processing.html b/components-processing.html index 77d5ffc533..99502e946e 100644 --- a/components-processing.html +++ b/components-processing.html @@ -23,7 +23,7 @@ - + diff --git a/components-prompts.html b/components-prompts.html index db936c8a67..641cddc77c 100644 --- a/components-prompts.html +++ b/components-prompts.html @@ -23,7 +23,7 @@ - + diff --git a/components-tools.html b/components-tools.html index 1d92073248..6cb0522a16 100644 --- a/components-tools.html +++ b/components-tools.html @@ -23,7 +23,7 @@ - + diff --git a/components-vector-stores.html b/components-vector-stores.html index bb650b90e0..8f5b40938d 100644 --- a/components-vector-stores.html +++ b/components-vector-stores.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-components.html b/concepts-components.html index ebe8dba99b..3148aa591a 100644 --- a/concepts-components.html +++ b/concepts-components.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-file-management.html b/concepts-file-management.html index a2dc3e40bf..6309f72f1f 100644 --- a/concepts-file-management.html +++ b/concepts-file-management.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-flows-import.html b/concepts-flows-import.html index 1febbccf71..1dfb388010 100644 --- a/concepts-flows-import.html +++ b/concepts-flows-import.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-flows.html b/concepts-flows.html index 67bba748be..44561eefda 100644 --- a/concepts-flows.html +++ b/concepts-flows.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-overview.html b/concepts-overview.html index 2d5c9492ae..7112ab8336 100644 --- a/concepts-overview.html +++ b/concepts-overview.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-playground.html b/concepts-playground.html index 1dfe727086..15cd3e3d06 100644 --- a/concepts-playground.html +++ b/concepts-playground.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-publish.html b/concepts-publish.html index 35b24bba7a..94da24a07d 100644 --- a/concepts-publish.html +++ b/concepts-publish.html @@ -23,7 +23,7 @@ - + diff --git a/concepts-voice-mode.html b/concepts-voice-mode.html index 3cbba9659f..24716f5368 100644 --- a/concepts-voice-mode.html +++ b/concepts-voice-mode.html @@ -23,7 +23,7 @@ - + diff --git a/configuration-api-keys.html b/configuration-api-keys.html index 8a1dce8ff6..9971b19b50 100644 --- a/configuration-api-keys.html +++ b/configuration-api-keys.html @@ -23,7 +23,7 @@ - + @@ -55,9 +55,9 @@ An API key represents the user who created it. If you create a key as a superuse Anyone who has that key can authorize superuser actions through the Langflow API, including user management and flow management.

In Langflow versions 1.5 and later, most API endpoints require a Langflow API key, even when AUTO_LOGIN is set to True. The only exceptions are the MCP endpoints /v1/mcp, /v1/mcp-projects, and /v2/mcp, which never require authentication.

-
AUTO_LOGIN and SKIP_AUTH options

In Langflow versions earlier than 1.5, if AUTO_LOGIN=true, then Langflow automatically logs users in as a superuser without requiring authentication. -In this case, API requests don't require a Langflow API key.

In Langflow version 1.5, you can set SKIP_AUTH_AUTO_LOGIN=true and AUTO_LOGIN=true to skip authentication for API requests. -However, the SKIP_AUTH_AUTO_LOGIN option will be removed in a future release.

+
AUTO_LOGIN and SKIP_AUTH options

In Langflow versions earlier than 1.5, if LANGFLOW_AUTO_LOGIN=true, then Langflow automatically logs users in as a superuser without requiring authentication. +In this case, API requests don't require a Langflow API key.

In Langflow version 1.5, you can set LANGFLOW_SKIP_AUTH_AUTO_LOGIN=true and LANGFLOW_AUTO_LOGIN=true to skip authentication for API requests. +However, the LANGFLOW_SKIP_AUTH_AUTO_LOGIN option will be removed in a future release.

Generate a Langflow API key​

You can generate a Langflow API key with the UI or the CLI.

The UI-generated key is appropriate for most cases. The CLI-generated key is needed when your Langflow server is running in --backend-only mode.

diff --git a/configuration-authentication.html b/configuration-authentication.html index e420719d04..07263e608a 100644 --- a/configuration-authentication.html +++ b/configuration-authentication.html @@ -23,7 +23,7 @@ - + @@ -61,9 +61,9 @@ If AUTO_LOGIN is enabled and user management is disabled (LAN

_10
LANGFLOW_AUTO_LOGIN=True

In Langflow versions 1.5 and later, most API endpoints require a Langflow API key, even when AUTO_LOGIN is set to True. The only exceptions are the MCP endpoints /v1/mcp, /v1/mcp-projects, and /v2/mcp, which never require authentication.

-
AUTO_LOGIN and SKIP_AUTH options

In Langflow versions earlier than 1.5, if AUTO_LOGIN=true, then Langflow automatically logs users in as a superuser without requiring authentication. -In this case, API requests don't require a Langflow API key.

In Langflow version 1.5, you can set SKIP_AUTH_AUTO_LOGIN=true and AUTO_LOGIN=true to skip authentication for API requests. -However, the SKIP_AUTH_AUTO_LOGIN option will be removed in a future release.

+
AUTO_LOGIN and SKIP_AUTH options

In Langflow versions earlier than 1.5, if LANGFLOW_AUTO_LOGIN=true, then Langflow automatically logs users in as a superuser without requiring authentication. +In this case, API requests don't require a Langflow API key.

In Langflow version 1.5, you can set LANGFLOW_SKIP_AUTH_AUTO_LOGIN=true and LANGFLOW_AUTO_LOGIN=true to skip authentication for API requests. +However, the LANGFLOW_SKIP_AUTH_AUTO_LOGIN option will be removed in a future release.

LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD​

These environment variables are only relevant when LANGFLOW_AUTO_LOGIN is set to False. They specify the username and password for the superuser, which is essential for administrative tasks:

diff --git a/configuration-cli.html b/configuration-cli.html index 27c629192c..a428870a31 100644 --- a/configuration-cli.html +++ b/configuration-cli.html @@ -23,7 +23,7 @@ - + diff --git a/configuration-custom-database.html b/configuration-custom-database.html index 45bc409a25..9d415f23db 100644 --- a/configuration-custom-database.html +++ b/configuration-custom-database.html @@ -23,7 +23,7 @@ - + diff --git a/configuration-global-variables.html b/configuration-global-variables.html index e14e675308..2066e7d98e 100644 --- a/configuration-global-variables.html +++ b/configuration-global-variables.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-bundles.html b/contributing-bundles.html index 2012ba8d96..3d49b99e2b 100644 --- a/contributing-bundles.html +++ b/contributing-bundles.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-community.html b/contributing-community.html index a0fa0a69e9..00a8da9818 100644 --- a/contributing-community.html +++ b/contributing-community.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-component-tests.html b/contributing-component-tests.html index 52ce0bfca4..4526041aad 100644 --- a/contributing-component-tests.html +++ b/contributing-component-tests.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-components.html b/contributing-components.html index c2133e9275..b326eff040 100644 --- a/contributing-components.html +++ b/contributing-components.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-github-issues.html b/contributing-github-issues.html index d08429f5c4..14a89a2169 100644 --- a/contributing-github-issues.html +++ b/contributing-github-issues.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-how-to-contribute.html b/contributing-how-to-contribute.html index 35f879a3ef..bd83975610 100644 --- a/contributing-how-to-contribute.html +++ b/contributing-how-to-contribute.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-telemetry.html b/contributing-telemetry.html index 82ca1a9ca2..a518173b14 100644 --- a/contributing-telemetry.html +++ b/contributing-telemetry.html @@ -23,7 +23,7 @@ - + diff --git a/contributing-templates.html b/contributing-templates.html index e6401ab6d7..37de37fbd8 100644 --- a/contributing-templates.html +++ b/contributing-templates.html @@ -23,7 +23,7 @@ - + diff --git a/data-types.html b/data-types.html index 8d1aacdd56..9d96528234 100644 --- a/data-types.html +++ b/data-types.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-caddyfile.html b/deployment-caddyfile.html index 25623e3d4a..ed26f86df9 100644 --- a/deployment-caddyfile.html +++ b/deployment-caddyfile.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-docker.html b/deployment-docker.html index 0fdf335074..a820bc0bcd 100644 --- a/deployment-docker.html +++ b/deployment-docker.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-gcp.html b/deployment-gcp.html index fd4cf3ee37..6dbc7b5141 100644 --- a/deployment-gcp.html +++ b/deployment-gcp.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-hugging-face-spaces.html b/deployment-hugging-face-spaces.html index 15f4d10f3c..684224ec0c 100644 --- a/deployment-hugging-face-spaces.html +++ b/deployment-hugging-face-spaces.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-kubernetes-dev.html b/deployment-kubernetes-dev.html index 70f4973d2e..b409ac30cd 100644 --- a/deployment-kubernetes-dev.html +++ b/deployment-kubernetes-dev.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-kubernetes-prod.html b/deployment-kubernetes-prod.html index 4cabdabbbc..37310e50d1 100644 --- a/deployment-kubernetes-prod.html +++ b/deployment-kubernetes-prod.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-overview.html b/deployment-overview.html index 2e6280d26c..36c5b492d8 100644 --- a/deployment-overview.html +++ b/deployment-overview.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-prod-best-practices.html b/deployment-prod-best-practices.html index 17a1c3fb49..c2f747027d 100644 --- a/deployment-prod-best-practices.html +++ b/deployment-prod-best-practices.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-public-server.html b/deployment-public-server.html index 71ac4c0df1..f69e34efcf 100644 --- a/deployment-public-server.html +++ b/deployment-public-server.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-railway.html b/deployment-railway.html index f6408b330e..1a8e8bd298 100644 --- a/deployment-railway.html +++ b/deployment-railway.html @@ -23,7 +23,7 @@ - + diff --git a/deployment-render.html b/deployment-render.html index 01198d968d..026aef54f6 100644 --- a/deployment-render.html +++ b/deployment-render.html @@ -23,7 +23,7 @@ - + diff --git a/develop-application.html b/develop-application.html index 3dd1e81612..f20991f470 100644 --- a/develop-application.html +++ b/develop-application.html @@ -23,7 +23,7 @@ - + diff --git a/develop-overview.html b/develop-overview.html index 9056a282c0..7fb4a38513 100644 --- a/develop-overview.html +++ b/develop-overview.html @@ -23,7 +23,7 @@ - + diff --git a/document-qa.html b/document-qa.html index 7f2463f2bf..7151b01ec0 100644 --- a/document-qa.html +++ b/document-qa.html @@ -23,7 +23,7 @@ - + diff --git a/environment-variables.html b/environment-variables.html index 60ed1409a1..616e920e4a 100644 --- a/environment-variables.html +++ b/environment-variables.html @@ -23,7 +23,7 @@ - + @@ -135,7 +135,7 @@ Similarly, if you run a Langflow CLI command with --port, Langflow white-space: nowrap; } -
VariableFormatDefaultDescription
DO_NOT_TRACKBooleanfalseIf this option is enabled, Langflow does not track telemetry.
LANGFLOW_AUTO_LOGINBooleantrueEnable automatic login for Langflow. Set to false to disable automatic login and require the login form to log into the Langflow UI. Setting to false requires LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD to be set. For more information, see Authentication.
LANGFLOW_AUTO_SAVINGBooleantrueEnable flow auto-saving.
See --auto-saving option.
LANGFLOW_AUTO_SAVING_INTERVALInteger1000Set the interval for flow auto-saving in milliseconds.
See --auto-saving-interval option.
LANGFLOW_BACKEND_ONLYBooleanfalseOnly run Langflow's backend server (no frontend).
See --backend-only option.
LANGFLOW_BUNDLE_URLSList[String][]A list of URLs from which to load component bundles and flows. Supports GitHub URLs. If LANGFLOW_AUTO_LOGIN is enabled, flows from these bundles are loaded into the database.
LANGFLOW_CACHE_TYPEStringasyncSet the cache type for Langflow. Possible values: async, redis, memory, disk.
If you set the type to redis, then you must also set the following environment variables: LANGFLOW_REDIS_HOST, LANGFLOW_REDIS_PORT, LANGFLOW_REDIS_DB, and LANGFLOW_REDIS_CACHE_EXPIRE.
LANGFLOW_COMPONENTS_PATHStringlangflow/componentsPath to the directory containing custom components.
See --components-path option.
LANGFLOW_CONFIG_DIRStringSee descriptionSet the Langflow configuration directory where files, logs, and the Langflow database are stored. Defaults:
macOS Desktop cache: /Users/<username>/.langflow/cache
Windows Desktop cache: C:\Users\<username>\AppData\Roaming\com.Langflow\cache
OSS macOS/Windows/Linux/WSL (uv pip install) cache: <path_to_venv>/lib/python3.12/site-packages/langflow/cache
OSS macOS/Windows/Linux/WSL (git clone) cache: <path_to_clone>/src/backend/base/langflow/cache
LANGFLOW_DATABASE_URLStringNot setSet the database URL for Langflow. If not provided, Langflow uses a SQLite database.
LANGFLOW_USE_NOOP_DATABASEBooleanfalseUse a no-op database, which avoids database connections and operations. Useful for running flows without a database.
LANGFLOW_DATABASE_CONNECTION_RETRYBooleanfalseIf True, Langflow tries to connect to the database again if it fails.
LANGFLOW_DB_POOL_SIZEInteger10DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool.
LANGFLOW_DB_MAX_OVERFLOWInteger20DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size.
LANGFLOW_DB_CONNECT_TIMEOUTInteger20The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database.
LANGFLOW_DB_CONNECTION_SETTINGSJSONNot setA JSON dictionary to centralize database connection parameters. Example: {"pool_size": 10, "max_overflow": 20}
LANGFLOW_DISABLE_TRACK_APIKEY_USAGEBooleanfalseIf set to true, disables tracking of API key usage (total_uses and last_used_at) to avoid database contention under high concurrency.
LANGFLOW_ENABLE_LOG_RETRIEVALBooleanfalseEnable log retrieval functionality.
LANGFLOW_FALLBACK_TO_ENV_VARBooleantrueIf enabled, global variables set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value.
LANGFLOW_FRONTEND_PATHString./frontendPath to the frontend directory containing build files. This is for development purposes only.
See --frontend-path option.
LANGFLOW_HEALTH_CHECK_MAX_RETRIESInteger5Set the maximum number of retries for the health check.
See --health-check-max-retries option.
LANGFLOW_HOSTStringlocalhostThe host on which the Langflow server will run.
See --host option.
LANGFLOW_LANGCHAIN_CACHEStringInMemoryCacheType of cache to use. Possible values: InMemoryCache, SQLiteCache.
See --cache option.
LANGFLOW_LOG_LEVELStringINFOSet the logging level for Langflow. Possible values: DEBUG, INFO, WARNING, ERROR, CRITICAL.
LANGFLOW_LOG_FILEStringNot setPath to the log file. If this option is not set, logs are written to stdout.
LANGFLOW_LOG_RETRIEVER_BUFFER_SIZEInteger10000Set the buffer size for log retrieval. Only used if LANGFLOW_ENABLE_LOG_RETRIEVAL is enabled.
LANGFLOW_MAX_FILE_SIZE_UPLOADInteger100Set the maximum file size for the upload in megabytes.
See --max-file-size-upload option.
LANGFLOW_MAX_ITEMS_LENGTHInteger100Maximum number of items to store and display in the UI. Lists longer than this will be truncated when displayed in the UI. Does not affect data passed between components nor outputs.
LANGFLOW_MAX_TEXT_LENGTHInteger1000Maximum number of characters to store and display in the UI. Responses longer than this will be truncated when displayed in the UI. Does not truncate responses between components nor outputs.
LANGFLOW_MCP_SERVER_ENABLEDBooleantrueIf this option is set to False, Langflow does not enable the MCP server.
LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONSBooleanfalseIf this option is set to True, Langflow sends progress notifications in the MCP server.
LANGFLOW_NEW_USER_IS_ACTIVEBooleanfalseWhen enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser.
LANGFLOW_OPEN_BROWSERBooleanfalseOpen the system web browser on startup.
See --open-browser option.
LANGFLOW_PORTInteger7860The port on which the Langflow server runs. The server automatically selects a free port if the specified port is in use.
See --port option.
LANGFLOW_PROMETHEUS_ENABLEDBooleanfalseExpose Prometheus metrics.
LANGFLOW_PROMETHEUS_PORTInteger9090Set the port on which Langflow exposes Prometheus metrics.
LANGFLOW_REDIS_CACHE_EXPIREInteger3600See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_DBInteger0See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_HOSTStringlocalhostSee LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_PORTString6379See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_PASSWORDStringNot setPassword for Redis authentication when using Redis cache type.
LANGFLOW_REMOVE_API_KEYSBooleanfalseRemove API keys from the projects saved in the database.
See --remove-api-keys option.
LANGFLOW_SAVE_DB_IN_CONFIG_DIRBooleanfalseSave the Langflow database in LANGFLOW_CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (false), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow.
LANGFLOW_SECRET_KEYStringAuto-generatedKey used for encrypting sensitive data like API keys. If a key is not provided, a secure key is auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances.
LANGFLOW_STOREBooleantrueEnable the Langflow Store.
See --store option.
LANGFLOW_STORE_ENVIRONMENT_VARIABLESBooleantrueStore environment variables as global variables in the database.
LANGFLOW_CREATE_STARTER_PROJECTSBooleantrueIf this option is enabled, Langflow creates starter projects during initialization. Set to false to skip all starter project creation and updates.
LANGFLOW_UPDATE_STARTER_PROJECTSBooleantrueIf this option is enabled, Langflow updates starter projects with the latest component versions when initializing.
LANGFLOW_SUPERUSERStringlangflowSet the name for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --username option.
LANGFLOW_SUPERUSER_PASSWORDStringlangflowSet the password for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --password option.
LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENTStringNot setComma-separated list of environment variables to get from the environment and store as global variables.
LANGFLOW_LOAD_FLOWS_PATHStringNot setPath to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if LANGFLOW_AUTO_LOGIN is enabled.
LANGFLOW_WORKER_TIMEOUTInteger300Worker timeout in seconds.
See --worker-timeout option.
LANGFLOW_WORKERSInteger1Number of worker processes.
See --workers option.
LANGFLOW_SSL_CERT_FILEStringNot setPath to the SSL certificate file on the local system.
LANGFLOW_SSL_KEY_FILEStringNot setPath to the SSL key file on the local system.
SKIP_AUTH_AUTO_LOGINBooleanfalseIf set to true, disables automatic login and enforces authentication, regardless of the value of LANGFLOW_AUTO_LOGIN.
+
VariableFormatDefaultDescription
DO_NOT_TRACKBooleanfalseIf this option is enabled, Langflow does not track telemetry.
LANGFLOW_AUTO_LOGINBooleantrueEnable automatic login for Langflow. Set to false to disable automatic login and require the login form to log into the Langflow UI. Setting to false requires LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD to be set. For more information, see Authentication.
LANGFLOW_AUTO_SAVINGBooleantrueEnable flow auto-saving.
See --auto-saving option.
LANGFLOW_AUTO_SAVING_INTERVALInteger1000Set the interval for flow auto-saving in milliseconds.
See --auto-saving-interval option.
LANGFLOW_BACKEND_ONLYBooleanfalseOnly run Langflow's backend server (no frontend).
See --backend-only option.
LANGFLOW_BUNDLE_URLSList[String][]A list of URLs from which to load component bundles and flows. Supports GitHub URLs. If LANGFLOW_AUTO_LOGIN is enabled, flows from these bundles are loaded into the database.
LANGFLOW_CACHE_TYPEStringasyncSet the cache type for Langflow. Possible values: async, redis, memory, disk.
If you set the type to redis, then you must also set the following environment variables: LANGFLOW_REDIS_HOST, LANGFLOW_REDIS_PORT, LANGFLOW_REDIS_DB, and LANGFLOW_REDIS_CACHE_EXPIRE.
LANGFLOW_COMPONENTS_PATHStringlangflow/componentsPath to the directory containing custom components.
See --components-path option.
LANGFLOW_CONFIG_DIRStringSee descriptionSet the Langflow configuration directory where files, logs, and the Langflow database are stored. Defaults:
macOS Desktop cache: /Users/<username>/.langflow/cache
Windows Desktop cache: C:\Users\<username>\AppData\Roaming\com.Langflow\cache
OSS macOS/Windows/Linux/WSL (uv pip install) cache: <path_to_venv>/lib/python3.12/site-packages/langflow/cache
OSS macOS/Windows/Linux/WSL (git clone) cache: <path_to_clone>/src/backend/base/langflow/cache
LANGFLOW_DATABASE_URLStringNot setSet the database URL for Langflow. If not provided, Langflow uses a SQLite database.
LANGFLOW_USE_NOOP_DATABASEBooleanfalseUse a no-op database, which avoids database connections and operations. Useful for running flows without a database.
LANGFLOW_DATABASE_CONNECTION_RETRYBooleanfalseIf True, Langflow tries to connect to the database again if it fails.
LANGFLOW_DB_POOL_SIZEInteger10DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool.
LANGFLOW_DB_MAX_OVERFLOWInteger20DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size.
LANGFLOW_DB_CONNECT_TIMEOUTInteger20The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database.
LANGFLOW_DB_CONNECTION_SETTINGSJSONNot setA JSON dictionary to centralize database connection parameters. Example: {"pool_size": 10, "max_overflow": 20}
LANGFLOW_DISABLE_TRACK_APIKEY_USAGEBooleanfalseIf set to true, disables tracking of API key usage (total_uses and last_used_at) to avoid database contention under high concurrency.
LANGFLOW_ENABLE_LOG_RETRIEVALBooleanfalseEnable log retrieval functionality.
LANGFLOW_FALLBACK_TO_ENV_VARBooleantrueIf enabled, global variables set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value.
LANGFLOW_FRONTEND_PATHString./frontendPath to the frontend directory containing build files. This is for development purposes only.
See --frontend-path option.
LANGFLOW_HEALTH_CHECK_MAX_RETRIESInteger5Set the maximum number of retries for the health check.
See --health-check-max-retries option.
LANGFLOW_HOSTStringlocalhostThe host on which the Langflow server will run.
See --host option.
LANGFLOW_LANGCHAIN_CACHEStringInMemoryCacheType of cache to use. Possible values: InMemoryCache, SQLiteCache.
See --cache option.
LANGFLOW_LOG_LEVELStringINFOSet the logging level for Langflow. Possible values: DEBUG, INFO, WARNING, ERROR, CRITICAL.
LANGFLOW_LOG_FILEStringNot setPath to the log file. If this option is not set, logs are written to stdout.
LANGFLOW_LOG_RETRIEVER_BUFFER_SIZEInteger10000Set the buffer size for log retrieval. Only used if LANGFLOW_ENABLE_LOG_RETRIEVAL is enabled.
LANGFLOW_MAX_FILE_SIZE_UPLOADInteger100Set the maximum file size for the upload in megabytes.
See --max-file-size-upload option.
LANGFLOW_MAX_ITEMS_LENGTHInteger100Maximum number of items to store and display in the UI. Lists longer than this will be truncated when displayed in the UI. Does not affect data passed between components nor outputs.
LANGFLOW_MAX_TEXT_LENGTHInteger1000Maximum number of characters to store and display in the UI. Responses longer than this will be truncated when displayed in the UI. Does not truncate responses between components nor outputs.
LANGFLOW_MCP_SERVER_ENABLEDBooleantrueIf this option is set to False, Langflow does not enable the MCP server.
LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONSBooleanfalseIf this option is set to True, Langflow sends progress notifications in the MCP server.
LANGFLOW_NEW_USER_IS_ACTIVEBooleanfalseWhen enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser.
LANGFLOW_OPEN_BROWSERBooleanfalseOpen the system web browser on startup.
See --open-browser option.
LANGFLOW_PORTInteger7860The port on which the Langflow server runs. The server automatically selects a free port if the specified port is in use.
See --port option.
LANGFLOW_PROMETHEUS_ENABLEDBooleanfalseExpose Prometheus metrics.
LANGFLOW_PROMETHEUS_PORTInteger9090Set the port on which Langflow exposes Prometheus metrics.
LANGFLOW_REDIS_CACHE_EXPIREInteger3600See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_DBInteger0See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_HOSTStringlocalhostSee LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_PORTString6379See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_PASSWORDStringNot setPassword for Redis authentication when using Redis cache type.
LANGFLOW_REMOVE_API_KEYSBooleanfalseRemove API keys from the projects saved in the database.
See --remove-api-keys option.
LANGFLOW_SAVE_DB_IN_CONFIG_DIRBooleanfalseSave the Langflow database in LANGFLOW_CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (false), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow.
LANGFLOW_SECRET_KEYStringAuto-generatedKey used for encrypting sensitive data like API keys. If a key is not provided, a secure key is auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances.
LANGFLOW_STOREBooleantrueEnable the Langflow Store.
See --store option.
LANGFLOW_STORE_ENVIRONMENT_VARIABLESBooleantrueStore environment variables as global variables in the database.
LANGFLOW_CREATE_STARTER_PROJECTSBooleantrueIf this option is enabled, Langflow creates starter projects during initialization. Set to false to skip all starter project creation and updates.
LANGFLOW_UPDATE_STARTER_PROJECTSBooleantrueIf this option is enabled, Langflow updates starter projects with the latest component versions when initializing.
LANGFLOW_SUPERUSERStringlangflowSet the name for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --username option.
LANGFLOW_SUPERUSER_PASSWORDStringlangflowSet the password for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --password option.
LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENTStringNot setComma-separated list of environment variables to get from the environment and store as global variables.
LANGFLOW_LOAD_FLOWS_PATHStringNot setPath to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if LANGFLOW_AUTO_LOGIN is enabled.
LANGFLOW_WORKER_TIMEOUTInteger300Worker timeout in seconds.
See --worker-timeout option.
LANGFLOW_WORKERSInteger1Number of worker processes.
See --workers option.
LANGFLOW_SSL_CERT_FILEStringNot setPath to the SSL certificate file on the local system.
LANGFLOW_SSL_KEY_FILEStringNot setPath to the SSL key file on the local system.
LANGFLOW_SKIP_AUTH_AUTO_LOGINBooleantrueIf set to true, and LANGFLOW_AUTO_LOGIN is set to true, skips authentication and allows automatic login as the superuser. If set to false, and LANGFLOW_AUTO_LOGIN is set to true, disables automatic login and enforces authentication. If LANGFLOW_AUTO_LOGIN is false, has no effect.

Configure .env, override.conf, and tasks.json files​

The following examples show how to configure Langflow using environment variables in different scenarios.

The .env file is a text file that contains key-value pairs of environment variables.

Create or edit a file named .env in your project root directory and add your configuration:


_30
DO_NOT_TRACK=true
_30
LANGFLOW_AUTO_LOGIN=false
_30
LANGFLOW_AUTO_SAVING=true
_30
LANGFLOW_AUTO_SAVING_INTERVAL=1000
_30
LANGFLOW_BACKEND_ONLY=false
_30
LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]
_30
LANGFLOW_CACHE_TYPE=async
_30
LANGFLOW_COMPONENTS_PATH=/path/to/components/
_30
LANGFLOW_CONFIG_DIR=/path/to/config/
_30
LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow
_30
LANGFLOW_DEV=false
_30
LANGFLOW_FALLBACK_TO_ENV_VAR=false
_30
LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5
_30
LANGFLOW_HOST=localhost
_30
LANGFLOW_LANGCHAIN_CACHE=InMemoryCache
_30
LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000
_30
LANGFLOW_MAX_ITEMS_LENGTH=100
_30
LANGFLOW_MAX_TEXT_LENGTH=1000
_30
LANGFLOW_LOG_LEVEL=error
_30
LANGFLOW_OPEN_BROWSER=false
_30
LANGFLOW_PORT=7860
_30
LANGFLOW_REMOVE_API_KEYS=false
_30
LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true
_30
LANGFLOW_SECRET_KEY=somesecretkey
_30
LANGFLOW_STORE=true
_30
LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true
_30
LANGFLOW_SUPERUSER=adminuser
_30
LANGFLOW_SUPERUSER_PASSWORD=adminpass
_30
LANGFLOW_WORKER_TIMEOUT=60000
_30
LANGFLOW_WORKERS=3

diff --git a/financial-report-parser.html b/financial-report-parser.html index 23308d34a6..9b53f229c6 100644 --- a/financial-report-parser.html +++ b/financial-report-parser.html @@ -23,7 +23,7 @@ - + diff --git a/get-started-installation.html b/get-started-installation.html index d117162c6c..b5ea5b357f 100644 --- a/get-started-installation.html +++ b/get-started-installation.html @@ -23,7 +23,7 @@ - + diff --git a/get-started-quickstart.html b/get-started-quickstart.html index 214150589c..19d1deee7e 100644 --- a/get-started-quickstart.html +++ b/get-started-quickstart.html @@ -23,7 +23,7 @@ - + diff --git a/index.html b/index.html index 2b57c9a9e6..0824f77967 100644 --- a/index.html +++ b/index.html @@ -23,7 +23,7 @@ - + diff --git a/install-custom-dependencies.html b/install-custom-dependencies.html index 6fe9541d91..3ac3faf65f 100644 --- a/install-custom-dependencies.html +++ b/install-custom-dependencies.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-apify.html b/integrations-apify.html index ad36413ecc..a7aabc8118 100644 --- a/integrations-apify.html +++ b/integrations-apify.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-arize.html b/integrations-arize.html index 9b5da2d20e..fca57a02ca 100644 --- a/integrations-arize.html +++ b/integrations-arize.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-assemblyai.html b/integrations-assemblyai.html index 222cd978b6..2eab96940c 100644 --- a/integrations-assemblyai.html +++ b/integrations-assemblyai.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-cleanlab.html b/integrations-cleanlab.html index 55f3099782..1889b9b2ff 100644 --- a/integrations-cleanlab.html +++ b/integrations-cleanlab.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-composio.html b/integrations-composio.html index 280674695d..421dedca7d 100644 --- a/integrations-composio.html +++ b/integrations-composio.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-docling.html b/integrations-docling.html index 01fb163f27..a2589509be 100644 --- a/integrations-docling.html +++ b/integrations-docling.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-google-big-query.html b/integrations-google-big-query.html index 2e68acc3b0..e829f5a567 100644 --- a/integrations-google-big-query.html +++ b/integrations-google-big-query.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-langfuse.html b/integrations-langfuse.html index 5eaafec6d4..5da427961a 100644 --- a/integrations-langfuse.html +++ b/integrations-langfuse.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-langsmith.html b/integrations-langsmith.html index 191117e023..273c245eb2 100644 --- a/integrations-langsmith.html +++ b/integrations-langsmith.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-langwatch.html b/integrations-langwatch.html index 2b992967c0..d9d431e819 100644 --- a/integrations-langwatch.html +++ b/integrations-langwatch.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-nvidia-g-assist.html b/integrations-nvidia-g-assist.html index 121fe1cc01..749b1b7f24 100644 --- a/integrations-nvidia-g-assist.html +++ b/integrations-nvidia-g-assist.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-nvidia-ingest-wsl2.html b/integrations-nvidia-ingest-wsl2.html index 71c429d466..a7002f4114 100644 --- a/integrations-nvidia-ingest-wsl2.html +++ b/integrations-nvidia-ingest-wsl2.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-nvidia-ingest.html b/integrations-nvidia-ingest.html index 3baddc9c17..def7d66cd9 100644 --- a/integrations-nvidia-ingest.html +++ b/integrations-nvidia-ingest.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-opik.html b/integrations-opik.html index 59b5b3ae78..8c5513bd4c 100644 --- a/integrations-opik.html +++ b/integrations-opik.html @@ -23,7 +23,7 @@ - + diff --git a/integrations-setup-google-cloud-vertex-ai-langflow.html b/integrations-setup-google-cloud-vertex-ai-langflow.html index 6e91e5479a..42ca205eb2 100644 --- a/integrations-setup-google-cloud-vertex-ai-langflow.html +++ b/integrations-setup-google-cloud-vertex-ai-langflow.html @@ -23,7 +23,7 @@ - + diff --git a/integrations/notion/notion-agent-conversational.html b/integrations/notion/notion-agent-conversational.html index fdef525b5f..0e92b60d47 100644 --- a/integrations/notion/notion-agent-conversational.html +++ b/integrations/notion/notion-agent-conversational.html @@ -23,7 +23,7 @@ - + diff --git a/integrations/notion/notion-agent-meeting-notes.html b/integrations/notion/notion-agent-meeting-notes.html index 8f76d0ba33..e0c15d444a 100644 --- a/integrations/notion/notion-agent-meeting-notes.html +++ b/integrations/notion/notion-agent-meeting-notes.html @@ -23,7 +23,7 @@ - + diff --git a/integrations/notion/setup.html b/integrations/notion/setup.html index 62be662183..2962ed3e5c 100644 --- a/integrations/notion/setup.html +++ b/integrations/notion/setup.html @@ -23,7 +23,7 @@ - + diff --git a/logging.html b/logging.html index 70c90a24a7..f3e95e94d0 100644 --- a/logging.html +++ b/logging.html @@ -23,7 +23,7 @@ - + diff --git a/luna-for-langflow.html b/luna-for-langflow.html index 2742e61f0a..5153c784ae 100644 --- a/luna-for-langflow.html +++ b/luna-for-langflow.html @@ -23,7 +23,7 @@ - + diff --git a/mcp-client.html b/mcp-client.html index eb69823f02..3af8a488cc 100644 --- a/mcp-client.html +++ b/mcp-client.html @@ -23,7 +23,7 @@ - + diff --git a/mcp-component-astra.html b/mcp-component-astra.html index 4d41860655..cfdf6cf99f 100644 --- a/mcp-component-astra.html +++ b/mcp-component-astra.html @@ -23,7 +23,7 @@ - + diff --git a/mcp-server.html b/mcp-server.html index bda4a1c4a4..ea34fec5df 100644 --- a/mcp-server.html +++ b/mcp-server.html @@ -23,7 +23,7 @@ - + diff --git a/mcp-tutorial.html b/mcp-tutorial.html index c02c38ba52..3dcd93b62a 100644 --- a/mcp-tutorial.html +++ b/mcp-tutorial.html @@ -23,7 +23,7 @@ - + diff --git a/memory-chatbot.html b/memory-chatbot.html index 4a6049e3de..3b04ef1c65 100644 --- a/memory-chatbot.html +++ b/memory-chatbot.html @@ -23,7 +23,7 @@ - + diff --git a/memory.html b/memory.html index 6c63ad360d..1b9b5330d6 100644 --- a/memory.html +++ b/memory.html @@ -23,7 +23,7 @@ - + diff --git a/release-notes.html b/release-notes.html index b9dd35b7c5..c59955a57a 100644 --- a/release-notes.html +++ b/release-notes.html @@ -23,7 +23,7 @@ - + diff --git a/search.html b/search.html index f21611b54e..f612103581 100644 --- a/search.html +++ b/search.html @@ -23,7 +23,7 @@ - + diff --git a/sequential-agent.html b/sequential-agent.html index 9bb062f1a8..987de9721a 100644 --- a/sequential-agent.html +++ b/sequential-agent.html @@ -23,7 +23,7 @@ - + diff --git a/session-id.html b/session-id.html index ffcffb64e5..5610d3c761 100644 --- a/session-id.html +++ b/session-id.html @@ -23,7 +23,7 @@ - + diff --git a/simple-agent.html b/simple-agent.html index b27816ae21..8228956ab2 100644 --- a/simple-agent.html +++ b/simple-agent.html @@ -23,7 +23,7 @@ - + diff --git a/sitemap.xml b/sitemap.xml index 50ad212145..c1df10970c 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://docs.langflow.org/searchhttps://docs.langflow.org/apihttps://docs.langflow.org/api/add-serverhttps://docs.langflow.org/api/add-userhttps://docs.langflow.org/api/auto-loginhttps://docs.langflow.org/api/build-flowhttps://docs.langflow.org/api/build-public-tmphttps://docs.langflow.org/api/build-vertexhttps://docs.langflow.org/api/build-vertex-streamhttps://docs.langflow.org/api/cancel-buildhttps://docs.langflow.org/api/check-if-store-has-api-keyhttps://docs.langflow.org/api/check-if-store-is-enabledhttps://docs.langflow.org/api/check-installed-mcp-servershttps://docs.langflow.org/api/create-api-key-routehttps://docs.langflow.org/api/create-flowhttps://docs.langflow.org/api/create-flowshttps://docs.langflow.org/api/create-folder-redirecthttps://docs.langflow.org/api/create-projecthttps://docs.langflow.org/api/create-upload-filehttps://docs.langflow.org/api/create-variablehttps://docs.langflow.org/api/custom-componenthttps://docs.langflow.org/api/custom-component-updatehttps://docs.langflow.org/api/delete-all-fileshttps://docs.langflow.org/api/delete-all-files-1https://docs.langflow.org/api/delete-api-key-routehttps://docs.langflow.org/api/delete-filehttps://docs.langflow.org/api/delete-file-1https://docs.langflow.org/api/delete-files-batchhttps://docs.langflow.org/api/delete-flowhttps://docs.langflow.org/api/delete-folder-redirecthttps://docs.langflow.org/api/delete-messageshttps://docs.langflow.org/api/delete-messages-sessionhttps://docs.langflow.org/api/delete-multiple-flowshttps://docs.langflow.org/api/delete-projecthttps://docs.langflow.org/api/delete-serverhttps://docs.langflow.org/api/delete-userhttps://docs.langflow.org/api/delete-variablehttps://docs.langflow.org/api/delete-vertex-buildshttps://docs.langflow.org/api/download-componenthttps://docs.langflow.org/api/download-filehttps://docs.langflow.org/api/download-file-1https://docs.langflow.org/api/download-file-2https://docs.langflow.org/api/download-file-redirecthttps://docs.langflow.org/api/download-files-batchhttps://docs.langflow.org/api/download-imagehttps://docs.langflow.org/api/download-multiple-filehttps://docs.langflow.org/api/download-profile-picturehttps://docs.langflow.org/api/edit-file-namehttps://docs.langflow.org/api/experimental-run-flowhttps://docs.langflow.org/api/get-allhttps://docs.langflow.org/api/get-api-keys-routehttps://docs.langflow.org/api/get-build-eventshttps://docs.langflow.org/api/get-componentshttps://docs.langflow.org/api/get-confighttps://docs.langflow.org/api/get-elevenlabs-voice-idshttps://docs.langflow.org/api/get-list-of-components-liked-by-userhttps://docs.langflow.org/api/get-message-sessionshttps://docs.langflow.org/api/get-messageshttps://docs.langflow.org/api/get-server-endpointhttps://docs.langflow.org/api/get-servershttps://docs.langflow.org/api/get-starter-projectshttps://docs.langflow.org/api/get-tagshttps://docs.langflow.org/api/get-task-statushttps://docs.langflow.org/api/get-transactionshttps://docs.langflow.org/api/get-versionhttps://docs.langflow.org/api/get-vertex-buildshttps://docs.langflow.org/api/handle-messageshttps://docs.langflow.org/api/handle-messages-1https://docs.langflow.org/api/handle-project-messageshttps://docs.langflow.org/api/handle-project-messages-with-slashhttps://docs.langflow.org/api/handle-project-ssehttps://docs.langflow.org/api/handle-ssehttps://docs.langflow.org/api/handle-sse-1https://docs.langflow.org/api/healthhttps://docs.langflow.org/api/health-checkhttps://docs.langflow.org/api/install-mcp-confighttps://docs.langflow.org/api/like-componenthttps://docs.langflow.org/api/list-fileshttps://docs.langflow.org/api/list-files-1https://docs.langflow.org/api/list-files-2https://docs.langflow.org/api/list-profile-pictureshttps://docs.langflow.org/api/list-project-toolshttps://docs.langflow.org/api/login-to-get-access-tokenhttps://docs.langflow.org/api/logouthttps://docs.langflow.org/api/logshttps://docs.langflow.org/api/patch-userhttps://docs.langflow.org/api/post-validate-codehttps://docs.langflow.org/api/post-validate-prompthttps://docs.langflow.org/api/processhttps://docs.langflow.org/api/process-1https://docs.langflow.org/api/read-all-usershttps://docs.langflow.org/api/read-basic-exampleshttps://docs.langflow.org/api/read-current-userhttps://docs.langflow.org/api/read-flowhttps://docs.langflow.org/api/read-flowshttps://docs.langflow.org/api/read-folder-redirecthttps://docs.langflow.org/api/read-folders-redirecthttps://docs.langflow.org/api/read-projecthttps://docs.langflow.org/api/read-projectshttps://docs.langflow.org/api/read-public-flowhttps://docs.langflow.org/api/read-variableshttps://docs.langflow.org/api/refresh-tokenhttps://docs.langflow.org/api/reset-passwordhttps://docs.langflow.org/api/retrieve-vertices-orderhttps://docs.langflow.org/api/save-store-api-keyhttps://docs.langflow.org/api/share-componenthttps://docs.langflow.org/api/simplified-run-flowhttps://docs.langflow.org/api/stream-logshttps://docs.langflow.org/api/update-flowhttps://docs.langflow.org/api/update-folder-redirecthttps://docs.langflow.org/api/update-messagehttps://docs.langflow.org/api/update-projecthttps://docs.langflow.org/api/update-project-mcp-settingshttps://docs.langflow.org/api/update-server-endpointhttps://docs.langflow.org/api/update-session-idhttps://docs.langflow.org/api/update-shared-componenthttps://docs.langflow.org/api/update-variablehttps://docs.langflow.org/api/upload-filehttps://docs.langflow.org/api/upload-file-1https://docs.langflow.org/api/upload-file-2https://docs.langflow.org/api/upload-file-redirecthttps://docs.langflow.org/api/upload-user-filehttps://docs.langflow.org/api/upload-user-file-1https://docs.langflow.org/api/webhook-run-flowhttps://docs.langflow.org/about-langflow2025-07-22T16:39:57.000Zhttps://docs.langflow.org/agent-tutorial2025-07-22T16:39:57.000Zhttps://docs.langflow.org/agents2025-07-22T16:39:57.000Zhttps://docs.langflow.org/agents-tools2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-build2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-files2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-flows2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-flows-run2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-logs2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-monitor2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-projects2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-reference-api-examples2025-07-22T16:39:57.000Zhttps://docs.langflow.org/api-users2025-07-22T16:39:57.000Zhttps://docs.langflow.org/basic-prompting2025-07-22T16:39:57.000Zhttps://docs.langflow.org/blog-writer2025-07-22T16:39:57.000Zhttps://docs.langflow.org/chat-with-files2025-07-22T16:39:57.000Zhttps://docs.langflow.org/chat-with-rag2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-agents2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-bundle-components2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-custom-components2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-data2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-embedding-models2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-helpers2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-io2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-logic2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-memories2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-models2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-processing2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-prompts2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-tools2025-07-22T16:39:57.000Zhttps://docs.langflow.org/components-vector-stores2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-components2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-file-management2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-flows2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-flows-import2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-overview2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-playground2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-publish2025-07-22T16:39:57.000Zhttps://docs.langflow.org/concepts-voice-mode2025-07-22T16:39:57.000Zhttps://docs.langflow.org/configuration-api-keys2025-07-22T16:39:57.000Zhttps://docs.langflow.org/configuration-authentication2025-07-22T16:39:57.000Zhttps://docs.langflow.org/configuration-cli2025-07-22T16:39:57.000Zhttps://docs.langflow.org/configuration-custom-database2025-07-22T16:39:57.000Zhttps://docs.langflow.org/configuration-global-variables2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-bundles2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-community2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-component-tests2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-components2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-github-issues2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-how-to-contribute2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-telemetry2025-07-22T16:39:57.000Zhttps://docs.langflow.org/contributing-templates2025-07-22T16:39:57.000Zhttps://docs.langflow.org/data-types2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-caddyfile2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-docker2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-gcp2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-kubernetes-dev2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-kubernetes-prod2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-overview2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-prod-best-practices2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-public-server2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-railway2025-07-22T16:39:57.000Zhttps://docs.langflow.org/deployment-render2025-07-22T16:39:57.000Zhttps://docs.langflow.org/develop-application2025-07-22T16:39:57.000Zhttps://docs.langflow.org/develop-overview2025-07-22T16:39:57.000Zhttps://docs.langflow.org/document-qa2025-07-22T16:39:57.000Zhttps://docs.langflow.org/environment-variables2025-07-22T16:39:57.000Zhttps://docs.langflow.org/financial-report-parser2025-07-22T16:39:57.000Zhttps://docs.langflow.org/get-started-installation2025-07-22T16:39:57.000Zhttps://docs.langflow.org/get-started-quickstart2025-07-22T16:39:57.000Zhttps://docs.langflow.org/install-custom-dependencies2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-apify2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-arize2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-assemblyai2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-cleanlab2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-composio2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-docling2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-google-big-query2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-langfuse2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-langsmith2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-langwatch2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-nvidia-g-assist2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-nvidia-ingest2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-nvidia-ingest-wsl22025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-opik2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations-setup-google-cloud-vertex-ai-langflow2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-conversational2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-meeting-notes2025-07-22T16:39:57.000Zhttps://docs.langflow.org/integrations/notion/setup2025-07-22T16:39:57.000Zhttps://docs.langflow.org/logging2025-07-22T16:39:57.000Zhttps://docs.langflow.org/luna-for-langflow2025-07-22T16:39:57.000Zhttps://docs.langflow.org/mcp-client2025-07-22T16:39:57.000Zhttps://docs.langflow.org/mcp-component-astra2025-07-22T16:39:57.000Zhttps://docs.langflow.org/mcp-server2025-07-22T16:39:57.000Zhttps://docs.langflow.org/mcp-tutorial2025-07-22T16:39:57.000Zhttps://docs.langflow.org/memory2025-07-22T16:39:57.000Zhttps://docs.langflow.org/memory-chatbot2025-07-22T16:39:57.000Zhttps://docs.langflow.org/release-notes2025-07-22T16:39:57.000Zhttps://docs.langflow.org/sequential-agent2025-07-22T16:39:57.000Zhttps://docs.langflow.org/session-id2025-07-22T16:39:57.000Zhttps://docs.langflow.org/simple-agent2025-07-22T16:39:57.000Zhttps://docs.langflow.org/travel-planning-agent2025-07-22T16:39:57.000Zhttps://docs.langflow.org/troubleshoot2025-07-22T16:39:57.000Zhttps://docs.langflow.org/typescript-client2025-07-22T16:39:57.000Zhttps://docs.langflow.org/vector-store-rag2025-07-22T16:39:57.000Zhttps://docs.langflow.org/webhook2025-07-22T16:39:57.000Zhttps://docs.langflow.org/2025-07-22T16:39:57.000Z \ No newline at end of file +https://docs.langflow.org/searchhttps://docs.langflow.org/apihttps://docs.langflow.org/api/add-serverhttps://docs.langflow.org/api/add-userhttps://docs.langflow.org/api/auto-loginhttps://docs.langflow.org/api/build-flowhttps://docs.langflow.org/api/build-public-tmphttps://docs.langflow.org/api/build-vertexhttps://docs.langflow.org/api/build-vertex-streamhttps://docs.langflow.org/api/cancel-buildhttps://docs.langflow.org/api/check-if-store-has-api-keyhttps://docs.langflow.org/api/check-if-store-is-enabledhttps://docs.langflow.org/api/check-installed-mcp-servershttps://docs.langflow.org/api/create-api-key-routehttps://docs.langflow.org/api/create-flowhttps://docs.langflow.org/api/create-flowshttps://docs.langflow.org/api/create-folder-redirecthttps://docs.langflow.org/api/create-projecthttps://docs.langflow.org/api/create-upload-filehttps://docs.langflow.org/api/create-variablehttps://docs.langflow.org/api/custom-componenthttps://docs.langflow.org/api/custom-component-updatehttps://docs.langflow.org/api/delete-all-fileshttps://docs.langflow.org/api/delete-all-files-1https://docs.langflow.org/api/delete-api-key-routehttps://docs.langflow.org/api/delete-filehttps://docs.langflow.org/api/delete-file-1https://docs.langflow.org/api/delete-files-batchhttps://docs.langflow.org/api/delete-flowhttps://docs.langflow.org/api/delete-folder-redirecthttps://docs.langflow.org/api/delete-messageshttps://docs.langflow.org/api/delete-messages-sessionhttps://docs.langflow.org/api/delete-multiple-flowshttps://docs.langflow.org/api/delete-projecthttps://docs.langflow.org/api/delete-serverhttps://docs.langflow.org/api/delete-userhttps://docs.langflow.org/api/delete-variablehttps://docs.langflow.org/api/delete-vertex-buildshttps://docs.langflow.org/api/download-componenthttps://docs.langflow.org/api/download-filehttps://docs.langflow.org/api/download-file-1https://docs.langflow.org/api/download-file-2https://docs.langflow.org/api/download-file-redirecthttps://docs.langflow.org/api/download-files-batchhttps://docs.langflow.org/api/download-imagehttps://docs.langflow.org/api/download-multiple-filehttps://docs.langflow.org/api/download-profile-picturehttps://docs.langflow.org/api/edit-file-namehttps://docs.langflow.org/api/experimental-run-flowhttps://docs.langflow.org/api/get-allhttps://docs.langflow.org/api/get-api-keys-routehttps://docs.langflow.org/api/get-build-eventshttps://docs.langflow.org/api/get-componentshttps://docs.langflow.org/api/get-confighttps://docs.langflow.org/api/get-elevenlabs-voice-idshttps://docs.langflow.org/api/get-list-of-components-liked-by-userhttps://docs.langflow.org/api/get-message-sessionshttps://docs.langflow.org/api/get-messageshttps://docs.langflow.org/api/get-server-endpointhttps://docs.langflow.org/api/get-servershttps://docs.langflow.org/api/get-starter-projectshttps://docs.langflow.org/api/get-tagshttps://docs.langflow.org/api/get-task-statushttps://docs.langflow.org/api/get-transactionshttps://docs.langflow.org/api/get-versionhttps://docs.langflow.org/api/get-vertex-buildshttps://docs.langflow.org/api/handle-messageshttps://docs.langflow.org/api/handle-messages-1https://docs.langflow.org/api/handle-project-messageshttps://docs.langflow.org/api/handle-project-messages-with-slashhttps://docs.langflow.org/api/handle-project-ssehttps://docs.langflow.org/api/handle-ssehttps://docs.langflow.org/api/handle-sse-1https://docs.langflow.org/api/healthhttps://docs.langflow.org/api/health-checkhttps://docs.langflow.org/api/install-mcp-confighttps://docs.langflow.org/api/like-componenthttps://docs.langflow.org/api/list-fileshttps://docs.langflow.org/api/list-files-1https://docs.langflow.org/api/list-files-2https://docs.langflow.org/api/list-profile-pictureshttps://docs.langflow.org/api/list-project-toolshttps://docs.langflow.org/api/login-to-get-access-tokenhttps://docs.langflow.org/api/logouthttps://docs.langflow.org/api/logshttps://docs.langflow.org/api/patch-userhttps://docs.langflow.org/api/post-validate-codehttps://docs.langflow.org/api/post-validate-prompthttps://docs.langflow.org/api/processhttps://docs.langflow.org/api/process-1https://docs.langflow.org/api/read-all-usershttps://docs.langflow.org/api/read-basic-exampleshttps://docs.langflow.org/api/read-current-userhttps://docs.langflow.org/api/read-flowhttps://docs.langflow.org/api/read-flowshttps://docs.langflow.org/api/read-folder-redirecthttps://docs.langflow.org/api/read-folders-redirecthttps://docs.langflow.org/api/read-projecthttps://docs.langflow.org/api/read-projectshttps://docs.langflow.org/api/read-public-flowhttps://docs.langflow.org/api/read-variableshttps://docs.langflow.org/api/refresh-tokenhttps://docs.langflow.org/api/reset-passwordhttps://docs.langflow.org/api/retrieve-vertices-orderhttps://docs.langflow.org/api/save-store-api-keyhttps://docs.langflow.org/api/share-componenthttps://docs.langflow.org/api/simplified-run-flowhttps://docs.langflow.org/api/stream-logshttps://docs.langflow.org/api/update-flowhttps://docs.langflow.org/api/update-folder-redirecthttps://docs.langflow.org/api/update-messagehttps://docs.langflow.org/api/update-projecthttps://docs.langflow.org/api/update-project-mcp-settingshttps://docs.langflow.org/api/update-server-endpointhttps://docs.langflow.org/api/update-session-idhttps://docs.langflow.org/api/update-shared-componenthttps://docs.langflow.org/api/update-variablehttps://docs.langflow.org/api/upload-filehttps://docs.langflow.org/api/upload-file-1https://docs.langflow.org/api/upload-file-2https://docs.langflow.org/api/upload-file-redirecthttps://docs.langflow.org/api/upload-user-filehttps://docs.langflow.org/api/upload-user-file-1https://docs.langflow.org/api/webhook-run-flowhttps://docs.langflow.org/about-langflow2025-07-23T13:48:46.000Zhttps://docs.langflow.org/agent-tutorial2025-07-23T13:48:46.000Zhttps://docs.langflow.org/agents2025-07-23T13:48:46.000Zhttps://docs.langflow.org/agents-tools2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-build2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-files2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-flows2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-flows-run2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-logs2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-monitor2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-projects2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-reference-api-examples2025-07-23T13:48:46.000Zhttps://docs.langflow.org/api-users2025-07-23T13:48:46.000Zhttps://docs.langflow.org/basic-prompting2025-07-23T13:48:46.000Zhttps://docs.langflow.org/blog-writer2025-07-23T13:48:46.000Zhttps://docs.langflow.org/chat-with-files2025-07-23T13:48:46.000Zhttps://docs.langflow.org/chat-with-rag2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-agents2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-bundle-components2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-custom-components2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-data2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-embedding-models2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-helpers2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-io2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-logic2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-memories2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-models2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-processing2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-prompts2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-tools2025-07-23T13:48:46.000Zhttps://docs.langflow.org/components-vector-stores2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-components2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-file-management2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-flows2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-flows-import2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-overview2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-playground2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-publish2025-07-23T13:48:46.000Zhttps://docs.langflow.org/concepts-voice-mode2025-07-23T13:48:46.000Zhttps://docs.langflow.org/configuration-api-keys2025-07-23T13:48:46.000Zhttps://docs.langflow.org/configuration-authentication2025-07-23T13:48:46.000Zhttps://docs.langflow.org/configuration-cli2025-07-23T13:48:46.000Zhttps://docs.langflow.org/configuration-custom-database2025-07-23T13:48:46.000Zhttps://docs.langflow.org/configuration-global-variables2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-bundles2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-community2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-component-tests2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-components2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-github-issues2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-how-to-contribute2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-telemetry2025-07-23T13:48:46.000Zhttps://docs.langflow.org/contributing-templates2025-07-23T13:48:46.000Zhttps://docs.langflow.org/data-types2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-caddyfile2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-docker2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-gcp2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-kubernetes-dev2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-kubernetes-prod2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-overview2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-prod-best-practices2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-public-server2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-railway2025-07-23T13:48:46.000Zhttps://docs.langflow.org/deployment-render2025-07-23T13:48:46.000Zhttps://docs.langflow.org/develop-application2025-07-23T13:48:46.000Zhttps://docs.langflow.org/develop-overview2025-07-23T13:48:46.000Zhttps://docs.langflow.org/document-qa2025-07-23T13:48:46.000Zhttps://docs.langflow.org/environment-variables2025-07-23T13:48:46.000Zhttps://docs.langflow.org/financial-report-parser2025-07-23T13:48:46.000Zhttps://docs.langflow.org/get-started-installation2025-07-23T13:48:46.000Zhttps://docs.langflow.org/get-started-quickstart2025-07-23T13:48:46.000Zhttps://docs.langflow.org/install-custom-dependencies2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-apify2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-arize2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-assemblyai2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-cleanlab2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-composio2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-docling2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-google-big-query2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-langfuse2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-langsmith2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-langwatch2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-nvidia-g-assist2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-nvidia-ingest2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-nvidia-ingest-wsl22025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-opik2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations-setup-google-cloud-vertex-ai-langflow2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-conversational2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-meeting-notes2025-07-23T13:48:46.000Zhttps://docs.langflow.org/integrations/notion/setup2025-07-23T13:48:46.000Zhttps://docs.langflow.org/logging2025-07-23T13:48:46.000Zhttps://docs.langflow.org/luna-for-langflow2025-07-23T13:48:46.000Zhttps://docs.langflow.org/mcp-client2025-07-23T13:48:46.000Zhttps://docs.langflow.org/mcp-component-astra2025-07-23T13:48:46.000Zhttps://docs.langflow.org/mcp-server2025-07-23T13:48:46.000Zhttps://docs.langflow.org/mcp-tutorial2025-07-23T13:48:46.000Zhttps://docs.langflow.org/memory2025-07-23T13:48:46.000Zhttps://docs.langflow.org/memory-chatbot2025-07-23T13:48:46.000Zhttps://docs.langflow.org/release-notes2025-07-23T13:48:46.000Zhttps://docs.langflow.org/sequential-agent2025-07-23T13:48:46.000Zhttps://docs.langflow.org/session-id2025-07-23T13:48:46.000Zhttps://docs.langflow.org/simple-agent2025-07-23T13:48:46.000Zhttps://docs.langflow.org/travel-planning-agent2025-07-23T13:48:46.000Zhttps://docs.langflow.org/troubleshoot2025-07-23T13:48:46.000Zhttps://docs.langflow.org/typescript-client2025-07-23T13:48:46.000Zhttps://docs.langflow.org/vector-store-rag2025-07-23T13:48:46.000Zhttps://docs.langflow.org/webhook2025-07-23T13:48:46.000Zhttps://docs.langflow.org/2025-07-23T13:48:46.000Z \ No newline at end of file diff --git a/travel-planning-agent.html b/travel-planning-agent.html index 4abf7abf2b..b83abd862f 100644 --- a/travel-planning-agent.html +++ b/travel-planning-agent.html @@ -23,7 +23,7 @@ - + diff --git a/troubleshoot.html b/troubleshoot.html index ffbc9a91a6..88f0d66f58 100644 --- a/troubleshoot.html +++ b/troubleshoot.html @@ -23,7 +23,7 @@ - + diff --git a/typescript-client.html b/typescript-client.html index f67f01dca9..fd8269b07e 100644 --- a/typescript-client.html +++ b/typescript-client.html @@ -23,7 +23,7 @@ - + diff --git a/vector-store-rag.html b/vector-store-rag.html index 8dc18c422b..857d88d4e0 100644 --- a/vector-store-rag.html +++ b/vector-store-rag.html @@ -23,7 +23,7 @@ - + diff --git a/webhook.html b/webhook.html index d213d45096..0bd4f828c9 100644 --- a/webhook.html +++ b/webhook.html @@ -23,7 +23,7 @@ - +