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 +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:
|