From 504b92e6dc32a7b610c0ee9f8a355c50f0ed70ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesv=C3=A4rd?= <1987198+lindesvard@users.noreply.github.com> Date: Sun, 11 May 2025 16:15:13 +0200 Subject: [PATCH] proxy user-agent and location to op (#1248) --- apps/server/src/libs/middlewares/track.ts | 2 ++ apps/web/src/lib/auth/index.ts | 5 +++++ packages/api/src/trpc.ts | 1 + 3 files changed, 8 insertions(+) diff --git a/apps/server/src/libs/middlewares/track.ts b/apps/server/src/libs/middlewares/track.ts index 613015b0b..a777e1a39 100644 --- a/apps/server/src/libs/middlewares/track.ts +++ b/apps/server/src/libs/middlewares/track.ts @@ -32,6 +32,8 @@ export function trackMiddleware(event: EventProps, eventProps?: string[]) { userId: `api_${workspace.id}`, workspaceId: `${workspace.id}`, plan: workspace.plan, + location: c.req.raw.headers.get("x-forwarded-for") ?? undefined, + userAgent: c.req.raw.headers.get("user-agent") ?? undefined, }); await analytics.track({ ...event, additionalProps }); }, 0); diff --git a/apps/web/src/lib/auth/index.ts b/apps/web/src/lib/auth/index.ts index 00df1f547..b4988e7ca 100644 --- a/apps/web/src/lib/auth/index.ts +++ b/apps/web/src/lib/auth/index.ts @@ -6,6 +6,7 @@ import { db, eq } from "@openstatus/db"; import { user } from "@openstatus/db/src/schema"; import { WelcomeEmail, sendEmail } from "@openstatus/emails"; +import { headers } from "next/headers"; import { adapter } from "./adapter"; import { GitHubProvider, GoogleProvider, ResendProvider } from "./providers"; @@ -92,6 +93,8 @@ export const { handlers, signIn, signOut, auth } = NextAuth({ const analytics = await setupAnalytics({ userId: `usr_${params.user.id}`, email: params.user.email, + location: (await headers()).get("x-forwarded-for") ?? undefined, + userAgent: (await headers()).get("user-agent") ?? undefined, }); await analytics.track(Events.CreateUser); @@ -104,6 +107,8 @@ export const { handlers, signIn, signOut, auth } = NextAuth({ const analytics = await setupAnalytics({ userId: `usr_${params.user.id}`, email: params.user.email, + location: (await headers()).get("x-forwarded-for") ?? undefined, + userAgent: (await headers()).get("user-agent") ?? undefined, }); await analytics.track(Events.SignInUser); diff --git a/packages/api/src/trpc.ts b/packages/api/src/trpc.ts index df7912493..776442cc5 100644 --- a/packages/api/src/trpc.ts +++ b/packages/api/src/trpc.ts @@ -223,6 +223,7 @@ const enforceUserIsAuthed = t.middleware(async (opts) => { if (user && workspace) { identify = { + ...identify, userId: `usr_${user.id}`, email: user.email || undefined, workspaceId: String(workspace.id), -- 2.51.2