diff --git a/apps/builder/app/routes/n8n.$.tsx b/apps/builder/app/routes/n8n.$.tsx index 67a3700400..85452d335c 100644 --- a/apps/builder/app/routes/n8n.$.tsx +++ b/apps/builder/app/routes/n8n.$.tsx @@ -5,6 +5,7 @@ import { findAuthenticatedUser } from "~/services/auth.server"; import { loginPath } from "~/shared/router-utils"; import env from "~/env/env.server"; import { type LoaderArgs, json } from "@remix-run/server-runtime"; +import cookie from "cookie"; const zN8NResponse = z.union([ z.object({ @@ -52,6 +53,14 @@ export const loader = async ({ request, params }: LoaderArgs) => { .join("/"); n8nWebhookUrl.search = new URL(request.url).search; + const requestUrl = new URL(request.url); + const host = + request.headers.get("x-forwarded-host") ?? request.headers.get("host"); + + if (host != null) { + requestUrl.host = host; + } + const response = await fetch(n8nWebhookUrl.href, { method: "POST", headers: { @@ -60,6 +69,9 @@ export const loader = async ({ request, params }: LoaderArgs) => { }, body: JSON.stringify({ userId: user.id, + // For anonymous tracking like posthog + cookies: cookie.parse(request.headers.get("cookie") ?? ""), + requestUrl: requestUrl.href, }), }); diff --git a/apps/builder/package.json b/apps/builder/package.json index 44ff734088..52113ad428 100644 --- a/apps/builder/package.json +++ b/apps/builder/package.json @@ -72,6 +72,7 @@ "@webstudio-is/trpc-interface": "workspace:*", "change-case": "^5.0.2", "colord": "^2.9.3", + "cookie": "^0.6.0", "date-fns": "^2.30.0", "debug": "^4.3.4", "detect-font": "^0.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9052ef8cbf..676e5e44f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -217,6 +217,9 @@ importers: colord: specifier: ^2.9.3 version: 2.9.3 + cookie: + specifier: ^0.6.0 + version: 0.6.0 date-fns: specifier: ^2.30.0 version: 2.30.0 @@ -9576,6 +9579,11 @@ packages: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + dev: false + /copy-to-clipboard@3.3.1: resolution: {integrity: sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==} dependencies: