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,