From 7da22e3797bf4f08359ada6166dd2038863f951a Mon Sep 17 00:00:00 2001 From: Sol Date: Mon, 4 May 2026 09:55:26 +0000 Subject: [PATCH 1/3] fix: allow Vercel preview deployments through CORS Add regex-based origin matching for *.vercel.app alongside the existing static allowlist, so Vercel preview URLs like reservemento-.MentoLabs.vercel.app are no longer blocked. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/main.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index 006c95b..97f3f30 100644 --- a/src/main.ts +++ b/src/main.ts @@ -25,6 +25,11 @@ async function bootstrap() { 'https://mento-analytics-api-12390052758.us-central1.run.app', // Allow requests from the swagger UI under /docs ]; + // Dynamic patterns for preview/staging deployments + const allowedOriginPatterns = [ + /^https:\/\/.*\.vercel\.app$/, // Vercel preview deployments + ]; + // Add localhost for development if NODE_ENV is development if (process.env.NODE_ENV === 'development') { allowedOrigins.push(`http://localhost:${process.env.PORT || 8080}`); @@ -37,7 +42,10 @@ async function bootstrap() { return callback(null, true); } - if (allowedOrigins.includes(origin)) { + if ( + allowedOrigins.includes(origin) || + allowedOriginPatterns.some((pattern) => pattern.test(origin)) + ) { callback(null, true); } else { callback(new Error(`Origin ${origin} not allowed by CORS policy`), false); From a0525a85657cd8472aa65fa7b666673c82f793b9 Mon Sep 17 00:00:00 2001 From: Sol Date: Mon, 4 May 2026 09:58:23 +0000 Subject: [PATCH 2/3] fix: allow MentoLabs Vercel preview deployments through CORS Add regex-based origin matching for *-mentolabs.vercel.app alongside the existing static allowlist, so Vercel preview URLs like reservemento--mentolabs.vercel.app are no longer blocked. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index 97f3f30..c5502a2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -27,7 +27,7 @@ async function bootstrap() { // Dynamic patterns for preview/staging deployments const allowedOriginPatterns = [ - /^https:\/\/.*\.vercel\.app$/, // Vercel preview deployments + /^https:\/\/.*-mentolabs\.vercel\.app$/, // Vercel preview deployments (MentoLabs org) ]; // Add localhost for development if NODE_ENV is development From da404a90478b0788f9cd1d7b74e2133e7984672f Mon Sep 17 00:00:00 2001 From: Sol Date: Mon, 4 May 2026 10:39:56 +0000 Subject: [PATCH 3/3] fix: prettier formatting Co-Authored-By: Claude Opus 4.6 (1M context) --- src/main.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main.ts b/src/main.ts index c5502a2..eaaaaa4 100644 --- a/src/main.ts +++ b/src/main.ts @@ -42,10 +42,7 @@ async function bootstrap() { return callback(null, true); } - if ( - allowedOrigins.includes(origin) || - allowedOriginPatterns.some((pattern) => pattern.test(origin)) - ) { + if (allowedOrigins.includes(origin) || allowedOriginPatterns.some((pattern) => pattern.test(origin))) { callback(null, true); } else { callback(new Error(`Origin ${origin} not allowed by CORS policy`), false);