From 4a703a02cbacf6e6fef565e6524402aab71b767e Mon Sep 17 00:00:00 2001 From: Waleed Date: Sat, 30 Aug 2025 13:48:39 -0700 Subject: [PATCH] improvement(tools): update mysql to respect ssl pref (#1205) --- apps/sim/app/api/tools/mysql/delete/route.ts | 2 +- apps/sim/app/api/tools/mysql/execute/route.ts | 2 +- apps/sim/app/api/tools/mysql/insert/route.ts | 2 +- apps/sim/app/api/tools/mysql/query/route.ts | 2 +- apps/sim/app/api/tools/mysql/update/route.ts | 2 +- apps/sim/app/api/tools/mysql/utils.ts | 6 ++++-- apps/sim/app/api/tools/postgresql/delete/route.ts | 2 +- apps/sim/app/api/tools/postgresql/execute/route.ts | 2 +- apps/sim/app/api/tools/postgresql/insert/route.ts | 2 +- apps/sim/app/api/tools/postgresql/query/route.ts | 2 +- apps/sim/app/api/tools/postgresql/update/route.ts | 2 +- 11 files changed, 14 insertions(+), 12 deletions(-) diff --git a/apps/sim/app/api/tools/mysql/delete/route.ts b/apps/sim/app/api/tools/mysql/delete/route.ts index 583219439..4387ab127 100644 --- a/apps/sim/app/api/tools/mysql/delete/route.ts +++ b/apps/sim/app/api/tools/mysql/delete/route.ts @@ -12,7 +12,7 @@ const DeleteSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), table: z.string().min(1, 'Table name is required'), where: z.string().min(1, 'WHERE clause is required'), }) diff --git a/apps/sim/app/api/tools/mysql/execute/route.ts b/apps/sim/app/api/tools/mysql/execute/route.ts index cd4dd52f9..eea3bd142 100644 --- a/apps/sim/app/api/tools/mysql/execute/route.ts +++ b/apps/sim/app/api/tools/mysql/execute/route.ts @@ -12,7 +12,7 @@ const ExecuteSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), query: z.string().min(1, 'Query is required'), }) diff --git a/apps/sim/app/api/tools/mysql/insert/route.ts b/apps/sim/app/api/tools/mysql/insert/route.ts index e071b250a..04e30a4ad 100644 --- a/apps/sim/app/api/tools/mysql/insert/route.ts +++ b/apps/sim/app/api/tools/mysql/insert/route.ts @@ -12,7 +12,7 @@ const InsertSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), table: z.string().min(1, 'Table name is required'), data: z.union([ z diff --git a/apps/sim/app/api/tools/mysql/query/route.ts b/apps/sim/app/api/tools/mysql/query/route.ts index d2465f4e0..791b67dac 100644 --- a/apps/sim/app/api/tools/mysql/query/route.ts +++ b/apps/sim/app/api/tools/mysql/query/route.ts @@ -12,7 +12,7 @@ const QuerySchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), query: z.string().min(1, 'Query is required'), }) diff --git a/apps/sim/app/api/tools/mysql/update/route.ts b/apps/sim/app/api/tools/mysql/update/route.ts index d391e2ba8..f1b8e8c64 100644 --- a/apps/sim/app/api/tools/mysql/update/route.ts +++ b/apps/sim/app/api/tools/mysql/update/route.ts @@ -12,7 +12,7 @@ const UpdateSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), table: z.string().min(1, 'Table name is required'), data: z.union([ z diff --git a/apps/sim/app/api/tools/mysql/utils.ts b/apps/sim/app/api/tools/mysql/utils.ts index 36d6128cc..9edf9d56f 100644 --- a/apps/sim/app/api/tools/mysql/utils.ts +++ b/apps/sim/app/api/tools/mysql/utils.ts @@ -6,7 +6,7 @@ export interface MySQLConnectionConfig { database: string username: string password: string - ssl?: string + ssl?: 'disabled' | 'required' | 'preferred' } export async function createMySQLConnection(config: MySQLConnectionConfig) { @@ -18,7 +18,9 @@ export async function createMySQLConnection(config: MySQLConnectionConfig) { password: config.password, } - if (config.ssl === 'required') { + if (config.ssl === 'disabled') { + // Don't set ssl property at all to disable SSL + } else if (config.ssl === 'required') { connectionConfig.ssl = { rejectUnauthorized: true } } else if (config.ssl === 'preferred') { connectionConfig.ssl = { rejectUnauthorized: false } diff --git a/apps/sim/app/api/tools/postgresql/delete/route.ts b/apps/sim/app/api/tools/postgresql/delete/route.ts index 2270381b1..ea6ce401b 100644 --- a/apps/sim/app/api/tools/postgresql/delete/route.ts +++ b/apps/sim/app/api/tools/postgresql/delete/route.ts @@ -12,7 +12,7 @@ const DeleteSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), table: z.string().min(1, 'Table name is required'), where: z.string().min(1, 'WHERE clause is required'), }) diff --git a/apps/sim/app/api/tools/postgresql/execute/route.ts b/apps/sim/app/api/tools/postgresql/execute/route.ts index f60a65030..c66db6394 100644 --- a/apps/sim/app/api/tools/postgresql/execute/route.ts +++ b/apps/sim/app/api/tools/postgresql/execute/route.ts @@ -16,7 +16,7 @@ const ExecuteSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), query: z.string().min(1, 'Query is required'), }) diff --git a/apps/sim/app/api/tools/postgresql/insert/route.ts b/apps/sim/app/api/tools/postgresql/insert/route.ts index 9bd322e03..e3193e29f 100644 --- a/apps/sim/app/api/tools/postgresql/insert/route.ts +++ b/apps/sim/app/api/tools/postgresql/insert/route.ts @@ -12,7 +12,7 @@ const InsertSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), table: z.string().min(1, 'Table name is required'), data: z.union([ z diff --git a/apps/sim/app/api/tools/postgresql/query/route.ts b/apps/sim/app/api/tools/postgresql/query/route.ts index 85dd56b6c..135b044b6 100644 --- a/apps/sim/app/api/tools/postgresql/query/route.ts +++ b/apps/sim/app/api/tools/postgresql/query/route.ts @@ -12,7 +12,7 @@ const QuerySchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), query: z.string().min(1, 'Query is required'), }) diff --git a/apps/sim/app/api/tools/postgresql/update/route.ts b/apps/sim/app/api/tools/postgresql/update/route.ts index 32812e883..70933d74f 100644 --- a/apps/sim/app/api/tools/postgresql/update/route.ts +++ b/apps/sim/app/api/tools/postgresql/update/route.ts @@ -12,7 +12,7 @@ const UpdateSchema = z.object({ database: z.string().min(1, 'Database name is required'), username: z.string().min(1, 'Username is required'), password: z.string().min(1, 'Password is required'), - ssl: z.enum(['disabled', 'required', 'preferred']).default('required'), + ssl: z.enum(['disabled', 'required', 'preferred']).default('preferred'), table: z.string().min(1, 'Table name is required'), data: z.union([ z