jets 2.3.19 → 3.0.4
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/.gitmodules +0 -3
- data/.python-version +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +45 -2
- data/LICENSE.txt +1 -1
- data/README.md +9 -3
- data/backers.md +1 -0
- data/jets.gemspec +12 -11
- data/lib/jets.rb +9 -13
- data/lib/jets/application.rb +9 -2
- data/lib/jets/application/defaults.rb +17 -15
- data/lib/jets/autoloaders.rb +15 -1
- data/lib/jets/booter.rb +3 -3
- data/lib/jets/builders/code_builder.rb +16 -15
- data/lib/jets/builders/gem_replacer.rb +3 -4
- data/lib/jets/builders/lambda_layer.rb +4 -5
- data/lib/jets/builders/md5_zip.rb +1 -1
- data/lib/jets/builders/ruby_packager.rb +16 -18
- data/lib/jets/builders/tidy.rb +1 -2
- data/lib/jets/bundle.rb +6 -0
- data/lib/jets/cfn/builders/api_gateway_builder.rb +61 -7
- data/lib/jets/cfn/ship.rb +2 -1
- data/lib/jets/cli.rb +6 -1
- data/lib/jets/commands/base.rb +1 -1
- data/lib/jets/commands/call.rb +14 -1
- data/lib/jets/commands/clean.rb +1 -1
- data/lib/jets/commands/clean/base.rb +1 -1
- data/lib/jets/commands/configure.rb +51 -0
- data/lib/jets/commands/delete.rb +2 -2
- data/lib/jets/commands/gems.rb +2 -10
- data/lib/jets/commands/help/call.md +8 -0
- data/lib/jets/commands/help/gems/check.md +3 -5
- data/lib/jets/commands/main.rb +9 -1
- data/lib/jets/commands/new.rb +9 -1
- data/lib/jets/commands/sequence.rb +6 -0
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +1 -1
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
- data/lib/jets/commands/templates/skeleton/public/index.html.tt +1 -1
- data/lib/jets/commands/url.rb +1 -0
- data/lib/jets/controller/base.rb +14 -4
- data/lib/jets/controller/middleware/main.rb +2 -1
- data/lib/jets/controller/params.rb +26 -4
- data/lib/jets/controller/rack/env.rb +18 -1
- data/lib/jets/controller/rendering.rb +5 -2
- data/lib/jets/controller/rendering/rack_renderer.rb +7 -1
- data/lib/jets/core.rb +12 -4
- data/lib/jets/dotenv/ssm.rb +18 -4
- data/lib/jets/generator.rb +2 -3
- data/lib/jets/internal/app/controllers/jets/public_controller.rb +2 -2
- data/lib/jets/internal/app/functions/jets/base_path.rb +10 -149
- data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +81 -0
- data/lib/jets/internal/app/shared/functions/jets/s3_bucket_config.rb +14 -24
- data/lib/jets/overrides/rails/migration_checker.rb +6 -2
- data/lib/jets/resource/api_gateway/base_path/function.rb +6 -1
- data/lib/jets/resource/api_gateway/deployment.rb +2 -0
- data/lib/jets/resource/api_gateway/rest_api/logical_id.rb +34 -0
- data/lib/jets/resource/api_gateway/rest_api/logical_id/message.rb +49 -0
- data/lib/jets/resource/child_stack/api_deployment.rb +2 -0
- data/lib/jets/resource/lambda/function.rb +1 -1
- data/lib/jets/router/dsl.rb +7 -1
- data/lib/jets/router/method_creator/code.rb +1 -1
- data/lib/jets/router/scope.rb +7 -3
- data/lib/jets/spec_helpers/controllers.rb +11 -3
- data/lib/jets/spec_helpers/controllers/request.rb +23 -10
- data/lib/jets/stack/main/dsl/lambda.rb +1 -1
- data/lib/jets/turbo.rb +1 -0
- data/lib/jets/version.rb +1 -1
- metadata +51 -58
- data/vendor/cfn-status/CHANGELOG.md +0 -14
- data/vendor/cfn-status/Gemfile +0 -4
- data/vendor/cfn-status/LICENSE.txt +0 -21
- data/vendor/cfn-status/README.md +0 -56
- data/vendor/cfn-status/Rakefile +0 -6
- data/vendor/cfn-status/bin/console +0 -14
- data/vendor/cfn-status/bin/setup +0 -8
- data/vendor/cfn-status/cfn-status.gemspec +0 -30
- data/vendor/cfn-status/lib/cfn-status.rb +0 -1
- data/vendor/cfn-status/lib/cfn_status.rb +0 -245
- data/vendor/cfn-status/lib/cfn_status/aws_service.rb +0 -51
- data/vendor/cfn-status/lib/cfn_status/version.rb +0 -3
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +0 -1086
- data/vendor/cfn-status/spec/lib/cfn_status_spec.rb +0 -153
- data/vendor/cfn-status/spec/spec_helper.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6bab0f795e30686ac36cb7ca8065a2b17e0eabe96e80ca620c3d05e5240f9687
|
4
|
+
data.tar.gz: 30cdf0d11b9514d3b03842a9dba10beb490b51b2023a4f4825bf4cfe5ab57a7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 262caf0c7c8300e0357b9d4edd04084a27236df6cef19c301c60f8528e7e9f9cde08011cb10a46f2148976b58b6fd0122e78e74a97b301e652f306fcc2fe318f
|
7
|
+
data.tar.gz: cdb67db4e614b1fe070958f551aad768d455a930a6d8789594558c07d617ffb0e1899f3b70ff4fc9a6395700ad3dafc81ad5dac655926d22dc8b6f0a97466ff6
|
data/.gitmodules
CHANGED
data/.python-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.8.6
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.2
|
data/CHANGELOG.md
CHANGED
@@ -3,8 +3,51 @@
|
|
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
|
-
## [
|
7
|
-
- #
|
6
|
+
## [3.0.4] - 2021-04-13
|
7
|
+
- [#537](https://github.com/boltops-tools/jets/pull/537) Docs Add instructions for aws-cli prerequisite
|
8
|
+
- [#528](https://github.com/boltops-tools/jets/pull/528) Adjust permissions to fix custom layer
|
9
|
+
- [#539](https://github.com/boltops-tools/jets/pull/539) FIX DEPRECATION WARNING: connection_config is deprecated
|
10
|
+
- [#540](https://github.com/boltops-tools/jets/pull/540) Allow body param for controller request spec helpers
|
11
|
+
- update serverlessgems gem
|
12
|
+
|
13
|
+
## [3.0.3] - 2021-03-24
|
14
|
+
- [#532](https://github.com/boltops-tools/jets/pull/532) Update Copy Write Year
|
15
|
+
- [#536](https://github.com/boltops-tools/jets/pull/536) use mini_mime instead
|
16
|
+
|
17
|
+
## [3.0.2] - 2021-01-12
|
18
|
+
- update serverlessgems gem
|
19
|
+
|
20
|
+
## [3.0.1] - 2021-01-12
|
21
|
+
- [#524](https://github.com/boltops-tools/jets/pull/524) fix native gem detection
|
22
|
+
|
23
|
+
## [3.0.0]
|
24
|
+
* #328 i18n docs
|
25
|
+
* #391 Deploy Option: Auto Replace API Gateway
|
26
|
+
* #444 Ruby 2.7 Support
|
27
|
+
* #453 Update to Bootstrap4 official release
|
28
|
+
* #454 When the controller name is singular, the behavior of searching for the View file is different from expected.
|
29
|
+
* #457 Breaking change: Harden IAM policy and do allow list all buckets by default. Breaking change.
|
30
|
+
* #479 Create request completion log method
|
31
|
+
* #487 API Gateway Base Path
|
32
|
+
* #488 Add retry_limit and read_timeout options
|
33
|
+
* #491 Fix queryStringParameters handling for nested value in spec_helper
|
34
|
+
* #492 Add params keyword case with get method for spec helpers test
|
35
|
+
* #494 Update ruby_packager.rb
|
36
|
+
* #496 Add unicode test for spec_helpers test
|
37
|
+
* #499 default_iam_policy does not correctly include VPC related actions on resource creation
|
38
|
+
* Improve autoloader: Shouldnt have to to call `bundle exec` in front of jets anymore.
|
39
|
+
* `jets configure` command
|
40
|
+
* Big improvements to docs site, add search
|
41
|
+
* Use serverlessgems API
|
42
|
+
* Breaking: use do not pluralize controller names for views folder
|
43
|
+
* Shorten SSM secrets notation support
|
44
|
+
* Remove deprecations and warnings: bundle install, generate scaffold, webpacker, yarn license, etc
|
45
|
+
* Also setting the `config.iam_policy` appends to the default policy now.
|
46
|
+
* Upgrade to Rails 6.1 components
|
47
|
+
* Increase cloudformation output limit to 200
|
48
|
+
* Replace `--sure` with `-y` option
|
49
|
+
* Fix params helper in views
|
50
|
+
* Webpacker upgrade
|
8
51
|
|
9
52
|
## [2.3.18]
|
10
53
|
- #514 Allow to define route that contains dot
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -5,15 +5,21 @@
|
|
5
5
|
Ruby and Lambda splat out a baby and that child's name is [Jets](http://rubyonjets.com/).
|
6
6
|
|
7
7
|

|
8
|
-
[](https://circleci.com/gh/boltops-tools/jets)
|
9
9
|
[](https://badge.fury.io/rb/jets)
|
10
10
|
[](http://rubyonjets.com/support/)
|
11
|
-
[](https://gitter.im/boltops-tools/jets)
|
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/backers.md
CHANGED
data/jets.gemspec
CHANGED
@@ -27,11 +27,11 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_dependency "actionmailer", "~> 6.
|
31
|
-
spec.add_dependency "actionpack", "~> 6.
|
32
|
-
spec.add_dependency "actionview", "~> 6.
|
33
|
-
spec.add_dependency "activerecord", "~> 6.
|
34
|
-
spec.add_dependency "activesupport", "~> 6.
|
30
|
+
spec.add_dependency "actionmailer", "~> 6.1.0"
|
31
|
+
spec.add_dependency "actionpack", "~> 6.1.0"
|
32
|
+
spec.add_dependency "actionview", "~> 6.1.0"
|
33
|
+
spec.add_dependency "activerecord", "~> 6.1.0"
|
34
|
+
spec.add_dependency "activesupport", "~> 6.1.0"
|
35
35
|
spec.add_dependency "aws-mfa-secure", "~> 0.4.0"
|
36
36
|
spec.add_dependency "aws-sdk-apigateway"
|
37
37
|
spec.add_dependency "aws-sdk-cloudformation"
|
@@ -43,28 +43,29 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.add_dependency "aws-sdk-sns"
|
44
44
|
spec.add_dependency "aws-sdk-sqs"
|
45
45
|
spec.add_dependency "aws-sdk-ssm"
|
46
|
+
spec.add_dependency "cfn-status"
|
46
47
|
spec.add_dependency "cfn_camelizer", "~> 0.4.6"
|
47
|
-
spec.add_dependency "
|
48
|
+
spec.add_dependency "cfn_response"
|
48
49
|
spec.add_dependency "dotenv"
|
49
50
|
spec.add_dependency "gems" # jets-gems dependency
|
50
51
|
spec.add_dependency "hashie"
|
51
|
-
spec.add_dependency "jets-gems", "~> 0.2.3"
|
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
|
-
spec.add_dependency "railties", "~> 6.
|
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", "~> 0.1.3"
|
60
61
|
spec.add_dependency "shotgun"
|
61
62
|
spec.add_dependency "text-table"
|
62
63
|
spec.add_dependency "thor"
|
63
64
|
spec.add_dependency "zeitwerk"
|
64
65
|
|
65
|
-
spec.add_development_dependency "byebug"
|
66
66
|
spec.add_development_dependency "bundler"
|
67
|
+
spec.add_development_dependency "byebug"
|
67
68
|
spec.add_development_dependency "rake"
|
69
|
+
spec.add_development_dependency "render_me_pretty"
|
68
70
|
spec.add_development_dependency "rspec"
|
69
|
-
spec.add_development_dependency "cfn-status"
|
70
71
|
end
|
data/lib/jets.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
$stdout.sync = true unless ENV["JETS_STDOUT_SYNC"] == "0"
|
2
2
|
|
3
3
|
$:.unshift(File.expand_path("../", __FILE__))
|
4
|
+
|
5
|
+
require "jets/core_ext/bundler"
|
6
|
+
require "jets/autoloaders"
|
7
|
+
Jets::Autoloaders.log! if ENV["JETS_AUTOLOAD_LOG"]
|
8
|
+
Jets::Autoloaders.once.setup # must be called before cli.setup
|
9
|
+
Jets::Autoloaders.cli.setup
|
10
|
+
|
4
11
|
require "active_support"
|
5
12
|
require "active_support/concern"
|
6
13
|
require "active_support/core_ext"
|
@@ -8,24 +15,13 @@ require "active_support/dependencies"
|
|
8
15
|
require "active_support/ordered_hash"
|
9
16
|
require "active_support/ordered_options"
|
10
17
|
require "cfn_camelizer"
|
18
|
+
require "cfn_status"
|
11
19
|
require "fileutils"
|
12
|
-
require "jets/gems"
|
13
20
|
require "memoist"
|
14
21
|
require "rainbow/ext/string"
|
15
|
-
|
16
|
-
gem_root = File.dirname(__dir__)
|
17
|
-
$:.unshift("#{gem_root}/lib")
|
18
|
-
$:.unshift("#{gem_root}/vendor/cfn-status/lib")
|
19
|
-
require "cfn_status"
|
20
|
-
|
21
|
-
require "jets/core_ext/bundler"
|
22
|
-
|
23
|
-
require "jets/autoloaders"
|
24
|
-
Jets::Autoloaders.log! if ENV["JETS_AUTOLOAD_LOG"]
|
25
|
-
Jets::Autoloaders.once.setup
|
22
|
+
require "serverlessgems"
|
26
23
|
|
27
24
|
module Jets
|
28
|
-
RUBY_VERSION = "2.5.3"
|
29
25
|
MAX_FUNCTION_NAME_SIZE = 64
|
30
26
|
|
31
27
|
class Error < StandardError; end
|
data/lib/jets/application.rb
CHANGED
@@ -22,6 +22,7 @@ class Jets::Application
|
|
22
22
|
load_environments_config
|
23
23
|
load_db_config
|
24
24
|
set_iam_policy # relies on dependent values, must be called afterwards
|
25
|
+
set_time_zone
|
25
26
|
normalize_env_vars!
|
26
27
|
end
|
27
28
|
|
@@ -64,7 +65,7 @@ class Jets::Application
|
|
64
65
|
return ENV['JETS_PROJECT_NAME'] if ENV['JETS_PROJECT_NAME'] # override
|
65
66
|
|
66
67
|
lines = IO.readlines("#{Jets.root}/config/application.rb")
|
67
|
-
project_name_line = lines.find { |l| l =~ /config\.project_name.*=/ }
|
68
|
+
project_name_line = lines.find { |l| l =~ /config\.project_name.*=/ && l !~ /^\s+#/ }
|
68
69
|
project_name_line.gsub(/.*=/,'').strip.gsub(/["']/,'') # project_name
|
69
70
|
end
|
70
71
|
|
@@ -175,10 +176,16 @@ class Jets::Application
|
|
175
176
|
end
|
176
177
|
|
177
178
|
def set_iam_policy
|
178
|
-
config.iam_policy ||=
|
179
|
+
config.iam_policy ||= []
|
180
|
+
config.default_iam_policy ||= self.class.default_iam_policy
|
181
|
+
config.iam_policy = config.default_iam_policy | config.iam_policy
|
179
182
|
config.managed_policy_definitions ||= [] # default empty
|
180
183
|
end
|
181
184
|
|
185
|
+
def set_time_zone
|
186
|
+
Time.zone_default = Time.find_zone!(config.time_zone)
|
187
|
+
end
|
188
|
+
|
182
189
|
# It is pretty easy to attempt to set environment variables without
|
183
190
|
# the correct AWS Environment.Variables path struture.
|
184
191
|
# Auto-fix it for convenience.
|
@@ -10,18 +10,12 @@ class Jets::Application
|
|
10
10
|
effect: "Allow",
|
11
11
|
resource: "arn:aws:logs:#{Jets.aws.region}:#{Jets.aws.account}:log-group:/aws/lambda/#{project_namespace}-*",
|
12
12
|
}
|
13
|
-
s3_bucket = Jets.aws.s3_bucket
|
14
13
|
s3_readonly = {
|
15
|
-
action: ["s3:Get*", "s3:List*"],
|
14
|
+
action: ["s3:Get*", "s3:List*", "s3:HeadBucket"],
|
16
15
|
effect: "Allow",
|
17
|
-
resource: "arn:aws:s3:::#{s3_bucket}*",
|
16
|
+
resource: "arn:aws:s3:::#{Jets.aws.s3_bucket}*",
|
18
17
|
}
|
19
|
-
|
20
|
-
action: ["s3:ListAllMyBuckets", "s3:HeadBucket"],
|
21
|
-
effect: "Allow",
|
22
|
-
resource: "arn:aws:s3:::*", # scoped to all buckets
|
23
|
-
}
|
24
|
-
policies = [logs, s3_readonly, s3_bucket]
|
18
|
+
policies = [logs, s3_readonly]
|
25
19
|
|
26
20
|
cloudformation = {
|
27
21
|
action: ["cloudformation:DescribeStacks", "cloudformation:DescribeStackResources"],
|
@@ -57,6 +51,7 @@ class Jets::Application
|
|
57
51
|
config.autoload_paths = [] # allows for customization
|
58
52
|
config.ignore_paths = [] # allows for customization
|
59
53
|
config.logger = Jets::Logger.new($stderr)
|
54
|
+
config.time_zone = "UTC"
|
60
55
|
|
61
56
|
# function properties defaults
|
62
57
|
config.function = ActiveSupport::OrderedOptions.new
|
@@ -73,9 +68,9 @@ class Jets::Application
|
|
73
68
|
config.prewarm.rack_ratio = 5
|
74
69
|
|
75
70
|
config.gems = ActiveSupport::OrderedOptions.new
|
76
|
-
config.gems.
|
77
|
-
|
78
|
-
|
71
|
+
config.gems.clean = false
|
72
|
+
config.gems.disable = false
|
73
|
+
config.gems.source = "https://api.serverlessgems.com/api/v1"
|
79
74
|
|
80
75
|
config.inflections = ActiveSupport::OrderedOptions.new
|
81
76
|
config.inflections.irregular = {}
|
@@ -95,12 +90,13 @@ class Jets::Application
|
|
95
90
|
config.session.options = {}
|
96
91
|
|
97
92
|
config.api = ActiveSupport::OrderedOptions.new
|
93
|
+
config.api.api_key_required = false # Turn off API key required
|
98
94
|
config.api.authorization_type = "NONE"
|
99
|
-
config.api.
|
95
|
+
config.api.auto_replace = nil # https://github.com/boltops-tools/jets/issues/391
|
100
96
|
config.api.binary_media_types = ['multipart/form-data']
|
101
|
-
config.api.
|
97
|
+
config.api.cors_authorization_type = nil # nil so ApiGateway::Cors#cors_authorization_type handles
|
102
98
|
config.api.endpoint_policy = nil # required when endpoint_type is EDGE
|
103
|
-
config.api.
|
99
|
+
config.api.endpoint_type = 'EDGE' # PRIVATE, EDGE, REGIONAL
|
104
100
|
|
105
101
|
config.api.authorizers = ActiveSupport::OrderedOptions.new
|
106
102
|
config.api.authorizers.default_token_source = "Auth" # method.request.header.Auth
|
@@ -151,6 +147,9 @@ class Jets::Application
|
|
151
147
|
config.controllers.default_protect_from_forgery = nil
|
152
148
|
config.controllers.filtered_parameters = []
|
153
149
|
|
150
|
+
config.app = ActiveSupport::OrderedOptions.new
|
151
|
+
config.app.domain = nil
|
152
|
+
|
154
153
|
config.deploy = ActiveSupport::OrderedOptions.new
|
155
154
|
config.deploy.stagger = ActiveSupport::OrderedOptions.new
|
156
155
|
config.deploy.stagger.enabled = false
|
@@ -158,6 +157,9 @@ class Jets::Application
|
|
158
157
|
|
159
158
|
config.hot_reload = Jets.env.development?
|
160
159
|
|
160
|
+
config.ruby = ActiveSupport::OrderedOptions.new
|
161
|
+
config.ruby.check = true
|
162
|
+
|
161
163
|
config
|
162
164
|
end
|
163
165
|
|
data/lib/jets/autoloaders.rb
CHANGED
@@ -3,6 +3,8 @@ Jets::Bundle.setup
|
|
3
3
|
require "zeitwerk"
|
4
4
|
|
5
5
|
module Jets
|
6
|
+
module Commands ; end
|
7
|
+
|
6
8
|
module Autoloaders
|
7
9
|
class OnceInflector < Zeitwerk::Inflector
|
8
10
|
def camelize(basename, _abspath)
|
@@ -21,6 +23,7 @@ module Jets
|
|
21
23
|
def log!
|
22
24
|
main.log!
|
23
25
|
once.log!
|
26
|
+
cli.log!
|
24
27
|
end
|
25
28
|
|
26
29
|
def main
|
@@ -56,6 +59,17 @@ module Jets
|
|
56
59
|
end
|
57
60
|
memoize :once
|
58
61
|
|
62
|
+
def cli
|
63
|
+
Zeitwerk::Loader.new.tap do |loader|
|
64
|
+
loader.tag = "jets.cli"
|
65
|
+
loader.inflector = OnceInflector.new
|
66
|
+
|
67
|
+
loader.push_dir("#{__dir__}/commands", namespace: Jets::Commands)
|
68
|
+
loader.ignore("#{__dir__}/commands/templates*")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
memoize :cli
|
72
|
+
|
59
73
|
private
|
60
74
|
def internal_app_paths
|
61
75
|
%w[
|
@@ -84,7 +98,7 @@ module Jets
|
|
84
98
|
builders/rackup_wrappers
|
85
99
|
builders/reconfigure_rails
|
86
100
|
builders/templates
|
87
|
-
commands
|
101
|
+
commands
|
88
102
|
controller/middleware/webpacker_setup.rb
|
89
103
|
core_ext
|
90
104
|
internal
|
data/lib/jets/booter.rb
CHANGED
@@ -83,7 +83,7 @@ class Jets::Booter
|
|
83
83
|
# using ActiveRecord rake tasks outside of Rails.
|
84
84
|
ActiveRecord::Tasks::DatabaseTasks.database_configuration = db_configs
|
85
85
|
|
86
|
-
if db_configs
|
86
|
+
if db_configs.configs_for(env_name: Jets.env).blank?
|
87
87
|
abort("ERROR: config/database.yml exists but no environment section configured for #{Jets.env}")
|
88
88
|
end
|
89
89
|
ActiveRecord::Base.configurations = db_configs
|
@@ -96,9 +96,9 @@ class Jets::Booter
|
|
96
96
|
# the same.
|
97
97
|
def connect_db
|
98
98
|
primary_hash_config = ActiveRecord::Base.configurations.configs_for(env_name: Jets.env).find { |hash_config|
|
99
|
-
hash_config.
|
99
|
+
hash_config.name == "primary"
|
100
100
|
}
|
101
|
-
primary_config = primary_hash_config.
|
101
|
+
primary_config = primary_hash_config.configuration_hash # configuration_hash is a normal Ruby Hash
|
102
102
|
ActiveRecord::Base.establish_connection(primary_config)
|
103
103
|
end
|
104
104
|
|
@@ -373,28 +373,29 @@ module Jets::Builders
|
|
373
373
|
end
|
374
374
|
end
|
375
375
|
|
376
|
-
def check_ruby_version
|
377
|
-
unless ruby_version_supported?
|
378
|
-
puts "You are using Ruby version #{RUBY_VERSION} which is not supported by Jets."
|
379
|
-
ruby_variant = Jets::RUBY_VERSION.split('.')[0..1].join('.') + '.x'
|
380
|
-
abort("Jets uses Ruby #{Jets::RUBY_VERSION}. You should use a variant of Ruby #{ruby_variant}".color(:red))
|
381
|
-
end
|
382
|
-
end
|
383
|
-
|
384
376
|
def copy_ruby_version_file
|
385
377
|
ruby_version_path = Jets.root.join(".ruby-version")
|
386
378
|
return unless File.exists?(ruby_version_path)
|
387
379
|
FileUtils.cp_r(ruby_version_path, build_area)
|
388
380
|
end
|
389
381
|
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
382
|
+
SUPPORTED_RUBY_VERSIONS = %w[2.5 2.7]
|
383
|
+
def check_ruby_version
|
384
|
+
return unless ENV['JETS_RUBY_CHECK'] == '0' || Jets.config.ruby.check == false
|
385
|
+
return if ruby_version_supported?
|
386
|
+
puts <<~EOL.color(:red)
|
387
|
+
You are using Ruby version #{RUBY_VERSION} which is not supported by Jets.
|
388
|
+
Please use one of the Jets supported ruby versions: #{SUPPORTED_RUBY_VERSIONS.join(' ')}
|
389
|
+
If you would like to skip this check you can set: JETS_RUBY_CHECK=0
|
390
|
+
EOL
|
391
|
+
exit 1
|
392
|
+
end
|
396
393
|
|
397
|
-
|
394
|
+
def ruby_version_supported?
|
395
|
+
md = RUBY_VERSION.match(/(\d+)\.(\d+)\.\d+/)
|
396
|
+
major, minor = md[1], md[2]
|
397
|
+
detected_ruby = [major, minor].join('.')
|
398
|
+
SUPPORTED_RUBY_VERSIONS.include?(detected_ruby)
|
398
399
|
end
|
399
400
|
|
400
401
|
# Group all the path settings together here
|