From bc45b8871dcfe22293b05e4b0dc8b9d01f211c6b Mon Sep 17 00:00:00 2001 From: James Ritchie Date: Thu, 12 Dec 2024 13:55:31 +0000 Subject: [PATCH 1/2] Alert emails now contain the Org name --- .../emails/emails/alert-attempt-failure.tsx | 15 +++++++++++++-- .../emails/emails/alert-run-failure.tsx | 6 +++++- .../emails/emails/deployment-failure.tsx | 6 ++++-- .../emails/emails/deployment-success.tsx | 6 ++++-- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/internal-packages/emails/emails/alert-attempt-failure.tsx b/internal-packages/emails/emails/alert-attempt-failure.tsx index f7cfcb6c23..00bcc71e8b 100644 --- a/internal-packages/emails/emails/alert-attempt-failure.tsx +++ b/internal-packages/emails/emails/alert-attempt-failure.tsx @@ -27,6 +27,7 @@ export const AlertAttemptEmailSchema = z.object({ stackTrace: z.string().optional(), }), attemptLink: z.string().url(), + organization: z.string(), }); const previewDefaults = { @@ -44,7 +45,16 @@ const previewDefaults = { }; export default function Email(props: z.infer) { - const { taskIdentifier, fileName, exportName, version, environment, error, attemptLink } = { + const { + taskIdentifier, + fileName, + exportName, + version, + environment, + error, + attemptLink, + organization, + } = { ...previewDefaults, ...props, }; @@ -52,7 +62,7 @@ export default function Email(props: z.infer) { return ( - {`[${version}.${environment} ${taskIdentifier}] ${error.message}`} + {`${organization}: [${version}.${environment} ${taskIdentifier}] ${error.message}`} There's been an error on `{taskIdentifier}` @@ -61,6 +71,7 @@ export default function Email(props: z.infer) { Function: {exportName}() Version: {version} Environment: {environment} + Organization: {organization} {error.message} {error.stackTrace && ( diff --git a/internal-packages/emails/emails/alert-run-failure.tsx b/internal-packages/emails/emails/alert-run-failure.tsx index 6f8cbca3fd..4cdceba6bf 100644 --- a/internal-packages/emails/emails/alert-run-failure.tsx +++ b/internal-packages/emails/emails/alert-run-failure.tsx @@ -30,6 +30,7 @@ export const AlertRunEmailSchema = z.object({ stackTrace: z.string().optional(), }), runLink: z.string().url(), + organization: z.string(), }); type AlertRunEmailProps = z.infer; @@ -49,6 +50,7 @@ const previewDefaults: AlertRunEmailProps = { stackTrace: "Error stack trace", }, runLink: "https://trigger.dev", + organization: "my-organization", }; export default function Email(props: AlertRunEmailProps) { @@ -62,6 +64,7 @@ export default function Email(props: AlertRunEmailProps) { environment, error, runLink, + organization, } = { ...previewDefaults, ...props, @@ -70,10 +73,11 @@ export default function Email(props: AlertRunEmailProps) { return ( - {`[${version}.${environment} ${taskIdentifier}] ${error.message}`} + {`${organization}: [${version}.${environment} ${taskIdentifier}] ${error.message}`} Run `{runId}` failed + Organization: {organization} Project: {project} Task ID: {taskIdentifier} Filename: {fileName} diff --git a/internal-packages/emails/emails/deployment-failure.tsx b/internal-packages/emails/emails/deployment-failure.tsx index b98a2e01db..debee5af92 100644 --- a/internal-packages/emails/emails/deployment-failure.tsx +++ b/internal-packages/emails/emails/deployment-failure.tsx @@ -18,6 +18,7 @@ export const AlertDeploymentFailureEmailSchema = z.object({ email: z.literal("alert-deployment-failure"), version: z.string(), environment: z.string(), + organization: z.string(), shortCode: z.string(), failedAt: z.date(), error: z.object({ @@ -31,6 +32,7 @@ export const AlertDeploymentFailureEmailSchema = z.object({ const previewDefaults = { version: "v1", environment: "production", + organization: "My Organization", shortCode: "abc123", failedAt: new Date().toISOString(), error: { @@ -41,7 +43,7 @@ const previewDefaults = { }; export default function Email(props: z.infer) { - const { version, environment, shortCode, failedAt, error, deploymentLink } = { + const { version, environment, organization, shortCode, failedAt, error, deploymentLink } = { ...previewDefaults, ...props, }; @@ -49,7 +51,7 @@ export default function Email(props: z.infer - {`Deployment ${version} [${environment}] failed: ${error.name}`} + {`[${organization}] Deployment ${version} [${environment}] failed: ${error.name}`} {`An error occurred deploying ${version} in ${environment}`} diff --git a/internal-packages/emails/emails/deployment-success.tsx b/internal-packages/emails/emails/deployment-success.tsx index aad2c59553..2bf7ed314f 100644 --- a/internal-packages/emails/emails/deployment-success.tsx +++ b/internal-packages/emails/emails/deployment-success.tsx @@ -8,6 +8,7 @@ export const AlertDeploymentSuccessEmailSchema = z.object({ email: z.literal("alert-deployment-success"), version: z.string(), environment: z.string(), + organization: z.string(), shortCode: z.string(), deployedAt: z.date(), taskCount: z.number(), @@ -17,6 +18,7 @@ export const AlertDeploymentSuccessEmailSchema = z.object({ const previewDefaults = { version: "v1", environment: "production", + organization: "My Organization", shortCode: "abc123", deployedAt: new Date().toISOString(), taskCount: 3, @@ -24,7 +26,7 @@ const previewDefaults = { }; export default function Email(props: z.infer) { - const { version, environment, shortCode, deployedAt, taskCount, deploymentLink } = { + const { version, environment, organization, shortCode, deployedAt, taskCount, deploymentLink } = { ...previewDefaults, ...props, }; @@ -32,7 +34,7 @@ export default function Email(props: z.infer - {`Deployment ${version} [${environment}] succeeded`} + {`[${organization}] Deployment ${version} [${environment}] succeeded`} Date: Fri, 13 Dec 2024 13:11:31 +0000 Subject: [PATCH 2/2] Adds org title to the alert parameters --- apps/webapp/app/v3/services/alerts/deliverAlert.server.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts b/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts index fd674a4126..0e7dd87a95 100644 --- a/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts +++ b/apps/webapp/app/v3/services/alerts/deliverAlert.server.ts @@ -219,6 +219,7 @@ export class DeliverAlertService extends BaseService { environment: alert.environment.slug, error: createJsonErrorObject(taskRunError), attemptLink: `${env.APP_ORIGIN}/projects/v3/${alert.project.externalRef}/runs/${alert.taskRunAttempt.taskRun.friendlyId}`, + organization: alert.project.organization.title, }); } else { logger.error("[DeliverAlert] Task run attempt not found", { @@ -244,6 +245,7 @@ export class DeliverAlertService extends BaseService { environment: alert.environment.slug, error: createJsonErrorObject(taskRunError), runLink: `${env.APP_ORIGIN}/projects/v3/${alert.project.externalRef}/runs/${alert.taskRun.friendlyId}`, + organization: alert.project.organization.title, }); } else { logger.error("[DeliverAlert] Task run not found", { @@ -276,6 +278,7 @@ export class DeliverAlertService extends BaseService { failedAt: alert.workerDeployment.failedAt ?? new Date(), error: preparedError, deploymentLink: `${env.APP_ORIGIN}/projects/v3/${alert.project.externalRef}/deployments/${alert.workerDeployment.shortCode}`, + organization: alert.project.organization.title, }); } else { logger.error("[DeliverAlert] Worker deployment not found", { @@ -296,6 +299,7 @@ export class DeliverAlertService extends BaseService { deployedAt: alert.workerDeployment.deployedAt ?? new Date(), deploymentLink: `${env.APP_ORIGIN}/projects/v3/${alert.project.externalRef}/deployments/${alert.workerDeployment.shortCode}`, taskCount: alert.workerDeployment.worker?.tasks.length ?? 0, + organization: alert.project.organization.title, }); } else { logger.error("[DeliverAlert] Worker deployment not found", {