|
@@ -32,19 +32,19 @@ const getConfigFromEnv = () => {
|
|
|
providerOptions: {
|
|
|
google: {
|
|
|
key: process.env.COMPANION_GOOGLE_KEY,
|
|
|
- secret: process.env.COMPANION_GOOGLE_SECRET
|
|
|
+ secret: getSecret('COMPANION_GOOGLE_SECRET')
|
|
|
},
|
|
|
dropbox: {
|
|
|
key: process.env.COMPANION_DROPBOX_KEY,
|
|
|
- secret: process.env.COMPANION_DROPBOX_SECRET
|
|
|
+ secret: getSecret('COMPANION_DROPBOX_SECRET')
|
|
|
},
|
|
|
instagram: {
|
|
|
key: process.env.COMPANION_INSTAGRAM_KEY,
|
|
|
- secret: process.env.COMPANION_INSTAGRAM_SECRET
|
|
|
+ secret: getSecret('COMPANION_INSTAGRAM_SECRET')
|
|
|
},
|
|
|
s3: {
|
|
|
key: process.env.COMPANION_AWS_KEY,
|
|
|
- secret: process.env.COMPANION_AWS_SECRET,
|
|
|
+ secret: getSecret('COMPANION_AWS_SECRET'),
|
|
|
bucket: process.env.COMPANION_AWS_BUCKET,
|
|
|
endpoint: process.env.COMPANION_AWS_ENDPOINT,
|
|
|
region: process.env.COMPANION_AWS_REGION
|
|
@@ -62,7 +62,7 @@ const getConfigFromEnv = () => {
|
|
|
redisUrl: process.env.COMPANION_REDIS_URL,
|
|
|
sendSelfEndpoint: process.env.COMPANION_SELF_ENDPOINT,
|
|
|
uploadUrls: uploadUrls ? uploadUrls.split(',') : null,
|
|
|
- secret: process.env.COMPANION_SECRET || generateSecret(),
|
|
|
+ secret: getSecret('COMPANION_SECRET') || generateSecret(),
|
|
|
debug: process.env.NODE_ENV !== 'production',
|
|
|
// TODO: this is a temporary hack to support distributed systems.
|
|
|
// it is not documented, because it should be changed soon.
|
|
@@ -71,6 +71,20 @@ const getConfigFromEnv = () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * Tries to read the secret from a file if the according environment variable is set.
|
|
|
+ * Otherwise it falls back to the standard secret environment variable.
|
|
|
+ *
|
|
|
+ * @param {string} baseEnvVar
|
|
|
+ *
|
|
|
+ * @returns {string}
|
|
|
+ */
|
|
|
+const getSecret = (baseEnvVar) => {
|
|
|
+ return `${baseEnvVar}_FILE` in process.env
|
|
|
+ ? fs.readFileSync(process.env[`${baseEnvVar}_FILE`]).toString()
|
|
|
+ : process.env[baseEnvVar]
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Auto-generates server secret
|
|
|
*
|