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;
}