Merge pull request #876 from escapade-mckv/agent-knowledge-base

chore: add verel protection bypass for staging environments
This commit is contained in:
Bobbie 2025-07-03 14:15:01 +05:30 committed by GitHub
commit a242654313
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 7 deletions

View File

@ -46,6 +46,10 @@ class ScheduleTriggerProvider(TriggerProvider):
async def setup_trigger(self, trigger_config: TriggerConfig) -> bool: async def setup_trigger(self, trigger_config: TriggerConfig) -> bool:
"""Set up scheduled trigger using QStash.""" """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: try:
webhook_url = f"{self.webhook_base_url}/api/triggers/qstash/webhook" webhook_url = f"{self.webhook_base_url}/api/triggers/qstash/webhook"
webhook_payload = { webhook_payload = {
@ -66,7 +70,8 @@ class ScheduleTriggerProvider(TriggerProvider):
"Content-Type": "application/json", "Content-Type": "application/json",
"X-Schedule-Provider": "qstash", "X-Schedule-Provider": "qstash",
"X-Trigger-ID": trigger_config.trigger_id, "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, retries=3,
delay="5s" delay="5s"

View File

@ -2,8 +2,6 @@ import { NextRequest, NextResponse } from 'next/server';
export async function POST(request: NextRequest) { export async function POST(request: NextRequest) {
try { try {
console.log(`[QStash Webhook Proxy] Received QStash webhook`);
const body = await request.arrayBuffer(); const body = await request.arrayBuffer();
const headers: Record<string, string> = {}; const headers: Record<string, string> = {};
request.headers.forEach((value, key) => { request.headers.forEach((value, key) => {
@ -11,9 +9,8 @@ export async function POST(request: NextRequest) {
headers[key] = value; headers[key] = value;
} }
}); });
const backendUrl = process.env.BACKEND_URL || 'http://localhost:8000'; 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, { const response = await fetch(targetUrl, {
method: 'POST', method: 'POST',
headers: { headers: {
@ -22,7 +19,6 @@ export async function POST(request: NextRequest) {
}, },
body: body, body: body,
}); });
const responseData = await response.text(); const responseData = await response.text();
return new NextResponse(responseData, { return new NextResponse(responseData, {
status: response.status, status: response.status,
@ -30,7 +26,6 @@ export async function POST(request: NextRequest) {
'Content-Type': response.headers.get('Content-Type') || 'application/json', 'Content-Type': response.headers.get('Content-Type') || 'application/json',
}, },
}); });
} catch (error) { } catch (error) {
console.error('[QStash Webhook Proxy] Error:', error); console.error('[QStash Webhook Proxy] Error:', error);
return NextResponse.json( return NextResponse.json(