Ver Fonte

Populate S3 settings from environment variable

Michael Mazour há 8 anos atrás
pai
commit
836ff145b8

+ 3 - 1
services/filestore/config/settings.defaults.coffee

@@ -23,7 +23,8 @@ module.exports =
 			user_files: Path.resolve(__dirname + "/../user_files")
 			public_files: Path.resolve(__dirname + "/../public_files")
 			template_files: Path.resolve(__dirname + "/../template_files")
-		# if you are using S3, then fill in your S3 details below
+		# if you are using S3, then fill in your S3 details below,
+		# or use env var with the same structure.
 		# s3:
 		# 	key: ""     # default
 		# 	secret: ""  # default
@@ -31,6 +32,7 @@ module.exports =
 		#     auth_key: ""
 		#     auth_secret: ""
 		#  bucketname2: # secrets for bucketname2...
+		s3: JSON.parse process.env['S3_CREDENTIALS'] if process.env['S3_CREDENTIALS']
 
 	path:
 		uploadFolder: Path.resolve(__dirname + "/../uploads")

+ 22 - 0
services/filestore/test/unit/coffee/SettingsTests.coffee

@@ -0,0 +1,22 @@
+assert = require("chai").assert
+sinon = require('sinon')
+chai = require('chai')
+should = chai.should()
+expect = chai.expect
+modulePath = "../../../app/js/BucketController.js"
+SandboxedModule = require('sandboxed-module')
+
+describe "Settings", ->
+	describe "s3", ->
+		it "should use JSONified env var if present", (done)->
+			s3_settings =
+				key: 'default_key'
+				secret: 'default_secret'
+				bucket1:
+					auth_key: 'bucket1_key'
+					auth_secret: 'bucket1_secret'
+			process.env['S3_CREDENTIALS'] = JSON.stringify s3_settings
+
+			settings =require('settings-sharelatex')
+			expect(settings.filestore.s3).to.deep.equal s3_settings
+			done()