jets 3.0.0 → 3.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![BoltOps Badge](https://img.boltops.com/boltops/badges/boltops-badge.png)](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://img.boltops.com/boltops/tools/jets/sponsors/arist.png)](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
|