From dc8fa01836f1902b26d0705d7251bc1811b1ba13 Mon Sep 17 00:00:00 2001 From: Saadi Myftija Date: Wed, 26 Aug 2026 14:04:06 +0200 Subject: [PATCH] feat(webapp): add org slug and project name to deployment telemetry events Dashboards grouped by org id / project ref require a lookup to know who is deploying; the events now also carry $trigger.org.slug and $trigger.project.name, sourced from data the emission sites already hold (the timeout and cancel paths gain one select field each). --- apps/webapp/app/v3/deploymentTelemetry.ts | 2 ++ .../services/createDeploymentBackgroundWorkerV4.server.ts | 2 ++ apps/webapp/app/v3/services/deployment.server.ts | 6 ++++++ apps/webapp/app/v3/services/failDeployment.server.ts | 2 ++ apps/webapp/app/v3/services/finalizeDeployment.server.ts | 2 ++ apps/webapp/app/v3/services/initializeDeployment.server.ts | 2 ++ .../app/v3/services/recordDeploymentFinished.server.ts | 6 ++++++ apps/webapp/app/v3/services/timeoutDeployment.server.ts | 5 +++++ 8 files changed, 27 insertions(+) diff --git a/apps/webapp/app/v3/deploymentTelemetry.ts b/apps/webapp/app/v3/deploymentTelemetry.ts index 2dd0725f840..89a0a674a04 100644 --- a/apps/webapp/app/v3/deploymentTelemetry.ts +++ b/apps/webapp/app/v3/deploymentTelemetry.ts @@ -15,7 +15,9 @@ import { BuildServerMetadata } from "@trigger.dev/core/v3"; */ export const DeploymentTelemetryAttributes = { ORG_ID: "$trigger.org.id", + ORG_SLUG: "$trigger.org.slug", PROJECT_ID: "$trigger.project.id", + PROJECT_NAME: "$trigger.project.name", // Project external ref ("proj_…") PROJECT_REF: "$trigger.project.ref", ENV_ID: "$trigger.env.id", diff --git a/apps/webapp/app/v3/services/createDeploymentBackgroundWorkerV4.server.ts b/apps/webapp/app/v3/services/createDeploymentBackgroundWorkerV4.server.ts index 7215c09c37c..bf2c95745f3 100644 --- a/apps/webapp/app/v3/services/createDeploymentBackgroundWorkerV4.server.ts +++ b/apps/webapp/app/v3/services/createDeploymentBackgroundWorkerV4.server.ts @@ -340,7 +340,9 @@ export class CreateDeploymentBackgroundWorkerServiceV4 extends BaseService { deployment: { ...deployment, status: "FAILED", failedAt, errorData }, environment: { organizationId: environment.organizationId, + organizationSlug: environment.organization.slug, projectId: environment.projectId, + projectName: environment.project.name, projectRef: environment.project.externalRef, environmentId: environment.id, environmentType: environment.type, diff --git a/apps/webapp/app/v3/services/deployment.server.ts b/apps/webapp/app/v3/services/deployment.server.ts index e8ac53cc475..0eeaa82b3d6 100644 --- a/apps/webapp/app/v3/services/deployment.server.ts +++ b/apps/webapp/app/v3/services/deployment.server.ts @@ -256,7 +256,9 @@ export class DeploymentService extends BaseService { }, environment: { organizationId: deployment.environment.project.organizationId, + organizationSlug: deployment.environment.organization.slug, projectId: deployment.environment.project.id, + projectName: deployment.environment.project.name, projectRef: deployment.environment.project.externalRef, environmentId: deployment.environment.id, environmentType: deployment.environment.type, @@ -519,10 +521,14 @@ export class DeploymentService extends BaseService { project: { select: { id: true, + name: true, organizationId: true, externalRef: true, }, }, + organization: { + select: { slug: true }, + }, }, }, }, diff --git a/apps/webapp/app/v3/services/failDeployment.server.ts b/apps/webapp/app/v3/services/failDeployment.server.ts index 534158308cb..b5a6bbeb24c 100644 --- a/apps/webapp/app/v3/services/failDeployment.server.ts +++ b/apps/webapp/app/v3/services/failDeployment.server.ts @@ -83,7 +83,9 @@ export class FailDeploymentService extends BaseService { deployment: failedDeployment, environment: { organizationId: authenticatedEnv.organizationId, + organizationSlug: authenticatedEnv.organization.slug, projectId: authenticatedEnv.projectId, + projectName: authenticatedEnv.project.name, projectRef: authenticatedEnv.project.externalRef, environmentId: authenticatedEnv.id, environmentType: authenticatedEnv.type, diff --git a/apps/webapp/app/v3/services/finalizeDeployment.server.ts b/apps/webapp/app/v3/services/finalizeDeployment.server.ts index 3ee7a1bebf0..c9d6e7f3932 100644 --- a/apps/webapp/app/v3/services/finalizeDeployment.server.ts +++ b/apps/webapp/app/v3/services/finalizeDeployment.server.ts @@ -106,7 +106,9 @@ export class FinalizeDeploymentService extends BaseService { deployment: finalizedDeployment, environment: { organizationId: authenticatedEnv.organizationId, + organizationSlug: authenticatedEnv.organization.slug, projectId: authenticatedEnv.projectId, + projectName: authenticatedEnv.project.name, projectRef: authenticatedEnv.project.externalRef, environmentId: authenticatedEnv.id, environmentType: authenticatedEnv.type, diff --git a/apps/webapp/app/v3/services/initializeDeployment.server.ts b/apps/webapp/app/v3/services/initializeDeployment.server.ts index 56cf50e6879..ca7ce966006 100644 --- a/apps/webapp/app/v3/services/initializeDeployment.server.ts +++ b/apps/webapp/app/v3/services/initializeDeployment.server.ts @@ -399,7 +399,9 @@ export class InitializeDeploymentService extends BaseService { deployment, environment: { organizationId: environment.organizationId, + organizationSlug: environment.organization.slug, projectId: environment.projectId, + projectName: environment.project.name, projectRef: environment.project.externalRef, environmentId: environment.id, environmentType: environment.type, diff --git a/apps/webapp/app/v3/services/recordDeploymentFinished.server.ts b/apps/webapp/app/v3/services/recordDeploymentFinished.server.ts index 8d6727cac7f..4bea471269c 100644 --- a/apps/webapp/app/v3/services/recordDeploymentFinished.server.ts +++ b/apps/webapp/app/v3/services/recordDeploymentFinished.server.ts @@ -37,7 +37,9 @@ type FinishedDeployment = Pick< type EnvironmentInfo = { organizationId?: string; + organizationSlug?: string; projectId?: string; + projectName?: string; projectRef?: string; environmentId?: string; environmentType?: string; @@ -73,7 +75,9 @@ export function recordDeploymentFinished(params: { attributes: { [SEMINTATTRS_FORCE_RECORDING]: true, [ATTRS.ORG_ID]: environment.organizationId, + [ATTRS.ORG_SLUG]: environment.organizationSlug, [ATTRS.PROJECT_ID]: environment.projectId, + [ATTRS.PROJECT_NAME]: environment.projectName, [ATTRS.PROJECT_REF]: environment.projectRef, [ATTRS.ENV_ID]: environment.environmentId, [ATTRS.ENV_TYPE]: environment.environmentType, @@ -147,7 +151,9 @@ export function recordDeploymentInitialized(params: { attributes: { [SEMINTATTRS_FORCE_RECORDING]: true, [ATTRS.ORG_ID]: environment.organizationId, + [ATTRS.ORG_SLUG]: environment.organizationSlug, [ATTRS.PROJECT_ID]: environment.projectId, + [ATTRS.PROJECT_NAME]: environment.projectName, [ATTRS.PROJECT_REF]: environment.projectRef, [ATTRS.ENV_ID]: environment.environmentId, [ATTRS.ENV_TYPE]: environment.environmentType, diff --git a/apps/webapp/app/v3/services/timeoutDeployment.server.ts b/apps/webapp/app/v3/services/timeoutDeployment.server.ts index 63d81ba1930..cc935cc4712 100644 --- a/apps/webapp/app/v3/services/timeoutDeployment.server.ts +++ b/apps/webapp/app/v3/services/timeoutDeployment.server.ts @@ -17,6 +17,9 @@ export class TimeoutDeploymentService extends BaseService { environment: { include: { project: true, + organization: { + select: { slug: true }, + }, }, }, }, @@ -76,7 +79,9 @@ export class TimeoutDeploymentService extends BaseService { deployment: timedOutDeployment, environment: { organizationId: deployment.environment.project.organizationId, + organizationSlug: deployment.environment.organization.slug, projectId: deployment.environment.projectId, + projectName: deployment.environment.project.name, projectRef: deployment.environment.project.externalRef, environmentId: deployment.environmentId, environmentType: deployment.environment.type,