This commit is contained in:
2025-11-13 06:16:55 +01:00
parent e6b4b09277
commit 90c36f2345
28 changed files with 145 additions and 75 deletions
-1
View File
@@ -45,7 +45,6 @@ export default async function get<
*
* @description Look for local db settings in `.env` file and by pass the http request if available
*/
const { DSQL_DB_NAME } = process.env;
if (useLocal) {
const result = await dsqlCrud({
-3
View File
@@ -47,9 +47,6 @@ export default async function post({
*
* @description Look for local db settings in `.env` file and by pass the http request if available
*/
const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } =
process.env;
if (useLocal) {
if (debug) {
debugLog({
@@ -5,6 +5,7 @@ import encrypt from "../../../functions/dsql/encrypt";
import grabHostNames from "../../../utils/grab-host-names";
import apiGithubLogin from "../../../functions/api/users/social/api-github-login";
import grabCookieExpiryDate from "../../../utils/grab-cookie-expirt-date";
import grabDbNames from "../../../utils/grab-db-names";
interface FunctionReturn {
success: boolean;
@@ -23,7 +24,7 @@ type Param = {
key: string;
code: string;
email: string | null;
database: string;
database?: string;
clientId: string;
clientSecret: string;
response: http.ServerResponse;
@@ -96,15 +97,8 @@ export default async function githubAuth({
*
* @description Look for local db settings in `.env` file and by pass the http request if available
*/
const {
DSQL_DB_HOST,
DSQL_DB_USERNAME,
DSQL_DB_PASSWORD,
DSQL_DB_NAME,
DSQL_KEY,
DSQL_REF_DB_NAME,
DSQL_FULL_SYNC,
} = process.env;
const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } =
process.env;
if (
DSQL_DB_HOST?.match(/./) &&
@@ -126,13 +120,15 @@ export default async function githubAuth({
dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8"));
} catch (error) {}
const { dbFullName } = grabDbNames({ dbName: database });
httpResponse = await apiGithubLogin({
code,
email: email || undefined,
clientId,
clientSecret,
additionalFields,
database: DSQL_DB_NAME,
database: dbFullName,
additionalData,
});
} else {
+2 -3
View File
@@ -7,6 +7,7 @@ import { AuthenticatedUser, DATASQUIREL_LoggedInUser } from "../../types";
import getCsrfHeaderName from "../../actions/get-csrf-header-name";
import grabHostNames from "../../utils/grab-host-names";
import debugLog from "../../utils/logging/debug-log";
import grabDbNames from "../../utils/grab-db-names";
const minuteInMilliseconds = 60000;
const hourInMilliseconds = minuteInMilliseconds * 60;
@@ -24,7 +25,6 @@ type Param = {
encryptionSalt?: string;
level?: "deep" | "normal";
database?: string;
dsqlUserId?: string | number;
expiry?: number;
csrfHeaderName?: string;
debug?: boolean;
@@ -44,7 +44,6 @@ export default function userAuth({
encryptionSalt,
level,
database,
dsqlUserId,
encryptedUserString,
expiry = weekInMilliseconds,
cookieString,
@@ -69,7 +68,7 @@ export default function userAuth({
}
const keyNames = getAuthCookieNames({
database: database || process.env.DSQL_DB_NAME,
database,
});
if (debug) {
@@ -1,5 +1,6 @@
import getCsrfHeaderName from "../../../actions/get-csrf-header-name";
import { AppNames } from "../../../dict/app-names";
import grabDbNames from "../../../utils/grab-db-names";
type Param = {
database?: string;
@@ -22,29 +23,21 @@ export default function getAuthCookieNames(params?: Param): Return {
const cookieOneTimeCodeName =
process.env.DSQL_COOKIES_ONE_TIME_CODE_NAME || "one-time-code";
const targetDatabase =
params?.database?.replace(
new RegExp(`^${AppNames["DsqlDbPrefix"]}\\d+_`),
""
) ||
process.env.DSQL_DB_NAME?.replace(
new RegExp(`^${AppNames["DsqlDbPrefix"]}\\d+_`),
""
);
const { dbSlug } = grabDbNames({ dbName: params?.database });
let keyCookieName = cookiesPrefix;
if (params?.userId) keyCookieName += `user_${params.userId}_`;
if (targetDatabase) keyCookieName += `${targetDatabase}_`;
if (dbSlug) keyCookieName += `${dbSlug}_`;
keyCookieName += cookiesKeyName;
let csrfCookieName = cookiesPrefix;
if (params?.userId) csrfCookieName += `user_${params.userId}_`;
if (targetDatabase) csrfCookieName += `${targetDatabase}_`;
if (dbSlug) csrfCookieName += `${dbSlug}_`;
csrfCookieName += cookiesCSRFName;
let oneTimeCodeName = cookiesPrefix;
if (params?.userId) oneTimeCodeName += `user_${params.userId}_`;
if (targetDatabase) oneTimeCodeName += `${targetDatabase}_`;
if (dbSlug) oneTimeCodeName += `${dbSlug}_`;
oneTimeCodeName += cookieOneTimeCodeName;
return {
@@ -1,4 +1,5 @@
import { GrabUserAPIPathParams } from "../../../types";
// import grabDbNames from "../../grab-db-names";
export default function grabUserDSQLAPIPath({
apiVersion,
@@ -11,6 +12,8 @@ export default function grabUserDSQLAPIPath({
const finalParadigm = paradigm || "auth";
const finalAction = action || "login";
// const { dbFullName } = grabDbNames({ dbName: database });
const finalDatabase = database || process.env.DSQL_DB_NAME || "datasquirel";
let finalPath = `/api/${finalAPIVersion}/users/${finalParadigm}/${finalDatabase}`;
@@ -0,0 +1,8 @@
export default function checkArrayDepth(
arr: any[] | any[][] | any[][][] | any,
depth: number
): boolean {
if (!Array.isArray(arr)) return false;
if (depth === 1) return true;
return arr.every((item) => checkArrayDepth(item, depth - 1));
}
+24 -5
View File
@@ -8,6 +8,7 @@ type Param = {
dbName?: string;
userId?: string | number;
user?: UserType | null;
nullable?: boolean;
};
/**
@@ -16,12 +17,30 @@ type Param = {
* @param param0
* @returns
*/
export default function grabDbNames({ dbName, userId, user }: Param) {
export default function grabDbNames(params?: Param) {
const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX;
const finalUserId = user?.id || userId;
const userDbPrefix = `${dbNamePrefix}${finalUserId}_`;
const finalUserId = params?.user?.id || params?.userId;
const userDbPrefix = finalUserId ? `${dbNamePrefix}${finalUserId}_` : ``;
const dbFullName = grabDbFullName({ dbName, user, userId });
const finalDbName =
params?.dbName || process.env.DSQL_DB_NAME || process.env.DSQL_DB_SLUG;
return { userDbPrefix, dbFullName, dbNamePrefix };
const dbSlug = finalDbName?.replace(userDbPrefix, "");
if (!dbSlug) throw new Error(`No Db Name Provided!`);
const dbFullName = grabDbFullName({
dbName: dbSlug,
user: params?.user,
userId: params?.userId,
});
if (!dbFullName) throw new Error(`Couldn't grab DB full name!`);
return {
userDbPrefix,
dbFullName,
dbNamePrefix,
dbSlug,
};
}
@@ -1,6 +1,7 @@
import { ConnectionConfig } from "mariadb";
import grabDbSSL from "./backend/grabDbSSL";
import { DsqlConnectionParam } from "../types";
import grabDbNames from "./grab-db-names";
/**
* # Grab General CONNECTION for DSQL
@@ -10,13 +11,15 @@ export default function grabDSQLConnectionConfig(
): ConnectionConfig {
const CONN_TIMEOUT = 10000;
const dbNames = param?.noDb
? undefined
: grabDbNames({ dbName: param?.database });
const config: ConnectionConfig = {
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database:
param?.database ||
(param?.noDb ? undefined : process.env.DSQL_DB_NAME),
database: dbNames?.dbFullName,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
+6
View File
@@ -0,0 +1,6 @@
/**
* # Grab Names For Query
*/
export default function grabSQLNames() {
return {};
}