feat: make CORS origin configurable for cloud deployments (#2344)

Co-authored-by: Test User <test@example.com>
Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
This commit is contained in:
Qiaochu Hu
2026-05-22 17:17:00 -07:00
committed by GitHub
co-authored by Test User Steven Enamakel Steven Enamakel
parent e7e660f946
commit 9ac9613bd5
2 changed files with 10 additions and 0 deletions
+6
View File
@@ -41,6 +41,12 @@ JWT_TOKEN=
# [optional] Default: 127.0.0.1 (use 0.0.0.0 for Docker / cloud).
# Leave unset to keep the default; the Docker image sets 0.0.0.0 automatically.
# OPENHUMAN_CORE_HOST=
# [optional] Extra CORS origins (comma-separated) allowed to reach the
# JSON-RPC server. The Tauri webview and loopback hosts are always allowed.
# For Docker / cloud deployments where the server binds to 0.0.0.0, add the
# canonical frontend origin(s) here to prevent cross-origin abuse from
# arbitrary sites (e.g. OPENHUMAN_CORE_ALLOWED_ORIGINS=https://app.example.com).
# OPENHUMAN_CORE_ALLOWED_ORIGINS=
# [optional] Default: 7788
OPENHUMAN_CORE_PORT=7788
# [optional] Default: http://127.0.0.1:7788/rpc
+4
View File
@@ -831,6 +831,10 @@ async fn cors_middleware(req: Request, next: Next) -> Response {
/// distinct. Disallowed origins receive no `Access-Control-Allow-Origin`
/// header at all — the browser will then refuse to surface the response to
/// the calling JS. Non-browser callers (no `Origin` header) are unaffected.
///
/// For Docker / cloud deployments where the server binds to `0.0.0.0`,
/// extend the allowlist via the `OPENHUMAN_CORE_ALLOWED_ORIGINS` env var
/// (comma-separated) rather than wildcarding `Access-Control-Allow-Origin`.
pub(super) fn with_cors_headers(mut response: Response, origin: Option<&str>) -> Response {
let headers = response.headers_mut();
headers.append(header::VARY, HeaderValue::from_static("Origin"));