This commit is contained in:
Benjamin Toby
2025-07-07 09:14:37 +01:00
parent 6acf0f2cd6
commit ccb5605b58
30 changed files with 292 additions and 166 deletions
+23 -3
View File
@@ -29,13 +29,14 @@ export default function grabDirNames(param?: Param): {
dbNginxLoadBalancerConfigFile: string;
dockerComposeFile: string;
dockerComposeFileAlt: string;
testDockerComposeFile: string;
testDockerComposeFileAlt: string;
dsqlDockerComposeFile: string;
dsqlDockerComposeFileAlt: string;
extraDockerComposeFile: string;
extraDockerComposeFileAlt: string;
siteSetupFile: string;
envFile: string;
testEnvFile: string;
dsqlEnvFileName: string;
dsqlEnvFile: string;
userPublicMediaDir: string | undefined;
userTempSQLFilePath: string | undefined;
STATIC_ROOT: string;
@@ -69,5 +70,24 @@ export default function grabDirNames(param?: Param): {
mainDBSSLDir: string;
replica1DBSSLDir: string;
replica2DBSSLDir: string;
staticConfigDir: string;
staticNGINXConfigFile: string;
mainReverseProxyConfigDir: string;
mainReverseProxyConfigFile: string;
mainReverseProxyTemplatesDir: string;
mainReverseProxyTemplatesDefaultFile: string;
dsqlDockerComposeFileName: string;
dsqlDockerComposeFileNameAlt: string;
distroDirName: "distro";
distroAppDirName: "dsql-app";
distroDataDirName: "dsql-data";
distroCommunityName: "dsql-community";
distroCommunityExportTarName: "dsql-community.tar.xz";
distroProName: "dsql-pro";
distroProExportTarName: "dsql-pro.tar.xz";
distroEnterpriseName: "dsql-enterprise";
distroEnterpriseExportTarName: "dsql-enterprise.tar.xz";
communityDistroTempDir: string;
communityDistroDir: string;
};
export {};
+49 -6
View File
@@ -15,6 +15,12 @@ function grabDirNames(param) {
if (!DATA_DIR)
throw new Error("Please provide the `DATA_DIR` env variable.");
const STATIC_ROOT = path_1.default.join(DATA_DIR, "static");
const staticConfigDir = path_1.default.join(DATA_DIR, "static-config");
const staticNGINXConfigFile = path_1.default.join(staticConfigDir, "default.conf");
const mainReverseProxyConfigDir = path_1.default.join(DATA_DIR, "reverse-proxy");
const mainReverseProxyConfigFile = path_1.default.join(mainReverseProxyConfigDir, "default.conf");
const mainReverseProxyTemplatesDir = path_1.default.join(mainReverseProxyConfigDir, "templates");
const mainReverseProxyTemplatesDefaultFile = path_1.default.join(mainReverseProxyTemplatesDir, "default.conf.template");
const publicImagesDir = path_1.default.join(STATIC_ROOT, `images`);
const publicDir = path_1.default.join(appDir, "public");
const publicSSLDir = path_1.default.join(publicDir, "documents", "ssl");
@@ -100,15 +106,18 @@ function grabDirNames(param) {
const dbNginxLoadBalancerConfigFile = path_1.default.join(appDir, "docker/services/mariadb/load-balancer/config/template/nginx.conf");
let dockerComposeFile = path_1.default.join(appDir, "docker-compose.yml");
let dockerComposeFileAlt = path_1.default.join(appDir, "docker-compose.yaml");
const testDockerComposeFile = path_1.default.join(appDir, "test.docker-compose.yml");
const testDockerComposeFileAlt = path_1.default.join(appDir, "test.docker-compose.yaml");
const dsqlDockerComposeFileName = "dsql.docker-compose.yml";
const dsqlDockerComposeFileNameAlt = "dsql.docker-compose.yaml";
const dsqlDockerComposeFile = path_1.default.join(appDir, dsqlDockerComposeFileName);
const dsqlDockerComposeFileAlt = path_1.default.join(appDir, dsqlDockerComposeFileNameAlt);
const dbDockerComposeFile = path_1.default.join(appDir, "db.docker-compose.yml");
const dbDockerComposeFileAlt = path_1.default.join(appDir, "db.docker-compose.yaml");
const extraDockerComposeFile = path_1.default.join(appDir, "extra.docker-compose.yml");
const extraDockerComposeFileAlt = path_1.default.join(appDir, "extra.docker-compose.yaml");
const siteSetupFile = path_1.default.join(appDir, "site-setup.json");
const envFile = path_1.default.join(appDir, ".env");
const testEnvFile = path_1.default.join(appDir, "test.env");
const dsqlEnvFileName = "dsql.env";
const dsqlEnvFile = path_1.default.join(appDir, dsqlEnvFileName);
/**
* # Backup Dir names
* @description
@@ -119,6 +128,20 @@ function grabDirNames(param) {
: undefined;
const sqlBackupDirName = `sql`;
const schemasBackupDirName = `schema`;
/**
* # Distribution Names
*/
const distroDirName = "distro";
const distroAppDirName = "dsql-app";
const distroDataDirName = "dsql-data";
const distroCommunityName = "dsql-community";
const distroCommunityExportTarName = `${distroCommunityName}.tar.xz`;
const distroProName = "dsql-pro";
const distroProExportTarName = `${distroProName}.tar.xz`;
const distroEnterpriseName = "dsql-enterprise";
const distroEnterpriseExportTarName = `${distroEnterpriseName}.tar.xz`;
const communityDistroTempDir = path_1.default.resolve(appDir, "build", "community", ".tmp");
const communityDistroDir = path_1.default.resolve(communityDistroTempDir, distroDirName);
return {
appDir,
privateDataDir,
@@ -143,13 +166,14 @@ function grabDirNames(param) {
dbNginxLoadBalancerConfigFile,
dockerComposeFile,
dockerComposeFileAlt,
testDockerComposeFile,
testDockerComposeFileAlt,
dsqlDockerComposeFile,
dsqlDockerComposeFileAlt,
extraDockerComposeFile,
extraDockerComposeFileAlt,
siteSetupFile,
envFile,
testEnvFile,
dsqlEnvFileName,
dsqlEnvFile,
userPublicMediaDir,
userTempSQLFilePath,
STATIC_ROOT,
@@ -183,5 +207,24 @@ function grabDirNames(param) {
mainDBSSLDir,
replica1DBSSLDir,
replica2DBSSLDir,
staticConfigDir,
staticNGINXConfigFile,
mainReverseProxyConfigDir,
mainReverseProxyConfigFile,
mainReverseProxyTemplatesDir,
mainReverseProxyTemplatesDefaultFile,
dsqlDockerComposeFileName,
dsqlDockerComposeFileNameAlt,
distroDirName,
distroAppDirName,
distroDataDirName,
distroCommunityName,
distroCommunityExportTarName,
distroProName,
distroProExportTarName,
distroEnterpriseName,
distroEnterpriseExportTarName,
communityDistroTempDir,
communityDistroDir,
};
}
@@ -4,9 +4,13 @@ export default function grabDockerStackServicesNames(): {
dbServiceName: string;
dbCronServiceName: string;
postDbSetupServiceName: string;
setupServiceName: string;
webAppServiceName: string;
webAppCronServiceName: string;
webAppPostDbSetupServiceName: string;
dbReplica1ServiceName: string;
dbReplica2ServiceName: string;
reverseProxyServiceName: string;
staticServiceName: string;
websocketServiceName: string;
cronServiceName: string;
};
@@ -6,22 +6,30 @@ function grabDockerStackServicesNames() {
const maxScaleServiceName = `${deploymentName}-dsql-maxscale`;
const dbServiceName = `${deploymentName}-dsql-db`;
const dbCronServiceName = `${deploymentName}-dsql-db-cron`;
const cronServiceName = `${deploymentName}-dsql-cron`;
const postDbSetupServiceName = `${deploymentName}-dsql-post-db-setup`;
const setupServiceName = `${deploymentName}-dsql-setup`;
const webAppServiceName = `${deploymentName}-dsql-web-app`;
const webAppCronServiceName = `${deploymentName}-dsql-web-app-cron`;
const webAppPostDbSetupServiceName = `${deploymentName}-dsql-web-app-post-db-setup`;
const dbReplica1ServiceName = `${deploymentName}-dsql-db-replica-1`;
const dbReplica2ServiceName = `${deploymentName}-dsql-db-replica-2`;
const reverseProxyServiceName = `${deploymentName}-dsql-reverse-proxy`;
const staticServiceName = `${deploymentName}-dsql-static`;
const websocketServiceName = `${deploymentName}-dsql-websocket`;
return {
deploymentName,
maxScaleServiceName,
dbServiceName,
dbCronServiceName,
postDbSetupServiceName,
setupServiceName,
webAppServiceName,
webAppCronServiceName,
webAppPostDbSetupServiceName,
dbReplica1ServiceName,
dbReplica2ServiceName,
reverseProxyServiceName,
staticServiceName,
websocketServiceName,
cronServiceName,
};
}
@@ -5,4 +5,5 @@ export default function grabIPAddresses(): {
mainDBIP: string;
localHostIP: string;
globalIPPrefix: string;
webSocketIP: string;
};
@@ -7,11 +7,12 @@ exports.default = grabIPAddresses;
const grab_docker_resource_ip_numbers_1 = __importDefault(require("../../grab-docker-resource-ip-numbers"));
function grabIPAddresses() {
const globalIPPrefix = process.env.DSQL_NETWORK_IP_PREFIX || "172.72.0";
const { cron, db, maxscale, postDbSetup, web } = (0, grab_docker_resource_ip_numbers_1.default)();
const { cron, db, maxscale, postDbSetup, web, db_cron, reverse_proxy, web_app_post_db_setup, websocket, } = (0, grab_docker_resource_ip_numbers_1.default)();
const webAppIP = `${globalIPPrefix}.${web}`;
const appCronIP = `${globalIPPrefix}.${cron}`;
const maxScaleIP = `${globalIPPrefix}.${maxscale}`;
const mainDBIP = `${globalIPPrefix}.${db}`;
const webSocketIP = `${globalIPPrefix}.${websocket}`;
const localHostIP = `${globalIPPrefix}.1`;
return {
webAppIP,
@@ -20,5 +21,6 @@ function grabIPAddresses() {
mainDBIP,
localHostIP,
globalIPPrefix,
webSocketIP,
};
}
+1 -2
View File
@@ -24,7 +24,6 @@ function default_1(_a) {
genObject: query,
dbFullName,
});
const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN;
let connQueries = [
{
query: queryObject === null || queryObject === void 0 ? void 0 : queryObject.string,
@@ -53,7 +52,7 @@ function default_1(_a) {
},
];
}
const res = yield (0, conn_db_handler_1.default)(DB_CONN, connQueries);
const res = yield (0, conn_db_handler_1.default)(undefined, connQueries);
const isSuccess = Array.isArray(res) && Array.isArray(res[0]);
return {
success: isSuccess,
+6 -4
View File
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = connDbHandler;
const debug_log_1 = __importDefault(require("../logging/debug-log"));
const grab_dsql_connection_1 = __importDefault(require("../grab-dsql-connection"));
/**
* # Run Query From MySQL Connection
* @description Run a query from a pre-existing MySQL/Mariadb Connection
@@ -34,14 +35,15 @@ query,
values, debug) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b;
const finalConnection = conn || (yield (0, grab_dsql_connection_1.default)());
try {
if (!conn)
if (!finalConnection)
throw new Error("No Connection Found!");
if (!query)
throw new Error("Query String Required!");
let queryErrorArray = [];
if (typeof query == "string") {
const res = yield conn.query(trimQuery(query), values);
const res = yield finalConnection.query(trimQuery(query), values);
if (debug) {
(0, debug_log_1.default)({
log: res,
@@ -62,7 +64,7 @@ values, debug) {
const queryObj = query[i];
currentQueryError.sql = queryObj.query;
currentQueryError.sqlValues = queryObj.values;
const queryObjRes = yield conn.query(trimQuery(queryObj.query), queryObj.values);
const queryObjRes = yield finalConnection.query(trimQuery(queryObj.query), queryObj.values);
if (debug) {
(0, debug_log_1.default)({
log: queryObjRes,
@@ -118,7 +120,7 @@ values, debug) {
};
}
finally {
yield (conn === null || conn === void 0 ? void 0 : conn.end());
yield (finalConnection === null || finalConnection === void 0 ? void 0 : finalConnection.end());
}
});
}
+14
View File
@@ -20,6 +20,20 @@ const grabDbSSL_1 = __importDefault(require("./backend/grabDbSSL"));
*/
function grabDSQLConnection(param) {
return __awaiter(this, void 0, void 0, function* () {
return yield mariadb_1.default.createConnection({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database: (param === null || param === void 0 ? void 0 : param.noDb) ? undefined : process.env.DSQL_DB_NAME,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
supportBigNumbers: true,
bigNumberStrings: false,
dateStrings: true,
});
if (global.DSQL_USE_LOCAL || (param === null || param === void 0 ? void 0 : param.local)) {
return (global.DSQL_DB_CONN ||
(yield mariadb_1.default.createConnection({
+5 -1
View File
@@ -26,8 +26,12 @@ function numberfy(num, decimals) {
return 0;
if (isNaN(numberfiedNum))
return 0;
if (decimals)
if (decimals == 0) {
return Math.round(Number(numberfiedNum));
}
else if (decimals) {
return Number(numberfiedNum.toFixed(decimals));
}
if (existingDecimals)
return Number(numberfiedNum.toFixed(existingDecimals));
return Math.round(numberfiedNum);