From a7bce534b2695564fa5ed227166f496196022919 Mon Sep 17 00:00:00 2001 From: Simon <770632+Ponjimon@users.noreply.github.com> Date: Tue, 1 Nov 2022 16:49:22 +0000 Subject: [PATCH] feat: add ssl support --- src/server/utils/dbUtils.ts | 14 ++++++++++++++ src/server/utils/pool.ts | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/server/utils/dbUtils.ts b/src/server/utils/dbUtils.ts index c165e1f1..678fc6e8 100644 --- a/src/server/utils/dbUtils.ts +++ b/src/server/utils/dbUtils.ts @@ -38,3 +38,17 @@ export const parseUri = (connectionUri: string) => { return connectionInfo; }, {}); }; + +export const getSslParam = (paramsStr: string) => { + if (!paramsStr?.length) { + return; + } + + const params = new URLSearchParams(paramsStr); + const ssl = params.get('ssl'); + if (!ssl) { + return; + } + + return JSON.parse(ssl); +}; diff --git a/src/server/utils/pool.ts b/src/server/utils/pool.ts index 0766b723..db8bdbab 100644 --- a/src/server/utils/pool.ts +++ b/src/server/utils/pool.ts @@ -1,5 +1,5 @@ import { Sequelize } from 'sequelize'; -import { CONNECTION_STRING, parseUri } from './dbUtils'; +import { CONNECTION_STRING, getSslParam, parseUri } from './dbUtils'; const mysqlConnectionString = GetConvar(CONNECTION_STRING, 'none'); @@ -11,6 +11,8 @@ if (mysqlConnectionString === 'none') { const config = parseUri(mysqlConnectionString); +const ssl = getSslParam(config.params); + export const sequelize = new Sequelize({ dialect: 'mysql', dialectModule: require('mysql2'), @@ -20,6 +22,10 @@ export const sequelize = new Sequelize({ username: config.user, password: config.password, database: config.database, + ssl: !!ssl, + dialectOptions: { + ssl, + }, pool: { max: 5, min: 0,