jets 1.1.5 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +10 -6
- data/README/testing.md +5 -1
- data/jets.gemspec +1 -0
- data/lib/jets.rb +5 -1
- data/lib/jets/application.rb +39 -19
- data/lib/jets/aws_services.rb +16 -10
- data/lib/jets/aws_services/stack_status.rb +7 -0
- data/lib/jets/booter.rb +6 -2
- data/lib/jets/builders/code_builder.rb +14 -0
- data/lib/jets/builders/handler_generator.rb +15 -0
- data/lib/jets/builders/shim_vars/app.rb +4 -3
- data/lib/jets/builders/shim_vars/shared.rb +8 -4
- data/lib/jets/builders/templates/shim.js +7 -3
- data/lib/jets/camelizer.rb +2 -1
- data/lib/jets/cfn/builders.rb +0 -1
- data/lib/jets/cfn/builders/api_deployment_builder.rb +27 -0
- data/lib/jets/cfn/builders/api_gateway_builder.rb +22 -2
- data/lib/jets/cfn/ship.rb +38 -6
- data/lib/jets/commands/call.rb +0 -1
- data/lib/jets/commands/call/guesser.rb +0 -3
- data/lib/jets/commands/clean/log.rb +18 -0
- data/lib/jets/commands/console.rb +1 -1
- data/lib/jets/commands/import/sequence.rb +2 -3
- data/lib/jets/commands/runner.rb +1 -1
- data/lib/jets/commands/sequence.rb +0 -1
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +11 -0
- data/lib/jets/commands/url.rb +32 -7
- data/lib/jets/controller/base.rb +21 -5
- data/lib/jets/controller/layout.rb +0 -3
- data/lib/jets/controller/middleware/local/api_gateway.rb +2 -5
- data/lib/jets/controller/middleware/local/mimic_aws_call.rb +2 -2
- data/lib/jets/controller/params.rb +42 -10
- data/lib/jets/controller/rack/adapter.rb +5 -2
- data/lib/jets/controller/rack/env.rb +17 -8
- data/lib/jets/controller/renderers/rack_renderer.rb +1 -1
- data/lib/jets/controller/rendering.rb +4 -1
- data/lib/jets/core.rb +8 -16
- data/lib/jets/internal/app/functions/jets/base_path.rb +153 -0
- data/lib/jets/klass.rb +38 -5
- data/lib/jets/lambda/dsl.rb +0 -2
- data/lib/jets/mega/request.rb +44 -13
- data/lib/jets/mega/request/source.rb +21 -0
- data/lib/jets/middleware/configurator.rb +1 -1
- data/lib/jets/middleware/default_stack.rb +2 -2
- data/lib/jets/resource.rb +1 -0
- data/lib/jets/resource/api_gateway.rb +5 -3
- data/lib/jets/resource/api_gateway/base_path.rb +5 -0
- data/lib/jets/resource/api_gateway/base_path/function.rb +42 -0
- data/lib/jets/resource/api_gateway/base_path/mapping.rb +44 -0
- data/lib/jets/resource/api_gateway/base_path/role.rb +76 -0
- data/lib/jets/resource/api_gateway/cors.rb +1 -1
- data/lib/jets/resource/api_gateway/deployment.rb +9 -5
- data/lib/jets/resource/api_gateway/domain_name.rb +56 -0
- data/lib/jets/resource/api_gateway/method.rb +3 -4
- data/lib/jets/resource/api_gateway/resource.rb +4 -3
- data/lib/jets/resource/api_gateway/rest_api.rb +42 -14
- data/lib/jets/resource/api_gateway/rest_api/change_detection.rb +42 -0
- data/lib/jets/resource/api_gateway/rest_api/logical_id.rb +59 -0
- data/lib/jets/resource/api_gateway/rest_api/routes.rb +127 -0
- data/lib/jets/resource/child_stack/api_deployment.rb +5 -1
- data/lib/jets/resource/function.rb +3 -20
- data/lib/jets/resource/function/environment.rb +23 -0
- data/lib/jets/resource/iam/application_role.rb +1 -1
- data/lib/jets/resource/route53.rb +3 -0
- data/lib/jets/resource/route53/record_set.rb +70 -0
- data/lib/jets/router.rb +2 -0
- data/lib/jets/ruby_server.rb +6 -3
- data/lib/jets/stack.rb +1 -3
- data/lib/jets/stack/main/dsl.rb +1 -1
- data/lib/jets/stack/main/extensions/lambda.rb +4 -2
- data/lib/jets/turbine.rb +0 -3
- data/lib/jets/version.rb +1 -1
- data/vendor/jets-gems/lib/jets/gems.rb +1 -0
- data/vendor/jets-gems/lib/jets/gems/agree.rb +41 -0
- data/vendor/jets-gems/lib/jets/gems/check.rb +15 -2
- metadata +30 -2
data/lib/jets/stack/main/dsl.rb
CHANGED
@@ -17,7 +17,7 @@ class Jets::Stack
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.included(base)
|
20
|
-
base_path = "#{Jets.root}
|
20
|
+
base_path = "#{Jets.root}app/shared/extensions"
|
21
21
|
ActiveSupport::Dependencies.autoload_paths += [base_path]
|
22
22
|
|
23
23
|
Dir.glob("#{base_path}/**/*.rb").each do |path|
|
@@ -21,8 +21,10 @@ module Jets::Stack::Main::Dsl
|
|
21
21
|
def function(id, props={})
|
22
22
|
# Required: code, handler, role, runtime Docs: https://amzn.to/2pdot7S
|
23
23
|
meth = id.to_s.underscore
|
24
|
+
class_namespace = self.to_s.underscore.gsub('/','-') # IE: Jets::Domain => jets-domain
|
25
|
+
function_name = "#{Jets.config.project_namespace}-#{class_namespace}-#{id.to_s.underscore}"
|
24
26
|
defaults = {
|
25
|
-
function_name:
|
27
|
+
function_name: function_name,
|
26
28
|
code: {
|
27
29
|
s3_bucket: "!Ref S3Bucket",
|
28
30
|
s3_key: code_s3_key
|
@@ -52,7 +54,7 @@ module Jets::Stack::Main::Dsl
|
|
52
54
|
def node_function(id, props={})
|
53
55
|
meth = id.to_s.underscore
|
54
56
|
props[:handler] ||= "#{meth}.handler" # default python convention
|
55
|
-
props[:runtime] = "
|
57
|
+
props[:runtime] = "nodejs8.10"
|
56
58
|
function(id, props)
|
57
59
|
end
|
58
60
|
|
data/lib/jets/turbine.rb
CHANGED
data/lib/jets/version.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
module Jets::Gems
|
2
|
+
class Agree
|
3
|
+
def initialize
|
4
|
+
@agree_file = "#{ENV['HOME']}/.jets/agree"
|
5
|
+
end
|
6
|
+
|
7
|
+
# Only prompts if hasnt prompted before and saved a ~/.jets/agree file
|
8
|
+
def prompt
|
9
|
+
return if File.exist?(@agree_file)
|
10
|
+
|
11
|
+
puts "The Jets project contains binary gems that are not yet available in your gems source. You can help make Jets and the community better by reporting the missing binary gems. Reported gems get built more quickly. BoltOps takes privacy seriously and only collects anonymous non-identifiable data. You will only be asked this once."
|
12
|
+
puts "Do you want send reporting data to BoltOps? (Y/n)?"
|
13
|
+
answer = $stdin.gets.strip
|
14
|
+
value = answer =~ /y/i ? 'yes' : 'no'
|
15
|
+
|
16
|
+
FileUtils.mkdir_p(File.dirname(@agree_file))
|
17
|
+
IO.write(@agree_file, value)
|
18
|
+
end
|
19
|
+
|
20
|
+
def yes?
|
21
|
+
File.exist?(@agree_file) && IO.read(@agree_file).strip == 'yes'
|
22
|
+
end
|
23
|
+
|
24
|
+
def no?
|
25
|
+
File.exist?(@agree_file) && IO.read(@agree_file).strip == 'no'
|
26
|
+
end
|
27
|
+
|
28
|
+
def yes!
|
29
|
+
write_file("yes")
|
30
|
+
end
|
31
|
+
|
32
|
+
def no!
|
33
|
+
write_file("no")
|
34
|
+
end
|
35
|
+
|
36
|
+
def write_file(content)
|
37
|
+
FileUtils.mkdir_p(File.dirname(@agree_file))
|
38
|
+
IO.write(@agree_file, content)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -46,7 +46,9 @@ module Jets::Gems
|
|
46
46
|
# Better to error now than deploy a broken package to AWS Lambda.
|
47
47
|
# Provide users with message about using their own lambdagems source.
|
48
48
|
puts missing_message
|
49
|
-
|
49
|
+
|
50
|
+
agree.prompt
|
51
|
+
Report.missing(@missing_gems) if agree.yes?
|
50
52
|
exit 1
|
51
53
|
end
|
52
54
|
|
@@ -72,15 +74,26 @@ Your current lambdagems sources:
|
|
72
74
|
Jets is unable to build a deployment package that will work on AWS Lambda without the required pre-compiled gems. To remedy this, you can:
|
73
75
|
|
74
76
|
* Build the gem yourself and add it to your own custom lambdagems sources. Refer to the Lambda Gems Docs: http://rubyonjets.com/docs/lambdagems
|
75
|
-
* Wait until it added to lambdagems.com. No need to report this to us, as we've already been notified.
|
76
77
|
* Use another gem that does not require compilation.
|
78
|
+
* Wait until it added to lambdagems.com.
|
79
|
+
<% if agree.yes? -%>
|
80
|
+
* No need to report this to us, as we've already been notified.
|
81
|
+
<% elsif agree.no? -%>
|
82
|
+
* You have choosen not to report data to lambdagems so we will not be notified about these missing gems. If you change your mind you can edit ~/.jets/agree
|
83
|
+
<% end -%>
|
77
84
|
|
78
85
|
Compiled gems usually take some time to figure out how to build as they each depend on different libraries and packages.
|
86
|
+
|
79
87
|
EOL
|
80
88
|
erb = ERB.new(template, nil, '-') # trim mode https://stackoverflow.com/questions/4632879/erb-template-removing-the-trailing-line
|
81
89
|
erb.result(binding)
|
82
90
|
end
|
83
91
|
|
92
|
+
def agree
|
93
|
+
Agree.new
|
94
|
+
end
|
95
|
+
memoize :agree
|
96
|
+
|
84
97
|
# If there are subfolders compiled_gem_paths might have files deeper
|
85
98
|
# in the directory tree. So lets grab the gem name and figure out the
|
86
99
|
# unique paths of the compiled gems from there.
|
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.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 5.2.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: aws-sdk-apigateway
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: aws-sdk-cloudformation
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -627,6 +641,7 @@ files:
|
|
627
641
|
- lib/jets/inflections.rb
|
628
642
|
- lib/jets/internal/app/controllers/jets/public_controller.rb
|
629
643
|
- lib/jets/internal/app/controllers/jets/rack_controller.rb
|
644
|
+
- lib/jets/internal/app/functions/jets/base_path.rb
|
630
645
|
- lib/jets/internal/app/jobs/jets/preheat_job.rb
|
631
646
|
- lib/jets/io.rb
|
632
647
|
- lib/jets/job.rb
|
@@ -643,6 +658,7 @@ files:
|
|
643
658
|
- lib/jets/mega.rb
|
644
659
|
- lib/jets/mega/hash_converter.rb
|
645
660
|
- lib/jets/mega/request.rb
|
661
|
+
- lib/jets/mega/request/source.rb
|
646
662
|
- lib/jets/middleware.rb
|
647
663
|
- lib/jets/middleware/configurator.rb
|
648
664
|
- lib/jets/middleware/default_stack.rb
|
@@ -668,11 +684,19 @@ files:
|
|
668
684
|
- lib/jets/rdoc.rb
|
669
685
|
- lib/jets/resource.rb
|
670
686
|
- lib/jets/resource/api_gateway.rb
|
687
|
+
- lib/jets/resource/api_gateway/base_path.rb
|
688
|
+
- lib/jets/resource/api_gateway/base_path/function.rb
|
689
|
+
- lib/jets/resource/api_gateway/base_path/mapping.rb
|
690
|
+
- lib/jets/resource/api_gateway/base_path/role.rb
|
671
691
|
- lib/jets/resource/api_gateway/cors.rb
|
672
692
|
- lib/jets/resource/api_gateway/deployment.rb
|
693
|
+
- lib/jets/resource/api_gateway/domain_name.rb
|
673
694
|
- lib/jets/resource/api_gateway/method.rb
|
674
695
|
- lib/jets/resource/api_gateway/resource.rb
|
675
696
|
- lib/jets/resource/api_gateway/rest_api.rb
|
697
|
+
- lib/jets/resource/api_gateway/rest_api/change_detection.rb
|
698
|
+
- lib/jets/resource/api_gateway/rest_api/logical_id.rb
|
699
|
+
- lib/jets/resource/api_gateway/rest_api/routes.rb
|
676
700
|
- lib/jets/resource/associated.rb
|
677
701
|
- lib/jets/resource/base.rb
|
678
702
|
- lib/jets/resource/child_stack.rb
|
@@ -687,6 +711,7 @@ files:
|
|
687
711
|
- lib/jets/resource/events.rb
|
688
712
|
- lib/jets/resource/events/rule.rb
|
689
713
|
- lib/jets/resource/function.rb
|
714
|
+
- lib/jets/resource/function/environment.rb
|
690
715
|
- lib/jets/resource/iam.rb
|
691
716
|
- lib/jets/resource/iam/application_role.rb
|
692
717
|
- lib/jets/resource/iam/base_role_definition.rb
|
@@ -696,6 +721,8 @@ files:
|
|
696
721
|
- lib/jets/resource/iam/policy_document.rb
|
697
722
|
- lib/jets/resource/permission.rb
|
698
723
|
- lib/jets/resource/replacer.rb
|
724
|
+
- lib/jets/resource/route53.rb
|
725
|
+
- lib/jets/resource/route53/record_set.rb
|
699
726
|
- lib/jets/resource/s3.rb
|
700
727
|
- lib/jets/resource/sns.rb
|
701
728
|
- lib/jets/resource/standardizer.rb
|
@@ -774,6 +801,7 @@ files:
|
|
774
801
|
- vendor/jets-gems/jets-gems.gemspec
|
775
802
|
- vendor/jets-gems/lib/jets-gems.rb
|
776
803
|
- vendor/jets-gems/lib/jets/gems.rb
|
804
|
+
- vendor/jets-gems/lib/jets/gems/agree.rb
|
777
805
|
- vendor/jets-gems/lib/jets/gems/check.rb
|
778
806
|
- vendor/jets-gems/lib/jets/gems/exist.rb
|
779
807
|
- vendor/jets-gems/lib/jets/gems/extract.rb
|