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 +4 -4
- data/README.md +23 -0
- data/dotenv-s3.gemspec +1 -0
- data/lib/dotenv/s3.rb +23 -5
- data/lib/dotenv/s3/rails.rb +20 -0
- data/lib/dotenv/s3/version.rb +1 -1
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c807b85d91c79ab63250581f150766edde3f158
|
4
|
+
data.tar.gz: 7e2ac53d4d4d574804854d37e0372571251139f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
2
|
-
require
|
3
|
-
require
|
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
|
-
|
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')
|
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
|
data/lib/dotenv/s3/version.rb
CHANGED
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.
|
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:
|