diff --git a/apps/webapp/app/components/run/RunOverview.tsx b/apps/webapp/app/components/run/RunOverview.tsx index 79bdfe22b..f9086d3c6 100644 --- a/apps/webapp/app/components/run/RunOverview.tsx +++ b/apps/webapp/app/components/run/RunOverview.tsx @@ -12,7 +12,7 @@ import { import { JobRunStatus, RuntimeEnvironmentType } from "@trigger.dev/database"; import { useMemo } from "react"; import { usePathName } from "~/hooks/usePathName"; -import { Run } from "~/presenters/RunPresenter.server"; +import { ViewRun } from "~/presenters/RunPresenter.server"; import { cancelSchema } from "~/routes/resources.runs.$runId.cancel"; import { schema } from "~/routes/resources.runs.$runId.rerun"; import { formatDuration } from "~/utils"; @@ -59,7 +59,7 @@ import { TaskCard } from "./TaskCard"; import { TaskCardSkeleton } from "./TaskCardSkeleton"; type RunOverviewProps = { - run: Run; + run: ViewRun; trigger: { icon: string; title: string; diff --git a/apps/webapp/app/components/run/TaskCard.tsx b/apps/webapp/app/components/run/TaskCard.tsx index c1a399d38..1bce2f482 100644 --- a/apps/webapp/app/components/run/TaskCard.tsx +++ b/apps/webapp/app/components/run/TaskCard.tsx @@ -3,7 +3,7 @@ import { AnimatePresence, motion } from "framer-motion"; import { Fragment, useState } from "react"; import simplur from "simplur"; import { Paragraph } from "~/components/primitives/Paragraph"; -import { Task } from "~/presenters/RunPresenter.server"; +import { ViewTask } from "~/presenters/RunPresenter.server"; import { formatDuration } from "~/utils"; import { cn } from "~/utils/cn"; import { @@ -22,7 +22,7 @@ import { } from "./RunCard"; import { TaskStatusIcon } from "./TaskStatus"; -type TaskCardProps = Task & { +type TaskCardProps = ViewTask & { selectedId?: string; selectedTask: (id: string) => void; isLast: boolean; diff --git a/apps/webapp/app/components/run/TriggerDetail.tsx b/apps/webapp/app/components/run/TriggerDetail.tsx index 7f5dd41e8..aee57b22e 100644 --- a/apps/webapp/app/components/run/TriggerDetail.tsx +++ b/apps/webapp/app/components/run/TriggerDetail.tsx @@ -25,7 +25,7 @@ export function TriggerDetail({ }; properties: DisplayProperty[]; }) { - const { id, name, payload, timestamp, deliveredAt } = trigger; + const { id, name, payload, context, timestamp, deliveredAt } = trigger; return ( @@ -45,6 +45,7 @@ export function TriggerDetail({ /> )} + {trigger.externalAccount && ( )} Payload - + + Context + diff --git a/apps/webapp/app/presenters/RunPresenter.server.ts b/apps/webapp/app/presenters/RunPresenter.server.ts index 369ce882e..34934647d 100644 --- a/apps/webapp/app/presenters/RunPresenter.server.ts +++ b/apps/webapp/app/presenters/RunPresenter.server.ts @@ -13,10 +13,11 @@ type RunOptions = { userId: string; }; -export type Run = NonNullable>>; -export type Task = NonNullable>>["tasks"][number]; -export type Event = NonNullable>>["event"]; +export type ViewRun = NonNullable>>; +export type ViewTask = NonNullable>>["tasks"][number]; +export type ViewEvent = NonNullable>>["event"]; +type QueryEvent = NonNullable>>["event"]; type QueryTask = NonNullable>>["tasks"][number]; export class RunPresenter { @@ -76,7 +77,7 @@ export class RunPresenter { type: run.environment.type, slug: run.environment.slug, }, - event: run.event, + event: this.#prepareEventData(run.event), tasks, runConnections: run.runConnections, missingConnections: run.missingConnections, @@ -84,6 +85,22 @@ export class RunPresenter { }; } + #prepareEventData(event: QueryEvent) { + return { + id: event.eventId, + name: event.name, + payload: JSON.stringify(event.payload), + context: JSON.stringify(event.context), + timestamp: event.timestamp, + deliveredAt: event.deliveredAt, + externalAccount: event.externalAccount + ? { + identifier: event.externalAccount.identifier, + } + : undefined, + }; + } + query({ id, userId }: RunOptions) { return this.#prismaClient.jobRun.findFirst({ select: { @@ -110,9 +127,10 @@ export class RunPresenter { }, event: { select: { - id: true, + eventId: true, name: true, payload: true, + context: true, timestamp: true, deliveredAt: true, externalAccount: { diff --git a/apps/webapp/app/presenters/TriggerDetailsPresenter.server.ts b/apps/webapp/app/presenters/TriggerDetailsPresenter.server.ts index d4b6fa6e3..7c420ad5d 100644 --- a/apps/webapp/app/presenters/TriggerDetailsPresenter.server.ts +++ b/apps/webapp/app/presenters/TriggerDetailsPresenter.server.ts @@ -17,9 +17,10 @@ export class TriggerDetailsPresenter { select: { event: { select: { - id: true, + eventId: true, name: true, payload: true, + context: true, timestamp: true, deliveredAt: true, externalAccount: { @@ -32,6 +33,18 @@ export class TriggerDetailsPresenter { }, }); - return event; + return { + id: event.eventId, + name: event.name, + payload: JSON.stringify(event.payload), + context: JSON.stringify(event.context), + timestamp: event.timestamp, + deliveredAt: event.deliveredAt, + externalAccount: event.externalAccount + ? { + identifier: event.externalAccount.identifier, + } + : undefined, + }; } } diff --git a/apps/webapp/app/services/tasks/performTaskOperation.server.ts b/apps/webapp/app/services/tasks/performTaskOperation.server.ts index fb5a6304a..987cb56fa 100644 --- a/apps/webapp/app/services/tasks/performTaskOperation.server.ts +++ b/apps/webapp/app/services/tasks/performTaskOperation.server.ts @@ -1,5 +1,3 @@ -import { env } from "process"; -import { Run } from "~/presenters/RunPresenter.server"; import { FetchOperationSchema, FetchRequestInit,