From 32073d8c0314597235a9b74fde1a26d3fc597ae5 Mon Sep 17 00:00:00 2001 From: dal Date: Mon, 7 Jul 2025 11:03:40 -0600 Subject: [PATCH] env vars and oauth scopes --- .../src/api/v2/slack/services/slack-oauth-service.ts | 5 +++++ apps/trigger/.env.example | 3 ++- apps/trigger/env.d.ts | 1 + .../message-post-processing/helpers/slack-notifier.ts | 8 +++++--- .../message-post-processing/message-post-processing.ts | 1 + 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/apps/server/src/api/v2/slack/services/slack-oauth-service.ts b/apps/server/src/api/v2/slack/services/slack-oauth-service.ts index 2048ce837..dc785ad72 100644 --- a/apps/server/src/api/v2/slack/services/slack-oauth-service.ts +++ b/apps/server/src/api/v2/slack/services/slack-oauth-service.ts @@ -41,11 +41,16 @@ export class SlackOAuthService { clientSecret: this.env.SLACK_CLIENT_SECRET, redirectUri: this.env.SLACK_REDIRECT_URI, scopes: [ + 'channels:history', + 'channels:join', + 'channels:manage', 'channels:read', 'chat:write', 'chat:write.public', + 'commands', 'channels:join', 'users:read', + 'users:read.email', ], }, tokenStorage, diff --git a/apps/trigger/.env.example b/apps/trigger/.env.example index 34b84b773..bc072ba2b 100644 --- a/apps/trigger/.env.example +++ b/apps/trigger/.env.example @@ -1,4 +1,5 @@ DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:54322/postgres BRAINTRUST_KEY="" TRIGGER_SECRET_KEY="" -ENVIRONMENT="development" \ No newline at end of file +ENVIRONMENT="development" +BUSTER_URL="http://localhost:3000" \ No newline at end of file diff --git a/apps/trigger/env.d.ts b/apps/trigger/env.d.ts index e68960c0b..4ca1a56bf 100644 --- a/apps/trigger/env.d.ts +++ b/apps/trigger/env.d.ts @@ -6,6 +6,7 @@ declare global { TRIGGER_SECRET_KEY: string; ENVIRONMENT: string; NODE_ENV?: 'development' | 'production' | 'test'; + BUSTER_URL: string; } } } diff --git a/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts b/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts index c672f0032..245a4b0d0 100644 --- a/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts +++ b/apps/trigger/src/tasks/message-post-processing/helpers/slack-notifier.ts @@ -4,6 +4,7 @@ import { logger } from '@trigger.dev/sdk/v3'; export interface SlackNotificationParams { organizationId: string; userName: string | null; + chatId: string; summaryTitle?: string | undefined; summaryMessage?: string | undefined; formattedMessage?: string | null | undefined; @@ -153,6 +154,7 @@ function shouldSendSlackNotification(params: SlackNotificationParams): boolean { */ function formatSlackMessage(params: SlackNotificationParams): SlackMessage { const userName = params.userName || 'Unknown User'; + const chatUrl = `${process.env.BUSTER_URL}/app/chats/${params.chatId}`; // Case 1: Formatted message from workflow (highest priority) if (params.formattedMessage) { @@ -162,7 +164,7 @@ function formatSlackMessage(params: SlackNotificationParams): SlackMessage { type: 'section', text: { type: 'mrkdwn', - text: `Buster flagged a chat for review:\n**`, + text: `Buster flagged a chat for review:\n*<${chatUrl}|${userName}>*`, }, }, { @@ -185,7 +187,7 @@ function formatSlackMessage(params: SlackNotificationParams): SlackMessage { type: 'section', text: { type: 'mrkdwn', - text: `Buster flagged a chat for review:\n**`, + text: `Buster flagged a chat for review:\n*<${chatUrl}|${userName} - ${params.summaryTitle}>*`, }, }, { @@ -208,7 +210,7 @@ function formatSlackMessage(params: SlackNotificationParams): SlackMessage { type: 'section', text: { type: 'mrkdwn', - text: `Buster flagged a chat for review:\n**`, + text: `Buster flagged a chat for review:\n*<${chatUrl}|${userName} - Flagged Chat>*`, }, }, { diff --git a/apps/trigger/src/tasks/message-post-processing/message-post-processing.ts b/apps/trigger/src/tasks/message-post-processing/message-post-processing.ts index fb4194c1d..b5d4c4a0e 100644 --- a/apps/trigger/src/tasks/message-post-processing/message-post-processing.ts +++ b/apps/trigger/src/tasks/message-post-processing/message-post-processing.ts @@ -272,6 +272,7 @@ export const messagePostProcessingTask: ReturnType< const slackResult = await sendSlackNotification({ organizationId: messageContext.organizationId, userName: messageContext.userName, + chatId: messageContext.chatId, summaryTitle: dbData.summaryTitle, summaryMessage: dbData.summaryMessage, formattedMessage: dbData.formattedMessage,