From 7faee90ecc83cc2a1d79299c1580110314b06fe2 Mon Sep 17 00:00:00 2001
From: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Date: Fri, 12 Dec 2025 14:30:22 -0800
Subject: [PATCH] Add Auth Token to Ollama Embedding Client (#4766)
* Enhance OllamaEmbedder to support authentication by adding an authorization token in headers for client initialization.
* Add optional Auth Token input for Ollama embedding options
* move info elements
---------
Co-authored-by: Timothy Carambat
---
.../OllamaOptions/index.jsx | 39 ++++++++++++++++---
server/utils/EmbeddingEngines/ollama/index.js | 6 ++-
2 files changed, 38 insertions(+), 7 deletions(-)
diff --git a/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx b/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx
index 74c24f80..606ea464 100644
--- a/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx
+++ b/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx
@@ -14,6 +14,8 @@ export default function OllamaEmbeddingOptions({ settings }) {
showAdvancedControls,
setShowAdvancedControls,
handleAutoDetectClick,
+ authToken,
+ authTokenValue,
} = useProviderEndpointAutoDiscovery({
provider: "ollama",
initialBasePath: settings?.EmbeddingBasePath,
@@ -48,13 +50,13 @@ export default function OllamaEmbeddingOptions({ settings }) {
data-tooltip-id="max-embedding-chunk-length-tooltip"
className="flex gap-x-1 items-center mb-3"
>
+
-
Maximum length of text chunks, in characters, for embedding.
@@ -134,13 +136,13 @@ export default function OllamaEmbeddingOptions({ settings }) {
data-tooltip-id="ollama-batch-size-tooltip"
className="flex gap-x-1 items-center mb-3"
>
+
-
Number of text chunks to embed in parallel. Higher values
improve speed but use more memory. Default is 1.
@@ -163,6 +165,31 @@ export default function OllamaEmbeddingOptions({ settings }) {
faster embedding.
+
+
+
+
+ Enter a Bearer Auth Token for interacting with your
+ Ollama server.
+
+ Used only if running Ollama behind an authentication
+ server.
+
+
diff --git a/server/utils/EmbeddingEngines/ollama/index.js b/server/utils/EmbeddingEngines/ollama/index.js
index 150998f5..de5db4f0 100644
--- a/server/utils/EmbeddingEngines/ollama/index.js
+++ b/server/utils/EmbeddingEngines/ollama/index.js
@@ -15,7 +15,11 @@ class OllamaEmbedder {
? Number(process.env.OLLAMA_EMBEDDING_BATCH_SIZE)
: 1;
this.embeddingMaxChunkLength = maximumChunkLength();
- this.client = new Ollama({ host: this.basePath });
+ this.authToken = process.env.OLLAMA_AUTH_TOKEN;
+ const headers = this.authToken
+ ? { Authorization: `Bearer ${this.authToken}` }
+ : {};
+ this.client = new Ollama({ host: this.basePath, headers });
this.log(
`initialized with model ${this.model} at ${this.basePath}. Batch size: ${this.maxConcurrentChunks}, num_ctx: ${this.embeddingMaxChunkLength}`
);