public static validateConfiguration()

in src/Common/Utilities.ts [174:223]


    public static validateConfiguration(configuration: IConfigurationFile, mode: Modes): boolean {
        if (mode === Modes.export || mode === Modes.migrate) {
            if (!configuration.sourceAccountUrl || !url.parse(configuration.sourceAccountUrl).host) {
                logger.logError(`[Configuration validation] Missing or invalid source account url: '${configuration.sourceAccountUrl}'.`);
                return false;
            }
            if (!configuration.sourceAccountToken) {
                logger.logError(`[Configuration validation] Missing personal access token for source account.`);
                return false;
            }
            if (!configuration.sourceProcessName) {
                logger.logError(`[Configuration validation] Missing source process name.`);
                return false;
            }
        }

        if (mode === Modes.import || mode === Modes.migrate) {
            if (!configuration.targetAccountUrl || !url.parse(configuration.targetAccountUrl).host) {
                logger.logError(`[Configuration validation] Missing or invalid target account url: '${configuration.targetAccountUrl}'.`);
                return false;
            }
            if (!configuration.targetAccountToken) {
                logger.logError(`[Configuration validation] Missing personal access token for target account.`);
                return false;
            }
            if (configuration.options && configuration.options.overwritePicklist && (configuration.options.overwritePicklist !== true && configuration.options.overwritePicklist !== false)) {
                logger.logError(`[Configuration validation] Option 'overwritePicklist' is not a valid boolean.`);
                return false;
            }
            if (configuration.options && configuration.options.continueOnRuleImportFailure && (configuration.options.continueOnRuleImportFailure !== true && configuration.options.continueOnRuleImportFailure !== false)) {
                logger.logError(`[Configuration validation] Option 'continueOnRuleImportFailure' is not a valid boolean.`);
                return false;
            }
            if (configuration.options && configuration.options.continueOnIdentityDefaultValueFailure && (configuration.options.continueOnIdentityDefaultValueFailure !== true && configuration.options.continueOnIdentityDefaultValueFailure !== false)) {
                logger.logError(`[Configuration validation] Option 'continueOnFieldImportDefaultValueFailure' is not a valid boolean.`);
                return false;
            }
            if (configuration.options && configuration.options.skipImportFormContributions && (configuration.options.skipImportFormContributions !== true && configuration.options.skipImportFormContributions !== false)) {
                logger.logError(`[Configuration validation] Option 'skipImportFormContributions' is not a valid boolean.`);
                return false;
            }
        }

        if (configuration.options && configuration.options.logLevel && LogLevel[configuration.options.logLevel] === undefined) {
            logger.logError(`[Configuration validation] Option 'logLevel' is not a valid log level.`);
            return false;
        }

        return true;
    }