jets 3.0.0 → 3.0.5
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 +20 -0
- data/LICENSE.txt +1 -1
- data/README.md +7 -1
- data/jets.gemspec +2 -2
- data/lib/jets/builders/gem_replacer.rb +12 -0
- data/lib/jets/builders/md5_zip.rb +1 -1
- data/lib/jets/builders/ruby_packager.rb +24 -2
- data/lib/jets/internal/app/controllers/jets/public_controller.rb +2 -2
- data/lib/jets/overrides/rails/migration_checker.rb +6 -2
- data/lib/jets/resource/lambda/function.rb +2 -0
- data/lib/jets/spec_helpers/controllers.rb +2 -1
- data/lib/jets/spec_helpers/controllers/request.rb +11 -5
- data/lib/jets/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6747e94dd8a8e896d3f6a539b25ebcdbc312e08e39f34d25def19475e9fc28c
|
4
|
+
data.tar.gz: 418eb70b04920716a3f1aa2db8e92db7ef7f6aefac2243d4b05d0d6ca3aa6307
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8cd79aa34648cab12d41d0acc7edd41ce4c9125b576f6409533d5088fec7200bb0596cb4257de5f8cd658b0d6fd82f8f46855a9340eba2aeefb1970a60c6579
|
7
|
+
data.tar.gz: 59ae9ee9cccacd97cfc9ca7515b65826a15da99e5a198e068faf8f77adf25da2d2523c45169da3aee378080a7411ca3f08efd5a5d74f908065e267bdbee57260
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,26 @@
|
|
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
|
+
## [3.0.5] - 2021-04-23
|
7
|
+
- [#542](https://github.com/boltops-tools/jets/pull/542) fix custom layers
|
8
|
+
|
9
|
+
## [3.0.4] - 2021-04-13
|
10
|
+
- [#537](https://github.com/boltops-tools/jets/pull/537) Docs Add instructions for aws-cli prerequisite
|
11
|
+
- [#528](https://github.com/boltops-tools/jets/pull/528) Adjust permissions to fix custom layer
|
12
|
+
- [#539](https://github.com/boltops-tools/jets/pull/539) FIX DEPRECATION WARNING: connection_config is deprecated
|
13
|
+
- [#540](https://github.com/boltops-tools/jets/pull/540) Allow body param for controller request spec helpers
|
14
|
+
- update serverlessgems gem
|
15
|
+
|
16
|
+
## [3.0.3] - 2021-03-24
|
17
|
+
- [#532](https://github.com/boltops-tools/jets/pull/532) Update Copy Write Year
|
18
|
+
- [#536](https://github.com/boltops-tools/jets/pull/536) use mini_mime instead
|
19
|
+
|
20
|
+
## [3.0.2] - 2021-01-12
|
21
|
+
- update serverlessgems gem
|
22
|
+
|
23
|
+
## [3.0.1] - 2021-01-12
|
24
|
+
- [#524](https://github.com/boltops-tools/jets/pull/524) fix native gem detection
|
25
|
+
|
6
26
|
## [3.0.0]
|
7
27
|
* #328 i18n docs
|
8
28
|
* #391 Deploy Option: Auto Replace API Gateway
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -12,8 +12,14 @@ Ruby and Lambda splat out a baby and that child's name is [Jets](http://rubyonje
|
|
12
12
|
|
13
13
|
[](https://www.boltops.com)
|
14
14
|
|
15
|
+
Please **watch/star** this repo to help grow and support the project.
|
16
|
+
|
15
17
|
**Upgrading**: If you are upgrading Jets, please check on the [Upgrading Notes](http://rubyonjets.com/docs/extras/upgrading/).
|
16
18
|
|
19
|
+
## Sponsors
|
20
|
+
|
21
|
+
[](https://arist.co/)
|
22
|
+
|
17
23
|
## What is Ruby on Jets?
|
18
24
|
|
19
25
|
Jets is a Ruby Serverless Framework. Jets allows you to create serverless applications with a beautiful language: Ruby. It includes everything required to build an application and deploy it to AWS Lambda.
|
@@ -189,7 +195,7 @@ For more documentation, check out the official docs: [Ruby on Jets](http://rubyo
|
|
189
195
|
* [Official AWS Ruby Support for Jets](https://blog.boltops.com/2018/12/12/official-aws-ruby-support-for-jets-serverless-framework)
|
190
196
|
* [Build an API with Jets](https://blog.boltops.com/2019/01/13/build-an-api-service-with-jets-ruby-serverless-framework)
|
191
197
|
* [Serverless Ruby Cron Jobs Tutorial: Route53 Backup](https://blog.boltops.com/2019/01/03/serverless-ruby-cron-jobs-with-jets-route53-backup)
|
192
|
-
* [Serverless Slack Commands: Fun with AWS Image Recognition](https://blog.boltops.com/
|
198
|
+
* [Serverless Slack Commands: Fun with AWS Image Recognition](https://blog.boltops.com/2021/02/02/serverless-slack-commands-with-ruby)
|
193
199
|
* [Jets Afterburner: Rails Support](https://blog.boltops.com/2018/12/21/jets-afterburner-serverless-rails-on-aws-lambda-in-5-minutes)
|
194
200
|
* [Jets Mega Mode: Jets and Rails](https://blog.boltops.com/2018/11/03/jets-mega-mode-run-rails-on-aws-lambda)
|
195
201
|
* [Toronto Serverless Presentation](https://blog.boltops.com/2018/09/25/toronto-serverless-presentation-jets-framework-on-aws-lambda)
|
data/jets.gemspec
CHANGED
@@ -52,12 +52,12 @@ Gem::Specification.new do |spec|
|
|
52
52
|
spec.add_dependency "jets-html-sanitizer"
|
53
53
|
spec.add_dependency "kramdown"
|
54
54
|
spec.add_dependency "memoist"
|
55
|
-
spec.add_dependency "
|
55
|
+
spec.add_dependency "mini_mime"
|
56
56
|
spec.add_dependency "rack"
|
57
57
|
spec.add_dependency "railties", "~> 6.1.0" # for ActiveRecord database_tasks.rb
|
58
58
|
spec.add_dependency "rainbow"
|
59
59
|
spec.add_dependency "recursive-open-struct"
|
60
|
-
spec.add_dependency "serverlessgems"
|
60
|
+
spec.add_dependency "serverlessgems", "~> 0.1.3"
|
61
61
|
spec.add_dependency "shotgun"
|
62
62
|
spec.add_dependency "text-table"
|
63
63
|
spec.add_dependency "thor"
|
@@ -20,11 +20,23 @@ module Jets::Builders
|
|
20
20
|
found_gems.each do |gem_name|
|
21
21
|
gem_extractor = Jets::Gems::Extract::Gem.new(gem_name, @options)
|
22
22
|
gem_extractor.run
|
23
|
+
rename_gem(gem_name)
|
23
24
|
end
|
24
25
|
|
25
26
|
tidy
|
26
27
|
end
|
27
28
|
|
29
|
+
def rename_gem(gem_name)
|
30
|
+
ruby_folder = "#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Gems.ruby_folder}"
|
31
|
+
gems_folder = "#{ruby_folder}/gems"
|
32
|
+
expr = "#{gems_folder}/#{gem_name}-x*-{darwin,linux}"
|
33
|
+
src = Dir.glob(expr).first
|
34
|
+
return unless src
|
35
|
+
|
36
|
+
dest = src.sub("-darwin", "-linux")
|
37
|
+
FileUtils.mv(src, dest) unless File.exist?(dest) # looks like rename_gem actually runs twice
|
38
|
+
end
|
39
|
+
|
28
40
|
def sh(command)
|
29
41
|
puts "=> #{command}".color(:green)
|
30
42
|
success = system(command)
|
@@ -23,7 +23,7 @@ module Jets::Builders
|
|
23
23
|
# => Creating zip file for /tmp/jets/demo/stage/bundled
|
24
24
|
|
25
25
|
# https://serverfault.com/questions/265675/how-can-i-zip-compress-a-symlink
|
26
|
-
command = "cd #{@path} && zip --symlinks -rq #{zip_file} ."
|
26
|
+
command = "cd #{@path} && chmod -R 755 . && zip --symlinks -rq #{zip_file} ."
|
27
27
|
sh(command)
|
28
28
|
# move out of the lower folder to the stage folder
|
29
29
|
# mv /tmp/jets/demo/stage/code/code.zip /tmp/jets/demo/stage/code.zip
|
@@ -67,7 +67,7 @@ module Jets::Builders
|
|
67
67
|
end
|
68
68
|
create_bundle_config(frozen: true)
|
69
69
|
|
70
|
-
|
70
|
+
rewrite_gemfile_lock("#{cache_area}/Gemfile.lock")
|
71
71
|
|
72
72
|
# Copy the Gemfile.lock back to the project in case it was updated.
|
73
73
|
# For example we add the jets-rails to the Gemfile.
|
@@ -149,9 +149,10 @@ module Jets::Builders
|
|
149
149
|
|
150
150
|
# Remove the BUNDLED WITH line since we don't control the bundler gem version on AWS Lambda
|
151
151
|
# And this can cause issues with require 'bundler/setup'
|
152
|
-
def
|
152
|
+
def rewrite_gemfile_lock(gemfile_lock)
|
153
153
|
lines = IO.readlines(gemfile_lock)
|
154
154
|
|
155
|
+
# Remove BUNDLED WITH
|
155
156
|
# amount is the number of lines to remove
|
156
157
|
new_lines, capture, count, amount = [], true, 0, 2
|
157
158
|
lines.each do |l|
|
@@ -165,6 +166,27 @@ module Jets::Builders
|
|
165
166
|
end
|
166
167
|
end
|
167
168
|
|
169
|
+
# Replace things like nokogiri (1.11.1-x86_64-darwin) => nokogiri (1.11.1)
|
170
|
+
lines, new_lines = new_lines, []
|
171
|
+
lines.each do |l|
|
172
|
+
if l.include?("-x86_64-darwin")
|
173
|
+
l = l.sub('-x86_64-darwin','')
|
174
|
+
end
|
175
|
+
new_lines << l
|
176
|
+
end
|
177
|
+
|
178
|
+
# Make sure platform is ruby
|
179
|
+
lines, new_lines, marker = new_lines, [], false
|
180
|
+
lines.each do |l|
|
181
|
+
if marker # the next loop has the platform we want to replace
|
182
|
+
new_lines << " ruby\n"
|
183
|
+
marker = false
|
184
|
+
next
|
185
|
+
end
|
186
|
+
marker = l.include?('PLATFORMS')
|
187
|
+
new_lines << l
|
188
|
+
end
|
189
|
+
|
168
190
|
content = new_lines.join('')
|
169
191
|
IO.write(gemfile_lock, content)
|
170
192
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require "rack/mime"
|
2
|
-
require "
|
2
|
+
require "mini_mime"
|
3
3
|
|
4
4
|
class Jets::PublicController < Jets::Controller::Base
|
5
5
|
layout false
|
@@ -12,7 +12,7 @@ class Jets::PublicController < Jets::Controller::Base
|
|
12
12
|
|
13
13
|
if File.exist?(catchall_path)
|
14
14
|
content_type = Rack::Mime.mime_type(File.extname(catchall_path))
|
15
|
-
binary = !
|
15
|
+
binary = !MiniMime.lookup_by_filename(catchall_path).content_type.include?("text")
|
16
16
|
|
17
17
|
# For binary support to work, the client also has to send the right Accept header.
|
18
18
|
# And the media type has been to added to api gateway.
|
@@ -1,11 +1,15 @@
|
|
1
1
|
module ActiveRecord
|
2
2
|
module MigrationChecker
|
3
3
|
def prepare_test_db
|
4
|
-
current_config = ::ActiveRecord::Base.
|
4
|
+
current_config = ::ActiveRecord::Base.connection_db_config
|
5
5
|
all_configs = ::ActiveRecord::Base.configurations.configs_for(env_name: Jets.env)
|
6
6
|
|
7
7
|
needs_update = !all_configs.all? do |db_config|
|
8
|
-
::ActiveRecord::Tasks::DatabaseTasks.schema_up_to_date?(
|
8
|
+
::ActiveRecord::Tasks::DatabaseTasks.schema_up_to_date?(
|
9
|
+
db_config.configuration_hash,
|
10
|
+
::ActiveRecord::Base.schema_format,
|
11
|
+
nil
|
12
|
+
)
|
9
13
|
end
|
10
14
|
|
11
15
|
if needs_update
|
@@ -32,7 +32,8 @@ module Jets::SpecHelpers
|
|
32
32
|
request.params.query_params ||= params.delete(:params)
|
33
33
|
request.params.query_params ||= params
|
34
34
|
else
|
35
|
-
request.params.body_params = params.delete(:
|
35
|
+
request.params.body_params = params.delete(:body)
|
36
|
+
request.params.body_params ||= params.delete(:params)
|
36
37
|
request.params.body_params ||= params
|
37
38
|
end
|
38
39
|
|
@@ -31,14 +31,20 @@ module Jets::SpecHelpers::Controllers
|
|
31
31
|
json['headers'] = (headers || {}).stringify_keys
|
32
32
|
|
33
33
|
if method != :get
|
34
|
-
json['headers']['Content-Type']
|
35
|
-
body = Rack::Multipart.build_multipart(params.body_params)
|
34
|
+
json['headers']['Content-Type'] ||= 'application/x-www-form-urlencoded'
|
36
35
|
|
37
|
-
if
|
36
|
+
if params.body_params.is_a? String
|
37
|
+
body = params.body_params
|
38
38
|
json['headers']['Content-Length'] ||= body.length.to_s
|
39
|
-
json['headers']['Content-Type'] = "multipart/form-data; boundary=#{Rack::Multipart::MULTIPART_BOUNDARY}"
|
40
39
|
else
|
41
|
-
body = Rack::
|
40
|
+
body = Rack::Multipart.build_multipart(params.body_params)
|
41
|
+
|
42
|
+
if body
|
43
|
+
json['headers']['Content-Length'] ||= body.length.to_s
|
44
|
+
json['headers']['Content-Type'] = "multipart/form-data; boundary=#{Rack::Multipart::MULTIPART_BOUNDARY}"
|
45
|
+
else
|
46
|
+
body = Rack::Utils.build_nested_query(params.body_params)
|
47
|
+
end
|
42
48
|
end
|
43
49
|
|
44
50
|
json['body'] = Base64.encode64(body)
|
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: 3.0.
|
4
|
+
version: 3.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionmailer
|
@@ -361,7 +361,7 @@ dependencies:
|
|
361
361
|
- !ruby/object:Gem::Version
|
362
362
|
version: '0'
|
363
363
|
- !ruby/object:Gem::Dependency
|
364
|
-
name:
|
364
|
+
name: mini_mime
|
365
365
|
requirement: !ruby/object:Gem::Requirement
|
366
366
|
requirements:
|
367
367
|
- - ">="
|
@@ -434,16 +434,16 @@ dependencies:
|
|
434
434
|
name: serverlessgems
|
435
435
|
requirement: !ruby/object:Gem::Requirement
|
436
436
|
requirements:
|
437
|
-
- - "
|
437
|
+
- - "~>"
|
438
438
|
- !ruby/object:Gem::Version
|
439
|
-
version:
|
439
|
+
version: 0.1.3
|
440
440
|
type: :runtime
|
441
441
|
prerelease: false
|
442
442
|
version_requirements: !ruby/object:Gem::Requirement
|
443
443
|
requirements:
|
444
|
-
- - "
|
444
|
+
- - "~>"
|
445
445
|
- !ruby/object:Gem::Version
|
446
|
-
version:
|
446
|
+
version: 0.1.3
|
447
447
|
- !ruby/object:Gem::Dependency
|
448
448
|
name: shotgun
|
449
449
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1096,7 +1096,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1096
1096
|
- !ruby/object:Gem::Version
|
1097
1097
|
version: '0'
|
1098
1098
|
requirements: []
|
1099
|
-
rubygems_version: 3.
|
1099
|
+
rubygems_version: 3.2.5
|
1100
1100
|
signing_key:
|
1101
1101
|
specification_version: 4
|
1102
1102
|
summary: Ruby Serverless Framework
|