From 962f56fd63688a0e2f92af4d0f614b02c80ea591 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Wed, 28 Oct 2026 00:25:17 -0700 Subject: [PATCH] chore(repo): remove the unused .codex settings file and the provider-service stubs .codex/settings.local.json was a personal permissions allow-list that no tool reads. external/commonly-provider-services (343 lines of Discord, GroupMe, Slack and Telegram stubs) is built, mounted and run by nothing; only four docs pointed at it, and those lines go too. Docs and config only: no image changes. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01MDs9DPbsFurockEzieszpM --- .codex/settings.local.json | 7 --- docs/discord/README.md | 1 - docs/groupme/README.md | 2 - docs/integrations/README.md | 4 +- docs/telegram/README.md | 1 - external/commonly-provider-services/README.md | 27 ---------- .../discord-service/README.md | 14 ----- .../discord-service/package.json | 13 ----- .../discord-service/src/index.js | 52 ------------------- .../groupme-service/README.md | 14 ----- .../groupme-service/package.json | 13 ----- .../groupme-service/src/index.js | 52 ------------------- .../slack-service/README.md | 14 ----- .../slack-service/package.json | 13 ----- .../slack-service/src/index.js | 52 ------------------- .../telegram-service/README.md | 14 ----- .../telegram-service/package.json | 13 ----- .../telegram-service/src/index.js | 52 ------------------- 18 files changed, 1 insertion(+), 357 deletions(-) delete mode 100644 .codex/settings.local.json delete mode 100644 external/commonly-provider-services/README.md delete mode 100644 external/commonly-provider-services/discord-service/README.md delete mode 100644 external/commonly-provider-services/discord-service/package.json delete mode 100644 external/commonly-provider-services/discord-service/src/index.js delete mode 100644 external/commonly-provider-services/groupme-service/README.md delete mode 100644 external/commonly-provider-services/groupme-service/package.json delete mode 100644 external/commonly-provider-services/groupme-service/src/index.js delete mode 100644 external/commonly-provider-services/slack-service/README.md delete mode 100644 external/commonly-provider-services/slack-service/package.json delete mode 100644 external/commonly-provider-services/slack-service/src/index.js delete mode 100644 external/commonly-provider-services/telegram-service/README.md delete mode 100644 external/commonly-provider-services/telegram-service/package.json delete mode 100644 external/commonly-provider-services/telegram-service/src/index.js diff --git a/.codex/settings.local.json b/.codex/settings.local.json deleted file mode 100644 index 393ed23d32..0000000000 --- a/.codex/settings.local.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(git mv:*)" - ] - } -} diff --git a/docs/discord/README.md b/docs/discord/README.md index c8025a9ab7..1f0241cb8b 100644 --- a/docs/discord/README.md +++ b/docs/discord/README.md @@ -7,7 +7,6 @@ This directory contains all documentation related to Discord integration with Co ## Overview **Status**: ⚠️ Legacy in-platform provider. Discord will move to an external service. -External service stub lives at `external/commonly-provider-services/discord-service/`. | Document | Description | |----------|-------------| diff --git a/docs/groupme/README.md b/docs/groupme/README.md index 74e7cbf7f2..23cd68c280 100644 --- a/docs/groupme/README.md +++ b/docs/groupme/README.md @@ -44,8 +44,6 @@ sender-authentication mechanism. - ✅ Webhook route `POST /api/webhooks/groupme/:integrationId` - UI: Sidebar Apps quick-add uses a redirect flow (no inline config fields); the integration stores Bot ID for outbound replies and Group ID for callback routing (the callback does not supply Bot ID). -External service stub lives at `external/commonly-provider-services/groupme-service/`. - ## Notes - Inbound delivery is callback-based, while command and summary responses use the GroupMe bot API; this avoids mirroring every message and limits loops. diff --git a/docs/integrations/README.md b/docs/integrations/README.md index d6c9322a05..a473326a1d 100644 --- a/docs/integrations/README.md +++ b/docs/integrations/README.md @@ -23,9 +23,7 @@ consent/code-exchange flow is not live. ## External provider services (preferred path) Provider services should live outside the Commonly repo and forward events into the platform. -For local dev, a mirror lives at `external/commonly-provider-services/` with service stubs for -Discord/Slack/Telegram/GroupMe. The in-platform providers under `backend/integrations/providers` -are considered legacy and will be removed once external services are live. +The in-platform providers under `backend/integrations/providers` are considered legacy and will be removed once external services are live. ## Two-Way Integration Testing diff --git a/docs/telegram/README.md b/docs/telegram/README.md index f420c958e3..80c5880fce 100644 --- a/docs/telegram/README.md +++ b/docs/telegram/README.md @@ -41,7 +41,6 @@ ## Status - ⚠️ Legacy in-platform provider (will move to external service). -- External service stub lives at `external/commonly-provider-services/telegram-service/`. ## Next Steps - Parse common attachment types (photo/document/audio) for richer summaries. diff --git a/external/commonly-provider-services/README.md b/external/commonly-provider-services/README.md deleted file mode 100644 index 12c8413831..0000000000 --- a/external/commonly-provider-services/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Commonly Provider Services (External) - -This folder is a **local dev mirror** of the provider services that should live in -separate repos. Each provider service receives platform webhooks/gateway events -and forwards normalized payloads to the Commonly context layer API. - -## Services -- `discord-service` -- `slack-service` -- `telegram-service` -- `groupme-service` - -## How it works (high level) -1) Provider sends events to the service. -2) Service validates/signs as needed (TODO per provider). -3) Service forwards normalized payloads to Commonly. - -## Environment (all services) -- `PORT`: port to listen on (defaults vary by service) -- `COMMONLY_API_BASE`: Commonly base URL (e.g. `http://localhost:5000`) -- `COMMONLY_API_TOKEN`: ingest token (prefix `cm_int_`) issued by Commonly -- `COMMONLY_INGEST_ENDPOINT`: path to ingestion endpoint (default `/api/integrations/ingest`) -- `INTEGRATION_ID`: Commonly integration ID to associate with forwarded events - -## Repo separation -In production, each service should live in its own repo (or a multi-repo monorepo) -with its own CI/CD and deployment. This folder is a dev-only mirror. diff --git a/external/commonly-provider-services/discord-service/README.md b/external/commonly-provider-services/discord-service/README.md deleted file mode 100644 index 2843ee759b..0000000000 --- a/external/commonly-provider-services/discord-service/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Discord Provider Service (External) - -Receives Discord webhooks or gateway events and forwards them to Commonly. - -## Env -- `PORT` (default 4101) -- `COMMONLY_API_BASE` -- `COMMONLY_API_TOKEN` (integration token, `cm_int_...`) -- `COMMONLY_INGEST_ENDPOINT` (default `/api/integrations/ingest`) -- `INTEGRATION_ID` - -## TODO -- Verify Discord signatures (Ed25519) for interactions. -- Normalize Discord message payloads before forwarding. diff --git a/external/commonly-provider-services/discord-service/package.json b/external/commonly-provider-services/discord-service/package.json deleted file mode 100644 index 100b750268..0000000000 --- a/external/commonly-provider-services/discord-service/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@commonly/provider-discord", - "version": "0.1.0", - "private": true, - "main": "src/index.js", - "scripts": { - "start": "node src/index.js" - }, - "dependencies": { - "axios": "^1.6.7", - "express": "^4.18.2" - } -} diff --git a/external/commonly-provider-services/discord-service/src/index.js b/external/commonly-provider-services/discord-service/src/index.js deleted file mode 100644 index f981ecb84b..0000000000 --- a/external/commonly-provider-services/discord-service/src/index.js +++ /dev/null @@ -1,52 +0,0 @@ -const express = require('express'); -const axios = require('axios'); - -const app = express(); -app.use(express.json()); - -const { - PORT = 4101, - COMMONLY_API_BASE = 'http://localhost:5000', - COMMONLY_API_TOKEN = '', - COMMONLY_INGEST_ENDPOINT = '/api/integrations/ingest', - INTEGRATION_ID = '', -} = process.env; - -const buildHeaders = () => { - if (!COMMONLY_API_TOKEN) return {}; - return { Authorization: `Bearer ${COMMONLY_API_TOKEN}` }; -}; - -const forwardEvent = async (payload) => { - if (!INTEGRATION_ID) { - throw new Error('INTEGRATION_ID is required'); - } - - const url = `${COMMONLY_API_BASE}${COMMONLY_INGEST_ENDPOINT}`; - return axios.post( - url, - { - provider: 'discord', - integrationId: INTEGRATION_ID, - event: payload, - }, - { headers: buildHeaders() }, - ); -}; - -app.post('/webhook', async (req, res) => { - try { - await forwardEvent(req.body); - } catch (error) { - console.error('discord forward failed:', error.message); - } - res.sendStatus(200); -}); - -app.get('/health', (req, res) => { - res.json({ ok: true, provider: 'discord' }); -}); - -app.listen(PORT, () => { - console.log(`discord-provider listening on ${PORT}`); -}); diff --git a/external/commonly-provider-services/groupme-service/README.md b/external/commonly-provider-services/groupme-service/README.md deleted file mode 100644 index 800a452725..0000000000 --- a/external/commonly-provider-services/groupme-service/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# GroupMe Provider Service (External) - -Receives GroupMe bot callbacks and forwards them to Commonly. - -## Env -- `PORT` (default 4104) -- `COMMONLY_API_BASE` -- `COMMONLY_API_TOKEN` (integration token, `cm_int_...`) -- `COMMONLY_INGEST_ENDPOINT` (default `/api/integrations/ingest`) -- `INTEGRATION_ID` - -## TODO -- Validate GroupMe signatures if enabled. -- Normalize GroupMe payloads before forwarding. diff --git a/external/commonly-provider-services/groupme-service/package.json b/external/commonly-provider-services/groupme-service/package.json deleted file mode 100644 index 4714b8d286..0000000000 --- a/external/commonly-provider-services/groupme-service/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@commonly/provider-groupme", - "version": "0.1.0", - "private": true, - "main": "src/index.js", - "scripts": { - "start": "node src/index.js" - }, - "dependencies": { - "axios": "^1.6.7", - "express": "^4.18.2" - } -} diff --git a/external/commonly-provider-services/groupme-service/src/index.js b/external/commonly-provider-services/groupme-service/src/index.js deleted file mode 100644 index 1a3c6d71f3..0000000000 --- a/external/commonly-provider-services/groupme-service/src/index.js +++ /dev/null @@ -1,52 +0,0 @@ -const express = require('express'); -const axios = require('axios'); - -const app = express(); -app.use(express.json()); - -const { - PORT = 4104, - COMMONLY_API_BASE = 'http://localhost:5000', - COMMONLY_API_TOKEN = '', - COMMONLY_INGEST_ENDPOINT = '/api/integrations/ingest', - INTEGRATION_ID = '', -} = process.env; - -const buildHeaders = () => { - if (!COMMONLY_API_TOKEN) return {}; - return { Authorization: `Bearer ${COMMONLY_API_TOKEN}` }; -}; - -const forwardEvent = async (payload) => { - if (!INTEGRATION_ID) { - throw new Error('INTEGRATION_ID is required'); - } - - const url = `${COMMONLY_API_BASE}${COMMONLY_INGEST_ENDPOINT}`; - return axios.post( - url, - { - provider: 'groupme', - integrationId: INTEGRATION_ID, - event: payload, - }, - { headers: buildHeaders() }, - ); -}; - -app.post('/webhook', async (req, res) => { - try { - await forwardEvent(req.body); - } catch (error) { - console.error('groupme forward failed:', error.message); - } - res.sendStatus(200); -}); - -app.get('/health', (req, res) => { - res.json({ ok: true, provider: 'groupme' }); -}); - -app.listen(PORT, () => { - console.log(`groupme-provider listening on ${PORT}`); -}); diff --git a/external/commonly-provider-services/slack-service/README.md b/external/commonly-provider-services/slack-service/README.md deleted file mode 100644 index 0c67cdab00..0000000000 --- a/external/commonly-provider-services/slack-service/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Slack Provider Service (External) - -Receives Slack Events API webhooks and forwards them to Commonly. - -## Env -- `PORT` (default 4102) -- `COMMONLY_API_BASE` -- `COMMONLY_API_TOKEN` (integration token, `cm_int_...`) -- `COMMONLY_INGEST_ENDPOINT` (default `/api/integrations/ingest`) -- `INTEGRATION_ID` - -## TODO -- Validate Slack signatures with raw body + signing secret. -- Handle URL verification challenge. diff --git a/external/commonly-provider-services/slack-service/package.json b/external/commonly-provider-services/slack-service/package.json deleted file mode 100644 index f6551c0275..0000000000 --- a/external/commonly-provider-services/slack-service/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@commonly/provider-slack", - "version": "0.1.0", - "private": true, - "main": "src/index.js", - "scripts": { - "start": "node src/index.js" - }, - "dependencies": { - "axios": "^1.6.7", - "express": "^4.18.2" - } -} diff --git a/external/commonly-provider-services/slack-service/src/index.js b/external/commonly-provider-services/slack-service/src/index.js deleted file mode 100644 index 5118d7974a..0000000000 --- a/external/commonly-provider-services/slack-service/src/index.js +++ /dev/null @@ -1,52 +0,0 @@ -const express = require('express'); -const axios = require('axios'); - -const app = express(); -app.use(express.json()); - -const { - PORT = 4102, - COMMONLY_API_BASE = 'http://localhost:5000', - COMMONLY_API_TOKEN = '', - COMMONLY_INGEST_ENDPOINT = '/api/integrations/ingest', - INTEGRATION_ID = '', -} = process.env; - -const buildHeaders = () => { - if (!COMMONLY_API_TOKEN) return {}; - return { Authorization: `Bearer ${COMMONLY_API_TOKEN}` }; -}; - -const forwardEvent = async (payload) => { - if (!INTEGRATION_ID) { - throw new Error('INTEGRATION_ID is required'); - } - - const url = `${COMMONLY_API_BASE}${COMMONLY_INGEST_ENDPOINT}`; - return axios.post( - url, - { - provider: 'slack', - integrationId: INTEGRATION_ID, - event: payload, - }, - { headers: buildHeaders() }, - ); -}; - -app.post('/webhook', async (req, res) => { - try { - await forwardEvent(req.body); - } catch (error) { - console.error('slack forward failed:', error.message); - } - res.sendStatus(200); -}); - -app.get('/health', (req, res) => { - res.json({ ok: true, provider: 'slack' }); -}); - -app.listen(PORT, () => { - console.log(`slack-provider listening on ${PORT}`); -}); diff --git a/external/commonly-provider-services/telegram-service/README.md b/external/commonly-provider-services/telegram-service/README.md deleted file mode 100644 index 59768f9760..0000000000 --- a/external/commonly-provider-services/telegram-service/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Telegram Provider Service (External) - -Receives Telegram bot webhooks and forwards them to Commonly. - -## Env -- `PORT` (default 4103) -- `COMMONLY_API_BASE` -- `COMMONLY_API_TOKEN` (integration token, `cm_int_...`) -- `COMMONLY_INGEST_ENDPOINT` (default `/api/integrations/ingest`) -- `INTEGRATION_ID` - -## TODO -- Validate `x-telegram-bot-api-secret-token` if configured. -- Normalize Telegram updates before forwarding. diff --git a/external/commonly-provider-services/telegram-service/package.json b/external/commonly-provider-services/telegram-service/package.json deleted file mode 100644 index 980dadd409..0000000000 --- a/external/commonly-provider-services/telegram-service/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@commonly/provider-telegram", - "version": "0.1.0", - "private": true, - "main": "src/index.js", - "scripts": { - "start": "node src/index.js" - }, - "dependencies": { - "axios": "^1.6.7", - "express": "^4.18.2" - } -} diff --git a/external/commonly-provider-services/telegram-service/src/index.js b/external/commonly-provider-services/telegram-service/src/index.js deleted file mode 100644 index d7b9e4ad01..0000000000 --- a/external/commonly-provider-services/telegram-service/src/index.js +++ /dev/null @@ -1,52 +0,0 @@ -const express = require('express'); -const axios = require('axios'); - -const app = express(); -app.use(express.json()); - -const { - PORT = 4103, - COMMONLY_API_BASE = 'http://localhost:5000', - COMMONLY_API_TOKEN = '', - COMMONLY_INGEST_ENDPOINT = '/api/integrations/ingest', - INTEGRATION_ID = '', -} = process.env; - -const buildHeaders = () => { - if (!COMMONLY_API_TOKEN) return {}; - return { Authorization: `Bearer ${COMMONLY_API_TOKEN}` }; -}; - -const forwardEvent = async (payload) => { - if (!INTEGRATION_ID) { - throw new Error('INTEGRATION_ID is required'); - } - - const url = `${COMMONLY_API_BASE}${COMMONLY_INGEST_ENDPOINT}`; - return axios.post( - url, - { - provider: 'telegram', - integrationId: INTEGRATION_ID, - event: payload, - }, - { headers: buildHeaders() }, - ); -}; - -app.post('/webhook', async (req, res) => { - try { - await forwardEvent(req.body); - } catch (error) { - console.error('telegram forward failed:', error.message); - } - res.sendStatus(200); -}); - -app.get('/health', (req, res) => { - res.json({ ok: true, provider: 'telegram' }); -}); - -app.listen(PORT, () => { - console.log(`telegram-provider listening on ${PORT}`); -});