44 lines
1.8 KiB
TypeScript
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."`
|
|
);
|
|
}
|
|
};
|