From 1580bbb71131a413054e4102dcc01692405e78bb Mon Sep 17 00:00:00 2001 From: dal Date: Fri, 11 Jul 2025 15:48:20 -0600 Subject: [PATCH] Add events endpoint for Slack webhooks without authentication --- apps/server/src/api/v2/slack/events.ts | 4 ++++ apps/server/src/api/v2/slack/index.ts | 7 +++++++ 2 files changed, 11 insertions(+) create mode 100644 apps/server/src/api/v2/slack/events.ts diff --git a/apps/server/src/api/v2/slack/events.ts b/apps/server/src/api/v2/slack/events.ts new file mode 100644 index 000000000..c0eb4c3f2 --- /dev/null +++ b/apps/server/src/api/v2/slack/events.ts @@ -0,0 +1,4 @@ +export async function eventsHandler(_body: unknown): Promise<{ success: boolean }> { + // Simply accept any JSON payload and return success + return { success: true }; +} diff --git a/apps/server/src/api/v2/slack/index.ts b/apps/server/src/api/v2/slack/index.ts index 66ab8e38a..37f70a8a9 100644 --- a/apps/server/src/api/v2/slack/index.ts +++ b/apps/server/src/api/v2/slack/index.ts @@ -2,6 +2,7 @@ import { SlackError } from '@buster/server-shared/slack'; import { Hono } from 'hono'; import { HTTPException } from 'hono/http-exception'; import { requireAuth } from '../../../middleware/auth'; +import { eventsHandler } from './events'; import { slackHandler } from './handler'; const app = new Hono() @@ -13,6 +14,12 @@ const app = new Hono() .put('/integration', requireAuth, (c) => slackHandler.updateIntegration(c)) .get('/channels', requireAuth, (c) => slackHandler.getChannels(c)) .delete('/integration', requireAuth, (c) => slackHandler.removeIntegration(c)) + // Events endpoint (no auth required for Slack webhooks) + .post('/events', async (c) => { + const body = await c.req.json(); + const response = await eventsHandler(body); + return c.json(response); + }) // Error handling .onError((e, c) => { if (e instanceof SlackError) {