From d0830704dfb3809d783465199151f24a6247f20a Mon Sep 17 00:00:00 2001 From: waleed Date: Thu, 2 Oct 2025 18:08:52 -0700 Subject: [PATCH] fix(db): added database config to drizzle.config in app container --- apps/sim/drizzle.config.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/apps/sim/drizzle.config.ts b/apps/sim/drizzle.config.ts index 3f0cfbd898..a2f0d41c50 100644 --- a/apps/sim/drizzle.config.ts +++ b/apps/sim/drizzle.config.ts @@ -1,11 +1,44 @@ import type { Config } from 'drizzle-kit' import { env } from './lib/env' +const getSSLConfig = () => { + const sslMode = env.DATABASE_SSL?.toLowerCase() + + if (!sslMode || sslMode === 'disable') { + return undefined + } + + if (sslMode === 'prefer') { + return 'prefer' as const + } + + const sslConfig: any = {} + + if (sslMode === 'require') { + sslConfig.rejectUnauthorized = false + } else if (sslMode === 'verify-ca' || sslMode === 'verify-full') { + sslConfig.rejectUnauthorized = true + if (env.DATABASE_SSL_CA) { + try { + const ca = Buffer.from(env.DATABASE_SSL_CA, 'base64').toString('utf-8') + sslConfig.ca = ca + } catch (error) { + console.error('Failed to parse DATABASE_SSL_CA:', error) + } + } + } + + return sslConfig +} + +const sslConfig = getSSLConfig() + export default { schema: '../../packages/db/schema.ts', out: '../../packages/db/migrations', dialect: 'postgresql', dbCredentials: { url: env.DATABASE_URL, + ...(sslConfig !== undefined && { ssl: sslConfig }), }, } satisfies Config