From e0a08ad1a2230bfe0de20ba56e1c0eca0cccfb77 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Fri, 21 Feb 2025 12:10:20 +0100 Subject: [PATCH 1/2] feat: allow configuring custom request headers --- apps/login/next-env-vars.d.ts | 6 ++++++ apps/login/src/lib/service.ts | 12 ++++++++++++ turbo.json | 3 ++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/login/next-env-vars.d.ts b/apps/login/next-env-vars.d.ts index b575dc91f4..80c7c3a960 100644 --- a/apps/login/next-env-vars.d.ts +++ b/apps/login/next-env-vars.d.ts @@ -27,5 +27,11 @@ declare namespace NodeJS { * Optional: wheter a user must have verified email */ EMAIL_VERIFICATION: string; + + /** + * Optional: custom request headers to be added to every request + * Split by comma, key value pairs separated by colon + */ + CUSTOM_REQUEST_HEADERS: string; } } diff --git a/apps/login/src/lib/service.ts b/apps/login/src/lib/service.ts index 5ea9eec882..7f06284a66 100644 --- a/apps/login/src/lib/service.ts +++ b/apps/login/src/lib/service.ts @@ -44,6 +44,18 @@ export async function createServiceForHost( const transport = createServerTransport(token, { baseUrl: serviceUrl, + interceptors: !process.env.CUSTOM_REQUEST_HEADERS ? undefined :[ + (next) => { + return (req) => { + process.env.CUSTOM_REQUEST_HEADERS.split(",").forEach((header) => { + const kv = header.split(":") + req.header.set(kv[0], kv[1]); + }) + return next(req); + }; + }, + ] + , }); return createClientFor(service)(transport); diff --git a/turbo.json b/turbo.json index 279e45867b..06155fda5d 100644 --- a/turbo.json +++ b/turbo.json @@ -12,7 +12,8 @@ "ZITADEL_API_URL", "ZITADEL_SERVICE_USER_ID", "ZITADEL_SERVICE_USER_TOKEN", - "NEXT_PUBLIC_BASE_PATH" + "NEXT_PUBLIC_BASE_PATH", + "CUSTOM_REQUEST_HEADERS" ], "tasks": { "generate": { From 9e9ab955a92513ae8ca98742f2c4b4c310e348b6 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Fri, 21 Feb 2025 12:36:28 +0100 Subject: [PATCH 2/2] lint --- apps/login/src/lib/service.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/apps/login/src/lib/service.ts b/apps/login/src/lib/service.ts index 7f06284a66..4f5f5a0cec 100644 --- a/apps/login/src/lib/service.ts +++ b/apps/login/src/lib/service.ts @@ -44,18 +44,21 @@ export async function createServiceForHost( const transport = createServerTransport(token, { baseUrl: serviceUrl, - interceptors: !process.env.CUSTOM_REQUEST_HEADERS ? undefined :[ - (next) => { - return (req) => { - process.env.CUSTOM_REQUEST_HEADERS.split(",").forEach((header) => { - const kv = header.split(":") - req.header.set(kv[0], kv[1]); - }) - return next(req); - }; - }, - ] - , + interceptors: !process.env.CUSTOM_REQUEST_HEADERS + ? undefined + : [ + (next) => { + return (req) => { + process.env.CUSTOM_REQUEST_HEADERS.split(",").forEach( + (header) => { + const kv = header.split(":"); + req.header.set(kv[0], kv[1]); + }, + ); + return next(req); + }; + }, + ], }); return createClientFor(service)(transport);