dotenv-s3 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: