From ff1fa5200482c517ba431a62244df9c296a0f942 Mon Sep 17 00:00:00 2001 From: Tataihono Nikora Date: Fri, 22 May 2026 07:07:01 +0000 Subject: [PATCH] fix(mastra): serve Studio under gateway path --- .../src/app/access-requested/page.tsx | 8 +++-- apps/mastra-gateway/src/app/admin/page.tsx | 4 ++- .../src/app/api/[[...path]]/route.ts | 30 +++++++++++++++++++ apps/mastra/src/mastra/index.ts | 1 + 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 apps/mastra-gateway/src/app/api/[[...path]]/route.ts diff --git a/apps/mastra-gateway/src/app/access-requested/page.tsx b/apps/mastra-gateway/src/app/access-requested/page.tsx index 73ea0db4..80bfbc1e 100644 --- a/apps/mastra-gateway/src/app/access-requested/page.tsx +++ b/apps/mastra-gateway/src/app/access-requested/page.tsx @@ -16,9 +16,11 @@ export default function AccessRequestedPage({

Mastra Gateway

Access Requested

- - Try again - +
+ +
) diff --git a/apps/mastra-gateway/src/app/admin/page.tsx b/apps/mastra-gateway/src/app/admin/page.tsx index a464d383..f2c9c96d 100644 --- a/apps/mastra-gateway/src/app/admin/page.tsx +++ b/apps/mastra-gateway/src/app/admin/page.tsx @@ -21,7 +21,9 @@ export default async function AdminPage() { diff --git a/apps/mastra-gateway/src/app/api/[[...path]]/route.ts b/apps/mastra-gateway/src/app/api/[[...path]]/route.ts new file mode 100644 index 00000000..b6c35a84 --- /dev/null +++ b/apps/mastra-gateway/src/app/api/[[...path]]/route.ts @@ -0,0 +1,30 @@ +import { proxyMastraRequest } from "@/lib/mastra-proxy" + +type RouteContext = { + params: Promise<{ path?: string[] }> +} + +export async function GET(request: Request, context: RouteContext) { + return proxyMastraApiPath(request, context) +} + +export async function POST(request: Request, context: RouteContext) { + return proxyMastraApiPath(request, context) +} + +export async function PUT(request: Request, context: RouteContext) { + return proxyMastraApiPath(request, context) +} + +export async function PATCH(request: Request, context: RouteContext) { + return proxyMastraApiPath(request, context) +} + +export async function DELETE(request: Request, context: RouteContext) { + return proxyMastraApiPath(request, context) +} + +async function proxyMastraApiPath(request: Request, context: RouteContext) { + const { path = [] } = await context.params + return proxyMastraRequest(request, `/api/${path.join("/")}`) +} diff --git a/apps/mastra/src/mastra/index.ts b/apps/mastra/src/mastra/index.ts index 5504ed1e..165a3676 100644 --- a/apps/mastra/src/mastra/index.ts +++ b/apps/mastra/src/mastra/index.ts @@ -16,6 +16,7 @@ const serviceKeys = parseServiceApiKeys(env.MASTRA_SERVICE_API_KEYS) export const mastra = new Mastra({ agents: { smokeAgent }, server: { + studioBase: "/studio", apiRoutes: [ registerApiRoute("/forge-smoke", { method: "POST",