From 8b58e2b69bf1f250178e70bbc25d93121e77d773 Mon Sep 17 00:00:00 2001 From: Soumyadas15 Date: Thu, 3 Jul 2025 14:13:36 +0530 Subject: [PATCH] chore: add verel protection bypass for staging environments --- backend/triggers/providers/schedule_provider.py | 7 ++++++- frontend/src/app/api/triggers/qstash/webhook/route.ts | 7 +------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/triggers/providers/schedule_provider.py b/backend/triggers/providers/schedule_provider.py index ba527d33..fdd54401 100644 --- a/backend/triggers/providers/schedule_provider.py +++ b/backend/triggers/providers/schedule_provider.py @@ -46,6 +46,10 @@ class ScheduleTriggerProvider(TriggerProvider): async def setup_trigger(self, trigger_config: TriggerConfig) -> bool: """Set up scheduled trigger using QStash.""" + if config.ENV_MODE == EnvMode.STAGING: + vercel_bypass_key = os.getenv("VERCEL_PROTECTION_BYPASS_KEY", "") + else: + vercel_bypass_key = "" try: webhook_url = f"{self.webhook_base_url}/api/triggers/qstash/webhook" webhook_payload = { @@ -66,7 +70,8 @@ class ScheduleTriggerProvider(TriggerProvider): "Content-Type": "application/json", "X-Schedule-Provider": "qstash", "X-Trigger-ID": trigger_config.trigger_id, - "X-Agent-ID": trigger_config.agent_id + "X-Agent-ID": trigger_config.agent_id, + "X-Vercel-Protection-Bypass": vercel_bypass_key }, retries=3, delay="5s" diff --git a/frontend/src/app/api/triggers/qstash/webhook/route.ts b/frontend/src/app/api/triggers/qstash/webhook/route.ts index 630a328b..d0b6662b 100644 --- a/frontend/src/app/api/triggers/qstash/webhook/route.ts +++ b/frontend/src/app/api/triggers/qstash/webhook/route.ts @@ -2,8 +2,6 @@ import { NextRequest, NextResponse } from 'next/server'; export async function POST(request: NextRequest) { try { - console.log(`[QStash Webhook Proxy] Received QStash webhook`); - const body = await request.arrayBuffer(); const headers: Record = {}; request.headers.forEach((value, key) => { @@ -11,9 +9,8 @@ export async function POST(request: NextRequest) { headers[key] = value; } }); - const backendUrl = process.env.BACKEND_URL || 'http://localhost:8000'; - const targetUrl = `${backendUrl}/api/triggers/qstash/webhook`; + const targetUrl = `${backendUrl}/triggers/qstash/webhook`; const response = await fetch(targetUrl, { method: 'POST', headers: { @@ -22,7 +19,6 @@ export async function POST(request: NextRequest) { }, body: body, }); - const responseData = await response.text(); return new NextResponse(responseData, { status: response.status, @@ -30,7 +26,6 @@ export async function POST(request: NextRequest) { 'Content-Type': response.headers.get('Content-Type') || 'application/json', }, }); - } catch (error) { console.error('[QStash Webhook Proxy] Error:', error); return NextResponse.json(