From 953e928b054ed9ed77d3ad689a369ce388889853 Mon Sep 17 00:00:00 2001 From: Ajay Ghanwat Date: Mon, 19 Oct 2026 13:59:38 +0530 Subject: [PATCH] fix: initialize hosted Studio behind HTTPS reverse proxies --- .env.example | 1 + README.md | 15 +++++ app/lib/studio-guide.ts | 20 ++++++- app/lib/studio-origin.ts | 43 ++++++++++++++ app/middleware/design-studio.ts | 7 ++- app/types/wrnexus.generated.d.ts | 2 +- deploy/studio-proxy-origin-fixed.jpg | Bin 0 -> 137528 bytes scripts/verify-deployment.ts | 22 ++++++++ test/studio-origin.test.ts | 80 +++++++++++++++++++++++++++ 9 files changed, 186 insertions(+), 4 deletions(-) create mode 100644 app/lib/studio-origin.ts create mode 100644 deploy/studio-proxy-origin-fixed.jpg create mode 100644 test/studio-origin.test.ts diff --git a/.env.example b/.env.example index d813777..bc41989 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,4 @@ # Server only. Never put this key in browser scripts or commit your .env file. APIMART_API_KEY= +STUDIO_PUBLIC_ORIGIN=https://component.wrnexusjs.dev # Design Studio uses the gpt-6-luna model at https://api.apimart.ai/v1/chat/completions. diff --git a/README.md b/README.md index e4dae85..d93092b 100644 --- a/README.md +++ b/README.md @@ -149,3 +149,18 @@ browser storage; export before clearing browser data or moving to another origin The complete check includes mocked provider contract/error/lock tests and a compiled-server deployment check. A real APIMart completion requires your key and model access; it is not claimed by the mocked tests. + +### HTTPS proxy origin + +The app defaults STUDIO_PUBLIC_ORIGIN to https://component.wrnexusjs.dev. If you +host this app under another domain, set STUDIO_PUBLIC_ORIGIN to that HTTPS origin +in .env. The Studio route normalizes internal HTTP requests to this explicitly +configured origin before validating browser Origin headers. It does not derive +an allowed origin from untrusted forwarded headers. Local loopback development +remains supported. Requests from other origins still return 403. + +The deployment check reproduces a browser module request carrying an HTTPS +Origin while the proxy forwards it over HTTP, including missing/combined scheme +headers. This prevents an apparently loaded editor with empty dropdowns when its +module script is rejected before initialization. The browser also reports asset +load failures instead of leaving the editor permanently at Checking. diff --git a/app/lib/studio-guide.ts b/app/lib/studio-guide.ts index 79687f1..ac19c3b 100644 --- a/app/lib/studio-guide.ts +++ b/app/lib/studio-guide.ts @@ -1,4 +1,22 @@ -export const studioHelpScript = `window.addEventListener("error",function(){var s=document.getElementById("validation-state"),d=document.getElementById("diagnostics");if(s&&s.textContent==="Checking"){s.textContent="Editor could not start";if(d)d.textContent="Reload the page. If this continues, rebuild and restart the site with the latest Studio configuration. Your saved draft has not been deleted.";}});document.addEventListener("DOMContentLoaded",function(){var b=document.querySelector('[data-tab="guided"]');if(b)b.click();});`; +export const studioHelpScript = `(() => { + let failed = false; + function report() { + const state = document.getElementById("validation-state"); + const diagnostics = document.getElementById("diagnostics"); + if (state && state.textContent === "Checking") { + state.textContent = "Editor could not start"; + if (diagnostics) diagnostics.textContent = "The editor script could not initialize. Reload the page after updating the server. Your saved draft has not been deleted."; + } + } + function fail() { failed = true; report(); } + window.addEventListener("error", fail, true); + window.addEventListener("unhandledrejection", fail); + document.addEventListener("DOMContentLoaded", () => { + if (failed) report(); + const button = document.querySelector('[data-tab="guided"]'); + if (button) button.click(); + }); +})();`; export function addStudioGuide(html: string, configured: boolean) { const guide = `
How to use Design Studio
  1. Describe your website. Open Guided design, enter your product and audience, then choose colors, shapes and spacing with Next.
  2. Generate and compare. Click Generate three directions, review an alternative, then choose Use reviewed proposal.
  3. Refine it. Try “make buttons square and use blue as the primary color” under Edit with words. Lock decisions you want to keep.
  4. Use it in your app. Open Review & apply and export Theme config or Compiled CSS. This website previews and exports designs; it does not change your deployed app automatically.

${configured ? "APIMart AI is enabled with gpt-6-luna. Generation sends your brief and current design to APIMart only when you request it." : "AI is not configured. Local presets and supported rule-based edits still work. Set APIMART_API_KEY in the server .env and restart to enable gpt-6-luna."}

`; diff --git a/app/lib/studio-origin.ts b/app/lib/studio-origin.ts new file mode 100644 index 0000000..61883fa --- /dev/null +++ b/app/lib/studio-origin.ts @@ -0,0 +1,43 @@ +/** Use an explicit external origin, rather than trusting proxy-supplied schemes. */ +export function studioRequest( + request: Request, + publicOrigin = process.env.STUDIO_PUBLIC_ORIGIN ?? + "https://component.wrnexusjs.dev", +): Request | Response { + const incoming = new URL(request.url); + const configured = new URL(publicOrigin); + if ( + configured.protocol !== "https:" || + configured.username || + configured.password || + configured.pathname !== "/" || + configured.search || + configured.hash + ) + throw Error( + "STUDIO_PUBLIC_ORIGIN must be an HTTPS origin without a path or credentials.", + ); + const origin = request.headers.get("origin"); + const loopback = ["localhost", "127.0.0.1", "[::1]"].includes( + incoming.hostname, + ); + const expected = + loopback && (!origin || origin === incoming.origin) + ? incoming.origin + : configured.origin; + if (origin && origin !== expected) + return Response.json( + { error: "Same-origin requests only." }, + { status: 403, headers: { "cache-control": "no-store" } }, + ); + const normalized = new Request( + new URL(incoming.pathname + incoming.search, expected), + request, + ); + normalized.headers.set( + "x-forwarded-proto", + new URL(expected).protocol.slice(0, -1), + ); + normalized.headers.set("host", new URL(expected).host); + return normalized; +} diff --git a/app/middleware/design-studio.ts b/app/middleware/design-studio.ts index c6175b7..a532734 100644 --- a/app/middleware/design-studio.ts +++ b/app/middleware/design-studio.ts @@ -2,6 +2,7 @@ import type { Middleware } from "@wrnexus/core"; import type { createStudioHandler } from "@wrnexus/design-studio/server"; import { studioAI } from "../lib/studio-ai.ts"; import { addStudioGuide, studioHelpScript } from "../lib/studio-guide.ts"; +import { studioRequest } from "../lib/studio-origin.ts"; let studio: ReturnType | undefined; let ai: ReturnType | undefined; @@ -14,8 +15,10 @@ const designStudio: Middleware = async (ctx, next) => { headers: { location: "/design-studio/" }, }); if (!url.pathname.startsWith("/design-studio/")) return next(); + const request = studioRequest(ctx.req); + if (request instanceof Response) return request; ai ??= studioAI(process.env.APIMART_API_KEY?.trim()); - const generated = await ai(ctx.req); + const generated = await ai(request); if (generated) return generated; if ( url.pathname === "/design-studio/site-help.js" && @@ -39,7 +42,7 @@ const designStudio: Middleware = async (ctx, next) => { studio = undefined; throw error; }); - const response = await (await studio)(ctx.req); + const response = await (await studio)(request); if ( url.pathname === "/design-studio/" && response.ok && diff --git a/app/types/wrnexus.generated.d.ts b/app/types/wrnexus.generated.d.ts index bddbf61..bf5aab1 100644 --- a/app/types/wrnexus.generated.d.ts +++ b/app/types/wrnexus.generated.d.ts @@ -16,7 +16,7 @@ declare namespace WRNexusGenerated { type RouteName = "accessibility" | "advanced.forms" | "base" | "block.library" | "blocks" | "blocks.announcement.bar" | "blocks.ctasection" | "blocks.feature.card" | "blocks.feature.grid" | "blocks.feature.icon.card" | "blocks.footer" | "blocks.hero" | "blocks.hero.actions" | "blocks.marketing.section.header" | "blocks.metric.grid" | "blocks.page.header" | "blocks.section.header" | "blocks.split.hero" | "blocks.stats.bar" | "colors" | "components.accordion" | "components.advanced.select" | "components.alert" | "components.avatar" | "components.avatar.group" | "components.back.to.top" | "components.badge" | "components.blockquote" | "components.breadcrumb" | "components.button" | "components.button.group" | "components.card" | "components.carousel" | "components.chart" | "components.chat.bubble" | "components.checkbox" | "components.clipboard" | "components.collapse" | "components.color.picker" | "components.columns" | "components.combo.box" | "components.confetti" | "components.container" | "components.context.menu" | "components.custom.scrollbar" | "components.data.map" | "components.data.table" | "components.date.picker" | "components.device.frame" | "components.divider" | "components.drag.and.drop" | "components.drawer" | "components.drawflow.canvas" | "components.dropdown" | "components.file.input" | "components.file.upload.progress" | "components.flow.canvas" | "components.grid" | "components.image" | "components.input" | "components.input.group" | "components.input.number" | "components.kbd" | "components.layout.splitter" | "components.legend.indicator" | "components.link" | "components.list" | "components.list.group" | "components.map" | "components.marquee" | "components.mega.menu" | "components.metric.card" | "components.modal" | "components.nav" | "components.navbar" | "components.pagination" | "components.pin.input" | "components.popover" | "components.preference.switcher" | "components.progress" | "components.radio" | "components.range.slider" | "components.rating" | "components.scrollspy" | "components.search.box" | "components.section" | "components.select" | "components.sidebar" | "components.skeleton" | "components.spinner" | "components.stepper" | "components.strong.password" | "components.styled.icon" | "components.switch" | "components.tabs" | "components.text.link" | "components.textarea" | "components.time.picker" | "components.timeline" | "components.toaster" | "components.toggle.count" | "components.toggle.password" | "components.tooltip" | "components.tree.view" | "components.typography" | "components.wysiwyg.editor" | "core" | "dark.mode" | "data" | "docs" | "fonts" | "forms" | "framework.guides" | "index" | "installation" | "integrations" | "layout" | "marketing" | "navigation" | "overlays" | "preview" | "preview.custom.modal" | "preview.profile" | "preview.project.board" | "preview.scheduling" | "preview.sign.in" | "preview.workspace" | "resources" | "sizing" | "tables" | "templates" | "templates.commerce" | "templates.dashboards" | "templates.marketing" | "templates.productivity" | "themes" | "v06.functions" | "v06.imports" | "v06.migration" | "v06.outputs" | "v06.runtime" | "v06.state" | "v06.stores" | "v06.types"; type ApiRoute = "/api/teams"; type RealtimeRoute = never; - type EnvironmentKey = "APIMART_API_KEY"; + type EnvironmentKey = "APIMART_API_KEY" | "STUDIO_PUBLIC_ORIGIN"; type TranslationKey = never; type QueueName = never; type CacheKey = never; diff --git a/deploy/studio-proxy-origin-fixed.jpg b/deploy/studio-proxy-origin-fixed.jpg new file mode 100644 index 0000000000000000000000000000000000000000..63b53b372954a35e2b035f0cd33ef02e2e4d3683 GIT binary patch literal 137528 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%0A96tOGu(@%M|Is^& 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%0AeqWDj0 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 { + const req = new Request( + "http://component.wrnexusjs.dev/design-studio/studio.js", + { headers: { origin } }, + ); + const normalized = studioRequest(req); + expect(normalized).toBeInstanceOf(Request); + expect((normalized as Request).url).toBe(origin + "/design-studio/studio.js"); + const response = await designStudio( + createContext(req, new URL(req.url)), + () => new Response("wrong route", { status: 404 }), + ); + expect(response.status).toBe(200); + expect(response.headers.get("content-type")).toContain("javascript"); +}); + +test("proxy chains and internal Host values cannot break the canonical origin", () => { + for (const proto of ["http", "https,http", "https, http", ""]) { + const normalized = studioRequest( + new Request("http://127.0.0.1:3000/design-studio/api/preview?page=1", { + headers: { + origin, + "x-forwarded-proto": proto, + "x-forwarded-host": "attacker.example", + }, + }), + ) as Request; + expect(normalized.url).toBe(origin + "/design-studio/api/preview?page=1"); + expect(normalized.headers.get("x-forwarded-proto")).toBe("https"); + } +}); + +test("foreign and opaque origins remain rejected and local development keeps working", () => { + for (const from of [ + "https://attacker.example", + "null", + "http://component.wrnexusjs.dev", + ]) { + const response = studioRequest( + new Request("http://component.wrnexusjs.dev/design-studio/api/generate", { + headers: { origin: from }, + }), + ); + expect((response as Response).status).toBe(403); + } + const local = "http://127.0.0.1:4320/design-studio/"; + expect( + ( + studioRequest( + new Request(local, { headers: { origin: "http://127.0.0.1:4320" } }), + ) as Request + ).url, + ).toBe(local); + expect(() => + studioRequest(new Request(local), "https://example.org/path"), + ).toThrow("HTTPS origin"); +}); + +test("origin normalization preserves request bodies and configured custom domains", async () => { + const req = new Request("http://internal:3000/design-studio/api/generate", { + method: "POST", + headers: { + origin: "https://studio.example.org", + "content-type": "application/json", + }, + body: '{"draft":"preserved"}', + }); + const normalized = studioRequest( + req, + "https://studio.example.org", + ) as Request; + expect(normalized.method).toBe("POST"); + expect(await normalized.json()).toEqual({ draft: "preserved" }); +});