mirror of https://github.com/kortix-ai/suna.git
Merge pull request #876 from escapade-mckv/agent-knowledge-base
chore: add verel protection bypass for staging environments
This commit is contained in:
commit
a242654313
|
@ -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"
|
||||||
|
|
|
@ -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(
|
||||||
|
|
Loading…
Reference in New Issue