Updates
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* # Grab Names For Query
|
||||
*/
|
||||
export default function grabSQLNames() {
|
||||
return {};
|
||||
}
|
||||
Reference in New Issue
Block a user