jets 4.0.17 → 5.0.0.beta1
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/.gitignore +5 -1
- data/CHANGELOG.md +52 -23
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/Rakefile +3 -3
- data/engines/internal/app/controllers/jets/application_controller.rb +28 -0
- data/engines/internal/app/controllers/jets/bare_controller.rb +6 -0
- data/engines/internal/app/controllers/jets/health_controller.rb +55 -0
- data/engines/internal/app/controllers/jets/info_controller.rb +45 -0
- data/{lib/jets → engines}/internal/app/controllers/jets/mailers_controller.rb +12 -14
- data/{lib/jets → engines}/internal/app/controllers/jets/mount_controller.rb +6 -10
- data/{lib/jets → engines}/internal/app/controllers/jets/public_controller.rb +6 -2
- data/engines/internal/app/controllers/jets/welcome_controller.rb +9 -0
- data/{lib/jets → engines}/internal/app/functions/jets/base_path.rb +2 -1
- data/{lib/jets → engines}/internal/app/functions/jets/base_path_mapping.rb +26 -6
- data/engines/internal/app/jobs/jets/preheat_job.rb +67 -0
- data/engines/internal/app/views/jets/info/properties.html.erb +1 -0
- data/engines/internal/app/views/jets/info/routes.html.erb +10 -0
- data/{lib/jets → engines}/internal/app/views/jets/mailers/email.html.erb +37 -17
- data/engines/internal/app/views/jets/mailers/index.html.erb +8 -0
- data/engines/internal/app/views/jets/mailers/mailer.html.erb +6 -0
- data/{lib/jets/commands/templates/skeleton/public/index.html.tt → engines/internal/app/views/jets/welcome/index.html.erb} +8 -4
- data/engines/internal/app/views/layouts/application.html.erb +51 -0
- data/engines/internal/lib/internal/actiondispatch.rb +39 -0
- data/engines/internal/lib/internal/actionmailer.rb +51 -0
- data/engines/internal/lib/internal/actionview.rb +152 -0
- data/engines/internal/lib/internal/activerecord.rb +37 -0
- data/engines/internal/lib/internal/activesupport.rb +47 -0
- data/engines/internal/lib/internal/engine.rb +13 -0
- data/engines/internal/lib/internal/i18n_engine.rb +19 -0
- data/engines/internal/lib/internal/jets_controller.rb +46 -0
- data/engines/internal/lib/internal/overrides/debug_exceptions.rb +40 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +62 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +9 -0
- data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +70 -0
- data/engines/internal/lib/internal/turbines/helpers.rb +18 -0
- data/engines/internal/lib/internal/turbines/routes_helpers.rb +42 -0
- data/exe/jets +1 -10
- data/jets.gemspec +29 -27
- data/lib/jets/app_loader.rb +77 -0
- data/lib/jets/application/bootstrap.rb +100 -0
- data/lib/jets/application/configuration/defaults.rb +256 -0
- data/lib/jets/application/configuration.rb +494 -0
- data/lib/jets/application/default_middleware_stack.rb +140 -0
- data/lib/jets/application/dummy_erb_compiler.rb +18 -0
- data/lib/jets/application/finisher.rb +266 -0
- data/lib/jets/application/routes_reloader.rb +80 -0
- data/lib/jets/application.rb +515 -198
- data/lib/jets/authorizer/base.rb +1 -0
- data/lib/jets/authorizer/dsl.rb +15 -11
- data/lib/jets/authorizer/helpers/iam_helper.rb +13 -11
- data/lib/jets/autoloaders/gem.rb +70 -0
- data/lib/jets/autoloaders/inflector.rb +21 -0
- data/lib/jets/autoloaders.rb +38 -101
- data/lib/jets/aws_services/stack_status.rb +1 -1
- data/lib/jets/backtrace_cleaner.rb +27 -0
- data/lib/jets/booter.rb +29 -176
- data/lib/jets/builders/code_builder.rb +45 -117
- data/lib/jets/builders/code_size.rb +1 -0
- data/lib/jets/builders/gem_replacer.rb +5 -6
- data/lib/jets/builders/handler_generator.rb +34 -14
- data/lib/jets/builders/lambda_layer.rb +2 -7
- data/lib/jets/builders/purger.rb +1 -1
- data/lib/jets/builders/rack_packager.rb +1 -1
- data/lib/jets/builders/ruby_packager.rb +32 -21
- data/lib/jets/builders/shim_vars/app.rb +10 -6
- data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +33 -0
- data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +20 -0
- data/lib/jets/builders/templates/{handler.rb → handlers/one_lambda_per_method.rb} +6 -0
- data/lib/jets/bundle.rb +2 -9
- data/lib/jets/cfn/base.rb +82 -0
- data/lib/jets/cfn/builder/api/base.rb +12 -0
- data/lib/jets/cfn/{builders/api_deployment_builder.rb → builder/api/deployment.rb} +10 -20
- data/lib/jets/cfn/{builders/api_gateway_builder.rb → builder/api/gateway.rb} +14 -37
- data/lib/jets/cfn/builder/api/mapping.rb +54 -0
- data/lib/jets/cfn/builder/api/methods.rb +72 -0
- data/lib/jets/cfn/builder/api/paged.rb +30 -0
- data/lib/jets/cfn/builder/api/pages/base.rb +105 -0
- data/lib/jets/cfn/builder/api/pages/methods.rb +17 -0
- data/lib/jets/cfn/builder/api/pages/page.rb +19 -0
- data/lib/jets/cfn/builder/api/pages/resources.rb +21 -0
- data/lib/jets/cfn/builder/api/resources.rb +40 -0
- data/lib/jets/cfn/{builders/authorizer_builder.rb → builder/authorizer.rb} +16 -19
- data/lib/jets/cfn/builder/controller.rb +28 -0
- data/lib/jets/cfn/builder/function.rb +9 -0
- data/lib/jets/cfn/{builders → builder}/interface.rb +45 -51
- data/lib/jets/cfn/builder/job.rb +10 -0
- data/lib/jets/cfn/builder/nested.rb +130 -0
- data/lib/jets/cfn/builder/one_controller.rb +53 -0
- data/lib/jets/cfn/{builders/parent_builder → builder/parent}/stagger.rb +1 -1
- data/lib/jets/cfn/{builders/parent_builder.rb → builder/parent.rb} +54 -54
- data/lib/jets/cfn/builder/post_process.rb +25 -0
- data/lib/jets/cfn/{builders/rule_builder.rb → builder/rule.rb} +4 -8
- data/lib/jets/cfn/{builders/shared_builder.rb → builder/shared.rb} +4 -3
- data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
- data/lib/jets/{commands/build.rb → cfn/builder.rb} +50 -78
- data/lib/jets/cfn/deployment.rb +45 -0
- data/lib/jets/cfn/download.rb +39 -0
- data/lib/jets/cfn/params/api/base.rb +39 -0
- data/lib/jets/cfn/params/api/cors.rb +10 -0
- data/lib/jets/cfn/params/api/methods.rb +69 -0
- data/lib/jets/cfn/params/api/resources.rb +28 -0
- data/lib/jets/{resource/child_stack/common_parameters.rb → cfn/params/common.rb} +3 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/authorizer.rb +21 -21
- data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +57 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/base_path/mapping.rb +13 -12
- data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +70 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/deployment.rb +13 -20
- data/lib/jets/{resource → cfn/resource}/api_gateway/domain_name.rb +11 -11
- data/lib/jets/{resource → cfn/resource}/api_gateway/method/authorization.rb +1 -1
- data/lib/jets/cfn/resource/api_gateway/method.rb +92 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/resource.rb +14 -10
- data/lib/jets/cfn/resource/api_gateway/resource_id.rb +25 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/change_detection.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id/message.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +4 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/to.rb +8 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/variable.rb +2 -2
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +21 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +12 -12
- data/lib/jets/{resource → cfn/resource}/associated.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/config/config_rule.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/config/managed_rule.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/events/rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/iam/application_role.rb +4 -4
- data/lib/jets/{resource → cfn/resource}/iam/base_role_definition.rb +15 -15
- data/lib/jets/{resource → cfn/resource}/iam/class_role.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/iam/function_role.rb +6 -6
- data/lib/jets/{resource → cfn/resource}/iam/managed_policy.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/iam/policy.rb +8 -8
- data/lib/jets/{resource → cfn/resource}/iam/policy_document.rb +10 -9
- data/lib/jets/{resource → cfn/resource}/iot/topic_rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/lambda/event_source_mapping.rb +9 -9
- data/lib/jets/cfn/resource/lambda/function/controller.rb +21 -0
- data/lib/jets/{resource → cfn/resource}/lambda/function/environment.rb +4 -5
- data/lib/jets/cfn/resource/lambda/function.rb +266 -0
- data/lib/jets/{resource → cfn/resource}/lambda/gem_layer.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/lambda/layer_version.rb +10 -10
- data/lib/jets/cfn/resource/lambda/permission.rb +51 -0
- data/lib/jets/cfn/resource/logs/subscription_filter.rb +31 -0
- data/lib/jets/cfn/resource/nested/api/base.rb +4 -0
- data/lib/jets/cfn/resource/nested/api/deployment.rb +53 -0
- data/lib/jets/cfn/resource/nested/api/gateway.rb +15 -0
- data/lib/jets/cfn/resource/nested/api/mapping.rb +33 -0
- data/lib/jets/cfn/resource/nested/api/methods.rb +30 -0
- data/lib/jets/cfn/resource/nested/api/page.rb +8 -0
- data/lib/jets/cfn/resource/nested/api/resources.rb +22 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/app_class.rb +15 -48
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/authorizer.rb +8 -14
- data/lib/jets/cfn/resource/nested/base.rb +38 -0
- data/lib/jets/cfn/resource/nested/one_controller.rb +48 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/shared.rb +10 -16
- data/lib/jets/cfn/resource/one/function.rb +66 -0
- data/lib/jets/cfn/resource/one/permission.rb +17 -0
- data/lib/jets/{resource → cfn/resource}/replacer.rb +26 -27
- data/lib/jets/{resource → cfn/resource}/route53/record_set.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/s3/bucket.rb +4 -4
- data/lib/jets/cfn/resource/s3/jets_bucket.rb +68 -0
- data/lib/jets/{resource → cfn/resource}/sns/subscription.rb +8 -8
- data/lib/jets/{resource → cfn/resource}/sns/topic.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/sns/topic_policy.rb +13 -13
- data/lib/jets/{resource → cfn/resource}/sqs/queue.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/standardizer.rb +8 -9
- data/lib/jets/cfn/resource.rb +8 -0
- data/lib/jets/cfn/ship.rb +20 -19
- data/lib/jets/cfn/template.rb +89 -0
- data/lib/jets/cfn/upload.rb +40 -37
- data/lib/jets/cli.rb +28 -210
- data/lib/jets/command/actions.rb +49 -0
- data/lib/jets/command/api_helpers.rb +41 -0
- data/lib/jets/command/aws_helpers.rb +26 -0
- data/lib/jets/command/base.rb +204 -0
- data/lib/jets/command/behavior.rb +83 -0
- data/lib/jets/command/environment_argument.rb +42 -0
- data/lib/jets/command/help/call.md +48 -0
- data/lib/jets/{commands → command}/help/deploy.md +1 -1
- data/lib/jets/command/help/logs.md +21 -0
- data/lib/jets/{commands → command}/help/new.md +3 -4
- data/lib/jets/command/help/projects.md +6 -0
- data/lib/jets/command/help/releases.md +37 -0
- data/lib/jets/command/help/rollback.md +5 -0
- data/lib/jets/command/help/routes.md +15 -0
- data/lib/jets/command/help/stacks.md +6 -0
- data/lib/jets/command/help.rb +17 -0
- data/lib/jets/command/helpers/editor.rb +35 -0
- data/lib/jets/command.rb +133 -0
- data/lib/jets/commands/application/application_command.rb +40 -0
- data/lib/jets/commands/build/build_command.rb +33 -0
- data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
- data/lib/jets/commands/call/autoload_guesser.rb +2 -2
- data/lib/jets/commands/call/base_guesser.rb +4 -4
- data/lib/jets/commands/call/call_command.rb +27 -0
- data/lib/jets/commands/call/caller.rb +184 -0
- data/lib/jets/commands/call/guesser.rb +1 -1
- data/lib/jets/commands/clean/base.rb +1 -1
- data/lib/jets/commands/clean/build.rb +1 -1
- data/lib/jets/commands/clean/clean_command.rb +15 -0
- data/lib/jets/commands/clean/log.rb +1 -1
- data/lib/jets/commands/configure/configure_command.rb +9 -0
- data/lib/jets/commands/console/console_command.rb +38 -0
- data/lib/jets/commands/credentials/USAGE +103 -0
- data/lib/jets/commands/credentials/credentials_command/diffing.rb +51 -0
- data/lib/jets/commands/credentials/credentials_command.rb +139 -0
- data/lib/jets/commands/db/system/change/change_command.rb +24 -0
- data/lib/jets/commands/dbconsole/dbconsole_command.rb +184 -0
- data/lib/jets/commands/degenerate/degenerate_command.rb +21 -0
- data/lib/jets/commands/delete/delete_command.rb +155 -0
- data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +28 -47
- data/lib/jets/commands/dev/dev_command.rb +19 -0
- data/lib/jets/commands/{dotenv.rb → dotenv/dotenv_command.rb} +2 -2
- data/lib/jets/commands/encrypted/USAGE +46 -0
- data/lib/jets/commands/encrypted/encrypted_command.rb +87 -0
- data/lib/jets/commands/gems/gems_command.rb +14 -0
- data/lib/jets/commands/generate/generate_command.rb +95 -0
- data/lib/jets/commands/help/USAGE +20 -0
- data/lib/jets/commands/help/help_command.rb +15 -0
- data/lib/jets/commands/initializers/initializers_command.rb +19 -0
- data/lib/jets/commands/logs/logs_command.rb +45 -0
- data/lib/jets/commands/new/new_command.rb +19 -0
- data/lib/jets/commands/notes/notes_command.rb +30 -0
- data/lib/jets/commands/plugin/plugin_command.rb +45 -0
- data/lib/jets/commands/projects/projects_command.rb +30 -0
- data/lib/jets/commands/rake/rake_command.rb +59 -0
- data/lib/jets/commands/releases/releases_command.rb +72 -0
- data/lib/jets/commands/rollback/rollback_command.rb +41 -0
- data/lib/jets/commands/routes/routes_command.rb +19 -0
- data/lib/jets/commands/runner/runner_command.rb +60 -0
- data/lib/jets/commands/server/server_command.rb +291 -0
- data/lib/jets/commands/stacks/stacks_command.rb +39 -0
- data/lib/jets/commands/status/status_command.rb +9 -0
- data/lib/jets/commands/{url.rb → url/url_command.rb} +37 -14
- data/lib/jets/commands/version/version_command.rb +11 -0
- data/lib/jets/commands.rb +17 -0
- data/lib/jets/configuration.rb +166 -0
- data/lib/jets/controller/base.rb +105 -183
- data/lib/jets/controller/compat/abstract_controller/base.rb +126 -0
- data/lib/jets/controller/compat/action_controller/metal.rb +99 -0
- data/lib/jets/controller/compat/caching.rb +13 -0
- data/lib/jets/controller/compat/future.rb +13 -0
- data/lib/jets/controller/compat/route_set.rb +47 -0
- data/lib/jets/controller/decorate/apigw_stage.rb +39 -0
- data/lib/jets/controller/{authorization.rb → decorate/authorization.rb} +1 -1
- data/lib/jets/controller/decorate/logging.rb +90 -0
- data/lib/jets/controller/decorate/redirecting.rb +16 -0
- data/lib/jets/controller/decorate/url_for.rb +10 -0
- data/lib/jets/controller/{rack/adapter.rb → handler/apigw.rb} +36 -37
- data/lib/jets/controller/handler.rb +41 -0
- data/lib/jets/controller/middleware/main.rb +16 -8
- data/lib/jets/controller/middleware/{local/api_gateway.rb → mimic/apigw.rb} +40 -15
- data/lib/jets/controller/middleware/mimic/lambda_context.rb +44 -0
- data/lib/jets/controller/middleware/{local.rb → mimic.rb} +36 -51
- data/lib/jets/controller/rack_adapter/action.rb +35 -0
- data/lib/jets/controller/{rack → rack_adapter}/env.rb +39 -24
- data/lib/jets/controller/request/compat/params.rb +144 -0
- data/lib/jets/controller/request/compat/request.rb +125 -0
- data/lib/jets/controller/request.rb +35 -18
- data/lib/jets/controller/response/compat/response.rb +67 -0
- data/lib/jets/controller/response.rb +91 -8
- data/lib/jets/core.rb +136 -51
- data/lib/jets/core_ext/kernel.rb +2 -2
- data/lib/jets/core_ext/symbol.rb +5 -0
- data/lib/jets/core_ext.rb +4 -0
- data/lib/jets/dev_caching.rb +44 -0
- data/lib/jets/dotenv/ssm.rb +2 -2
- data/lib/jets/dotenv.rb +2 -1
- data/lib/jets/engine/configuration.rb +96 -0
- data/lib/jets/engine/turbines.rb +23 -0
- data/lib/jets/engine.rb +380 -0
- data/lib/jets/exception_reporting.rb +43 -0
- data/lib/jets/generators/job/job_generator.rb +41 -0
- data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/iot.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/kinesis.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/log.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/rule.rb.tt +23 -0
- data/lib/jets/generators/job/templates/event_types/s3.rb.tt +11 -0
- data/lib/jets/{generator/templates/active_job/job/templates/job.rb.tt → generators/job/templates/event_types/scheduled.rb.tt} +3 -3
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +9 -0
- data/lib/jets/generators/overrides/app/USAGE +38 -0
- data/lib/jets/generators/overrides/app/app_generator.rb +148 -0
- data/lib/jets/generators/overrides/app/helpers.rb +143 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.gitignore +2 -1
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +25 -0
- data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
- data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +19 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
- data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
- data/lib/jets/generators.rb +112 -0
- data/lib/jets/info.rb +116 -0
- data/lib/jets/initializable.rb +95 -0
- data/lib/jets/job/base.rb +3 -2
- data/lib/jets/job/dsl/dynamodb_event.rb +19 -9
- data/lib/jets/job/dsl/event_source_mapping.rb +1 -1
- data/lib/jets/job/dsl/iot_event.rb +6 -6
- data/lib/jets/job/dsl/kinesis_event.rb +5 -5
- data/lib/jets/job/dsl/log_event.rb +2 -2
- data/lib/jets/job/dsl/rule_event.rb +7 -4
- data/lib/jets/job/dsl/s3_event.rb +1 -1
- data/lib/jets/job/dsl/sns_event.rb +6 -6
- data/lib/jets/job/dsl/sqs_event.rb +11 -11
- data/lib/jets/klass.rb +5 -6
- data/lib/jets/lambda/definition.rb +118 -0
- data/lib/jets/lambda/dsl/warnings.rb +57 -0
- data/lib/jets/lambda/dsl.rb +64 -53
- data/lib/jets/lambda/function.rb +3 -3
- data/lib/jets/lambda/function_constructor.rb +6 -6
- data/lib/jets/lambda/functions.rb +36 -1
- data/lib/jets/mega/request/source.rb +1 -2
- data/lib/jets/mega/request.rb +4 -4
- data/lib/jets/names.rb +31 -15
- data/lib/jets/overrides/dummy/rails.rb +11 -0
- data/lib/jets/overrides/lambda/marshaller.rb +10 -0
- data/lib/jets/overrides/puma.rb +10 -0
- data/lib/jets/paths.rb +243 -0
- data/lib/jets/{poly_fun → poly}/base_executor.rb +13 -13
- data/lib/jets/{poly_fun → poly}/lambda_executor.rb +2 -2
- data/lib/jets/{poly_fun → poly}/node_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/node_executor.rb +4 -4
- data/lib/jets/{poly_fun → poly}/python_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/python_executor.rb +2 -2
- data/lib/jets/{poly_fun.rb → poly.rb} +12 -12
- data/lib/jets/preheat.rb +12 -25
- data/lib/jets/processors/deducer.rb +2 -2
- data/lib/jets/processors/main_processor.rb +6 -13
- data/lib/jets/rack/logger.rb +77 -0
- data/lib/jets/router/compat/route_set.rb +177 -0
- data/lib/jets/router/dsl/mount.rb +40 -6
- data/lib/jets/router/dsl.rb +125 -105
- data/lib/jets/router/engine_mount.rb +36 -0
- data/lib/jets/router/help.rb +130 -0
- data/lib/jets/router/helpers/named_routes/add_full_url.rb +13 -0
- data/lib/jets/router/helpers/named_routes/generated.rb +197 -0
- data/lib/jets/router/helpers/named_routes/proxy.rb +66 -0
- data/lib/jets/router/matcher.rb +135 -16
- data/lib/jets/router/resources/options.rb +6 -4
- data/lib/jets/router/route/after_initialize.rb +64 -0
- data/lib/jets/router/route/as.rb +93 -0
- data/lib/jets/router/route/authorizer.rb +1 -0
- data/lib/jets/router/route/compat.rb +45 -0
- data/lib/jets/router/route/info.rb +74 -0
- data/lib/jets/router/route/node.rb +137 -0
- data/lib/jets/router/route/path.rb +93 -0
- data/lib/jets/router/route.rb +109 -106
- data/lib/jets/router/route_set.rb +214 -0
- data/lib/jets/router/scope.rb +204 -69
- data/lib/jets/router/state.rb +36 -16
- data/lib/jets/router/util.rb +1 -31
- data/lib/jets/router.rb +64 -162
- data/lib/jets/ruby_version_check.rb +15 -0
- data/lib/jets/rule/base.rb +1 -0
- data/lib/jets/rule/dsl.rb +7 -7
- data/lib/jets/secrets.rb +110 -0
- data/lib/jets/spec_helpers/controllers/request.rb +22 -16
- data/lib/jets/spec_helpers/controllers.rb +32 -24
- data/lib/jets/spec_helpers.rb +0 -6
- data/lib/jets/stack/builder.rb +3 -2
- data/lib/jets/stack/definition.rb +1 -4
- data/lib/jets/stack/function.rb +2 -2
- data/lib/jets/stack/main/dsl/cloudwatch.rb +4 -4
- data/lib/jets/stack/main/dsl/kinesis.rb +2 -2
- data/lib/jets/stack/main/dsl/lambda.rb +26 -20
- data/lib/jets/stack/main/dsl/sqs.rb +2 -2
- data/lib/jets/stack/output/lookup.rb +1 -1
- data/lib/jets/stack/output.rb +2 -2
- data/lib/jets/stack/parameter.rb +2 -2
- data/lib/jets/stack/resource.rb +3 -3
- data/lib/jets/stack/s3_event.rb +51 -37
- data/lib/jets/stack.rb +1 -1
- data/lib/jets/tasks/engine.rake +85 -0
- data/lib/jets/tasks/framework.rake +66 -0
- data/lib/jets/tasks/log.rake +41 -0
- data/lib/jets/tasks/middleware.rake +9 -0
- data/lib/jets/tasks/misc.rake +81 -0
- data/lib/jets/tasks/statistics.rake +37 -0
- data/lib/jets/tasks/tmp.rake +51 -0
- data/lib/jets/tasks/yarn.rake +29 -0
- data/lib/jets/tasks/zeitwerk.rake +61 -0
- data/lib/jets/tasks.rb +18 -0
- data/lib/jets/turbine/configurable.rb +36 -0
- data/lib/jets/turbine/configuration.rb +101 -0
- data/lib/jets/turbine.rb +164 -20
- data/lib/jets/util/camelize.rb +24 -0
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +7 -16
- metadata +410 -362
- data/bin/release +0 -9
- data/lib/jets/application/defaults.rb +0 -230
- data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +0 -16
- data/lib/jets/builders/reconfigure_rails.rb +0 -114
- data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
- data/lib/jets/cfn/builders/base_child_builder.rb +0 -88
- data/lib/jets/cfn/builders/controller_builder.rb +0 -50
- data/lib/jets/cfn/builders/function_builder.rb +0 -14
- data/lib/jets/cfn/builders/job_builder.rb +0 -14
- data/lib/jets/cfn/builders/page_builder.rb +0 -80
- data/lib/jets/cfn/built_template.rb +0 -15
- data/lib/jets/cfn/template_source.rb +0 -64
- data/lib/jets/commands/base.rb +0 -145
- data/lib/jets/commands/call.rb +0 -185
- data/lib/jets/commands/clean.rb +0 -19
- data/lib/jets/commands/configure.rb +0 -51
- data/lib/jets/commands/console.rb +0 -18
- data/lib/jets/commands/db/environment-task.rake +0 -3
- data/lib/jets/commands/db/tasks/dummy/app.rb +0 -25
- data/lib/jets/commands/db/tasks/dummy/config.rb +0 -14
- data/lib/jets/commands/db/tasks.rb +0 -34
- data/lib/jets/commands/db.rb +0 -13
- data/lib/jets/commands/dbconsole.rb +0 -134
- data/lib/jets/commands/delete.rb +0 -136
- data/lib/jets/commands/dynamodb/migrate.rb +0 -9
- data/lib/jets/commands/dynamodb/migrator.rb +0 -36
- data/lib/jets/commands/dynamodb.rb +0 -19
- data/lib/jets/commands/gems.rb +0 -13
- data/lib/jets/commands/help/call.md +0 -69
- data/lib/jets/commands/help/dynamodb/generate.md +0 -52
- data/lib/jets/commands/help/dynamodb/migrate.md +0 -4
- data/lib/jets/commands/help/routes.md +0 -16
- data/lib/jets/commands/help.rb +0 -9
- data/lib/jets/commands/import/base.rb +0 -49
- data/lib/jets/commands/import/cheatsheet.rb +0 -35
- data/lib/jets/commands/import/rack.rb +0 -16
- data/lib/jets/commands/import/rails.rb +0 -74
- data/lib/jets/commands/import/sequence.rb +0 -90
- data/lib/jets/commands/import/templates/config/database.yml +0 -30
- data/lib/jets/commands/import/templates/submodules-cheatsheet.md +0 -89
- data/lib/jets/commands/import.rb +0 -12
- data/lib/jets/commands/main.rb +0 -169
- data/lib/jets/commands/markdown/creator.rb +0 -58
- data/lib/jets/commands/markdown/index.rb +0 -27
- data/lib/jets/commands/markdown/page.rb +0 -125
- data/lib/jets/commands/markdown/shell.rb +0 -11
- data/lib/jets/commands/new.rb +0 -173
- data/lib/jets/commands/rake_command.rb +0 -61
- data/lib/jets/commands/rake_tasks.rb +0 -50
- data/lib/jets/commands/runner.rb +0 -16
- data/lib/jets/commands/sequence.rb +0 -104
- data/lib/jets/commands/stack_info.rb +0 -30
- data/lib/jets/commands/templates/skeleton/.env.development.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.env.test +0 -3
- data/lib/jets/commands/templates/skeleton/.env.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.jetskeep +0 -1
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -40
- data/lib/jets/commands/templates/skeleton/Procfile +0 -7
- data/lib/jets/commands/templates/skeleton/Rakefile +0 -2
- data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +0 -2
- data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +0 -26
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -72
- data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +0 -22
- data/lib/jets/commands/templates/skeleton/config/environments/development.rb +0 -7
- data/lib/jets/commands/templates/skeleton/config/environments/production.rb +0 -9
- data/lib/jets/commands/templates/skeleton/config/environments/test.rb +0 -7
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +0 -23
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +0 -24
- data/lib/jets/commands/upgrade/templates/bin/webpack +0 -20
- data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
- data/lib/jets/commands/upgrade/version1.rb +0 -136
- data/lib/jets/commands/upgrade.rb +0 -105
- data/lib/jets/commands/webpacker_template.rb +0 -18
- data/lib/jets/controller/callbacks.rb +0 -73
- data/lib/jets/controller/cookies/jar.rb +0 -269
- data/lib/jets/controller/cookies.rb +0 -38
- data/lib/jets/controller/error/invalid_authenticity_token.rb +0 -6
- data/lib/jets/controller/error.rb +0 -4
- data/lib/jets/controller/forgery_protection.rb +0 -43
- data/lib/jets/controller/layout.rb +0 -17
- data/lib/jets/controller/middleware/cors.rb +0 -60
- data/lib/jets/controller/middleware/local/mimic_aws_call.rb +0 -38
- data/lib/jets/controller/middleware/local/route_matcher.rb +0 -22
- data/lib/jets/controller/middleware/reloader.rb +0 -15
- data/lib/jets/controller/parameters_filter.rb +0 -29
- data/lib/jets/controller/params.rb +0 -117
- data/lib/jets/controller/redirection.rb +0 -61
- data/lib/jets/controller/rendering/rack_renderer.rb +0 -267
- data/lib/jets/controller/rendering.rb +0 -96
- data/lib/jets/controller/stage.rb +0 -34
- data/lib/jets/controller.rb +0 -3
- data/lib/jets/db.rb +0 -15
- data/lib/jets/generator/templates/erb/controller/view.html.erb +0 -2
- data/lib/jets/generator/templates/erb/scaffold/index.html.erb +0 -29
- data/lib/jets/generator/templates/rails/controller/controller.rb +0 -13
- data/lib/jets/generator/templates/rails/helper/helper.rb +0 -4
- data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +0 -67
- data/lib/jets/generator.rb +0 -112
- data/lib/jets/internal/app/controllers/jets/bare_controller.rb +0 -16
- data/lib/jets/internal/app/controllers/jets/rack_controller.rb +0 -12
- data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -52
- data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
- data/lib/jets/lambda/task.rb +0 -111
- data/lib/jets/logger.rb +0 -21
- data/lib/jets/middleware/configurator.rb +0 -84
- data/lib/jets/middleware/default_stack.rb +0 -53
- data/lib/jets/middleware/layer.rb +0 -34
- data/lib/jets/middleware/stack.rb +0 -77
- data/lib/jets/middleware.rb +0 -33
- data/lib/jets/overrides/rails/action_controller.rb +0 -13
- data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
- data/lib/jets/overrides/rails/common_methods.rb +0 -13
- data/lib/jets/overrides/rails/migration_checker.rb +0 -34
- data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
- data/lib/jets/overrides/rails/url_helper.rb +0 -88
- data/lib/jets/overrides/rails.rb +0 -6
- data/lib/jets/rack_server.rb +0 -86
- data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
- data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
- data/lib/jets/resource/api_gateway/cors.rb +0 -61
- data/lib/jets/resource/api_gateway/method.rb +0 -102
- data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
- data/lib/jets/resource/base.rb +0 -28
- data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
- data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
- data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
- data/lib/jets/resource/child_stack/api_resource.rb +0 -54
- data/lib/jets/resource/child_stack/base.rb +0 -24
- data/lib/jets/resource/lambda/function.rb +0 -221
- data/lib/jets/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/resource/permission.rb +0 -45
- data/lib/jets/resource.rb +0 -71
- data/lib/jets/router/error.rb +0 -4
- data/lib/jets/router/finder.rb +0 -47
- data/lib/jets/router/helpers/core_helper.rb +0 -27
- data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
- data/lib/jets/router/helpers.rb +0 -4
- data/lib/jets/router/method_creator/code.rb +0 -99
- data/lib/jets/router/method_creator/edit.rb +0 -12
- data/lib/jets/router/method_creator/generic.rb +0 -11
- data/lib/jets/router/method_creator/index.rb +0 -48
- data/lib/jets/router/method_creator/new.rb +0 -12
- data/lib/jets/router/method_creator/root.rb +0 -15
- data/lib/jets/router/method_creator/show.rb +0 -12
- data/lib/jets/router/method_creator.rb +0 -50
- data/lib/jets/turbo/database_yaml.rb +0 -41
- data/lib/jets/turbo/project/.gitignore +0 -12
- data/lib/jets/turbo/project/.jetskeep +0 -1
- data/lib/jets/turbo/project/Gemfile +0 -16
- data/lib/jets/turbo/project/Rakefile +0 -2
- data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
- data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
- data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
- data/lib/jets/turbo/project/config/application.rb +0 -5
- data/lib/jets/turbo/project/config/routes.rb +0 -4
- data/lib/jets/turbo/project/config.ru +0 -5
- data/lib/jets/turbo/rails.rb +0 -127
- data/lib/jets/turbo/templates/config/database.yml +0 -30
- data/lib/jets/turbo.rb +0 -56
- data/readme/prerelease.md +0 -6
- data/readme/testing.md +0 -60
- /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
- /data/lib/jets/{commands → command}/help/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
- /data/lib/jets/{commands → command}/help/console.md +0 -0
- /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
- /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
- /data/lib/jets/{commands → command}/help/delete.md +0 -0
- /data/lib/jets/{commands → command}/help/gems/check.md +0 -0
- /data/lib/jets/{commands → command}/help/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
- /data/lib/jets/{commands → command}/help/runner.md +0 -0
- /data/lib/jets/{commands → command}/help/server.md +0 -0
- /data/lib/jets/{commands → command}/help/status.md +0 -0
- /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
- /data/lib/jets/{commands → command}/help/url.md +0 -0
- /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
- /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
data/lib/jets/authorizer/base.rb
CHANGED
data/lib/jets/authorizer/dsl.rb
CHANGED
|
@@ -14,8 +14,11 @@ module Jets::Authorizer
|
|
|
14
14
|
extend ActiveSupport::Concern
|
|
15
15
|
|
|
16
16
|
class_methods do
|
|
17
|
+
include Jets::Util::Camelize
|
|
18
|
+
|
|
17
19
|
def authorizer(props={})
|
|
18
|
-
|
|
20
|
+
camelize(props)
|
|
21
|
+
if props[:Type].to_s.upcase == "COGNITO_USER_POOLS"
|
|
19
22
|
cognito_authorizer(props)
|
|
20
23
|
else
|
|
21
24
|
lambda_authorizer(props)
|
|
@@ -24,26 +27,27 @@ module Jets::Authorizer
|
|
|
24
27
|
|
|
25
28
|
def lambda_authorizer(props={})
|
|
26
29
|
with_fresh_properties(multiple_resources: false) do
|
|
27
|
-
r = Jets::Resource::ApiGateway::Authorizer.new(props)
|
|
30
|
+
r = Jets::Cfn::Resource::ApiGateway::Authorizer.new(props)
|
|
28
31
|
resource(r.definition) # add associated resource immediately
|
|
29
32
|
end
|
|
30
33
|
end
|
|
31
34
|
|
|
32
|
-
# Creates a
|
|
35
|
+
# Creates a definition but registers it to cognito_authorizers instead of all_tasks because there is no Lambda
|
|
33
36
|
# function associated with the cognito authorizer.
|
|
34
37
|
def cognito_authorizer(props={})
|
|
38
|
+
camelize(props)
|
|
35
39
|
resources = [props]
|
|
36
40
|
# Authorizer name can have dashes, but "method" name should be underscored for correct logical id.
|
|
37
|
-
meth = props[:
|
|
38
|
-
resource = Jets::Resource::ApiGateway::Authorizer.new(props)
|
|
41
|
+
meth = props[:Name].gsub('-','_')
|
|
42
|
+
resource = Jets::Cfn::Resource::ApiGateway::Authorizer.new(props)
|
|
39
43
|
|
|
40
|
-
# Mimic
|
|
41
|
-
# Do not actually use the
|
|
42
|
-
# Only using the
|
|
43
|
-
|
|
44
|
+
# Mimic definition to grab base_replacements, namely namespace.
|
|
45
|
+
# Do not actually use the definition to create a Lambda function for cognito authorizer.
|
|
46
|
+
# Only using the definition for base_replacements.
|
|
47
|
+
definition = Jets::Lambda::Definition.new(self.name, meth,
|
|
44
48
|
resources: resources,
|
|
45
49
|
replacements: {}) # No need for need additional replacements. Baseline replacements suffice
|
|
46
|
-
all_cognito_authorizers[name] = { definition: resource.definition, replacements:
|
|
50
|
+
all_cognito_authorizers[name] = { definition: resource.definition, replacements: definition.replacements }
|
|
47
51
|
clear_properties
|
|
48
52
|
end
|
|
49
53
|
|
|
@@ -56,7 +60,7 @@ module Jets::Authorizer
|
|
|
56
60
|
end
|
|
57
61
|
|
|
58
62
|
def build?
|
|
59
|
-
!
|
|
63
|
+
!definitions.empty? || !all_cognito_authorizers.empty?
|
|
60
64
|
end
|
|
61
65
|
end
|
|
62
66
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
module Jets::Authorizer::Helpers
|
|
2
2
|
module IamHelper
|
|
3
|
-
|
|
3
|
+
include Jets::Util::Camelize
|
|
4
|
+
|
|
5
|
+
private
|
|
4
6
|
# Structure: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html
|
|
5
7
|
# Example:
|
|
6
8
|
#
|
|
@@ -17,23 +19,23 @@ module Jets::Authorizer::Helpers
|
|
|
17
19
|
else # build_policy(resource, principal, context, usage_identifier_key) form
|
|
18
20
|
resource, principal_id, context, usage_identifier_key = args
|
|
19
21
|
props = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
principalId: principal_id || "default_user",
|
|
23
|
+
policyDocument: {
|
|
24
|
+
Version: "2012-10-17",
|
|
25
|
+
Statement: [
|
|
26
|
+
Action: "execute-api:Invoke",
|
|
27
|
+
Effect: "Allow",
|
|
28
|
+
Resource: resource || "*",
|
|
27
29
|
],
|
|
28
30
|
},
|
|
29
31
|
}
|
|
30
32
|
props[:context] = context if context
|
|
31
|
-
props[:
|
|
33
|
+
props[:usageIdentifierKey] = usage_identifier_key if usage_identifier_key
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
props.transform_keys! { |k| pascalize(k) } # Only top-level keys are pascalized
|
|
35
37
|
# policyDocument is camelized, everything else is left alone
|
|
36
|
-
props[
|
|
38
|
+
props[:policyDocument] = camelize(props[:policyDocument])
|
|
37
39
|
props
|
|
38
40
|
end
|
|
39
41
|
|
|
@@ -41,7 +43,7 @@ module Jets::Authorizer::Helpers
|
|
|
41
43
|
new_value = value.to_s.camelize
|
|
42
44
|
first_char = new_value[0..0].downcase
|
|
43
45
|
new_value[0] = first_char
|
|
44
|
-
new_value
|
|
46
|
+
new_value.to_sym
|
|
45
47
|
end
|
|
46
48
|
end
|
|
47
49
|
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
require "zeitwerk"
|
|
2
|
+
|
|
3
|
+
module Jets
|
|
4
|
+
class Autoloaders
|
|
5
|
+
class GemInflector < Zeitwerk::Inflector
|
|
6
|
+
def camelize(basename, _abspath)
|
|
7
|
+
map = {
|
|
8
|
+
cli: "CLI",
|
|
9
|
+
io: "IO",
|
|
10
|
+
version: "VERSION"
|
|
11
|
+
}
|
|
12
|
+
map[basename.to_sym] || super
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# for jets gem itself
|
|
17
|
+
class Gem
|
|
18
|
+
def autoloader
|
|
19
|
+
loader = Zeitwerk::Loader.new
|
|
20
|
+
loader.tag = "jets.gem"
|
|
21
|
+
loader.inflector = GemInflector.new
|
|
22
|
+
loader.push_dir(lib)
|
|
23
|
+
loader.do_not_eager_load(do_not_eager_load)
|
|
24
|
+
loader.ignore(ignore_paths) # loader.ignore requires full dir or path
|
|
25
|
+
# loader.log!
|
|
26
|
+
loader
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def lib
|
|
30
|
+
File.expand_path("#{__dir__}/../..") # jets/lib
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# For jets/info.rb see Jets::Info property Middleware for why we do not eager load.
|
|
34
|
+
def do_not_eager_load
|
|
35
|
+
paths = %w[
|
|
36
|
+
jets/info.rb
|
|
37
|
+
jets/spec_helpers
|
|
38
|
+
jets/spec_helpers.rb
|
|
39
|
+
jets/commands
|
|
40
|
+
jets/commands.rb
|
|
41
|
+
jets/generators
|
|
42
|
+
jets/generators.rb
|
|
43
|
+
]
|
|
44
|
+
paths.map { |path| "#{lib}/#{path}" } # do_not_eager_load requires full dir or path
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def ignore_paths
|
|
48
|
+
# commands
|
|
49
|
+
paths = %w[
|
|
50
|
+
jets/application/dummy_config.rb
|
|
51
|
+
jets/application/dummy_erb_compiler.rb
|
|
52
|
+
jets/builders/rackup_wrappers
|
|
53
|
+
jets/builders/templates
|
|
54
|
+
jets/commands/templates
|
|
55
|
+
jets/controller/middleware/webpacker_setup.rb
|
|
56
|
+
jets/core_ext
|
|
57
|
+
jets/core_ext.rb
|
|
58
|
+
jets/generator
|
|
59
|
+
jets/overrides
|
|
60
|
+
jets/ruby_version_check.rb
|
|
61
|
+
jets/cli.rb
|
|
62
|
+
jets/commands.rb
|
|
63
|
+
jets/generators/jets/app/ignore
|
|
64
|
+
jets/tasks.rb
|
|
65
|
+
]
|
|
66
|
+
paths.map { |path| "#{lib}/#{path}" }
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_support/inflector"
|
|
4
|
+
|
|
5
|
+
module Jets
|
|
6
|
+
class Autoloaders
|
|
7
|
+
module Inflector # :nodoc:
|
|
8
|
+
# Concurrent::Map is not needed. This is a private class, and overrides
|
|
9
|
+
# must be defined while the application boots.
|
|
10
|
+
@overrides = {}
|
|
11
|
+
|
|
12
|
+
def self.camelize(basename, _abspath)
|
|
13
|
+
@overrides[basename] || basename.camelize
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.inflect(overrides)
|
|
17
|
+
@overrides.merge!(overrides)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/jets/autoloaders.rb
CHANGED
|
@@ -3,113 +3,50 @@ Jets::Bundle.setup
|
|
|
3
3
|
require "zeitwerk"
|
|
4
4
|
|
|
5
5
|
module Jets
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
class Autoloaders
|
|
7
|
+
require_relative "autoloaders/inflector"
|
|
8
|
+
|
|
9
|
+
include Enumerable
|
|
10
|
+
|
|
11
|
+
attr_reader :main, :once
|
|
12
|
+
|
|
13
|
+
def initialize
|
|
14
|
+
# This `require` delays loading the library on purpose.
|
|
15
|
+
#
|
|
16
|
+
# In Rails 7.0.0, railties/lib/rails.rb loaded Zeitwerk as a side-effect,
|
|
17
|
+
# but a couple of edge cases related to Bundler and Bootsnap showed up.
|
|
18
|
+
# They had to do with order of decoration of `Kernel#require`, something
|
|
19
|
+
# the three of them do.
|
|
20
|
+
#
|
|
21
|
+
# Delaying this `require` up to this point is a convenient trade-off.
|
|
22
|
+
require "zeitwerk"
|
|
23
|
+
|
|
24
|
+
@main = Zeitwerk::Loader.new
|
|
25
|
+
@main.tag = "jets.main"
|
|
26
|
+
@main.inflector = Inflector
|
|
27
|
+
|
|
28
|
+
@once = Zeitwerk::Loader.new
|
|
29
|
+
@once.tag = "jets.once"
|
|
30
|
+
@once.inflector = Inflector
|
|
18
31
|
end
|
|
19
32
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
main.log!
|
|
25
|
-
once.log!
|
|
26
|
-
cli.log!
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def main
|
|
30
|
-
Zeitwerk::Loader.new.tap do |loader|
|
|
31
|
-
loader.tag = "jets.main"
|
|
32
|
-
# loader.inflector = Inflector.new # TODO: allow custom app inflector
|
|
33
|
-
# The main loader is configured later on in Jets::Application#setup_autoload_paths
|
|
34
|
-
# because it needs access to Jets.root and Jets.config settings
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
memoize :main
|
|
38
|
-
|
|
39
|
-
def once
|
|
40
|
-
Zeitwerk::Loader.new.tap do |loader|
|
|
41
|
-
loader.tag = "jets.once"
|
|
42
|
-
loader.inflector = OnceInflector.new
|
|
43
|
-
|
|
44
|
-
loader.push_dir("#{__dir__}/..")
|
|
45
|
-
internal_app_paths.each do |path|
|
|
46
|
-
loader.push_dir("#{__dir__}/#{path}")
|
|
47
|
-
# Cannot eager load internal app classes because need the app first for classes like ApplicationHelper
|
|
48
|
-
loader.do_not_eager_load("#{__dir__}/#{path}")
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
internal_turbine_path = "#{__dir__}/internal/turbines"
|
|
52
|
-
loader.push_dir(internal_turbine_path)
|
|
53
|
-
|
|
54
|
-
do_not_eager_load_paths.each do |path|
|
|
55
|
-
loader.do_not_eager_load("#{__dir__}/#{path}")
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
ignore_paths.each do |path|
|
|
59
|
-
loader.ignore("#{__dir__}/#{path}")
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
memoize :once
|
|
64
|
-
|
|
65
|
-
def cli
|
|
66
|
-
Zeitwerk::Loader.new.tap do |loader|
|
|
67
|
-
loader.tag = "jets.cli"
|
|
68
|
-
loader.inflector = OnceInflector.new
|
|
69
|
-
|
|
70
|
-
loader.push_dir("#{__dir__}/commands", namespace: Jets::Commands)
|
|
71
|
-
loader.ignore("#{__dir__}/commands/templates*")
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
memoize :cli
|
|
33
|
+
def each
|
|
34
|
+
yield main
|
|
35
|
+
yield once
|
|
36
|
+
end
|
|
75
37
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
internal/app/controllers
|
|
80
|
-
internal/app/helpers
|
|
81
|
-
internal/app/jobs
|
|
82
|
-
internal/turbines
|
|
83
|
-
]
|
|
84
|
-
end
|
|
38
|
+
def logger=(logger)
|
|
39
|
+
each { |loader| loader.logger = logger }
|
|
40
|
+
end
|
|
85
41
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
cli
|
|
90
|
-
spec_helpers
|
|
91
|
-
spec_helpers.rb
|
|
92
|
-
generator
|
|
93
|
-
]
|
|
94
|
-
end
|
|
42
|
+
def log!
|
|
43
|
+
each(&:log!)
|
|
44
|
+
end
|
|
95
45
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
def ignore_paths
|
|
99
|
-
# eager loading builders/rackup_wrappers - will cause the program to exit
|
|
100
|
-
%w[
|
|
101
|
-
builders/rackup_wrappers
|
|
102
|
-
builders/reconfigure_rails
|
|
103
|
-
builders/templates
|
|
104
|
-
commands
|
|
105
|
-
controller/middleware/webpacker_setup.rb
|
|
106
|
-
core_ext
|
|
107
|
-
internal
|
|
108
|
-
overrides
|
|
109
|
-
turbo/project
|
|
110
|
-
]
|
|
111
|
-
end
|
|
46
|
+
def self.for_gem
|
|
47
|
+
Gem.new.autoloader
|
|
112
48
|
end
|
|
113
49
|
end
|
|
114
50
|
end
|
|
115
51
|
|
|
52
|
+
require_relative "autoloaders/gem"
|
|
@@ -55,7 +55,7 @@ module Jets::AwsServices
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
# Lookup output value.
|
|
58
|
-
# Used in Jets::Resource::ApiGateway::RestApi::* andJets::Commands::Url
|
|
58
|
+
# Used in Jets::Cfn::Resource::ApiGateway::RestApi::* andJets::Commands::Url
|
|
59
59
|
def lookup(outputs, key)
|
|
60
60
|
out = outputs.find { |o| o.output_key == key }
|
|
61
61
|
out&.output_value
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_support/backtrace_cleaner"
|
|
4
|
+
require "active_support/core_ext/string/access"
|
|
5
|
+
|
|
6
|
+
module Jets
|
|
7
|
+
class BacktraceCleaner < ActiveSupport::BacktraceCleaner
|
|
8
|
+
APP_DIRS_PATTERN = /\A(?:\.\/)?(?:app|config|lib|test|\(\w*\))/
|
|
9
|
+
RENDER_TEMPLATE_PATTERN = /:in `.*_\w+_{2,3}\d+_\d+'/
|
|
10
|
+
|
|
11
|
+
def initialize
|
|
12
|
+
super
|
|
13
|
+
@root = "#{Jets.root}/"
|
|
14
|
+
add_filter do |line|
|
|
15
|
+
line.start_with?(@root) ? line.from(@root.size) : line
|
|
16
|
+
end
|
|
17
|
+
add_filter do |line|
|
|
18
|
+
if RENDER_TEMPLATE_PATTERN.match?(line)
|
|
19
|
+
line.sub(RENDER_TEMPLATE_PATTERN, "")
|
|
20
|
+
else
|
|
21
|
+
line
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
add_silencer { |line| !APP_DIRS_PATTERN.match?(line) }
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/jets/booter.rb
CHANGED
|
@@ -1,133 +1,35 @@
|
|
|
1
|
-
require "jets/core_ext/kernel" # Hack prevents
|
|
1
|
+
require "jets/core_ext/kernel" # Hack prevents Jets const from being defined
|
|
2
2
|
|
|
3
3
|
class Jets::Booter
|
|
4
4
|
class << self
|
|
5
5
|
@booted = false
|
|
6
6
|
def boot!
|
|
7
7
|
return if @booted
|
|
8
|
-
|
|
9
8
|
confirm_jets_project!
|
|
10
|
-
Jets::Bundle.require
|
|
11
|
-
|
|
12
|
-
Jets.application.setup!
|
|
13
|
-
check_ruby_version!
|
|
14
|
-
|
|
15
|
-
# Turbines are loaded after setup_autoload_paths in Jets.application.setup! Some Turbine options are defined
|
|
16
|
-
# in the project so setup must happen before internal Turbines are loaded.
|
|
17
|
-
load_internal_turbines
|
|
18
|
-
|
|
19
|
-
run_turbines(:initializers)
|
|
20
|
-
# Load configs after Turbine initializers so Turbines can defined some config options and they are available in
|
|
21
|
-
# user's project environment configs.
|
|
22
|
-
Jets.application.configs!
|
|
23
|
-
app_initializers
|
|
24
|
-
run_turbines(:after_initializers)
|
|
25
|
-
Jets.application.finish!
|
|
26
9
|
|
|
27
|
-
|
|
28
|
-
#
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
# TODO: Figure out how to build middleware during Jets.boot without breaking jets new and webpacker:install
|
|
33
|
-
# build_middleware_stack
|
|
10
|
+
# Registration phase
|
|
11
|
+
Jets::Bundle.require # engine config and register initializers
|
|
12
|
+
load_internal_engine # internal engine initializers
|
|
13
|
+
require_application! # override with user customizations
|
|
34
14
|
|
|
15
|
+
# Run phase
|
|
16
|
+
Jets.application.initialize!
|
|
35
17
|
@booted = true
|
|
36
18
|
end
|
|
37
19
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
load_shared_extensions
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Shared extensions are added near the end because they require the Jets app load paths to first.
|
|
44
|
-
# We eager load the extensions and then use the loaded modules to extend Jets::Stack directly.
|
|
45
|
-
# Originally used an included hook but thats too early before app/shared/extensions is in the load_path.
|
|
46
|
-
def load_shared_extensions
|
|
47
|
-
base_path = "#{Jets.root}/app/shared/extensions"
|
|
48
|
-
Dir.glob("#{base_path}/**/*.rb").each do |path|
|
|
49
|
-
next unless File.file?(path)
|
|
20
|
+
def require_application!
|
|
21
|
+
require ENGINE_PATH if defined?(ENGINE_PATH)
|
|
50
22
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def eager_load
|
|
58
|
-
preload_extensions
|
|
59
|
-
Jets::Autoloaders.main.eager_load # Eager load project code. Rather have user find out early than later on AWS Lambda.
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def preload_extensions
|
|
63
|
-
base_path = "#{Jets.root}/app/extensions"
|
|
64
|
-
Dir.glob("#{base_path}/**/*.rb").each do |path|
|
|
65
|
-
next unless File.file?(path)
|
|
66
|
-
|
|
67
|
-
class_name = path.sub("#{base_path}/", '').sub(/\.rb/,'').camelize
|
|
68
|
-
klass = class_name.constantize # autoload
|
|
69
|
-
Jets::Lambda::Functions.extend(klass)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# Using ActiveRecord outside of Rails, so we need to set up the db connection ourself.
|
|
74
|
-
#
|
|
75
|
-
# Only connects to database for ActiveRecord and when config/database.yml exists.
|
|
76
|
-
# Dynomite handles connecting to the clients lazily.
|
|
77
|
-
def setup_db
|
|
78
|
-
return unless File.exist?("#{Jets.root}/config/database.yml")
|
|
79
|
-
|
|
80
|
-
db_configs = Jets.application.config.database
|
|
81
|
-
# DatabaseTasks.database_configuration for db:create db:migrate tasks
|
|
82
|
-
# Documented in DatabaseTasks that this is the right way to set it when
|
|
83
|
-
# using ActiveRecord rake tasks outside of Rails.
|
|
84
|
-
ActiveRecord::Tasks::DatabaseTasks.database_configuration = db_configs
|
|
85
|
-
|
|
86
|
-
if db_configs.configs_for(env_name: Jets.env).blank?
|
|
87
|
-
abort("ERROR: config/database.yml exists but no environment section configured for #{Jets.env}")
|
|
88
|
-
end
|
|
89
|
-
ActiveRecord::Base.configurations = db_configs
|
|
90
|
-
connect_db
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
# Eager connect to database, so connections are established in the Lambda Execution Context and get reused.
|
|
94
|
-
# Interestingly, the connections info is stored in the shared state but the connection doesnt show up on
|
|
95
|
-
# `show processlist` until after a query. Have confirmed that the connection is reused and the connection count stays
|
|
96
|
-
# the same.
|
|
97
|
-
def connect_db
|
|
98
|
-
if ActiveRecord::Base.legacy_connection_handling
|
|
99
|
-
primary_hash_config = ActiveRecord::Base.configurations.configs_for(env_name: Jets.env).find { |hash_config|
|
|
100
|
-
hash_config.name == "primary"
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
primary_config = primary_hash_config.configuration_hash # configuration_hash is a normal Ruby Hash
|
|
104
|
-
|
|
105
|
-
ActiveRecord::Base.establish_connection(primary_config)
|
|
23
|
+
if defined?(APP_PATH)
|
|
24
|
+
check_old_jets_code!
|
|
25
|
+
require APP_PATH
|
|
106
26
|
else
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
databases = { }
|
|
110
|
-
databases[:writing] = :primary if configs.any? { |config| config.name == "primary" }
|
|
111
|
-
databases[:reading] = :primary_replica if configs.any? { |config| config.name == "primary_replica" }
|
|
112
|
-
|
|
113
|
-
ActiveRecord::Base.connects_to database: databases
|
|
27
|
+
require "#{Jets.root}/config/application"
|
|
114
28
|
end
|
|
115
29
|
end
|
|
116
30
|
|
|
117
|
-
def
|
|
118
|
-
|
|
119
|
-
Jets::Mailer # only one right now
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
# All Turbines
|
|
124
|
-
def turbine_initializers
|
|
125
|
-
Jets::Turbine.subclasses.each do |subclass|
|
|
126
|
-
initializers = subclass.initializers || []
|
|
127
|
-
initializers.each do |label, block|
|
|
128
|
-
block.call(Jets.application)
|
|
129
|
-
end
|
|
130
|
-
end
|
|
31
|
+
def load_internal_engine
|
|
32
|
+
require File.expand_path("../../engines/internal/lib/internal/engine.rb", __dir__)
|
|
131
33
|
end
|
|
132
34
|
|
|
133
35
|
# All Turbines
|
|
@@ -137,30 +39,27 @@ class Jets::Booter
|
|
|
137
39
|
end
|
|
138
40
|
end
|
|
139
41
|
|
|
140
|
-
# run_turbines(:initializers)
|
|
141
|
-
# run_turbines(:after_initializers)
|
|
142
|
-
def run_turbines(name)
|
|
143
|
-
Jets::Turbine.subclasses.each do |subclass|
|
|
144
|
-
hooks = subclass.send(name) || []
|
|
145
|
-
hooks.each do |label, block|
|
|
146
|
-
block.call(Jets.application)
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
# Builds and memoize stack so it only gets built on bootup
|
|
152
|
-
def build_middleware_stack
|
|
153
|
-
Jets.application.build_stack
|
|
154
|
-
end
|
|
155
|
-
|
|
156
42
|
# Cannot call this for the jets new
|
|
43
|
+
# We check that within a jets project again as Jets.boot
|
|
44
|
+
# Also checked in the jets/cli.rb more generally
|
|
157
45
|
def confirm_jets_project!
|
|
46
|
+
return if defined?(ENGINE_PATH)
|
|
158
47
|
unless File.exist?("#{Jets.root}/config/application.rb")
|
|
159
48
|
puts "It does not look like you are running this command within a jets project. Please confirm that you are in a jets project and try again.".color(:red)
|
|
160
49
|
exit 1
|
|
161
50
|
end
|
|
162
51
|
end
|
|
163
52
|
|
|
53
|
+
def check_old_jets_code!
|
|
54
|
+
application_rb = "#{Jets.root}/config/application.rb"
|
|
55
|
+
return unless File.exist?(application_rb)
|
|
56
|
+
return if File.read(application_rb).include?(' < Jets::Application')
|
|
57
|
+
puts "ERROR: Based on config/application.rb, it looks like your app code was written with an older version of Jets.".color(:red)
|
|
58
|
+
puts "Please install and run the jets-upgrade command to upgrade your project."
|
|
59
|
+
puts " jets-upgrade go".color(:green)
|
|
60
|
+
exit 1
|
|
61
|
+
end
|
|
62
|
+
|
|
164
63
|
def message
|
|
165
64
|
"Jets booting up in #{Jets.env.color(:green)} mode!"
|
|
166
65
|
end
|
|
@@ -171,55 +70,9 @@ class Jets::Booter
|
|
|
171
70
|
puts 'The config.ru file is missing Jets.boot. Please add Jets.boot after require "jets"'.color(:red)
|
|
172
71
|
puts "This was changed as made in Jets v1.1.0."
|
|
173
72
|
puts "To have Jets update the config.fu file for you, you can run:\n\n"
|
|
174
|
-
puts "
|
|
73
|
+
puts " jets-upgrade"
|
|
175
74
|
exit 1
|
|
176
75
|
end
|
|
177
76
|
end
|
|
178
|
-
|
|
179
|
-
def check_ruby_version!
|
|
180
|
-
return if ENV['JETS_RUBY_CHECK'] == '0'
|
|
181
|
-
return if !Jets.config.ruby.check
|
|
182
|
-
return if ruby_version_supported?
|
|
183
|
-
|
|
184
|
-
puts <<~EOL.color(:red)
|
|
185
|
-
You are using Ruby #{RUBY_VERSION}
|
|
186
|
-
AWS Lambda does not support this version.
|
|
187
|
-
Please use one of the supported Ruby versions: #{supported_ruby_versions.join(' ')}
|
|
188
|
-
EOL
|
|
189
|
-
|
|
190
|
-
puts <<~EOL
|
|
191
|
-
If you would like to skip this check, you can set: JETS_RUBY_CHECK=0 or configure
|
|
192
|
-
|
|
193
|
-
config/application.rb
|
|
194
|
-
|
|
195
|
-
Jets.application.configure do
|
|
196
|
-
config.ruby.check = false
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
Or if you want to allow additional Ruby versions, then configure:
|
|
200
|
-
|
|
201
|
-
config/application.rb
|
|
202
|
-
|
|
203
|
-
Jets.application.configure do
|
|
204
|
-
config.ruby.supported_versions = ["2.5", "2.7", "3.2"]
|
|
205
|
-
end
|
|
206
|
-
|
|
207
|
-
Note: If AWS Lambda does not officially support the Ruby version,
|
|
208
|
-
you'll need to also provide the Ruby Custom Runtime Layer.
|
|
209
|
-
Related Docs: https://rubyonjets.com/docs/extras/custom-runtime/
|
|
210
|
-
EOL
|
|
211
|
-
exit 1
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
def ruby_version_supported?
|
|
215
|
-
md = RUBY_VERSION.match(/(\d+)\.(\d+)\.\d+/)
|
|
216
|
-
major, minor = md[1], md[2]
|
|
217
|
-
detected_ruby = [major, minor].join('.')
|
|
218
|
-
supported_ruby_versions.include?(detected_ruby)
|
|
219
|
-
end
|
|
220
|
-
|
|
221
|
-
def supported_ruby_versions
|
|
222
|
-
Jets.config.ruby.supported_versions
|
|
223
|
-
end
|
|
224
77
|
end
|
|
225
78
|
end
|