secondaryDomains are always required

they can still become empty after an update but install and change_location
requires them

part of #809
This commit is contained in:
Girish Ramakrishnan
2022-01-20 16:57:30 -08:00
parent e8577d4d85
commit f017e297f7
2 changed files with 13 additions and 16 deletions

View File

@@ -275,6 +275,10 @@ function validateSecondaryDomains(secondaryDomains, manifest) {
const httpPorts = manifest.httpPorts || {};
for (const envName in httpPorts) { // each httpPort is required
if (!(envName in secondaryDomains)) return new BoxError(BoxError.BAD_FIELD, `secondaryDomain ${envName} is required`);
}
for (const envName in secondaryDomains) {
if (!(envName in httpPorts)) return new BoxError(BoxError.BAD_FIELD, `Invalid secondaryDomain in ${envName}`);
}
@@ -283,11 +287,11 @@ function validateSecondaryDomains(secondaryDomains, manifest) {
}
function translateSecondaryDomains(secondaryDomains) {
assert.strictEqual(typeof secondaryDomains, 'object');
assert(secondaryDomains && typeof secondaryDomains === 'object');
const result = [];
for (const envName in secondaryDomains) {
result.push([ { domain: secondaryDomains[envName].domain, subdomain: secondaryDomains[envName].subdomain, environmentVariable: envName }]);
result.push({ domain: secondaryDomains[envName].domain, subdomain: secondaryDomains[envName].subdomain, environmentVariable: envName });
}
return result;
}
@@ -1270,13 +1274,9 @@ async function install(data, auditSource) {
error = validateTags(tags);
if (error) throw error;
let secondaryDomains = [];
if ('secondaryDomains' in data) {
error = validateSecondaryDomains(data.secondaryDomains, manifest);
if (error) throw error;
secondaryDomains = translateSecondaryDomains(data.secondaryDomains);
}
error = validateSecondaryDomains(data.secondaryDomains || {}, manifest);
if (error) throw error;
const secondaryDomains = translateSecondaryDomains(data.secondaryDomains || {});
let sso = 'sso' in data ? data.sso : null;
if ('sso' in data && !('optionalSso' in manifest)) throw new BoxError(BoxError.BAD_FIELD, 'sso can only be specified for apps with optionalSso');
@@ -1720,12 +1720,9 @@ async function setLocation(app, data, auditSource) {
values.mailboxDomain = values.domain;
}
if ('secondaryDomains' in data) {
error = validateSecondaryDomains(data.secondaryDomains, app.manifest);
if (error) throw error;
values.secondaryDomains = translateSecondaryDomains(data.secondaryDomains);
}
error = validateSecondaryDomains(data.secondaryDomains || {}, app.manifest);
if (error) throw error;
values.secondaryDomains = translateSecondaryDomains(data.secondaryDomains || {});
if ('redirectDomains' in data) {
values.redirectDomains = data.redirectDomains;