diff --git a/src/backupformats.js b/src/backupformats.js index 1674b0176..31bef192a 100644 --- a/src/backupformats.js +++ b/src/backupformats.js @@ -19,9 +19,12 @@ function api(format) { throw new BoxError(BoxError.INTERNAL_ERROR, `Undefined format ${format}`); } -function validateFormat(format) { +function validateFormat(provider, format) { + assert.strictEqual(typeof provider, 'string'); assert.strictEqual(typeof format, 'string'); + if (provider === 'noop') return null; + if (format === 'tgz' || format == 'rsync') return null; return new BoxError(BoxError.BAD_FIELD, 'Invalid backup format'); diff --git a/src/backupsites.js b/src/backupsites.js index 55f946c70..3b5676448 100644 --- a/src/backupsites.js +++ b/src/backupsites.js @@ -487,7 +487,7 @@ async function add(data, auditSource) { encryptedFilenames = data.encryptedFilenames || false, encryptionPasswordHint = data.encryptionPasswordHint || null; - const formatError = backupFormats.validateFormat(format); + const formatError = backupFormats.validateFormat(provider, format); if (formatError) throw formatError; const nameError = validateName(name); @@ -548,7 +548,7 @@ async function createPseudo(data) { const encryptionPassword = data.encryptionPassword ?? null, encryptedFilenames = !!data.encryptedFilenames; - const formatError = backupFormats.validateFormat(format); + const formatError = backupFormats.validateFormat(provider, format); if (formatError) throw formatError; let encryption = null;