jets 3.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +5 -1
- data/CHANGELOG.md +141 -0
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/README.md +21 -43
- data/Rakefile +3 -3
- data/backers.md +0 -5
- 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/engines/internal/app/functions/jets/base_path.rb +109 -0
- data/engines/internal/app/functions/jets/base_path_mapping.rb +191 -0
- 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 +16 -13
- 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 -199
- 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_info.rb +2 -2
- data/lib/jets/aws_services/stack_status.rb +1 -1
- data/lib/jets/aws_services.rb +8 -0
- data/lib/jets/backtrace_cleaner.rb +27 -0
- data/lib/jets/booter.rb +30 -118
- data/lib/jets/builders/code_builder.rb +64 -122
- data/lib/jets/builders/code_size.rb +1 -0
- data/lib/jets/builders/gem_replacer.rb +6 -12
- 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 +54 -10
- 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} +11 -21
- data/lib/jets/cfn/builder/api/gateway.rb +104 -0
- 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/builder/interface.rb +146 -0
- 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/builder/parent.rb +149 -0
- 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} +5 -4
- 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 +14 -4
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +15 -41
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +3 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +6 -6
- 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 +27 -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 +22 -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/cfn/resource/iam/base_role_definition.rb +56 -0
- 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/cfn/resource/iam/policy.rb +31 -0
- 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 +9 -7
- 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 +30 -16
- data/lib/jets/cfn/status.rb +1 -1
- data/lib/jets/cfn/template.rb +89 -0
- data/lib/jets/cfn/upload.rb +26 -23
- data/lib/jets/cli.rb +28 -203
- 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/runner.md +40 -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 +5 -5
- 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 +4 -4
- 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} +30 -49
- 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/url_command.rb +92 -0
- 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} +41 -4
- 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 -18
- 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 +153 -50
- data/lib/jets/core_ext/file.rb +9 -0
- 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 +5 -2
- data/lib/jets/dotenv.rb +4 -3
- 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/erb.rb +1 -1
- 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 +139 -0
- data/lib/jets/generators/overrides/app/templates/.env +10 -0
- data/lib/jets/{commands/templates/skeleton/.gitignore → generators/overrides/app/templates/.gitignore.tt} +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/inflections.rb +1 -1
- data/lib/jets/info.rb +116 -0
- data/lib/jets/initializable.rb +95 -0
- data/lib/jets/job/base.rb +5 -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/job/helpers/sns_event_helper.rb +8 -0
- data/lib/jets/job/helpers/sqs_event_helper.rb +8 -0
- 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 +73 -54
- 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/hash_converter.rb +2 -2
- data/lib/jets/mega/request/source.rb +1 -2
- data/lib/jets/mega/request.rb +4 -4
- data/lib/jets/names.rb +79 -0
- 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 +26 -33
- 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 +140 -17
- 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 -90
- data/lib/jets/router/route_set.rb +214 -0
- data/lib/jets/router/scope.rb +204 -69
- data/lib/jets/router/state.rb +67 -0
- data/lib/jets/router/util.rb +1 -31
- data/lib/jets/router.rb +64 -150
- 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 -19
- 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/tmp_loader.rb +1 -1
- 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/util/yamler.rb +16 -0
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +8 -14
- metadata +444 -347
- data/.python-version +0 -1
- data/.ruby-version +0 -1
- data/bin/release +0 -9
- data/lib/jets/application/defaults.rb +0 -200
- 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_gateway_builder.rb +0 -123
- data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
- data/lib/jets/cfn/builders/base_child_builder.rb +0 -69
- 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/interface.rb +0 -133
- data/lib/jets/cfn/builders/job_builder.rb +0 -14
- data/lib/jets/cfn/builders/parent_builder.rb +0 -130
- data/lib/jets/cfn/built_template.rb +0 -15
- data/lib/jets/cfn/template_source.rb +0 -61
- data/lib/jets/commands/base.rb +0 -145
- data/lib/jets/commands/call.rb +0 -182
- data/lib/jets/commands/clean.rb +0 -19
- data/lib/jets/commands/configure.rb +0 -51
- data/lib/jets/commands/console.rb +0 -12
- 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/runner.md +0 -17
- 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 -166
- 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 -105
- 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 -71
- 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 -19
- 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/url.rb +0 -69
- 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/functions/jets/base_path.rb +0 -18
- data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +0 -100
- data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -70
- 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/naming.rb +0 -63
- 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/iam/base_role_definition.rb +0 -47
- 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/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"
|
data/lib/jets/aws_info.rb
CHANGED
|
@@ -73,7 +73,7 @@ module Jets
|
|
|
73
73
|
return "fake-test-s3-bucket" if Jets.env.test?
|
|
74
74
|
return @@s3_bucket unless @@s3_bucket == BUCKET_DOES_NOT_YET_EXIST
|
|
75
75
|
|
|
76
|
-
resp = cfn.describe_stacks(stack_name: Jets::
|
|
76
|
+
resp = cfn.describe_stacks(stack_name: Jets::Names.parent_stack_name)
|
|
77
77
|
stack = resp.stacks.first
|
|
78
78
|
output = stack["outputs"].find { |o| o["output_key"] == "S3Bucket" }
|
|
79
79
|
@@s3_bucket = output["output_value"] # s3_bucket
|
|
@@ -83,7 +83,7 @@ module Jets
|
|
|
83
83
|
# not been loaded in the config yet. We do some trickery with loading
|
|
84
84
|
# the config twice in Application#load_app_config
|
|
85
85
|
# The first load will result in a Aws::CloudFormation::Errors::ValidationError
|
|
86
|
-
# since the Jets::
|
|
86
|
+
# since the Jets::Names.parent_stack_name has not been properly set yet.
|
|
87
87
|
#
|
|
88
88
|
# Rescuing all exceptions in case there are other exceptions dont know about yet
|
|
89
89
|
# Here are the known ones: Aws::CloudFormation::Errors::ValidationError, Aws::CloudFormation::Errors::InvalidClientTokenId
|
|
@@ -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
|
data/lib/jets/aws_services.rb
CHANGED
|
@@ -86,10 +86,18 @@ module Jets::AwsServices
|
|
|
86
86
|
retry_limit: 7, # default: 3
|
|
87
87
|
retry_base_delay: 0.6, # default: 0.3
|
|
88
88
|
}
|
|
89
|
+
# See debug logger. Noisy.
|
|
90
|
+
# Example:
|
|
91
|
+
# D, [2022-12-02T13:18:55.298788 #26182] DEBUG -- : [Aws::APIGateway::Client 200 0.030837 0 retries] get_method(rest_api_id:"mke40eh6l0",resource_id:"zf8w2m",http_method:"GET")
|
|
89
92
|
options.merge!(
|
|
90
93
|
log_level: :debug,
|
|
91
94
|
logger: Logger.new($stdout),
|
|
92
95
|
) if ENV['JETS_DEBUG_AWS_SDK']
|
|
96
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/debugging.html to enable http_wire_trace
|
|
97
|
+
# See the HTTP headers and JSON responses. Super noisy.
|
|
98
|
+
options.merge!(
|
|
99
|
+
http_wire_trace: true,
|
|
100
|
+
) if ENV['JETS_DEBUG_AWS_SDK_HTTP_WIRE_TRACE']
|
|
93
101
|
options
|
|
94
102
|
end
|
|
95
103
|
end
|
|
@@ -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,120 +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
|
-
|
|
14
|
-
# Turbines are loaded after setup_autoload_paths in Jets.application.setup! Some Turbine options are defined
|
|
15
|
-
# in the project so setup must happen before internal Turbines are loaded.
|
|
16
|
-
load_internal_turbines
|
|
17
|
-
|
|
18
|
-
run_turbines(:initializers)
|
|
19
|
-
# Load configs after Turbine initializers so Turbines can defined some config options and they are available in
|
|
20
|
-
# user's project environment configs.
|
|
21
|
-
Jets.application.configs!
|
|
22
|
-
app_initializers
|
|
23
|
-
run_turbines(:after_initializers)
|
|
24
|
-
Jets.application.finish!
|
|
25
9
|
|
|
26
|
-
|
|
27
|
-
#
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# TODO: Figure out how to build middleware during Jets.boot without breaking jets new and webpacker:install
|
|
32
|
-
# 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
|
|
33
14
|
|
|
15
|
+
# Run phase
|
|
16
|
+
Jets.application.initialize!
|
|
34
17
|
@booted = true
|
|
35
18
|
end
|
|
36
19
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
load_shared_extensions
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
# Shared extensions are added near the end because they require the Jets app load paths to first.
|
|
43
|
-
# We eager load the extensions and then use the loaded modules to extend Jets::Stack directly.
|
|
44
|
-
# Originally used an included hook but thats too early before app/shared/extensions is in the load_path.
|
|
45
|
-
def load_shared_extensions
|
|
46
|
-
base_path = "#{Jets.root}/app/shared/extensions"
|
|
47
|
-
Dir.glob("#{base_path}/**/*.rb").each do |path|
|
|
48
|
-
next unless File.file?(path)
|
|
49
|
-
|
|
50
|
-
class_name = path.sub("#{base_path}/", '').sub(/\.rb/,'').camelize
|
|
51
|
-
mod = class_name.constantize # autoload
|
|
52
|
-
Jets::Stack.extend(mod)
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def eager_load
|
|
57
|
-
preload_extensions
|
|
58
|
-
Jets::Autoloaders.main.eager_load # Eager load project code. Rather have user find out early than later on AWS Lambda.
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def preload_extensions
|
|
62
|
-
base_path = "#{Jets.root}/app/extensions"
|
|
63
|
-
Dir.glob("#{base_path}/**/*.rb").each do |path|
|
|
64
|
-
next unless File.file?(path)
|
|
65
|
-
|
|
66
|
-
class_name = path.sub("#{base_path}/", '').sub(/\.rb/,'').camelize
|
|
67
|
-
klass = class_name.constantize # autoload
|
|
68
|
-
Jets::Lambda::Functions.extend(klass)
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
# Using ActiveRecord outside of Rails, so we need to set up the db connection ourself.
|
|
73
|
-
#
|
|
74
|
-
# Only connects to database for ActiveRecord and when config/database.yml exists.
|
|
75
|
-
# Dynomite handles connecting to the clients lazily.
|
|
76
|
-
def setup_db
|
|
77
|
-
return unless File.exist?("#{Jets.root}/config/database.yml")
|
|
78
|
-
|
|
79
|
-
db_configs = Jets.application.config.database
|
|
80
|
-
# DatabaseTasks.database_configuration for db:create db:migrate tasks
|
|
81
|
-
# Documented in DatabaseTasks that this is the right way to set it when
|
|
82
|
-
# using ActiveRecord rake tasks outside of Rails.
|
|
83
|
-
ActiveRecord::Tasks::DatabaseTasks.database_configuration = db_configs
|
|
84
|
-
|
|
85
|
-
if db_configs.configs_for(env_name: Jets.env).blank?
|
|
86
|
-
abort("ERROR: config/database.yml exists but no environment section configured for #{Jets.env}")
|
|
87
|
-
end
|
|
88
|
-
ActiveRecord::Base.configurations = db_configs
|
|
89
|
-
connect_db
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
# Eager connect to database, so connections are established in the Lambda Execution Context and get reused.
|
|
93
|
-
# Interestingly, the connections info is stored in the shared state but the connection doesnt show up on
|
|
94
|
-
# `show processlist` until after a query. Have confirmed that the connection is reused and the connection count stays
|
|
95
|
-
# the same.
|
|
96
|
-
def connect_db
|
|
97
|
-
primary_hash_config = ActiveRecord::Base.configurations.configs_for(env_name: Jets.env).find { |hash_config|
|
|
98
|
-
hash_config.name == "primary"
|
|
99
|
-
}
|
|
100
|
-
primary_config = primary_hash_config.configuration_hash # configuration_hash is a normal Ruby Hash
|
|
101
|
-
ActiveRecord::Base.establish_connection(primary_config)
|
|
102
|
-
end
|
|
20
|
+
def require_application!
|
|
21
|
+
require ENGINE_PATH if defined?(ENGINE_PATH)
|
|
103
22
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
23
|
+
if defined?(APP_PATH)
|
|
24
|
+
check_old_jets_code!
|
|
25
|
+
require APP_PATH
|
|
26
|
+
else
|
|
27
|
+
require "#{Jets.root}/config/application"
|
|
107
28
|
end
|
|
108
29
|
end
|
|
109
30
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
Jets::Turbine.subclasses.each do |subclass|
|
|
113
|
-
initializers = subclass.initializers || []
|
|
114
|
-
initializers.each do |label, block|
|
|
115
|
-
block.call(Jets.application)
|
|
116
|
-
end
|
|
117
|
-
end
|
|
31
|
+
def load_internal_engine
|
|
32
|
+
require File.expand_path("../../engines/internal/lib/internal/engine.rb", __dir__)
|
|
118
33
|
end
|
|
119
34
|
|
|
120
35
|
# All Turbines
|
|
@@ -124,30 +39,27 @@ class Jets::Booter
|
|
|
124
39
|
end
|
|
125
40
|
end
|
|
126
41
|
|
|
127
|
-
# run_turbines(:initializers)
|
|
128
|
-
# run_turbines(:after_initializers)
|
|
129
|
-
def run_turbines(name)
|
|
130
|
-
Jets::Turbine.subclasses.each do |subclass|
|
|
131
|
-
hooks = subclass.send(name) || []
|
|
132
|
-
hooks.each do |label, block|
|
|
133
|
-
block.call(Jets.application)
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
# Builds and memoize stack so it only gets built on bootup
|
|
139
|
-
def build_middleware_stack
|
|
140
|
-
Jets.application.build_stack
|
|
141
|
-
end
|
|
142
|
-
|
|
143
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
|
|
144
45
|
def confirm_jets_project!
|
|
46
|
+
return if defined?(ENGINE_PATH)
|
|
145
47
|
unless File.exist?("#{Jets.root}/config/application.rb")
|
|
146
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)
|
|
147
49
|
exit 1
|
|
148
50
|
end
|
|
149
51
|
end
|
|
150
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
|
+
|
|
151
63
|
def message
|
|
152
64
|
"Jets booting up in #{Jets.env.color(:green)} mode!"
|
|
153
65
|
end
|
|
@@ -158,7 +70,7 @@ class Jets::Booter
|
|
|
158
70
|
puts 'The config.ru file is missing Jets.boot. Please add Jets.boot after require "jets"'.color(:red)
|
|
159
71
|
puts "This was changed as made in Jets v1.1.0."
|
|
160
72
|
puts "To have Jets update the config.fu file for you, you can run:\n\n"
|
|
161
|
-
puts "
|
|
73
|
+
puts " jets-upgrade"
|
|
162
74
|
exit 1
|
|
163
75
|
end
|
|
164
76
|
end
|