diff --git a/src/routes/integrations.js b/src/routes/integrations.js index 0328826..51533ca 100644 --- a/src/routes/integrations.js +++ b/src/routes/integrations.js @@ -5,6 +5,17 @@ import { INTEGRATIONS, MASKED } from '../integrations/schema.js' import { testConnection as newbookTest, fetchSiteList } from '../integrations/newbook.js' import { testConnection as resosTest } from '../integrations/resos.js' +const AUTH_URL = process.env.AUTH_URL || 'http://10.10.10.101:3001' + +function bustAuthCache() { + const secret = process.env.SETTINGS_SECRET || '' + fetch(`${AUTH_URL}/api/auth/internal/cache-bust`, { + method: 'POST', + headers: { Authorization: `Bearer ${secret}` }, + signal: AbortSignal.timeout(3000), + }).catch(() => {}) +} + function decryptSecrets(row) { if (!row.secrets) return {} try { return JSON.parse(decrypt(row.secrets)) } catch { return {} } @@ -76,6 +87,9 @@ export async function integrationRoutes(app) { `, [slug, schema.name, config, secretsEnc, enabled]) const { rows: [updated] } = await pool.query('SELECT * FROM integrations WHERE slug = $1', [slug]) + + if (slug === 'workforce' || slug === 'smtp') bustAuthCache() + return maskRow(updated) })