fix(dashboard): use /api/v1/saas path for subdomain workspace resolution
The edge middleware resolved the workspace by calling the SaaS landlord at /api/saas/workspaces/by-subdomain/<sub>, but the landlord serves that route under /api/v1/saas/... (the garage backend already calls it with /v1). The missing version segment returned 404, so no workspace_uuid/api_base_url cookies were set and the proxy responded "Workspace session not found", blocking email/password login on a cold visit to <sub>.reparee.com/login. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
33da1204dd
commit
7b145c1469
@ -8,7 +8,7 @@ import { NextRequest, NextResponse } from "next/server"
|
||||
* - Skips for the shared fallback host `tenant.reparee.com` and any non-tenant
|
||||
* host (apex, localhost, preview URLs).
|
||||
* - For a tenant subdomain, HMAC-signs the subdomain and calls SaaS
|
||||
* `GET /api/saas/workspaces/by-subdomain/<sub>` to resolve to
|
||||
* `GET /api/v1/saas/workspaces/by-subdomain/<sub>` to resolve to
|
||||
* { workspace_uuid, api_base_url }, then sets those as HttpOnly cookies.
|
||||
*
|
||||
* Matcher excludes /api/proxy/* (proxy needs no resolution; cookies already set)
|
||||
@ -47,7 +47,7 @@ export async function middleware(req: NextRequest) {
|
||||
|
||||
try {
|
||||
const signature = await hmacSha256Hex(sub, secret)
|
||||
const resolveUrl = `${saasUrl.replace(/\/$/, "")}/api/saas/workspaces/by-subdomain/${encodeURIComponent(sub)}`
|
||||
const resolveUrl = `${saasUrl.replace(/\/$/, "")}/api/v1/saas/workspaces/by-subdomain/${encodeURIComponent(sub)}`
|
||||
const res = await fetch(resolveUrl, {
|
||||
headers: { "X-SaaS-Signature": signature, Accept: "application/json" },
|
||||
cache: "no-store",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user