jets 1.9.17 → 1.9.18
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/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
|