From 15012c67c08230b9bf4220590e2d3172f71b0cf1 Mon Sep 17 00:00:00 2001 From: Jeffrey Huber Date: Tue, 28 Mar 2023 23:09:14 -0700 Subject: [PATCH 1/3] configurable cors --- chromadb/config.py | 3 ++- chromadb/server/fastapi/__init__.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/chromadb/config.py b/chromadb/config.py index ad9d0557b89..fd8b58c64b9 100644 --- a/chromadb/config.py +++ b/chromadb/config.py @@ -1,5 +1,5 @@ from pydantic import BaseSettings, Field - +from typing import List TELEMETRY_WHITELISTED_SETTINGS = ["chroma_db_impl", "chroma_api_impl", "chroma_server_ssl_enabled"] @@ -19,6 +19,7 @@ class Settings(BaseSettings): chroma_server_http_port: str = None chroma_server_ssl_enabled: bool = False chroma_server_grpc_port: str = None + chroma_server_cors_allow_origins: List[str] = ["http://localhost:3000"] anonymized_telemetry: bool = True diff --git a/chromadb/server/fastapi/__init__.py b/chromadb/server/fastapi/__init__.py index d373a1d7332..1e6637b25fb 100644 --- a/chromadb/server/fastapi/__init__.py +++ b/chromadb/server/fastapi/__init__.py @@ -64,7 +64,7 @@ def __init__(self, settings): self._app.add_middleware( CORSMiddleware, allow_headers=["*"], - allow_origins=["http://localhost:3000"], + allow_origins=settings.chroma_server_cors_allow_origins, allow_methods=["*"], ) From dd6d01bf99380fb70020f4a96461c7f520d80ced Mon Sep 17 00:00:00 2001 From: Jeffrey Huber Date: Wed, 29 Mar 2023 12:09:02 -0700 Subject: [PATCH 2/3] remove default allow origin --- chromadb/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chromadb/config.py b/chromadb/config.py index fd8b58c64b9..2869634115e 100644 --- a/chromadb/config.py +++ b/chromadb/config.py @@ -19,7 +19,7 @@ class Settings(BaseSettings): chroma_server_http_port: str = None chroma_server_ssl_enabled: bool = False chroma_server_grpc_port: str = None - chroma_server_cors_allow_origins: List[str] = ["http://localhost:3000"] + chroma_server_cors_allow_origins: List[str] = [] # eg ["http://localhost:3000"] anonymized_telemetry: bool = True From 190c3b40dac717c9c90201a3714d51fc828ef1eb Mon Sep 17 00:00:00 2001 From: Jeffrey Huber Date: Wed, 29 Mar 2023 12:23:58 -0700 Subject: [PATCH 3/3] update browser example readme --- clients/js/examples/browser/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/clients/js/examples/browser/README.md b/clients/js/examples/browser/README.md index 8c3e33c0360..4050b2e3f2f 100644 --- a/clients/js/examples/browser/README.md +++ b/clients/js/examples/browser/README.md @@ -1,4 +1,15 @@ ## Demo in browser +Update your settings to add `localhost:3000` to `chroma_server_cors_allow_origins`. + +For example: + +``` +client = chromadb.Client( + Settings(chroma_api_impl="rest", chroma_server_host="localhost", chroma_server_http_port="8000", chroma_server_cors_allow_origins=["http://localhost:3000"]) +) + +``` + 1. `yarn dev` 2. visit `localhost:3000` \ No newline at end of file