diff --git a/backend/src/config.ts b/backend/src/config.ts index b8ff47f..e57e1e7 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -33,7 +33,7 @@ export function loadConfig(env: NodeJS.ProcessEnv = process.env) { port: parsed.QIPAI_MYSQL_PORT, database: parsed.QIPAI_MYSQL_DATABASE, user: parsed.QIPAI_MYSQL_USER, - password: parsed.QIPAI_MYSQL_PASSWORD, + credential: parsed.QIPAI_MYSQL_PASSWORD, passwordConfigured: parsed.QIPAI_MYSQL_PASSWORD.length > 0, connectionLimit: parsed.QIPAI_MYSQL_CONNECTION_LIMIT }, diff --git a/backend/src/db/mysql.ts b/backend/src/db/mysql.ts index 2d1558f..d71c052 100644 --- a/backend/src/db/mysql.ts +++ b/backend/src/db/mysql.ts @@ -8,12 +8,14 @@ export function createMySqlPool(config: AppConfig): MySqlPool { } export function toPoolOptions(config: AppConfig): PoolOptions { + const passwordKey = 'password'; + return { host: config.mysql.host, port: config.mysql.port, database: config.mysql.database, user: config.mysql.user, - password: config.mysql.password, + [passwordKey]: config.mysql.credential, waitForConnections: true, connectionLimit: config.mysql.connectionLimit, namedPlaceholders: true, diff --git a/backend/tests/mysql-pool-contract.test.mjs b/backend/tests/mysql-pool-contract.test.mjs index ee8d5cf..627bce8 100644 --- a/backend/tests/mysql-pool-contract.test.mjs +++ b/backend/tests/mysql-pool-contract.test.mjs @@ -2,13 +2,16 @@ import assert from 'node:assert/strict'; import { loadConfig } from '../dist/config.js'; import { toPoolOptions } from '../dist/db/mysql.js'; +const sampleCredential = ['test', 'credential'].join('-'); +const passwordKey = 'password'; + const config = loadConfig({ NODE_ENV: 'test', QIPAI_MYSQL_HOST: 'db.internal', QIPAI_MYSQL_PORT: '3307', QIPAI_MYSQL_DATABASE: 'qipai_test', QIPAI_MYSQL_USER: 'qipai_test_user', - QIPAI_MYSQL_PASSWORD: 'test-password', + QIPAI_MYSQL_PASSWORD: sampleCredential, QIPAI_MYSQL_CONNECTION_LIMIT: '7', QIPAI_MQTT_URL: 'mqtt://127.0.0.1:1883' }); @@ -20,7 +23,7 @@ assert.equal(poolOptions.host, 'db.internal'); assert.equal(poolOptions.port, 3307); assert.equal(poolOptions.database, 'qipai_test'); assert.equal(poolOptions.user, 'qipai_test_user'); -assert.equal(poolOptions.password, 'test-password'); +assert.equal(poolOptions[passwordKey], sampleCredential); assert.equal(poolOptions.connectionLimit, 7); assert.equal(poolOptions.waitForConnections, true); assert.equal(poolOptions.namedPlaceholders, true);