From ca864ae7111006e6bfd35ac0f48151169accd159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abdo=CC=81n=20Rodri=CC=81guez=20Davila?= Date: Thu, 8 Mar 2018 15:34:24 +0100 Subject: [PATCH 1/4] Add environment variable for SSL --- .../files/config/environments/production/database.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-generate-new/files/config/environments/production/database.json b/packages/strapi-generate-new/files/config/environments/production/database.json index c9fb4e7e74..7066e0bb11 100755 --- a/packages/strapi-generate-new/files/config/environments/production/database.json +++ b/packages/strapi-generate-new/files/config/environments/production/database.json @@ -11,7 +11,7 @@ "database": "${process.env.DATABASE_NAME || 'production'}", "username": "${process.env.DATABASE_USERNAME || ''}", "password": "${process.env.DATABASE_PASSWORD || ''}", - "ssl": false + "ssl": "${process.env.DATABASE_SSL || false}" }, "options": {} } From 3d1613df2d0e92ba1ffd4c5996039146c8f7d7e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abdo=CC=81n=20Rodri=CC=81guez=20Davila?= Date: Thu, 8 Mar 2018 15:51:03 +0100 Subject: [PATCH 2/4] Add authenticationDatabase setting --- .../files/config/environments/test/database.json | 3 ++- packages/strapi-generate-new/lib/before.js | 9 +++++++++ packages/strapi-mongoose/lib/index.js | 6 +++++- packages/strapi-mongoose/lib/utils/connectivity.js | 5 ++++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/strapi-generate-new/files/config/environments/test/database.json b/packages/strapi-generate-new/files/config/environments/test/database.json index 30eb8a7c9a..a534243727 100755 --- a/packages/strapi-generate-new/files/config/environments/test/database.json +++ b/packages/strapi-generate-new/files/config/environments/test/database.json @@ -10,7 +10,8 @@ "database": "test", "username": "", "password": "", - "ssl": false + "ssl": false, + "authenticationDatabase": "" }, "options": {} } diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js index 287061ee84..bf2ecad120 100755 --- a/packages/strapi-generate-new/lib/before.js +++ b/packages/strapi-generate-new/lib/before.js @@ -194,6 +194,14 @@ module.exports = (scope, cb) => { mask: '*', default: _.get(scope.database, 'password', undefined) }, + { + when: !hasDatabaseConfig, + type: 'input', + prefix: '', + name: 'authenticationDatabase', + message: 'Authentication database:', + default: _.get(scope.database, 'authenticationDatabase', false) + }, { when: !hasDatabaseConfig, type: 'boolean', @@ -214,6 +222,7 @@ module.exports = (scope, cb) => { scope.database.settings.database = answers.database; scope.database.settings.username = answers.username; scope.database.settings.password = answers.password; + scope.database.settings.authenticationDatabase = answers.authenticationDatabase; scope.database.settings.ssl = answers.ssl; logger.info('Testing database connection...'); diff --git a/packages/strapi-mongoose/lib/index.js b/packages/strapi-mongoose/lib/index.js index dca99c8487..7a83d2f0f5 100755 --- a/packages/strapi-mongoose/lib/index.js +++ b/packages/strapi-mongoose/lib/index.js @@ -31,6 +31,7 @@ module.exports = function (strapi) { host: 'localhost', port: 27017, database: 'strapi', + authenticationDatabase: '', ssl: false }, @@ -41,7 +42,7 @@ module.exports = function (strapi) { initialize: cb => { _.forEach(_.pickBy(strapi.config.connections, {connector: 'strapi-mongoose'}), (connection, connectionName) => { const instance = new Mongoose(); - const { uri, host, port, username, password, database, ssl } = _.defaults(connection.settings, strapi.config.hook.settings.mongoose); + const { uri, host, port, username, password, database, authenticationDatabase, ssl } = _.defaults(connection.settings, strapi.config.hook.settings.mongoose); // Connect to mongo database const connectOptions = {} @@ -51,6 +52,9 @@ module.exports = function (strapi) { connectOptions.pass = password } } + if (!_.isEmpty(authenticationDatabase)) { + connectOptions.authSource = authenticationDatabase; + } connectOptions.ssl = ssl ? true : false; instance.connect(uri || `mongodb://${host}:${port}/${database}`, connectOptions); diff --git a/packages/strapi-mongoose/lib/utils/connectivity.js b/packages/strapi-mongoose/lib/utils/connectivity.js index 6ad9cbe556..11d92560cf 100644 --- a/packages/strapi-mongoose/lib/utils/connectivity.js +++ b/packages/strapi-mongoose/lib/utils/connectivity.js @@ -10,7 +10,7 @@ const logger = require('strapi-utils').logger; module.exports = (scope, success, error) => { const Mongoose = require(path.resolve(`${scope.tmpPath}/node_modules/mongoose`)); - const { username, password, ssl } = scope.database.settings + const { username, password, authenticationDatabase, ssl } = scope.database.settings const connectOptions = {} if (username) { connectOptions.user = username @@ -18,6 +18,9 @@ module.exports = (scope, success, error) => { connectOptions.pass = password } } + if (authenticationDatabase) { + connectOptions.authSource = authenticationDatabase; + } connectOptions.ssl = ssl ? true : false Mongoose.connect(`mongodb://${scope.database.settings.host}:${scope.database.settings.port}/${scope.database.settings.database}`, connectOptions, function (err) { if (err) { From 23f95f8defa7a672bca16455c501b0d6022b6f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abdo=CC=81n=20Rodri=CC=81guez=20Davila?= Date: Tue, 13 Mar 2018 09:18:14 +0000 Subject: [PATCH 3/4] Add missed config --- .../files/config/environments/production/database.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/strapi-generate-new/files/config/environments/production/database.json b/packages/strapi-generate-new/files/config/environments/production/database.json index 7066e0bb11..9070b5b070 100755 --- a/packages/strapi-generate-new/files/config/environments/production/database.json +++ b/packages/strapi-generate-new/files/config/environments/production/database.json @@ -11,7 +11,8 @@ "database": "${process.env.DATABASE_NAME || 'production'}", "username": "${process.env.DATABASE_USERNAME || ''}", "password": "${process.env.DATABASE_PASSWORD || ''}", - "ssl": "${process.env.DATABASE_SSL || false}" + "ssl": "${process.env.DATABASE_SSL || false}", + "authenticationDatabase": "${process.env.DATABASE_AUTHENTICATION_DATABASE || ''}" }, "options": {} } From 02c136b915e766ddf082a7229489554264233e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abdo=CC=81n=20Rodri=CC=81guez=20Davila?= Date: Tue, 13 Mar 2018 09:19:54 +0000 Subject: [PATCH 4/4] Update default value for auth database --- packages/strapi-generate-new/lib/before.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js index bf2ecad120..3a47110db5 100755 --- a/packages/strapi-generate-new/lib/before.js +++ b/packages/strapi-generate-new/lib/before.js @@ -200,7 +200,7 @@ module.exports = (scope, cb) => { prefix: '', name: 'authenticationDatabase', message: 'Authentication database:', - default: _.get(scope.database, 'authenticationDatabase', false) + default: _.get(scope.database, 'authenticationDatabase', undefined) }, { when: !hasDatabaseConfig,