diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index 5c787ad..b8016b8 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -1519,6 +1519,7 @@ export type AppRefObject = { export type DsqlAppData = { DSQL_REMOTE_SQL_HOST?: string | null; DSQL_SU_USER_ID?: string | null; + DSQL_USER_ID?: string | null; DSQL_HOST_ENV?: string | null; DSQL_HOST?: string | null; DSQL_STATIC_HOST?: string | null; @@ -1792,7 +1793,7 @@ export declare const AppVersions: readonly [{ readonly title: "Full"; readonly value: "full"; }]; -export declare const EnvKeys: readonly ["DSQL_HOST", "NEXT_PUBLIC_DSQL_HOST", "DSQL_STATIC_HOST", "DSQL_SOCKET_DOMAIN", "DSQL_HOST_ENV", "DSQL_PORT", "DSQL_PRODUCTION_PORT", "DSQL_STATIC_SERVER_PORT", "DSQL_SITE_URL", "DSQL_REMOTE_SQL_HOST", "NEXT_PUBLIC_DSQL_REMOTE_SQL_HOST", "DSQL_DB_TARGET_IP_ADDRESS", "NEXT_PUBLIC_VERSION", "DSQL_USER_DB_PREFIX", "DSQL_USER_DELEGATED_DB_COOKIE_PREFIX", "DSQL_NETWORK_IP_PREFIX", "DSQL_NETWORK_GATEWAY", "DSQL_NETWORK_SUBNET", "DSQL_MARIADB_MASTER_HOST", "DSQL_DB_HOST", "DSQL_WEB_APP_HOST", "DSQL_DB_USERNAME", "DSQL_DB_PASSWORD", "DSQL_MARIADB_ROOT_PASSWORD", "DSQL_REPLICATION_USER_PASSWORD", "DSQL_DB_NAME", "DSQL_MARIADB_REPLICATION_PASSWORD", "DSQL_MAXSCALE_PASSWORD", "DSQL_DB_READ_ONLY_USERNAME", "DSQL_DB_READ_ONLY_PASSWORD", "DSQL_DB_FULL_ACCESS_USERNAME", "DSQL_DB_FULL_ACCESS_PASSWORD", "DSQL_DB_EXPOSED_PORT", "DSQL_ENCRYPTION_PASSWORD", "DSQL_ENCRYPTION_SALT", "DSQL_SU_USER_ID", "DSQL_SU_USER_UUID", "DSQL_SU_EMAIL", "DSQL_GOOGLE_CLIENT_ID", "NEXT_PUBLIC_DSQL_GOOGLE_CLIENT_ID", "DSQL_FACEBOOK_APP_ID", "DSQL_FACEBOOK_SECRET", "DSQL_MAIL_HOST", "DSQL_MAIL_EMAIL", "DSQL_MAIL_PASSWORD", "DSQL_TINY_MCE_API_KEY", "DSQL_GITHUB_ID", "DSQL_GITHUB_SECRET", "DSQL_GITHUB_WEBHOOK_SECRET", "DSQL_GITHUB_WEBHOOK_URL", "DSQL_DEPLOY_SERVER_PORT", "DSQL_DOCKERFILE", "DSQL_VOLUME_APP", "DSQL_VOLUME_STATIC", "DSQL_VOLUME_STATIC_CONFIGURATION_FILE", "DSQL_VOLUME_DB", "DSQL_VOLUME_DB_CONFIG", "DSQL_VOLUME_DB_SETUP", "DSQL_VOLUME_DB_SSL", "DSQL_USER_LOGIN_KEYS_PATH", "DSQL_API_KEYS_PATH", "DSQL_APP_DIR", "DSQL_DATA_DIR", "DSQL_CONTACT_EMAIL", "DSQL_SSL_DIR", "DSQL_DEPLOYMENT_NAME", "DSQL_COOKIES_PREFIX", "DSQL_COOKIES_KEY_NAME", "DSQL_WEB_APP_FAIL_COUNTS", "NODE_ARCH", "DSQL_WEBSOCKET_PORT", "DSQL_WEBSOCKET_HOST", "NEXT_PUBLIC_DSQL_WEBSOCKET_HOST", "S3_ACCESS_KEY_ID", "S3_SECRET_ACCESS", "DSQL_ADDITIONAL_MARIADB_SERVERS", "DSQL_ARCJET_KEY"]; +export declare const EnvKeys: readonly ["DSQL_HOST", "NEXT_PUBLIC_DSQL_HOST", "DSQL_STATIC_HOST", "DSQL_SOCKET_DOMAIN", "DSQL_HOST_ENV", "DSQL_PORT", "DSQL_PRODUCTION_PORT", "DSQL_STATIC_SERVER_PORT", "DSQL_SITE_URL", "DSQL_REMOTE_SQL_HOST", "NEXT_PUBLIC_DSQL_REMOTE_SQL_HOST", "DSQL_DB_TARGET_IP_ADDRESS", "NEXT_PUBLIC_VERSION", "DSQL_USER_DB_PREFIX", "DSQL_USER_DELEGATED_DB_COOKIE_PREFIX", "DSQL_NETWORK_IP_PREFIX", "DSQL_NETWORK_GATEWAY", "DSQL_NETWORK_SUBNET", "DSQL_MARIADB_MASTER_HOST", "DSQL_DB_HOST", "DSQL_WEB_APP_HOST", "DSQL_DB_USERNAME", "DSQL_DB_PASSWORD", "DSQL_MARIADB_ROOT_PASSWORD", "DSQL_REPLICATION_USER_PASSWORD", "DSQL_DB_NAME", "DSQL_MARIADB_REPLICATION_PASSWORD", "DSQL_MAXSCALE_PASSWORD", "DSQL_DB_READ_ONLY_USERNAME", "DSQL_DB_READ_ONLY_PASSWORD", "DSQL_DB_FULL_ACCESS_USERNAME", "DSQL_DB_FULL_ACCESS_PASSWORD", "DSQL_DB_EXPOSED_PORT", "DSQL_ENCRYPTION_PASSWORD", "DSQL_ENCRYPTION_SALT", "DSQL_SU_USER_ID", "DSQL_SU_USER_UUID", "DSQL_SU_EMAIL", "DSQL_GOOGLE_CLIENT_ID", "NEXT_PUBLIC_DSQL_GOOGLE_CLIENT_ID", "DSQL_FACEBOOK_APP_ID", "DSQL_FACEBOOK_SECRET", "DSQL_MAIL_HOST", "DSQL_MAIL_EMAIL", "DSQL_MAIL_PASSWORD", "DSQL_TINY_MCE_API_KEY", "DSQL_GITHUB_ID", "DSQL_USER_ID", "DSQL_GITHUB_SECRET", "DSQL_GITHUB_WEBHOOK_SECRET", "DSQL_GITHUB_WEBHOOK_URL", "DSQL_DEPLOY_SERVER_PORT", "DSQL_DOCKERFILE", "DSQL_VOLUME_APP", "DSQL_VOLUME_STATIC", "DSQL_VOLUME_STATIC_CONFIGURATION_FILE", "DSQL_VOLUME_DB", "DSQL_VOLUME_DB_CONFIG", "DSQL_VOLUME_DB_SETUP", "DSQL_VOLUME_DB_SSL", "DSQL_USER_LOGIN_KEYS_PATH", "DSQL_API_KEYS_PATH", "DSQL_APP_DIR", "DSQL_DATA_DIR", "DSQL_CONTACT_EMAIL", "DSQL_SSL_DIR", "DSQL_DEPLOYMENT_NAME", "DSQL_COOKIES_PREFIX", "DSQL_COOKIES_KEY_NAME", "DSQL_WEB_APP_FAIL_COUNTS", "NODE_ARCH", "DSQL_WEBSOCKET_PORT", "DSQL_WEBSOCKET_HOST", "NEXT_PUBLIC_DSQL_WEBSOCKET_HOST", "S3_ACCESS_KEY_ID", "S3_SECRET_ACCESS", "DSQL_ADDITIONAL_MARIADB_SERVERS", "DSQL_ARCJET_KEY"]; export type SQLShowDatabaseObject = { Database?: string; }; diff --git a/dist/package-shared/types/index.js b/dist/package-shared/types/index.js index 88697cf..21454f6 100644 --- a/dist/package-shared/types/index.js +++ b/dist/package-shared/types/index.js @@ -373,6 +373,7 @@ exports.EnvKeys = [ "DSQL_MAIL_PASSWORD", "DSQL_TINY_MCE_API_KEY", "DSQL_GITHUB_ID", + "DSQL_USER_ID", "DSQL_GITHUB_SECRET", "DSQL_GITHUB_WEBHOOK_SECRET", "DSQL_GITHUB_WEBHOOK_URL", diff --git a/dist/package-shared/utils/grab-db-names.d.ts b/dist/package-shared/utils/grab-db-names.d.ts index 5480f10..77d62fb 100644 --- a/dist/package-shared/utils/grab-db-names.d.ts +++ b/dist/package-shared/utils/grab-db-names.d.ts @@ -6,7 +6,6 @@ type Param = { dbName?: string; userId?: string | number; user?: UserType | null; - nullable?: boolean; }; /** * # Grab full database name diff --git a/dist/package-shared/utils/grab-db-names.js b/dist/package-shared/utils/grab-db-names.js index a7e634b..718d5dd 100644 --- a/dist/package-shared/utils/grab-db-names.js +++ b/dist/package-shared/utils/grab-db-names.js @@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.default = grabDbNames; const grab_db_full_name_1 = __importDefault(require("./grab-db-full-name")); +const numberfy_1 = __importDefault(require("./numberfy")); /** * # Grab full database name * @description Grab full database name from slug or full name @@ -12,9 +13,13 @@ const grab_db_full_name_1 = __importDefault(require("./grab-db-full-name")); * @returns */ function grabDbNames(params) { - var _a; + var _a, _b, _c; const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX || "datasquirel_user_"; - const finalUserId = ((_a = params === null || params === void 0 ? void 0 : params.user) === null || _a === void 0 ? void 0 : _a.id) || (params === null || params === void 0 ? void 0 : params.userId); + const finalUserId = ((_a = params === null || params === void 0 ? void 0 : params.user) === null || _a === void 0 ? void 0 : _a.id) || + (params === null || params === void 0 ? void 0 : params.userId) || + (0, numberfy_1.default)(process.env.DSQL_USER_ID) || + (0, numberfy_1.default)((_c = (_b = process.env.DSQL_DB_NAME) === null || _b === void 0 ? void 0 : _b.split("_")) === null || _c === void 0 ? void 0 : _c[2]) || + undefined; const userDbPrefix = finalUserId ? `${dbNamePrefix}${finalUserId}_` : undefined; diff --git a/dist/package-shared/utils/parse-env.d.ts b/dist/package-shared/utils/parse-env.d.ts index 0cf77c1..a2a3be5 100644 --- a/dist/package-shared/utils/parse-env.d.ts +++ b/dist/package-shared/utils/parse-env.d.ts @@ -47,6 +47,7 @@ export default function parseEnv( DSQL_MAIL_PASSWORD: string | undefined; DSQL_TINY_MCE_API_KEY: string | undefined; DSQL_GITHUB_ID: string | undefined; + DSQL_USER_ID: string | undefined; DSQL_GITHUB_SECRET: string | undefined; DSQL_GITHUB_WEBHOOK_SECRET: string | undefined; DSQL_GITHUB_WEBHOOK_URL: string | undefined; diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index c6a5e2f..44a74ad 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -1821,6 +1821,7 @@ export type AppRefObject = { export type DsqlAppData = { DSQL_REMOTE_SQL_HOST?: string | null; DSQL_SU_USER_ID?: string | null; + DSQL_USER_ID?: string | null; DSQL_HOST_ENV?: string | null; DSQL_HOST?: string | null; DSQL_STATIC_HOST?: string | null; @@ -2302,6 +2303,7 @@ export const EnvKeys = [ "DSQL_MAIL_PASSWORD", "DSQL_TINY_MCE_API_KEY", "DSQL_GITHUB_ID", + "DSQL_USER_ID", "DSQL_GITHUB_SECRET", "DSQL_GITHUB_WEBHOOK_SECRET", "DSQL_GITHUB_WEBHOOK_URL", diff --git a/package-shared/utils/grab-db-names.ts b/package-shared/utils/grab-db-names.ts index e7b082d..8ec27af 100644 --- a/package-shared/utils/grab-db-names.ts +++ b/package-shared/utils/grab-db-names.ts @@ -1,5 +1,6 @@ import { UserType } from "../types"; import grabDbFullName from "./grab-db-full-name"; +import numberfy from "./numberfy"; type Param = { /** @@ -8,7 +9,6 @@ type Param = { dbName?: string; userId?: string | number; user?: UserType | null; - nullable?: boolean; }; /** @@ -19,7 +19,13 @@ type Param = { */ export default function grabDbNames(params?: Param) { const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX || "datasquirel_user_"; - const finalUserId = params?.user?.id || params?.userId; + const finalUserId = + params?.user?.id || + params?.userId || + numberfy(process.env.DSQL_USER_ID) || + numberfy(process.env.DSQL_DB_NAME?.split("_")?.[2]) || + undefined; + const userDbPrefix = finalUserId ? `${dbNamePrefix}${finalUserId}_` : undefined; diff --git a/package.json b/package.json index 03cd3f1..8f217fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "5.3.7", + "version": "5.3.8", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {