jets 1.9.17 → 1.9.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/jets.gemspec +1 -0
- data/lib/jets/booter.rb +1 -1
- data/lib/jets/dotenv.rb +3 -1
- data/lib/jets/dotenv/ssm.rb +48 -0
- data/lib/jets/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 571d8c17d9ca179f5d8ca50a0a7e236852c1cfa9bc53704b74f28d6056a24606
|
4
|
+
data.tar.gz: f06f81427e21b1085be5bd2e82399426d57a2a2bb6b7e7f8ca9c29f753e4853e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aca85c2ec33d54d03a3ed0fcd670c47f7880a79f093711022c1d843ff4515089c5b9b8074c4e24a194784d07abda4b7e5763fb6b636e627d56278413ddc1d526
|
7
|
+
data.tar.gz: d00d6b66ba32ea8b65ac908c65ea7545e50bb87c1dbde705c2e492f0a9fef3aac39ab9aa10f1c1759fb77f4992b02c4b44e411f4759546293931152c061585b6
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
+
## [1.9.18]
|
7
|
+
- #233 SSM Parameter Store support for dotenv files
|
8
|
+
- #293 Improvements to SSM Parameter Store support
|
9
|
+
|
6
10
|
## [1.9.17]
|
7
11
|
- #292 fix routes change detection, aws_lambda client
|
8
12
|
|
data/jets.gemspec
CHANGED
@@ -41,6 +41,7 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_dependency "aws-sdk-s3"
|
42
42
|
spec.add_dependency "aws-sdk-sns"
|
43
43
|
spec.add_dependency "aws-sdk-sqs"
|
44
|
+
spec.add_dependency "aws-sdk-ssm"
|
44
45
|
spec.add_dependency "cfnresponse"
|
45
46
|
spec.add_dependency "dotenv"
|
46
47
|
spec.add_dependency "gems" # jets-gems dependency
|
data/lib/jets/booter.rb
CHANGED
@@ -8,9 +8,9 @@ class Jets::Booter
|
|
8
8
|
|
9
9
|
confirm_jets_project!
|
10
10
|
Jets::Bundle.require
|
11
|
-
Jets::Dotenv.load!
|
12
11
|
|
13
12
|
Jets.application.setup!
|
13
|
+
Jets::Dotenv.load! # needs Jets.config.project_name when using ssm in dotenv files
|
14
14
|
|
15
15
|
# Turbines are loaded after setup_auto_load_paths in Jets.application.setup! Some Turbine options are defined
|
16
16
|
# in the project so setup must happen before internal Turbines are loaded.
|
data/lib/jets/dotenv.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'aws-sdk-ssm'
|
2
|
+
|
3
|
+
class Jets::Dotenv
|
4
|
+
class Ssm
|
5
|
+
SSM_VARIABLE_REGEXP = /^ssm:(.*)/
|
6
|
+
|
7
|
+
def initialize(variables={})
|
8
|
+
@variables = variables
|
9
|
+
@missing = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def interpolate!
|
13
|
+
interpolated_variables = @variables.map do |key, value|
|
14
|
+
if value[SSM_VARIABLE_REGEXP]
|
15
|
+
value = fetch_ssm_value(key, $1)
|
16
|
+
end
|
17
|
+
|
18
|
+
[key, value]
|
19
|
+
end
|
20
|
+
|
21
|
+
interpolated_variables.each do |key, value|
|
22
|
+
ENV[key] = value
|
23
|
+
end
|
24
|
+
|
25
|
+
if @missing.empty?
|
26
|
+
interpolated_variables.to_h # success
|
27
|
+
else
|
28
|
+
message = "Error loading .env variables. No matching SSM parameters found for:\n".color(:red)
|
29
|
+
message += @missing.map { |k,v,n| " #{k}=ssm:#{v} # ssm name: #{n}"}.join("\n")
|
30
|
+
abort message
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def fetch_ssm_value(key, value)
|
35
|
+
name = value.start_with?("/") ? value :
|
36
|
+
"/#{Jets.config.project_name}/#{Jets.env}/#{value}"
|
37
|
+
response = ssm.get_parameter(name: name, with_decryption: true)
|
38
|
+
response.parameter.value
|
39
|
+
rescue Aws::SSM::Errors::ParameterNotFound
|
40
|
+
@missing << [key, value, name]
|
41
|
+
''
|
42
|
+
end
|
43
|
+
|
44
|
+
def ssm
|
45
|
+
@ssm ||= Aws::SSM::Client.new
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionmailer
|
@@ -206,6 +206,20 @@ dependencies:
|
|
206
206
|
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: aws-sdk-ssm
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: cfnresponse
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -742,6 +756,7 @@ files:
|
|
742
756
|
- lib/jets/core_ext/kernel.rb
|
743
757
|
- lib/jets/db.rb
|
744
758
|
- lib/jets/dotenv.rb
|
759
|
+
- lib/jets/dotenv/ssm.rb
|
745
760
|
- lib/jets/erb.rb
|
746
761
|
- lib/jets/generator.rb
|
747
762
|
- lib/jets/generator/templates/erb/controller/view.html.erb
|