Files
lstV2/server/services/sqlServer/utils/prodServerConfig.ts

44 lines
1.8 KiB
TypeScript

import {db} from "../../../../database/dbclient.js";
import {settings} from "../../../../database/schema/settings.js";
import {createLog} from "../../logger/logger.js";
export const prodSqlConfig = async () => {
try {
const serverSetting = await db.select().from(settings);
// create dummy type data
const server = serverSetting.filter((s) => s.name === "dbServer");
const plantToken = serverSetting.filter((s) => s.name === "plantToken");
const dbUser = serverSetting.filter((s) => s.name === "dbUser");
// if erroring out double check the password was actually encoded before saving
const dbPassword = serverSetting.filter((s) => s.name === "dbPass");
const sqlConfig = {
server: server[0].value,
database: `AlplaPROD_${plantToken[0].value}_cus`,
user: dbUser[0].value,
password: atob(dbPassword[0].value),
options: {
encrypt: true,
trustServerCertificate: true,
},
requestTimeout: 90000, // in milliseconds
pool: {
max: 20, // Maximum number of connections in the pool
min: 0, // Minimum number of connections in the pool
idleTimeoutMillis: 10000, // How long a connection is allowed to be idle before being released
reapIntervalMillis: 1000, // how often to check for idle resourses to destory
acquireTimeoutMillis: 100000, // How long until a complete timeout happens
},
};
return sqlConfig;
} catch (error) {
createLog(
"info",
"lst",
"sqlProd",
`${JSON.stringify(error)} "There was an error getting/setting up the config for the prod sql server."`
);
}
};