jets 3.2.1 → 4.0.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/CHANGELOG.md +21 -0
- data/jets.gemspec +1 -1
- data/lib/jets/application/defaults.rb +2 -0
- data/lib/jets/application.rb +6 -7
- data/lib/jets/aws_info.rb +2 -2
- data/lib/jets/booter.rb +48 -1
- data/lib/jets/builders/code_builder.rb +2 -21
- data/lib/jets/builders/gem_replacer.rb +2 -7
- data/lib/jets/builders/ruby_packager.rb +37 -4
- data/lib/jets/cfn/builders/api_deployment_builder.rb +1 -1
- data/lib/jets/cfn/builders/api_gateway_builder.rb +25 -22
- data/lib/jets/cfn/builders/api_resources_builder.rb +1 -1
- data/lib/jets/cfn/builders/authorizer_builder.rb +1 -1
- data/lib/jets/cfn/builders/base_child_builder.rb +20 -1
- data/lib/jets/cfn/builders/interface.rb +19 -0
- data/lib/jets/cfn/builders/parent_builder.rb +3 -3
- data/lib/jets/cfn/builders/shared_builder.rb +1 -1
- data/lib/jets/cfn/built_template.rb +1 -1
- data/lib/jets/cfn/ship.rb +2 -2
- data/lib/jets/cfn/status.rb +1 -1
- data/lib/jets/cfn/upload.rb +2 -2
- data/lib/jets/cli.rb +10 -4
- data/lib/jets/commands/call/base_guesser.rb +1 -1
- data/lib/jets/commands/clean/log.rb +3 -3
- data/lib/jets/commands/configure.rb +1 -1
- data/lib/jets/commands/delete.rb +1 -1
- data/lib/jets/commands/deploy.rb +2 -2
- data/lib/jets/commands/stack_info.rb +1 -1
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
- data/lib/jets/commands/url.rb +1 -1
- data/lib/jets/core.rb +14 -2
- data/lib/jets/core_ext/file.rb +9 -0
- data/lib/jets/dotenv.rb +2 -2
- data/lib/jets/erb.rb +1 -1
- data/lib/jets/inflections.rb +1 -1
- data/lib/jets/internal/app/controllers/jets/bare_controller.rb +1 -1
- data/lib/jets/internal/app/functions/jets/base_path.rb +93 -3
- data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +65 -6
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +6 -2
- data/lib/jets/lambda/dsl.rb +6 -1
- data/lib/jets/{naming.rb → names.rb} +3 -3
- data/lib/jets/preheat.rb +9 -6
- data/lib/jets/resource/api_gateway/base_path/role.rb +1 -1
- data/lib/jets/resource/api_gateway/deployment.rb +2 -2
- data/lib/jets/resource/api_gateway/rest_api/logical_id.rb +1 -1
- data/lib/jets/resource/api_gateway/rest_api/routes/change/base.rb +1 -1
- data/lib/jets/resource/api_gateway/rest_api/routes/change/media_types.rb +1 -1
- data/lib/jets/resource/api_gateway/rest_api/routes/change/page.rb +2 -2
- data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +1 -1
- data/lib/jets/resource/api_gateway/rest_api.rb +1 -1
- data/lib/jets/resource/child_stack/api_deployment.rb +1 -1
- data/lib/jets/resource/child_stack/api_resource/page.rb +1 -1
- data/lib/jets/resource/child_stack/api_resource.rb +1 -1
- data/lib/jets/resource/child_stack/app_class.rb +1 -1
- data/lib/jets/resource/child_stack/shared.rb +1 -1
- data/lib/jets/resource/iam/base_role_definition.rb +0 -5
- data/lib/jets/resource/iam/policy.rb +31 -0
- data/lib/jets/resource/lambda/function/environment.rb +2 -1
- data/lib/jets/resource/lambda/function.rb +3 -3
- data/lib/jets/router/route.rb +16 -4
- data/lib/jets/tmp_loader.rb +1 -1
- data/lib/jets/turbo/database_yaml.rb +1 -1
- data/lib/jets/util/yamler.rb +16 -0
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +1 -0
- metadata +7 -9
- data/.python-version +0 -1
- data/.ruby-version +0 -1
@@ -136,9 +136,9 @@ module Jets::Resource::Lambda
|
|
136
136
|
end
|
137
137
|
|
138
138
|
def get_layers(runtime)
|
139
|
-
return nil unless runtime =~ /^ruby/
|
139
|
+
return nil unless runtime =~ /^ruby/ || runtime =~ /^provided/
|
140
140
|
return Jets.config.lambda.layers if Jets.config.gems.disable
|
141
|
-
|
141
|
+
|
142
142
|
["!Ref GemLayer"] + Jets.config.lambda.layers
|
143
143
|
end
|
144
144
|
|
@@ -208,7 +208,7 @@ module Jets::Resource::Lambda
|
|
208
208
|
def get_descripton(props)
|
209
209
|
props[:description] || default_description
|
210
210
|
end
|
211
|
-
|
211
|
+
|
212
212
|
def default_description
|
213
213
|
# Example values:
|
214
214
|
# @app_class: Admin/PagesController
|
data/lib/jets/router/route.rb
CHANGED
@@ -16,6 +16,22 @@ class Jets::Router
|
|
16
16
|
@path = compute_path
|
17
17
|
@to = compute_to
|
18
18
|
@as = compute_as
|
19
|
+
# Pretty tricky. The @options[:mount_class] is a class that is mounted.
|
20
|
+
# For Grape apps, calling ActiveSupport to_json on a Grape class causes an infinite loop.
|
21
|
+
# Can reproduce with `GrapeApp.to_json`
|
22
|
+
# There's some type of collision between Grape and ActiveSupport to_json.
|
23
|
+
# Coerce mount_class option into a string so that when the route is serialized to JSON
|
24
|
+
# it is a string it won't cause an infinite loop. This allows the apigw routes to be
|
25
|
+
# saved to s3 and loaded back up at the end of a deploy.
|
26
|
+
# Related PR: smarter apigw routes paging calculation #635
|
27
|
+
# https://github.com/boltops-tools/jets/pull/635
|
28
|
+
# Debugging notes: https://gist.github.com/tongueroo/c9baa7e98d5ad68bbdd770fde4651963
|
29
|
+
@options[:mount_class] = @options[:mount_class].to_s if @options[:mount_class]
|
30
|
+
end
|
31
|
+
|
32
|
+
# Constantize back to the original class
|
33
|
+
def mount_class
|
34
|
+
@options[:mount_class].constantize
|
19
35
|
end
|
20
36
|
|
21
37
|
def compute_path
|
@@ -187,10 +203,6 @@ class Jets::Router
|
|
187
203
|
end.to_h
|
188
204
|
end
|
189
205
|
|
190
|
-
def mount_class
|
191
|
-
@options[:mount_class]
|
192
|
-
end
|
193
|
-
|
194
206
|
def to_h
|
195
207
|
JSON.load(to_json)
|
196
208
|
end
|
data/lib/jets/tmp_loader.rb
CHANGED
@@ -9,7 +9,7 @@ module Jets
|
|
9
9
|
def initialize(yaml_path=nil)
|
10
10
|
yaml_path ||= "#{Jets.root}/handlers/data.yml"
|
11
11
|
return unless File.exist?(yaml_path)
|
12
|
-
@data =
|
12
|
+
@data = Jets::Util::Yamler.load_file(yaml_path)
|
13
13
|
@s3_bucket = @data['s3_bucket']
|
14
14
|
@rack_zip = @data['rack_zip']
|
15
15
|
end
|
@@ -5,7 +5,7 @@ class Jets::Turbo
|
|
5
5
|
return unless File.exist?(current_yaml)
|
6
6
|
|
7
7
|
vars = {}
|
8
|
-
current_database =
|
8
|
+
current_database = Jets::Util::Yamler.load_file(current_yaml)
|
9
9
|
database_names = infer_database_name(current_database)
|
10
10
|
vars.merge!(database_names)
|
11
11
|
vars['adapter'] = current_database['development']['adapter']
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Named Yamler to make it clear it's not the YAML class.
|
2
|
+
class Jets::Util
|
3
|
+
class Yamler
|
4
|
+
class << self
|
5
|
+
def load(text)
|
6
|
+
options = RUBY_VERSION =~ /^3/ ? {aliases: true} : {} # Ruby 3.0.0 deprecates aliases: true
|
7
|
+
YAML.load(text, **options)
|
8
|
+
end
|
9
|
+
|
10
|
+
def load_file(path)
|
11
|
+
options = RUBY_VERSION =~ /^3/ ? {aliases: true} : {} # Ruby 3.0.0 deprecates aliases: true
|
12
|
+
YAML.load_file(path, **options)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/jets/version.rb
CHANGED
data/lib/jets.rb
CHANGED
@@ -3,6 +3,7 @@ $stdout.sync = true unless ENV["JETS_STDOUT_SYNC"] == "0"
|
|
3
3
|
$:.unshift(File.expand_path("../", __FILE__))
|
4
4
|
|
5
5
|
require "jets/core_ext/bundler"
|
6
|
+
require "jets/core_ext/file"
|
6
7
|
require "jets/autoloaders"
|
7
8
|
Jets::Autoloaders.log! if ENV["JETS_AUTOLOAD_LOG"]
|
8
9
|
Jets::Autoloaders.once.setup # must be called before cli.setup
|
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:
|
4
|
+
version: 4.0.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: 2023-05-
|
11
|
+
date: 2023-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionmailer
|
@@ -599,9 +599,7 @@ files:
|
|
599
599
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
600
600
|
- ".gitignore"
|
601
601
|
- ".gitmodules"
|
602
|
-
- ".python-version"
|
603
602
|
- ".rspec"
|
604
|
-
- ".ruby-version"
|
605
603
|
- CHANGELOG.md
|
606
604
|
- CONDUCT.md
|
607
605
|
- CONTRIBUTING.md
|
@@ -814,6 +812,7 @@ files:
|
|
814
812
|
- lib/jets/controller/stage.rb
|
815
813
|
- lib/jets/core.rb
|
816
814
|
- lib/jets/core_ext/bundler.rb
|
815
|
+
- lib/jets/core_ext/file.rb
|
817
816
|
- lib/jets/core_ext/kernel.rb
|
818
817
|
- lib/jets/db.rb
|
819
818
|
- lib/jets/dotenv.rb
|
@@ -882,7 +881,7 @@ files:
|
|
882
881
|
- lib/jets/middleware/default_stack.rb
|
883
882
|
- lib/jets/middleware/layer.rb
|
884
883
|
- lib/jets/middleware/stack.rb
|
885
|
-
- lib/jets/
|
884
|
+
- lib/jets/names.rb
|
886
885
|
- lib/jets/overrides/lambda.rb
|
887
886
|
- lib/jets/overrides/lambda/marshaller.rb
|
888
887
|
- lib/jets/overrides/rails.rb
|
@@ -947,6 +946,7 @@ files:
|
|
947
946
|
- lib/jets/resource/iam/class_role.rb
|
948
947
|
- lib/jets/resource/iam/function_role.rb
|
949
948
|
- lib/jets/resource/iam/managed_policy.rb
|
949
|
+
- lib/jets/resource/iam/policy.rb
|
950
950
|
- lib/jets/resource/iam/policy_document.rb
|
951
951
|
- lib/jets/resource/iot/topic_rule.rb
|
952
952
|
- lib/jets/resource/lambda/event_source_mapping.rb
|
@@ -1038,6 +1038,7 @@ files:
|
|
1038
1038
|
- lib/jets/turbo/rails.rb
|
1039
1039
|
- lib/jets/turbo/templates/config/database.yml
|
1040
1040
|
- lib/jets/util.rb
|
1041
|
+
- lib/jets/util/yamler.rb
|
1041
1042
|
- lib/jets/version.rb
|
1042
1043
|
- readme/prerelease.md
|
1043
1044
|
- readme/testing.md
|
@@ -1094,16 +1095,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1094
1095
|
- - ">="
|
1095
1096
|
- !ruby/object:Gem::Version
|
1096
1097
|
version: 2.5.0
|
1097
|
-
- - "<"
|
1098
|
-
- !ruby/object:Gem::Version
|
1099
|
-
version: 3.0.0
|
1100
1098
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1101
1099
|
requirements:
|
1102
1100
|
- - ">="
|
1103
1101
|
- !ruby/object:Gem::Version
|
1104
1102
|
version: '0'
|
1105
1103
|
requirements: []
|
1106
|
-
rubygems_version: 3.4.
|
1104
|
+
rubygems_version: 3.4.10
|
1107
1105
|
signing_key:
|
1108
1106
|
specification_version: 4
|
1109
1107
|
summary: Ruby Serverless Framework
|
data/.python-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3.8.6
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.7.7
|