diff --git a/packages/admin.gbapp/dialogs/AdminDialog.ts b/packages/admin.gbapp/dialogs/AdminDialog.ts index fd9f6ead..37b3939e 100644 --- a/packages/admin.gbapp/dialogs/AdminDialog.ts +++ b/packages/admin.gbapp/dialogs/AdminDialog.ts @@ -102,17 +102,11 @@ export class AdminDialog extends IGBDialog { if (text === 'quit') { return await step.replaceDialog('/'); - } else if (cmdName === 'deployPackage') { + } else if (cmdName === 'deployPackage' || cmdName === 'dp') { await GBAdminService.deployPackageCommand(min, text, deployer); return await step.replaceDialog('/admin', { firstRun: false }); - } else if (cmdName === 'dp') { - let BOT_NAME = text; - let address = `https://pragmatismo.sharepoint.com/sites/bots /Shared%20Documents/Rascunho/${BOT_NAME}/${BOT_NAME}.gbai/${BOT_NAME}.gbkb`; - await GBAdminService.deployPackageCommand(min, address, deployer); - - return await step.replaceDialog('/admin', { firstRun: false }); - } else if (cmdName === 'redeployPackage') { + } else if (cmdName === 'redeployPackage' || cmdName === 'rp') { await step.context.sendActivity('The package is being *unloaded*...'); await GBAdminService.undeployPackageCommand(text, min); await step.context.sendActivity('Now, *deploying* package...'); @@ -121,12 +115,12 @@ export class AdminDialog extends IGBDialog { await GBAdminService.rebuildIndexPackageCommand(min, deployer); await step.context.sendActivity('Finished importing of that .gbkb package. Thanks.'); return await step.replaceDialog('/admin', { firstRun: false }); - } else if (cmdName === 'undeployPackage') { + } else if (cmdName === 'undeployPackage' || cmdName === 'up') { await step.context.sendActivity('The package is being *undeployed*...'); await GBAdminService.undeployPackageCommand(text, min); await step.context.sendActivity('Package *undeployed*.'); return await step.replaceDialog('/admin', { firstRun: false }); - } else if (cmdName === 'rebuildIndex') { + } else if (cmdName === 'rebuildIndex' || cmdName === 'ri') { await GBAdminService.rebuildIndexPackageCommand(min, deployer); return await step.replaceDialog('/admin', { firstRun: false }); @@ -154,8 +148,38 @@ export class AdminDialog extends IGBDialog { ]) ); + + min.dialogs.add( + new WaterfallDialog('/publish', [ + async step => { + const locale = step.context.activity.locale; + await step.context.sendActivity(Messages[locale].working('Publishing from WhatsApp')); + let unknownCommand = false; + + try { + + const cmd1 = `deployPackage ${process.env.STORAGE_SITE} /${process.env.STORAGE_LIBRARY}/${min.instance.botId}.gbai/${min.instance.botId}.gbkb`; + + await step.context.sendActivity('Publishing your .gbkb and .gbdialog packages...'); + if (await (deployer as any).getStoragePackageByName(min.instance.instanceId, `${min.instance.botId}.gbkb`) !== null) { // TODO: Move to interface. + const cmd2 = `undeployPackage ${min.instance.botId}.gbkb`; + await GBAdminService.undeployPackageCommand(cmd2, min); + } + await GBAdminService.deployPackageCommand(min, cmd1, deployer); + await step.context.sendActivity('Package deployed. Just need to rebuild the index... Doing it right now.'); + await GBAdminService.rebuildIndexPackageCommand(min, deployer); + await step.context.sendActivity('Finished importing of all your packages. Thanks.'); + return await step.replaceDialog('/ask', { firstRun: false }); + + } catch (error) { + await step.context.sendActivity(error.message); + } + await step.replaceDialog('/ask', { isReturning: true }); + + }])); } + private static setupSecurityDialogs(min: GBMinInstance) { min.dialogs.add( new WaterfallDialog('/setupSecurity', [ @@ -200,7 +224,7 @@ export class AdminDialog extends IGBDialog { const locale = step.context.activity.locale; const buf = Buffer.alloc(16); const state = `${min.instance.instanceId}${crypto.randomFillSync(buf).toString('hex')}`; - + min.adminService.setValue(min.instance.instanceId, 'AntiCSRFAttackState', state); const url = `https://login.microsoftonline.com/${ diff --git a/packages/admin.gbapp/services/GBAdminService.ts b/packages/admin.gbapp/services/GBAdminService.ts index d48e9313..784a7730 100644 --- a/packages/admin.gbapp/services/GBAdminService.ts +++ b/packages/admin.gbapp/services/GBAdminService.ts @@ -65,17 +65,6 @@ export class GBAdminService implements IGBAdminService { this.core = core; } - public async publish(min: GBMinInstance, packageName: string, republish: boolean) { - if (republish) { - GBLog.info('The package is being *unloaded*...'); - let packageNameOnly = Path.basename(packageName); - await GBAdminService.undeployPackageCommand(`undeployPackage ${packageNameOnly}`, min); - } - GBLog.info('Now, *deploying* package...'); - await GBAdminService.deployPackageCommand(min, `deployPackage ${packageName}`, min.deployService); - GBLog.info('Finished importing of that .gbkb package.'); - } - public static generateUuid(): string { return msRestAzure.generateUuid(); } @@ -168,6 +157,12 @@ export class GBAdminService implements IGBAdminService { } public async acquireElevatedToken(instanceId: number): Promise { + + // TODO: Use boot bot as base for authentication. + + let botId = GBConfigService.get('BOT_ID'); + instanceId = (await this.core.loadInstanceByBotId(botId)).instanceId; + return new Promise(async (resolve, reject) => { const instance = await this.core.loadInstanceById(instanceId); diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 298810fd..118562ca 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -212,7 +212,7 @@ export class GBMinService { // Install default BASIC module. - this.deployer.deployPackage(min, 'packages/default.gbdialog'); + // this.deployer.deployPackage(min, 'packages/default.gbdialog'); // Call the loadBot context.activity for all packages. diff --git a/rodriguez.env b/rodriguez.env new file mode 100644 index 00000000..e7ccbbad --- /dev/null +++ b/rodriguez.env @@ -0,0 +1,24 @@ +ADDITIONAL_DEPLOY_PATH= +ADMIN_PASS=1Y&g5$g7^h4$f%y2s#F +BOT_ID=dev-rodriguez +CLOUD_SUBSCRIPTIONID=bc3f465a-dfe1-4e13-a5a8-1695309abf90 +CLOUD_LOCATION=westus +CLOUD_GROUP=dev-rodriguez +CLOUD_USERNAME=dev-rodriguez@pragmatismo.io +CLOUD_PASSWORD=d&7Q6%3^x3dv3@#T +MARKETPLACE_ID=9563978a-5c6d-4b4f-928b-411c66b08632 +MARKETPLACE_SECRET=obm.IC2lR*feXUBnq4A*-PcneAx8N1sZ +STORAGE_DIALECT=mssql +STORAGE_SERVER=dev-rodriguez-storage-server.database.windows.net +STORAGE_NAME=dev-rodriguez-storage +STORAGE_USERNAME=sanreaeffbpuydq +STORAGE_PASSWORD=CGF#x%c#4I68 +STORAGE_SYNC=false +GBAPP_DISABLE_COMPILE=true +NLP_AUTHORING_KEY=59c157d348614cceaf041c1e06c65656 +GBAPP_DISABLE_COMPILE=false +PRIVACY_STORE_MESSAGES= +DEFAULT_KB= +SAAS_WWWROOT=C:\Users\admin230489\Sources\GBO.gbai\saas.gbapp\wwwroot +SAAS_SHAREPOINT_SITE_ID=02c7bfc9-6643-43b6-b8ff-b8c3d7c84916 +SAAS_SHAREPOINT_LIBRARY_ID=Online