MCPcopy Create free account
hub / github.com/Openpanel-dev/openpanel / handleReplay

Function handleReplay

apps/api/src/controllers/track.controller.ts:337–356  ·  view source on GitHub ↗
(
  payload: IReplayPayload,
  { projectId, sessionId }: { projectId: string; sessionId: string | undefined }
)

Source from the content-addressed store, hash-verified

335// Replay only needs the server-issued session id (the SDK echoes it back). Trust
336// it — scoped to the authed project, unguessable, same trust level as event data.
337export async function handleReplay(
338 payload: IReplayPayload,
339 { projectId, sessionId }: { projectId: string; sessionId: string | undefined }
340): Promise<void> {
341 if (!sessionId) {
342 throw new HttpError('Session ID is required for replay', { status: 400 });
343 }
344
345 const row = {
346 project_id: projectId,
347 session_id: sessionId,
348 chunk_index: payload.chunk_index,
349 started_at: payload.started_at,
350 ended_at: payload.ended_at,
351 events_count: payload.events_count,
352 is_full_snapshot: payload.is_full_snapshot,
353 payload: payload.payload,
354 };
355 await replayBuffer.add(row);
356}
357
358async function handleGroup(
359 payload: IGroupPayload,

Callers 2

handlerFunction · 0.85

Calls 1

addMethod · 0.45

Tested by

no test coverage detected