in src/push/index.ts [239:275]
export function validateSettings(opts: PushOptions) {
const INVALID = 'Aborted. Invalid synthetics project settings.';
let reason = '';
if (!opts.id) {
reason = `Set project id via
- CLI '--id <id>'
- Config file 'project.id' field`;
} else if (!opts.locations && !opts.privateLocations) {
reason = `Set default location for all monitors via
- CLI '--locations <values...> or --privateLocations <values...>'
- Config file 'monitors.locations' | 'monitors.privateLocations' field`;
} else if (!opts.schedule) {
reason = `Set default schedule in minutes for all monitors via
- CLI '--schedule <mins>'
- Config file 'monitors.schedule' field`;
} else if (opts.schedule && !ALLOWED_SCHEDULES.includes(opts.schedule)) {
reason = `Set default schedule(${
opts.schedule
}) to one of the allowed values - ${ALLOWED_SCHEDULES.join(',')}`;
} else if (
(opts.locations ?? []).length > 0 &&
(opts?.playwrightOptions?.clientCertificates ?? []).filter(cert => {
return cert.certPath || cert.keyPath || cert.pfxPath;
}).length > 0
) {
reason = `Certificate path options (certPath, keyPath, pfxPath) are not supported on globally managed locations, use in-memory alternatives (cert, key, pfx) when running on cloud.`;
}
if (!reason) return;
throw error(`${INVALID}
${reason}
${INSTALLATION_HELP}`);
}