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"}}},{content:"xml",props:{style:{color:"#7EE787"}}},{content:" version",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"1.0"',props:{style:{color:"#A5D6FF"}}},{content:" encoding",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"UTF-8"',props:{style:{color:"#A5D6FF"}}},{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"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">dev.langflow.env",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">ProgramArguments",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">",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"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">setenv",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">LANGFLOW_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",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"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",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:"key",props:{style:{color:"#7EE787"}}},{content:">RunAtLoad",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">",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"}}},{content:"dict",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}},{content:"plist",props:{style:{color:"#7EE787"}}},{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"}}},{content:"xml",props:{style:{color:"#7EE787"}}},{content:" version",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"1.0"',props:{style:{color:"#A5D6FF"}}},{content:" encoding",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"UTF-8"',props:{style:{color:"#A5D6FF"}}},{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"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">dev.langflow.env",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">ProgramArguments",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">",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"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">setenv",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" <",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">LANGFLOW_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",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"}}},{content:"string",props:{style:{color:"#7EE787"}}},{content:">",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:"key",props:{style:{color:"#7EE787"}}},{content:">RunAtLoad",props:{style:{color:"#C9D1D9"}}},{content:"key",props:{style:{color:"#7EE787"}}},{content:">",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"}}},{content:"dict",props:{style:{color:"#7EE787"}}},{content:">",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}},{content:"plist",props:{style:{color:"#7EE787"}}},{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.
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:
If this option is enabled, Langflow does not track telemetry.
LANGFLOW_AUTO_LOGIN
Boolean
true
Enable 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.
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_TYPE
String
async
Set 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.
Set 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_URL
String
Not set
Set the database URL for Langflow. If not provided, Langflow uses a SQLite database.
LANGFLOW_USE_NOOP_DATABASE
Boolean
false
Use a no-op database, which avoids database connections and operations. Useful for running flows without a database.
LANGFLOW_DATABASE_CONNECTION_RETRY
Boolean
false
If True, Langflow tries to connect to the database again if it fails.
LANGFLOW_DB_POOL_SIZE
Integer
10
DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool.
LANGFLOW_DB_MAX_OVERFLOW
Integer
20
DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size.
LANGFLOW_DB_CONNECT_TIMEOUT
Integer
20
The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database.
LANGFLOW_DB_CONNECTION_SETTINGS
JSON
Not set
A JSON dictionary to centralize database connection parameters. Example: {"pool_size": 10, "max_overflow": 20}
LANGFLOW_DISABLE_TRACK_APIKEY_USAGE
Boolean
false
If 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_RETRIEVAL
Boolean
false
Enable log retrieval functionality.
LANGFLOW_FALLBACK_TO_ENV_VAR
Boolean
true
If 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_PATH
String
./frontend
Path to the frontend directory containing build files. This is for development purposes only. See --frontend-path option.
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.
LANGFLOW_MAX_TEXT_LENGTH
Integer
1000
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.
LANGFLOW_MCP_SERVER_ENABLED
Boolean
true
If this option is set to False, Langflow does not enable the MCP server.
LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS
Boolean
false
If this option is set to True, Langflow sends progress notifications in the MCP server.
LANGFLOW_NEW_USER_IS_ACTIVE
Boolean
false
When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser.
Save 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_KEY
String
Auto-generated
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.
Path to the SSL certificate file on the local system.
LANGFLOW_SSL_KEY_FILE
String
Not set
Path to the SSL key file on the local system.
SKIP_AUTH_AUTO_LOGIN
Boolean
false
If set to true, disables automatic login and enforces authentication, regardless of the value of LANGFLOW_AUTO_LOGIN.
+
Variable
Format
Default
Description
DO_NOT_TRACK
Boolean
false
If this option is enabled, Langflow does not track telemetry.
LANGFLOW_AUTO_LOGIN
Boolean
true
Enable 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.
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_TYPE
String
async
Set 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.
Set 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_URL
String
Not set
Set the database URL for Langflow. If not provided, Langflow uses a SQLite database.
LANGFLOW_USE_NOOP_DATABASE
Boolean
false
Use a no-op database, which avoids database connections and operations. Useful for running flows without a database.
LANGFLOW_DATABASE_CONNECTION_RETRY
Boolean
false
If True, Langflow tries to connect to the database again if it fails.
LANGFLOW_DB_POOL_SIZE
Integer
10
DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool.
LANGFLOW_DB_MAX_OVERFLOW
Integer
20
DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size.
LANGFLOW_DB_CONNECT_TIMEOUT
Integer
20
The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database.
LANGFLOW_DB_CONNECTION_SETTINGS
JSON
Not set
A JSON dictionary to centralize database connection parameters. Example: {"pool_size": 10, "max_overflow": 20}
LANGFLOW_DISABLE_TRACK_APIKEY_USAGE
Boolean
false
If 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_RETRIEVAL
Boolean
false
Enable log retrieval functionality.
LANGFLOW_FALLBACK_TO_ENV_VAR
Boolean
true
If 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_PATH
String
./frontend
Path to the frontend directory containing build files. This is for development purposes only. See --frontend-path option.
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.
LANGFLOW_MAX_TEXT_LENGTH
Integer
1000
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.
LANGFLOW_MCP_SERVER_ENABLED
Boolean
true
If this option is set to False, Langflow does not enable the MCP server.
LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS
Boolean
false
If this option is set to True, Langflow sends progress notifications in the MCP server.
LANGFLOW_NEW_USER_IS_ACTIVE
Boolean
false
When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser.
Save 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_KEY
String
Auto-generated
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.
Path to the SSL certificate file on the local system.
LANGFLOW_SSL_KEY_FILE
String
Not set
Path to the SSL key file on the local system.
LANGFLOW_SKIP_AUTH_AUTO_LOGIN
Boolean
true
If 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.
.env File
Systemd service
VSCode tasks.json
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:
A systemd service configuration file configures Linux system services.
To add environment variables, create or edit a service configuration file and add an override.conf file. This file allows you to override the default environment variables for the service.