dotenv-s3 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 64e850fb0b6883a087b2593e7b9348e3cb73a70f
4
- data.tar.gz: bc26e4ca9223a00a31861bfe4d3f5d9850fd9488
3
+ metadata.gz: 0c807b85d91c79ab63250581f150766edde3f158
4
+ data.tar.gz: 7e2ac53d4d4d574804854d37e0372571251139f7
5
5
  SHA512:
6
- metadata.gz: 7d3e55e6875434782b1e648d4f4b68ff413fad8cba4e074f6798fb7dc087d92cf0e9cca677490ff3fb764d0a33290784ce40618a8bdac49e2f1bf4cd714548fc
7
- data.tar.gz: 2b557ad0b529d64baf7b530d401974e32632c6fafd3b1e2b15236f23326272cca3102d2dad4df272c3a290d26e62a8409a1571c342303d256f07895ea0bd7337
6
+ metadata.gz: 87eb2ecc76020714369828085b1c58a4bc101d1d00868b89c4e6df42b4906f919e0b2e68303036ce314ae4f3b645f23035e6f43b907cf11c562774ea80e2d87a
7
+ data.tar.gz: cc1ad271e886e743ca3ab2dea0d30d129bba825e9ac7070f1384979e8e30fa46289defc920f555ca85c83009529185dc42c416abc960f8874812aa60f8f884e5
data/README.md CHANGED
@@ -41,6 +41,29 @@ Insert this code in your application initialization
41
41
  Dotenv::S3.load(bucket: "your_bucket_name", filename: "your_dotenv_file_name", base64_encoded: false, kms_key_id: nil)
42
42
  ```
43
43
 
44
+ ### rails support
45
+
46
+ Please set environment variables below.
47
+
48
+ * AWS_ACCESS_KEY_ID
49
+ * AWS_SECRET_ACCESS_KEY
50
+ * AWS_REGION
51
+ * ENABLE_S3_ENVFILE: enable feature if it is present (boolean)
52
+ * ENVFILE_BUCKET_NAME: bucket name (string)
53
+ * ENVFILE_FILE_NAME: envfile name (string)
54
+ * ENVFILE_BASE64ENCODE: decode base64 if it is present (boolean)
55
+ * ENVFILE_KMS_KEY_ID: AWS KMS key id. decrypt by KMS if it is present (boolean)
56
+
57
+ Here is example.
58
+ Download and load base64 encoded .env file.
59
+
60
+ ```
61
+ export ENABLE_S3_ENVFILE=y
62
+ export ENVFILE_BUCKET_NAME=test-bucket
63
+ export ENVFILE_FILE_NAME=test-envfile
64
+ export ENVFILE_BASE64ENCODE=y
65
+ ```
66
+
44
67
  ## Feature
45
68
 
46
69
  * Base64 encode support (-m option)
data/dotenv-s3.gemspec CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_dependency 'aws-sdk', '~> 2'
32
32
  spec.add_dependency 'thor'
33
+ spec.add_dependency 'dotenv-rails'
33
34
  spec.add_development_dependency "bundler", "~> 1.11"
34
35
  spec.add_development_dependency "rake", "~> 10.0"
35
36
  spec.add_development_dependency "rspec", "~> 3.0"
data/lib/dotenv/s3.rb CHANGED
@@ -1,6 +1,8 @@
1
- require "dotenv/s3/version"
2
- require "base64"
3
- require "aws-sdk"
1
+ require 'dotenv/s3/version'
2
+ require 'dotenv/s3/rails'
3
+ require 'base64'
4
+ require 'aws-sdk'
5
+ require 'tempfile'
4
6
 
5
7
  module Dotenv
6
8
  module S3
@@ -15,7 +17,13 @@ module Dotenv
15
17
 
16
18
  dotenv_body = decode64(dotenv_body) if base64_encoded
17
19
 
18
- create_dotenv(dotenv_body)
20
+ if block_given?
21
+ create_tempfile(dotenv_body) do |f|
22
+ yield f
23
+ end
24
+ else
25
+ create_dotenv(dotenv_body)
26
+ end
19
27
  end
20
28
 
21
29
  def s3_client
@@ -44,8 +52,18 @@ module Dotenv
44
52
  kms_client.decrypt(ciphertext_blob: body).plaintext
45
53
  end
46
54
 
55
+ def create_tempfile(body, &block)
56
+ Tempfile.create("s3-dotenv") do |f|
57
+ f.write(body)
58
+ f.rewind
59
+ yield f
60
+ end
61
+ end
62
+
47
63
  def create_dotenv(body)
48
- File.open('.env', 'w').write(body)
64
+ File.open('.env', 'w') do |f|
65
+ f.write(body)
66
+ end
49
67
  end
50
68
  end
51
69
  end
@@ -0,0 +1,20 @@
1
+ module Dotenv
2
+ module S3
3
+ class Railtie < Rails::Railtie
4
+ config.before_configuration { load_from_tempfile }
5
+
6
+ def self.load_from_tempfile
7
+ if ENV["ENABLE_S3_ENVFILE"]
8
+ Dotenv::S3.load(
9
+ bucket: ENV["ENVFILE_BUCKET_NAME"],
10
+ filename: ENV["ENVFILE_FILE_NAME"],
11
+ base64_encoded: ENV["ENVFILE_BASE64ENCODE"].present?,
12
+ kms_key_id: ENV["ENVFILE_KMS_KEY_ID"]
13
+ ) do |tempfile|
14
+ Dotenv.load(tempfile.path)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  module Dotenv
2
2
  module S3
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotenv-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masashi AKISUE
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dotenv-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +114,7 @@ files:
100
114
  - bin/setup
101
115
  - dotenv-s3.gemspec
102
116
  - lib/dotenv/s3.rb
117
+ - lib/dotenv/s3/rails.rb
103
118
  - lib/dotenv/s3/version.rb
104
119
  homepage: https://github.com/the40san/dotenv-s3
105
120
  licenses: