fix(azuredeployerservice.gbapp): Update of password generator libs.

This commit is contained in:
Alan Perdomo 2023-01-03 11:24:08 -03:00
parent 07d9cf67db
commit 57461ee006
3 changed files with 29 additions and 31 deletions

View file

@ -49,7 +49,7 @@ import { GBSharePointService } from '../../sharepoint.gblib/services/SharePointS
import { GuaribasAdmin } from '../models/AdminModel.js'; import { GuaribasAdmin } from '../models/AdminModel.js';
import msRestAzure from 'ms-rest-azure'; import msRestAzure from 'ms-rest-azure';
import Path from 'path'; import Path from 'path';
import {caseSensitive_Numbs_SpecialCharacters_PW} from 'super-strong-password-generator' import { caseSensitive_Numbs_SpecialCharacters_PW, lowercase_PW } from 'super-strong-password-generator'
import crypto from 'crypto'; import crypto from 'crypto';
import Fs from 'fs'; import Fs from 'fs';
import { GBServer } from '../../../src/app.js'; import { GBServer } from '../../../src/app.js';
@ -65,56 +65,56 @@ export class GBAdminService implements IGBAdminService {
public core: IGBCoreService; public core: IGBCoreService;
constructor (core: IGBCoreService) { constructor(core: IGBCoreService) {
this.core = core; this.core = core;
} }
public static generateUuid (): string { public static generateUuid(): string {
return crypto.randomUUID(); return crypto.randomUUID();
} }
public static getNodeVersion () { public static getNodeVersion() {
const packageJson = urlJoin(process.cwd(), 'package.json'); const packageJson = urlJoin(process.cwd(), 'package.json');
const pkg = JSON.parse(Fs.readFileSync(packageJson, 'utf8')); const pkg = JSON.parse(Fs.readFileSync(packageJson, 'utf8'));
return pkg.engines.node.replace('=', ''); return pkg.engines.node.replace('=', '');
} }
public static async getADALTokenFromUsername (username: string, password: string) { public static async getADALTokenFromUsername(username: string, password: string) {
const credentials = await GBAdminService.getADALCredentialsFromUsername(username, password); const credentials = await GBAdminService.getADALCredentialsFromUsername(username, password);
return (credentials as any).tokenCache._entries[0].accessToken; return (credentials as any).tokenCache._entries[0].accessToken;
} }
public static async getADALCredentialsFromUsername (username: string, password: string) { public static async getADALCredentialsFromUsername(username: string, password: string) {
return await msRestAzure.loginWithUsernamePassword(username, password); return await msRestAzure.loginWithUsernamePassword(username, password);
} }
public static getMobileCode () { public static getMobileCode() {
return caseSensitive_Numbs_SpecialCharacters_PW(15); return Math.trunc(Math.random() * 6);
} }
public static getRndPassword (): string { public static getRndPassword(): string {
let password = caseSensitive_Numbs_SpecialCharacters_PW(15); let password = caseSensitive_Numbs_SpecialCharacters_PW(15);
password = password.replace(/[\@\[\=\:\;\?\"\'\#]/gi, '*'); password = password.replace(/[\@\[\=\:\;\?\"\'\#]/gi, '*');
return password; return password;
} }
public static getRndReadableIdentifier () { public static getRndReadableIdentifier() {
return caseSensitive_Numbs_SpecialCharacters_PW(15); return lowercase_PW(14);
} }
public static getNumberIdentifier () { public static getNumberIdentifier(size: number = 14): string {
return caseSensitive_Numbs_SpecialCharacters_PW(15); return Math.trunc(Math.random() * size).toString();
} }
/** /**
* @see https://stackoverflow.com/a/52171480 * @see https://stackoverflow.com/a/52171480
*/ */
public static getHash (str, seed = 0) { public static getHash(str: string, seed = 0) {
let h1 = 0xdeadbeef ^ seed, let h1 = 0xdeadbeef ^ seed,
h2 = 0x41c6ce57 ^ seed; h2 = 0x41c6ce57 ^ seed;
for (let i = 0, ch; i < str.length; i++) { for (let i = 0, ch; i < str.length; i++) {
@ -127,7 +127,7 @@ export class GBAdminService implements IGBAdminService {
return 4294967296 * (2097151 & h2) + (h1 >>> 0); return 4294967296 * (2097151 & h2) + (h1 >>> 0);
} }
public static async undeployPackageCommand (text: any, min: GBMinInstance) { public static async undeployPackageCommand(text: string, min: GBMinInstance) {
const packageName = text.split(' ')[1]; const packageName = text.split(' ')[1];
const importer = new GBImporter(min.core); const importer = new GBImporter(min.core);
const deployer = new GBDeployer(min.core, importer); const deployer = new GBDeployer(min.core, importer);
@ -135,10 +135,10 @@ export class GBAdminService implements IGBAdminService {
await deployer.undeployPackageFromLocalPath(min.instance, localFolder); await deployer.undeployPackageFromLocalPath(min.instance, localFolder);
} }
public static isSharePointPath (path: string) { public static isSharePointPath(path: string) {
return path.indexOf('sharepoint.com') !== -1; return path.indexOf('sharepoint.com') !== -1;
} }
public static async deployPackageCommand (min: GBMinInstance, text: string, deployer: IGBDeployer) { public static async deployPackageCommand(min: GBMinInstance, text: string, deployer: IGBDeployer) {
const packageName = text.split(' ')[1]; const packageName = text.split(' ')[1];
if (!this.isSharePointPath(packageName)) { if (!this.isSharePointPath(packageName)) {
@ -151,8 +151,6 @@ export class GBAdminService implements IGBAdminService {
const siteName = text.split(' ')[1]; const siteName = text.split(' ')[1];
const folderName = text.split(' ')[2]; const folderName = text.split(' ')[2];
const s = new GBSharePointService();
const localFolder = Path.join('work', `${min.instance.botId}.gbai`, Path.basename(folderName)); const localFolder = Path.join('work', `${min.instance.botId}.gbai`, Path.basename(folderName));
// .gbot packages are handled using storage API, so no download // .gbot packages are handled using storage API, so no download
@ -162,7 +160,7 @@ export class GBAdminService implements IGBAdminService {
await deployer.deployPackage(min, localFolder); await deployer.deployPackage(min, localFolder);
} }
} }
public static async rebuildIndexPackageCommand (min: GBMinInstance, deployer: GBDeployer) { public static async rebuildIndexPackageCommand(min: GBMinInstance, deployer: GBDeployer) {
const service = await AzureDeployerService.createInstance(deployer); const service = await AzureDeployerService.createInstance(deployer);
await deployer.rebuildIndex( await deployer.rebuildIndex(
min.instance, min.instance,
@ -170,13 +168,13 @@ export class GBAdminService implements IGBAdminService {
); );
} }
public static async syncBotServerCommand (min: GBMinInstance, deployer: GBDeployer) { public static async syncBotServerCommand(min: GBMinInstance, deployer: GBDeployer) {
const serverName = `${min.instance.botId}-server`; const serverName = `${min.instance.botId}-server`;
const service = await AzureDeployerService.createInstance(deployer ); const service = await AzureDeployerService.createInstance(deployer);
service.syncBotServerRepository(min.instance.botId, serverName); service.syncBotServerRepository(min.instance.botId, serverName);
} }
public async setValue (instanceId: number, key: string, value: string) { public async setValue(instanceId: number, key: string, value: string) {
const options = <FindOptions>{ where: {} }; const options = <FindOptions>{ where: {} };
options.where = { key: key }; options.where = { key: key };
let admin = await GuaribasAdmin.findOne(options); let admin = await GuaribasAdmin.findOne(options);
@ -189,7 +187,7 @@ export class GBAdminService implements IGBAdminService {
await admin.save(); await admin.save();
} }
public async updateSecurityInfo ( public async updateSecurityInfo(
instanceId: number, instanceId: number,
authenticatorTenant: string, authenticatorTenant: string,
authenticatorAuthorityHostUrl: string authenticatorAuthorityHostUrl: string
@ -203,7 +201,7 @@ export class GBAdminService implements IGBAdminService {
return item.save(); return item.save();
} }
public async getValue (instanceId: number, key: string): Promise<string> { public async getValue(instanceId: number, key: string): Promise<string> {
const options = <FindOptions>{ where: {} }; const options = <FindOptions>{ where: {} };
options.where = { key: key, instanceId: instanceId }; options.where = { key: key, instanceId: instanceId };
const obj = await GuaribasAdmin.findOne(options); const obj = await GuaribasAdmin.findOne(options);
@ -211,8 +209,8 @@ export class GBAdminService implements IGBAdminService {
return obj.value; return obj.value;
} }
public async acquireElevatedToken (instanceId: number): Promise<string> { public async acquireElevatedToken(instanceId: number): Promise<string> {
const minBoot = GBServer.globals.minBoot as any; const minBoot = GBServer.globals.minBoot;
instanceId = minBoot.instance.instanceId; instanceId = minBoot.instance.instanceId;
return new Promise<string>(async (resolve, reject) => { return new Promise<string>(async (resolve, reject) => {
@ -258,5 +256,5 @@ export class GBAdminService implements IGBAdminService {
}); });
} }
public async publish (min: GBMinInstance, packageName: string, republish: boolean): Promise<void> {} public async publish(min: GBMinInstance, packageName: string, republish: boolean): Promise<void> { }
} }

View file

@ -404,7 +404,7 @@ export class AzureDeployerService implements IGBInstallationDeployer {
await this.createSearch(name, searchName, instance.cloudLocation); await this.createSearch(name, searchName, instance.cloudLocation);
const searchKeys = await this.searchClient.adminKeys.get(name, searchName); const searchKeys = await this.searchClient.adminKeys.get(name, searchName);
instance.searchHost = `${searchName}.search.windows.net`; instance.searchHost = `${searchName}.search.windows.net`;
instance.searchIndex = 'azuresql-index.js'; instance.searchIndex = 'azuresql-index';
instance.searchIndexer = 'azuresql-indexer'; instance.searchIndexer = 'azuresql-indexer';
instance.searchKey = searchKeys.primaryKey; instance.searchKey = searchKeys.primaryKey;

View file

@ -10,7 +10,7 @@
"@midudev/react-static-content": "1.0.4", "@midudev/react-static-content": "1.0.4",
"ajv": "8.11.2", "ajv": "8.11.2",
"botframework-directlinejs": "0.15.1", "botframework-directlinejs": "0.15.1",
"botframework-webchat": "4.15.5", "botframework-webchat": "4.15.6",
"deep-extend": "0.6.0", "deep-extend": "0.6.0",
"eslint": "8.28.0", "eslint": "8.28.0",
"fetch": "1.1.0", "fetch": "1.1.0",