diff --git a/apps/dashboard/src/server/api/routers/client.ts b/apps/dashboard/src/server/api/routers/client.ts index 07f24165..aa989c74 100644 --- a/apps/dashboard/src/server/api/routers/client.ts +++ b/apps/dashboard/src/server/api/routers/client.ts @@ -3,7 +3,7 @@ import { createTRPCRouter, protectedProcedure } from '@/server/api/trpc'; import { db } from '@/server/db'; import { z } from 'zod'; -import { hashPassword } from '@openpanel/common'; +import { hashPassword, stripTrailingSlash } from '@openpanel/common'; export const clientRouter = createTRPCRouter({ list: protectedProcedure @@ -71,7 +71,7 @@ export const clientRouter = createTRPCRouter({ project_id: input.projectId, name: input.name, secret: input.cors ? null : await hashPassword(secret), - cors: input.cors || undefined, + cors: input.cors ? stripTrailingSlash(input.cors) : '*', }, }); diff --git a/apps/dashboard/src/server/api/routers/onboarding.ts b/apps/dashboard/src/server/api/routers/onboarding.ts index 1f544a5a..e046f5c9 100644 --- a/apps/dashboard/src/server/api/routers/onboarding.ts +++ b/apps/dashboard/src/server/api/routers/onboarding.ts @@ -3,7 +3,7 @@ import { createTRPCRouter, protectedProcedure } from '@/server/api/trpc'; import { clerkClient } from '@clerk/nextjs'; import { z } from 'zod'; -import { hashPassword } from '@openpanel/common'; +import { hashPassword, stripTrailingSlash } from '@openpanel/common'; import { db } from '@openpanel/db'; export const onboardingRouter = createTRPCRouter({ @@ -35,7 +35,7 @@ export const onboardingRouter = createTRPCRouter({ name: `${project.name} Client`, organization_slug: org.slug, project_id: project.id, - cors: input.cors ?? '*', + cors: input.cors ? stripTrailingSlash(input.cors) : '*', secret: input.cors ? null : await hashPassword(secret), }, }); @@ -43,7 +43,7 @@ export const onboardingRouter = createTRPCRouter({ return { client: { ...client, - secret, + secret: input.cors ? null : secret, }, project, organization: org, diff --git a/apps/docs/src/pages/docs/nextjs.mdx b/apps/docs/src/pages/docs/nextjs.mdx index e3f693df..c09ebe52 100644 --- a/apps/docs/src/pages/docs/nextjs.mdx +++ b/apps/docs/src/pages/docs/nextjs.mdx @@ -60,7 +60,6 @@ import { setProfile, setProfileId, trackEvent, - trackScreenView, } from '@openpanel/nextjs'; // Sends an event with payload foo: bar @@ -189,6 +188,13 @@ clear(); If you want to track server-side events, you should create an instance of our Javascript SDK. It's exported from `@openpanel/nextjs` + +When using server events it's important to create a new client (with a secret). Since it's backend we cannot authorize the request with cors headers. + +`Openpanel Dashboard -> Setting -> Clients -> Create client` + + + ```typescript import { OpenpanelSdk } from '@openpanel/nextjs';