diff --git a/code/backend/scripts/install.json b/code/backend/scripts/install.json index a4c951d..ea48dc0 100644 --- a/code/backend/scripts/install.json +++ b/code/backend/scripts/install.json @@ -13,23 +13,27 @@ "name": "DB_USER", "generated": false, "default": "postgres", - "hide": false + "hide": false, + "minLength": 4 }, { "name": "DB_PASSWORD", "generated": false, - "hide": true + "hide": true, + "minLength": 8 }, { "name": "MINIO_USER", "generated": false, "default": "minIO", - "hide": false + "hide": false, + "minLength": 4 }, { "name": "MINIO_PASSWORD", "generated": false, - "hide": true + "hide": true, + "minLength":8 } ] } diff --git a/code/backend/scripts/install.ts b/code/backend/scripts/install.ts index 4016e5e..d042176 100644 --- a/code/backend/scripts/install.ts +++ b/code/backend/scripts/install.ts @@ -14,6 +14,7 @@ type env_config = { input?: string; default?: string; hide?: boolean; + minLength: number; }; type json_config = { commands: string[]; @@ -29,7 +30,7 @@ let missingConfigs: env_config[] = []; if (fs.existsSync(".env")) { dotenv.config(); for (const setting of config.requiredKeys) { - if (!process.env[setting.name]) { + if (!process.env[setting.name] || process.env[setting.name]!.length <= setting.minLength) { missingConfigs.push(setting); } } @@ -48,10 +49,10 @@ if (fs.existsSync(".env")) { let input: string = ""; do { input = readlineSync.question( - `Enter the ${setting.name} ${setting.default ? `(${setting.default})` : ""}: `, + `Enter the ${setting.name} ${setting.default ? `(${setting.default})` : "" + ` min: ${setting.minLength}`}: `, { defaultInput: setting.default, hideEchoBack: setting.hide } ); - } while (!input); + } while (!input && input.length <= setting.minLength); process.env[setting.name] = input; } else if (setting.name === "TOKEN_SECRET") { // generating a random JWT secret