diff --git a/redisinsight/api/src/modules/init/local.init.service.ts b/redisinsight/api/src/modules/init/local.init.service.ts index 199244d147..ef1d77b139 100644 --- a/redisinsight/api/src/modules/init/local.init.service.ts +++ b/redisinsight/api/src/modules/init/local.init.service.ts @@ -32,7 +32,7 @@ export class LocalInitService extends InitService { await this.initAnalytics(firstStart); await this.featureService.recalculateFeatureFlags(sessionMetadata); await this.redisClientFactory.init(); - await this.databaseDiscoveryService.discover(sessionMetadata); + await this.databaseDiscoveryService.discover(sessionMetadata, firstStart); } async initAnalytics(firstStart: boolean) { diff --git a/redisinsight/api/src/modules/settings/repositories/local.agreements.repository.ts b/redisinsight/api/src/modules/settings/repositories/local.agreements.repository.ts index f55717279e..12dce2b4fe 100644 --- a/redisinsight/api/src/modules/settings/repositories/local.agreements.repository.ts +++ b/redisinsight/api/src/modules/settings/repositories/local.agreements.repository.ts @@ -17,7 +17,7 @@ export class LocalAgreementsRepository extends AgreementsRepository { async getOrCreate( sessionMetadata: SessionMetadata, - defaultOptions: DefaultAgreementsOptions = {} + defaultOptions: DefaultAgreementsOptions = {}, ): Promise { let entity = await this.repository.findOneBy({}); if (!entity?.data) { diff --git a/redisinsight/api/src/modules/settings/settings.service.ts b/redisinsight/api/src/modules/settings/settings.service.ts index ca5d8b448d..040127fb0c 100644 --- a/redisinsight/api/src/modules/settings/settings.service.ts +++ b/redisinsight/api/src/modules/settings/settings.service.ts @@ -5,7 +5,6 @@ import { Injectable, InternalServerErrorException, Logger, - OnApplicationBootstrap, } from '@nestjs/common'; import { difference, isEmpty, map, cloneDeep } from 'lodash'; import { readFile } from 'fs-extra'; @@ -36,10 +35,8 @@ import { EncryptionService } from '../encryption/encryption.service'; const SERVER_CONFIG = config.get('server') as Config['server']; @Injectable() -export class SettingsService implements OnApplicationBootstrap { +export class SettingsService { private logger = new Logger('SettingsService'); - private triggerAutoDiscoveryDueToEnv = false; - private autoDiscoveryDueToEnvTriggered = false; constructor( @Inject(forwardRef(() => DatabaseDiscoveryService)) @@ -54,38 +51,6 @@ export class SettingsService implements OnApplicationBootstrap { private eventEmitter: EventEmitter2, ) {} - async onApplicationBootstrap() { - // Check if we need to run discovery due to environment variables - if ( - SERVER_CONFIG.acceptTermsAndConditions - && this.triggerAutoDiscoveryDueToEnv - && !this.autoDiscoveryDueToEnvTriggered - ) { - this.autoDiscoveryDueToEnvTriggered = true; - process.nextTick(() => this.discoverDatabasesAfterEulaAccepted(null)); - } - } - - /** - * Discovers databases after EULA has been accepted - * @param sessionMetadata - * @private - */ - private async discoverDatabasesAfterEulaAccepted( - sessionMetadata: SessionMetadata, - ): Promise { - try { - await this.databaseDiscoveryService.discover(sessionMetadata, true); - } catch (e) { - // ignore error - this.logger.error( - 'Failed discover databases after eula accepted.', - e, - sessionMetadata, - ); - } - } - /** * Method to get settings */ @@ -99,8 +64,7 @@ export class SettingsService implements OnApplicationBootstrap { let defaultOptions: object; if (SERVER_CONFIG.acceptTermsAndConditions) { - this.triggerAutoDiscoveryDueToEnv = true; - const isEncryptionAvailable = await this.encryptionService.isEncryptionAvailable(); + const isEncryptionAvailable = await this.encryptionService.isEncryptionAvailable(); defaultOptions = { data: { @@ -188,7 +152,16 @@ export class SettingsService implements OnApplicationBootstrap { // Discover databases from envs or autodiscovery flow when eula accept if (!oldAppSettings?.agreements?.eula && results?.agreements?.eula) { - await this.discoverDatabasesAfterEulaAccepted(sessionMetadata); + try { + await this.databaseDiscoveryService.discover(sessionMetadata, true); + } catch (e) { + // ignore error + this.logger.error( + 'Failed discover databases after eula accepted.', + e, + sessionMetadata, + ); + } } return results;