diff --git a/src/appdb.js b/src/appdb.js index 64fa70b0a..8a90858e0 100644 --- a/src/appdb.js +++ b/src/appdb.js @@ -95,6 +95,8 @@ function postProcess(result) { // TODO remove later once all apps have this attribute result.xFrameOptions = result.xFrameOptions || 'SAMEORIGIN'; + + result.oauthProxy = !!result.oauthProxy; // make it bool } function get(id, callback) { @@ -181,11 +183,12 @@ function add(id, appStoreId, manifest, location, portBindings, data, callback) { var xFrameOptions = data.xFrameOptions || ''; var installationState = data.installationState || exports.ISTATE_PENDING_INSTALL; var lastBackupId = data.lastBackupId || null; // used when cloning + var oauthProxy = data.oauthProxy || false; var queries = [ ]; queries.push({ - query: 'INSERT INTO apps (id, appStoreId, manifestJson, installationState, location, accessRestrictionJson, memoryLimit, altDomain, xFrameOptions, lastBackupId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', - args: [ id, appStoreId, manifestJson, installationState, location, accessRestrictionJson, memoryLimit, altDomain, xFrameOptions, lastBackupId ] + query: 'INSERT INTO apps (id, appStoreId, manifestJson, installationState, location, accessRestrictionJson, memoryLimit, altDomain, xFrameOptions, lastBackupId, oauthProxy) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', + args: [ id, appStoreId, manifestJson, installationState, location, accessRestrictionJson, memoryLimit, altDomain, xFrameOptions, lastBackupId, oauthProxy ] }); Object.keys(portBindings).forEach(function (env) { diff --git a/src/apps.js b/src/apps.js index dba558299..90fe4f198 100644 --- a/src/apps.js +++ b/src/apps.js @@ -571,6 +571,10 @@ function configure(appId, data, auditSource, callback) { if (error) return callback(error); } + if ('oauthProxy' in data) { + values.oauthProxy = data.oauthProxy; + } + // save cert to data/box/certs. TODO: move this to apptask when we have a real task queue if ('cert' in data && 'key' in data) { if (data.cert && data.key) { diff --git a/src/routes/apps.js b/src/routes/apps.js index 3e08b5efd..762cc3ecc 100644 --- a/src/routes/apps.js +++ b/src/routes/apps.js @@ -54,7 +54,8 @@ function removeInternalAppFields(app) { fqdn: app.fqdn, memoryLimit: app.memoryLimit, altDomain: app.altDomain, - xFrameOptions: app.xFrameOptions + xFrameOptions: app.xFrameOptions, + oauthProxy: app.oauthProxy }; } diff --git a/src/test/database-test.js b/src/test/database-test.js index 516035afc..994b75fbd 100644 --- a/src/test/database-test.js +++ b/src/test/database-test.js @@ -554,7 +554,8 @@ describe('database', function () { oldConfig: null, memoryLimit: 4294967296, altDomain: null, - xFrameOptions: 'DENY' + xFrameOptions: 'DENY', + oauthProxy: false }; var APP_1 = { id: 'appid-1', @@ -574,7 +575,8 @@ describe('database', function () { oldConfig: null, memoryLimit: 0, altDomain: null, - xFrameOptions: 'SAMEORIGIN' + xFrameOptions: 'SAMEORIGIN', + oauthProxy: false }; it('add fails due to missing arguments', function () {