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,