Skip to content

Commit 86b1628

Browse files
authored
Add run metadata to runs.list endpoint (#1542)
1 parent ea23dbd commit 86b1628

File tree

2 files changed

+48
-32
lines changed

2 files changed

+48
-32
lines changed

apps/webapp/app/presenters/v3/ApiRunListPresenter.server.ts

+41-31
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ListRunResponse, ListRunResponseItem, RunStatus } from "@trigger.dev/core/v3";
1+
import { ListRunResponse, ListRunResponseItem, parsePacket, RunStatus } from "@trigger.dev/core/v3";
22
import { Project, RuntimeEnvironment, TaskRunStatus } from "@trigger.dev/database";
33
import assertNever from "assert-never";
44
import { z } from "zod";
@@ -220,36 +220,46 @@ export class ApiRunListPresenter extends BasePresenter {
220220

221221
const results = await presenter.call(options);
222222

223-
const data: ListRunResponseItem[] = results.runs.map((run) => {
224-
return {
225-
id: run.friendlyId,
226-
status: ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status),
227-
taskIdentifier: run.taskIdentifier,
228-
idempotencyKey: run.idempotencyKey,
229-
version: run.version ?? undefined,
230-
createdAt: new Date(run.createdAt),
231-
updatedAt: new Date(run.updatedAt),
232-
startedAt: run.startedAt ? new Date(run.startedAt) : undefined,
233-
finishedAt: run.finishedAt ? new Date(run.finishedAt) : undefined,
234-
delayedUntil: run.delayUntil ? new Date(run.delayUntil) : undefined,
235-
isTest: run.isTest,
236-
ttl: run.ttl ?? undefined,
237-
expiredAt: run.expiredAt ? new Date(run.expiredAt) : undefined,
238-
env: {
239-
id: run.environment.id,
240-
name: run.environment.slug,
241-
user: run.environment.userName,
242-
},
243-
tags: run.tags,
244-
costInCents: run.costInCents,
245-
baseCostInCents: run.baseCostInCents,
246-
durationMs: run.usageDurationMs,
247-
depth: run.depth,
248-
...ApiRetrieveRunPresenter.apiBooleanHelpersFromRunStatus(
249-
ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status)
250-
),
251-
};
252-
});
223+
logger.debug("RunListPresenter results", { results });
224+
225+
const data: ListRunResponseItem[] = await Promise.all(
226+
results.runs.map(async (run) => {
227+
const metadata = await parsePacket({
228+
data: run.metadata ?? undefined,
229+
dataType: run.metadataType,
230+
});
231+
232+
return {
233+
id: run.friendlyId,
234+
status: ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status),
235+
taskIdentifier: run.taskIdentifier,
236+
idempotencyKey: run.idempotencyKey,
237+
version: run.version ?? undefined,
238+
createdAt: new Date(run.createdAt),
239+
updatedAt: new Date(run.updatedAt),
240+
startedAt: run.startedAt ? new Date(run.startedAt) : undefined,
241+
finishedAt: run.finishedAt ? new Date(run.finishedAt) : undefined,
242+
delayedUntil: run.delayUntil ? new Date(run.delayUntil) : undefined,
243+
isTest: run.isTest,
244+
ttl: run.ttl ?? undefined,
245+
expiredAt: run.expiredAt ? new Date(run.expiredAt) : undefined,
246+
env: {
247+
id: run.environment.id,
248+
name: run.environment.slug,
249+
user: run.environment.userName,
250+
},
251+
tags: run.tags,
252+
costInCents: run.costInCents,
253+
baseCostInCents: run.baseCostInCents,
254+
durationMs: run.usageDurationMs,
255+
depth: run.depth,
256+
metadata,
257+
...ApiRetrieveRunPresenter.apiBooleanHelpersFromRunStatus(
258+
ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status)
259+
),
260+
};
261+
})
262+
);
253263

254264
return {
255265
data,

apps/webapp/app/presenters/v3/RunListPresenter.server.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ export class RunListPresenter extends BasePresenter {
216216
depth: number;
217217
rootTaskRunId: string | null;
218218
batchId: string | null;
219+
metadata: string | null;
220+
metadataType: string;
219221
}[]
220222
>`
221223
SELECT
@@ -241,7 +243,9 @@ export class RunListPresenter extends BasePresenter {
241243
tr."usageDurationMs" AS "usageDurationMs",
242244
tr."depth" AS "depth",
243245
tr."rootTaskRunId" AS "rootTaskRunId",
244-
tr."runTags" AS "tags"
246+
tr."runTags" AS "tags",
247+
tr."metadata" AS "metadata",
248+
tr."metadataType" AS "metadataType"
245249
FROM
246250
${sqlDatabaseSchema}."TaskRun" tr
247251
LEFT JOIN
@@ -374,6 +378,8 @@ WHERE
374378
tags: run.tags ? run.tags.sort((a, b) => a.localeCompare(b)) : [],
375379
depth: run.depth,
376380
rootTaskRunId: run.rootTaskRunId,
381+
metadata: run.metadata,
382+
metadataType: run.metadataType,
377383
};
378384
}),
379385
pagination: {

0 commit comments

Comments
 (0)