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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4381b93c9ea3d4e8a1f44bbe065e85fc0c6da59cc1d59ef7cc3deb29411b107f
|
|
4
|
+
data.tar.gz: 6afa841f9b10dcf4526179ddfe5dd9d211ce38d9117f2442b092bb1f8d2bc424
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 64cc06c217190f64c0e5e446bd6aad780048c5673f64f6611bc3871ecfc295083440be55d98d222d5955d19285ba3252cb371043f679d48e74b6a676541ce3df
|
|
7
|
+
data.tar.gz: 8be226ddfa30be1b57dca669eff636b9e07a0ab8bc63e77901a1f398e2c9ab7cbc7a9f6589a6e98135f4abffc5492777e0cda9543d5c598fda1d77dbcfb0658a
|
data/.gitignore
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
_yardoc
|
|
8
8
|
coverage
|
|
9
9
|
doc/
|
|
10
|
+
docs/
|
|
10
11
|
InstalledFiles
|
|
11
12
|
lib/bundler/man
|
|
12
13
|
pkg
|
|
@@ -15,10 +16,13 @@ spec/reports
|
|
|
15
16
|
test/tmp
|
|
16
17
|
test/version_tmp
|
|
17
18
|
tmp
|
|
19
|
+
node_modules
|
|
18
20
|
|
|
19
21
|
.codebuild/definitions
|
|
20
22
|
/html
|
|
21
23
|
/demo
|
|
22
24
|
Gemfile.lock
|
|
23
|
-
spec/fixtures/
|
|
25
|
+
spec/fixtures/demo/dynamodb/migrate
|
|
26
|
+
spec/fixtures/demo/public/assets
|
|
24
27
|
spec/fixtures/project/handlers
|
|
28
|
+
yarn.lock
|
data/CHANGELOG.md
CHANGED
|
@@ -3,34 +3,62 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
|
6
|
-
## [
|
|
7
|
-
|
|
6
|
+
## [5.0.0] - Unreleased
|
|
7
|
+
Single Lambda Function for Controllers
|
|
8
|
+
* For controllers, a single Lambda function is deployed going forward.
|
|
9
|
+
* APIGW serves as proxy endpoint for requests to the single Lambda function. Techniquely, there are 2 APIGW endpoints.
|
|
10
|
+
* Jobs and other classes still create a discrete lambda function per Ruby method.
|
|
11
|
+
|
|
12
|
+
Jets Engines support
|
|
13
|
+
* Jets Engines closely resemble Rails engines.
|
|
14
|
+
* Use as many Rails middlewares as possible
|
|
15
|
+
|
|
16
|
+
Jets Controllers are "ActionController and ActionView compatible."
|
|
17
|
+
* View Scope has first-class citizens access to Jets Controller instances.
|
|
18
|
+
* Breaking Change: `resources :posts` and `delete` route method routes to controller `destroy` method like rails instead of `delete` method.
|
|
19
|
+
|
|
20
|
+
Jets Controllers now support:
|
|
21
|
+
* around filters
|
|
22
|
+
* cache control and etag caching support
|
|
23
|
+
* content security policy
|
|
24
|
+
* cookies support via actionpack
|
|
25
|
+
* flash support
|
|
26
|
+
* forgery protection improvements
|
|
27
|
+
* importmap support
|
|
28
|
+
* i18n support
|
|
29
|
+
|
|
30
|
+
New Jets CLI structure that
|
|
31
|
+
* Close to Rails CLI structure
|
|
32
|
+
|
|
33
|
+
Jets Pro support
|
|
34
|
+
* deploys, release history, rollback support
|
|
35
|
+
* use jets-api gem
|
|
36
|
+
|
|
37
|
+
Refactor CloudFormation Builders
|
|
38
|
+
* Use CamelCase properties internally
|
|
39
|
+
* Short name template filenames and class names without the _builder.
|
|
40
|
+
* Fully qualify LambdaFunction logical id.
|
|
41
|
+
|
|
42
|
+
Misc
|
|
43
|
+
* Remove afterburner turbo and mega mode to prepare for container-based Rails support.
|
|
44
|
+
* Autoloaders refactor. gem (Jets internal), main (user app), once (user app)
|
|
45
|
+
* CORS via with middleware only.
|
|
46
|
+
* Improve ActionMailer integration. Improve preview support.
|
|
47
|
+
* logger active support logger and tagged logging support
|
|
48
|
+
* dynamodb event conventional table namespace
|
|
49
|
+
* enable iot rule by default bug fix
|
|
50
|
+
* create named route methods for all CRUD actions
|
|
51
|
+
* Jets.cache support
|
|
52
|
+
|
|
53
|
+
Breaking changes:
|
|
54
|
+
* Pass request.headers straight without downcase. IE: `X-Amzn-Trace-Id`. Introduce request.downcase_headers instead.
|
|
55
|
+
* Jets.config.prewarm.concurrency option removed.
|
|
56
|
+
* dynomite decoupling and integration improvements
|
|
8
57
|
|
|
9
|
-
## [4.0.16] - 2025-10-11
|
|
10
|
-
- update serverlessgems dependency to 0.4.2
|
|
11
|
-
|
|
12
|
-
## [4.0.15] - 2025-10-10
|
|
13
|
-
- update GEM_REGEXP match -gnu for Gemfile.lock rewrite
|
|
14
|
-
|
|
15
|
-
## [4.0.14] - 2025-10-08
|
|
16
|
-
- require logger before bundler in bin/webpack
|
|
17
|
-
|
|
18
|
-
## [4.0.13] - 2025-10-08
|
|
19
|
-
- require logger and pin activemodel 6.1.7
|
|
20
|
-
|
|
21
|
-
## [4.0.12] - 2024-06-13
|
|
22
|
-
- revert loosen rails gem dependencies
|
|
23
|
-
|
|
24
|
-
## [4.0.11] - 2024-06-13
|
|
25
|
-
- fix prewarming error post deploy
|
|
26
|
-
|
|
27
|
-
## [4.0.10] - 2023-12-04
|
|
28
|
-
- [#678](https://github.com/boltops-tools/jets/pull/678) handle option method or http_method from route state
|
|
29
58
|
|
|
30
59
|
## [4.0.9] - 2023-12-03
|
|
31
60
|
- [#674](https://github.com/boltops-tools/jets/pull/674) Fix broken --mode jobs new project generation
|
|
32
61
|
- [#675](https://github.com/boltops-tools/jets/pull/675) Add resource tags to CloudFormation stack
|
|
33
|
-
|
|
34
62
|
## [4.0.8] - 2023-12-03
|
|
35
63
|
- [#677](https://github.com/boltops-tools/jets/pull/677) pin dynomite 1.2.7
|
|
36
64
|
|
|
@@ -49,6 +77,7 @@ This project *loosely tries* to adhere to [Semantic Versioning](http://semver.or
|
|
|
49
77
|
|
|
50
78
|
## [4.0.3] - 2023-08-03
|
|
51
79
|
- [#657](https://github.com/boltops-tools/jets/pull/657) [Fix] ApiGateway for local Middleware: fix query_string_parameters
|
|
80
|
+
Breaking Changes:
|
|
52
81
|
|
|
53
82
|
## [4.0.2] - 2023-08-03
|
|
54
83
|
- [#660](https://github.com/boltops-tools/jets/pull/660) Fix prewarming
|
data/Gemfile
CHANGED
|
@@ -4,11 +4,7 @@ source "https://rubygems.org"
|
|
|
4
4
|
gemspec
|
|
5
5
|
|
|
6
6
|
# required here for specs
|
|
7
|
-
# TODO: Only require webpacker in Gemfile of project if possible.
|
|
8
|
-
# Need both because of jets/application.rb and jets/webpacker/middleware_setup.rb
|
|
9
7
|
group :development, :test do
|
|
10
8
|
gem "mysql2", "~> 0.5.2"
|
|
11
|
-
gem "dynomite"
|
|
12
|
-
gem "jetpacker"
|
|
13
|
-
gem "rspec_junit_formatter"
|
|
9
|
+
gem "dynomite", "~> 2.0.0"
|
|
14
10
|
end
|
data/LICENSE.txt
CHANGED
data/Rakefile
CHANGED
|
@@ -8,10 +8,11 @@ task :default => :spec
|
|
|
8
8
|
RSpec::Core::RakeTask.new
|
|
9
9
|
|
|
10
10
|
require_relative "lib/jets"
|
|
11
|
+
|
|
11
12
|
desc "Generates cli reference docs as markdown"
|
|
12
13
|
task :docs do
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
require "cli_markdown_jets"
|
|
15
|
+
CliMarkdown::Creator.new.create_all
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
# Thanks: https://docs.ruby-lang.org/en/2.1.0/RDoc/Task.html
|
|
@@ -21,4 +22,3 @@ require 'jets/rdoc'
|
|
|
21
22
|
RDoc::Task.new do |rdoc|
|
|
22
23
|
rdoc.options += Jets::Rdoc.options
|
|
23
24
|
end
|
|
24
|
-
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Jets::ApplicationController < Jets::Controller::Base # :nodoc:
|
|
4
|
+
prepend_view_path File.expand_path("../../../app/views", __dir__)
|
|
5
|
+
layout "application"
|
|
6
|
+
|
|
7
|
+
before_action :disable_content_security_policy_nonce!
|
|
8
|
+
|
|
9
|
+
content_security_policy do |policy|
|
|
10
|
+
policy.script_src :self, :unsafe_inline
|
|
11
|
+
policy.style_src :self, :unsafe_inline
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
def require_local!
|
|
16
|
+
unless local_request?
|
|
17
|
+
render html: "<p>For security purposes, this information is only available to local requests.</p>".html_safe, status: :forbidden
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def local_request?
|
|
22
|
+
Jets.application.config.consider_all_requests_local || request.local?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def disable_content_security_policy_nonce!
|
|
26
|
+
request.content_security_policy_nonce_generator = nil
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Jets
|
|
4
|
+
# Built-in Health Check Endpoint
|
|
5
|
+
#
|
|
6
|
+
# \Jets also comes with a built-in health check endpoint that is reachable at
|
|
7
|
+
# the +/up+ path. This endpoint will return a 200 status code if the app has
|
|
8
|
+
# booted with no exceptions, and a 500 status code otherwise.
|
|
9
|
+
#
|
|
10
|
+
# In production, many applications are required to report their status upstream,
|
|
11
|
+
# whether it's to an uptime monitor that will page an engineer when things go
|
|
12
|
+
# wrong, or a load balancer or Kubernetes controller used to determine a pod's
|
|
13
|
+
# health. This health check is designed to be a one-size fits all that will work
|
|
14
|
+
# in many situations.
|
|
15
|
+
#
|
|
16
|
+
# While any newly generated \Jets applications will have the health check at
|
|
17
|
+
# +/up+, you can configure the path to be anything you'd like in your
|
|
18
|
+
# <tt>"config/routes.rb"</tt>:
|
|
19
|
+
#
|
|
20
|
+
# Jets.application.routes.draw do
|
|
21
|
+
# get "healthz" => "jets/health#show", as: :jets_health_check
|
|
22
|
+
# end
|
|
23
|
+
#
|
|
24
|
+
# The health check will now be accessible via the +/healthz+ path.
|
|
25
|
+
#
|
|
26
|
+
# NOTE: This endpoint does not reflect the status of all of your application's
|
|
27
|
+
# dependencies, such as the database or redis cluster. Replace
|
|
28
|
+
# <tt>"jets/health#show"</tt> with your own controller action if you have
|
|
29
|
+
# application specific needs.
|
|
30
|
+
#
|
|
31
|
+
# Think carefully about what you want to check as it can lead to situations
|
|
32
|
+
# where your application is being restarted due to a third-party service going
|
|
33
|
+
# bad. Ideally, you should design your application to handle those outages
|
|
34
|
+
# gracefully.
|
|
35
|
+
class HealthController < Jets::Controller::Base
|
|
36
|
+
rescue_from(Exception) { render_down }
|
|
37
|
+
|
|
38
|
+
def show
|
|
39
|
+
render_up
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
def render_up
|
|
44
|
+
render html: html_status(color: "green")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def render_down
|
|
48
|
+
render html: html_status(color: "red"), status: 500
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def html_status(color:)
|
|
52
|
+
%(<!DOCTYPE html><html><body style="background-color: #{color}"></body></html>).html_safe
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Jets::InfoController < Jets::ApplicationController # :nodoc:
|
|
4
|
+
prepend_view_path ActionDispatch::DebugView::RESCUES_TEMPLATE_PATH
|
|
5
|
+
layout -> { request.xhr? ? false : "application" }
|
|
6
|
+
|
|
7
|
+
before_action :require_local!
|
|
8
|
+
|
|
9
|
+
def index
|
|
10
|
+
redirect_to action: :routes
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def properties
|
|
14
|
+
@info = Jets::Info.to_html
|
|
15
|
+
@page_title = "Properties"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def routes
|
|
19
|
+
if path = params[:path]
|
|
20
|
+
path = URI::DEFAULT_PARSER.escape path
|
|
21
|
+
normalized_path = with_leading_slash path
|
|
22
|
+
render json: {
|
|
23
|
+
exact: match_route { |it| it.match normalized_path },
|
|
24
|
+
fuzzy: match_route { |it| it.spec.to_s.match path }
|
|
25
|
+
}
|
|
26
|
+
else
|
|
27
|
+
@routes_table = routes_table
|
|
28
|
+
@page_title = "Routes"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
def routes_table
|
|
34
|
+
text = Jets::Router::Help.new(format: "markdown").text
|
|
35
|
+
Kramdown::Document.new(text).to_html
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def match_route
|
|
39
|
+
_routes.routes.filter_map { |route| route.path.spec.to_s if yield route.path }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def with_leading_slash(path)
|
|
43
|
+
("/" + path).squeeze("/")
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
class Jets::MailersController < Jets::Controller::Base # :nodoc:
|
|
4
|
+
around_action :set_locale, only: :preview
|
|
4
5
|
before_action :find_preview, only: [:preview]
|
|
5
|
-
before_action :
|
|
6
|
-
# TODO: allow multiple actions
|
|
7
|
-
# before_action :find_preview, :set_locale, only: :preview
|
|
6
|
+
before_action :require_local!, unless: :show_previews?
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
# helper_method :part_query, :locale_query
|
|
8
|
+
helper_method :part_query, :locale_query
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
# content_security_policy(false)
|
|
10
|
+
content_security_policy(false)
|
|
14
11
|
|
|
15
12
|
def index
|
|
16
13
|
@previews = ActionMailer::Preview.all
|
|
@@ -20,25 +17,26 @@ class Jets::MailersController < Jets::Controller::Base # :nodoc:
|
|
|
20
17
|
def preview
|
|
21
18
|
if params[:path] == @preview.preview_name
|
|
22
19
|
@page_title = "Mailer Previews for #{@preview.preview_name}"
|
|
23
|
-
render :mailer
|
|
20
|
+
render action: "mailer"
|
|
24
21
|
else
|
|
25
22
|
@email_action = File.basename(params[:path])
|
|
26
23
|
|
|
27
24
|
if @preview.email_exists?(@email_action)
|
|
25
|
+
@page_title = "Mailer Preview for #{@preview.preview_name}##{@email_action}"
|
|
28
26
|
@email = @preview.call(@email_action, params)
|
|
29
27
|
|
|
30
28
|
if params[:part]
|
|
31
29
|
part_type = Mime::Type.lookup(params[:part])
|
|
32
30
|
|
|
33
31
|
if part = find_part(part_type)
|
|
34
|
-
response.
|
|
32
|
+
response.content_type = part_type
|
|
35
33
|
render plain: part.respond_to?(:decoded) ? part.decoded : part
|
|
36
34
|
else
|
|
37
35
|
raise AbstractController::ActionNotFound, "Email part '#{part_type}' not found in #{@preview.name}##{@email_action}"
|
|
38
36
|
end
|
|
39
37
|
else
|
|
40
|
-
@part = find_preferred_part(Mime[:html], Mime[:text])
|
|
41
|
-
render :email, layout: false, formats:
|
|
38
|
+
@part = find_preferred_part(request.format, Mime[:html], Mime[:text])
|
|
39
|
+
render action: "email", layout: false, formats: [:html]
|
|
42
40
|
end
|
|
43
41
|
else
|
|
44
42
|
raise AbstractController::ActionNotFound, "Email '#{@email_action}' not found in #{@preview.name}"
|
|
@@ -53,7 +51,7 @@ class Jets::MailersController < Jets::Controller::Base # :nodoc:
|
|
|
53
51
|
|
|
54
52
|
def find_preview # :doc:
|
|
55
53
|
candidates = []
|
|
56
|
-
params[:path].to_s.scan(%r{/|$}) { candidates << $` }
|
|
54
|
+
params[:path].to_s.scan(%r{/|$}) { candidates << $` }
|
|
57
55
|
preview = candidates.detect { |candidate| ActionMailer::Preview.exists?(candidate) }
|
|
58
56
|
|
|
59
57
|
if preview
|
|
@@ -91,7 +89,7 @@ class Jets::MailersController < Jets::Controller::Base # :nodoc:
|
|
|
91
89
|
request.query_parameters.merge(locale: locale).to_query
|
|
92
90
|
end
|
|
93
91
|
|
|
94
|
-
def set_locale
|
|
95
|
-
I18n.
|
|
92
|
+
def set_locale(&block)
|
|
93
|
+
I18n.with_locale(params[:locale] || I18n.default_locale, &block)
|
|
96
94
|
end
|
|
97
95
|
end
|
|
@@ -15,11 +15,8 @@ class Jets::MountController < Jets::BareController
|
|
|
15
15
|
|
|
16
16
|
status, headers, io = mount_class.call(env)
|
|
17
17
|
body = read_body(io)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
headers: headers,
|
|
21
|
-
body: body,
|
|
22
|
-
)
|
|
18
|
+
self.headers.merge!(headers)
|
|
19
|
+
render body: body, status: status
|
|
23
20
|
end
|
|
24
21
|
|
|
25
22
|
private
|
|
@@ -32,15 +29,14 @@ private
|
|
|
32
29
|
result.join
|
|
33
30
|
end
|
|
34
31
|
|
|
35
|
-
# Locally Jets::Router::
|
|
36
|
-
# On Lambda, Jets::Router::
|
|
37
|
-
# TODO: Maybe add caching improvement.
|
|
32
|
+
# Locally Jets::Router::Matcher gets called in Jets::Controller::Middleware::Mimic
|
|
33
|
+
# On Lambda, Jets::Router::Matcher in handlers.
|
|
38
34
|
def find_route
|
|
39
|
-
Jets::Router::
|
|
35
|
+
Jets::Router::Matcher.new.find_by_request(request, "ANY")
|
|
40
36
|
end
|
|
41
37
|
|
|
42
38
|
def build_env(path)
|
|
43
|
-
env = Jets::Controller::
|
|
39
|
+
env = Jets::Controller::RackAdapter::Env.new(event, context, adapter: true).convert
|
|
44
40
|
# remap path info
|
|
45
41
|
mount_at = mount_at(path)
|
|
46
42
|
path_info = env["PATH_INFO"]
|
|
@@ -3,7 +3,6 @@ require "mini_mime"
|
|
|
3
3
|
|
|
4
4
|
class Jets::PublicController < Jets::Controller::Base
|
|
5
5
|
layout false
|
|
6
|
-
internal true
|
|
7
6
|
|
|
8
7
|
def show
|
|
9
8
|
catchall = params[:catchall].blank? ? 'index.html' : params[:catchall]
|
|
@@ -25,7 +24,12 @@ class Jets::PublicController < Jets::Controller::Base
|
|
|
25
24
|
render file: catchall_path, content_type: content_type
|
|
26
25
|
end
|
|
27
26
|
else
|
|
28
|
-
|
|
27
|
+
not_found_path = "#{public_path}/404.html"
|
|
28
|
+
if File.exist?(not_found_path)
|
|
29
|
+
render file: not_found_path, status: 404
|
|
30
|
+
else
|
|
31
|
+
render plain: "404 Not Found", status: 404
|
|
32
|
+
end
|
|
29
33
|
end
|
|
30
34
|
end
|
|
31
35
|
end
|
|
@@ -3,7 +3,8 @@ begin
|
|
|
3
3
|
# When require bundler/setup fails, AWS Lambda won't be able to load base_path_mapping
|
|
4
4
|
# So we'll require base_path_mapping within begin/rescue block so that it does not also
|
|
5
5
|
# fail the entire lambda function.
|
|
6
|
-
require 'jets/internal/app/functions/jets/base_path_mapping'
|
|
6
|
+
# require 'jets/internal/app/functions/jets/base_path_mapping'
|
|
7
|
+
require_relative "base_path_mapping"
|
|
7
8
|
rescue Exception => e
|
|
8
9
|
# Note: rescue LoadError is not enough in AWS Lambda environment
|
|
9
10
|
# Actual exceptions:
|
|
@@ -66,6 +66,7 @@ class BasePathMapping
|
|
|
66
66
|
}
|
|
67
67
|
puts "BasePathMapping delete options #{options.inspect}"
|
|
68
68
|
apigateway.delete_base_path_mapping(options)
|
|
69
|
+
wait_for_delete
|
|
69
70
|
puts "BasePathMapping delete complete"
|
|
70
71
|
# https://github.com/tongueroo/jets/issues/255
|
|
71
72
|
# Used to return: Aws::APIGateway::Errors::NotFoundException
|
|
@@ -75,6 +76,24 @@ class BasePathMapping
|
|
|
75
76
|
raise(e) unless fail_silently
|
|
76
77
|
end
|
|
77
78
|
|
|
79
|
+
# Wait for deletion to complete
|
|
80
|
+
# Otherwise, CloudFormation continues too fast during a `jets delete`
|
|
81
|
+
# and the initially fails deletion. CloudFormaton then retries until it's successfully.
|
|
82
|
+
# The stack ultimately finishes deleting successfully but the error messages
|
|
83
|
+
# are confusing to the user.
|
|
84
|
+
def wait_for_delete
|
|
85
|
+
loop do
|
|
86
|
+
resp = apigateway.get_base_path_mapping(
|
|
87
|
+
domain_name: domain_name,
|
|
88
|
+
base_path: base_path.empty? ? '(none)' : base_path,
|
|
89
|
+
)
|
|
90
|
+
break if resp.nil? || resp.empty?
|
|
91
|
+
sleep(5)
|
|
92
|
+
end
|
|
93
|
+
rescue Aws::APIGateway::Errors::NotFoundException
|
|
94
|
+
nil
|
|
95
|
+
end
|
|
96
|
+
|
|
78
97
|
def create
|
|
79
98
|
puts "BasePathMapping create"
|
|
80
99
|
options = {
|
|
@@ -113,8 +132,8 @@ class BasePathMapping
|
|
|
113
132
|
raise(e)
|
|
114
133
|
end
|
|
115
134
|
|
|
116
|
-
def
|
|
117
|
-
@
|
|
135
|
+
def mapping_stack
|
|
136
|
+
@mapping_stack ||= cfn.describe_stacks(stack_name: @event['StackId']).stacks.first
|
|
118
137
|
end
|
|
119
138
|
|
|
120
139
|
def rest_api_id
|
|
@@ -130,7 +149,8 @@ class BasePathMapping
|
|
|
130
149
|
end
|
|
131
150
|
|
|
132
151
|
def parameter_value(parameter_key)
|
|
133
|
-
|
|
152
|
+
puts "mapping_stack #{mapping_stack.inspect}"
|
|
153
|
+
param = mapping_stack[:parameters].find { |p| p.parameter_key == parameter_key }
|
|
134
154
|
param&.parameter_value # possible for this to be nil when removing the config: IE: config.domain.name = nil
|
|
135
155
|
end
|
|
136
156
|
|
|
@@ -140,7 +160,7 @@ class BasePathMapping
|
|
|
140
160
|
end
|
|
141
161
|
|
|
142
162
|
def parent_stack_name
|
|
143
|
-
|
|
163
|
+
mapping_stack[:root_id]
|
|
144
164
|
end
|
|
145
165
|
|
|
146
166
|
def apigateway
|
|
@@ -166,6 +186,6 @@ end
|
|
|
166
186
|
|
|
167
187
|
if __FILE__ == $0
|
|
168
188
|
event = JSON.load(File.read(ARGV[0]))
|
|
169
|
-
|
|
170
|
-
BasePathMapping.new(event,
|
|
189
|
+
stage_name = 'dev' # change to test
|
|
190
|
+
BasePathMapping.new(event, stage_name).update
|
|
171
191
|
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
class Jets::PreheatJob < Jets::Job::Base
|
|
2
|
+
include Jets::AwsServices
|
|
3
|
+
|
|
4
|
+
class_timeout 30
|
|
5
|
+
class_memory 1024
|
|
6
|
+
class_iam_policy([
|
|
7
|
+
{
|
|
8
|
+
Sid: "Statement1",
|
|
9
|
+
Action: ["logs:*"],
|
|
10
|
+
Effect: "Allow",
|
|
11
|
+
Resource: [{
|
|
12
|
+
"Fn::Sub": "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/${JetsPreheatJobWarmLambdaFunction}"
|
|
13
|
+
}]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
Sid: "Statement2",
|
|
17
|
+
Action: ["lambda:InvokeFunction", "lambda:InvokeAsync"],
|
|
18
|
+
Effect: "Allow",
|
|
19
|
+
Resource: [{
|
|
20
|
+
"Fn::Sub": "arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:#{Jets.project_namespace}-*"
|
|
21
|
+
}]
|
|
22
|
+
}
|
|
23
|
+
])
|
|
24
|
+
|
|
25
|
+
def warm
|
|
26
|
+
options = call_options(event[:quiet])
|
|
27
|
+
Jets::Preheat.warm_all(options)
|
|
28
|
+
"Finished prewarming your application."
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class << self
|
|
32
|
+
# Can use this to prewarm post deploy
|
|
33
|
+
def prewarm!
|
|
34
|
+
perform_now(:warn, quiet: true)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
# Usually: jets-preheat_job-warm unless JETS_RESET=1, in that case need to lookup the function name
|
|
40
|
+
def warm_function_name
|
|
41
|
+
# Return early to avoid lookup call normally
|
|
42
|
+
return "jets-preheat_job-warm" unless ENV['JETS_RESET'] == "1"
|
|
43
|
+
|
|
44
|
+
parent_stack = cfn.describe_stack_resources(stack_name: Jets::Names.parent_stack_name)
|
|
45
|
+
preheat_stack = parent_stack.stack_resources.find do |resource|
|
|
46
|
+
resource.logical_resource_id =~ /JetsPreheatJob/
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
resp = cfn.describe_stack_resources(stack_name: preheat_stack.physical_resource_id)
|
|
50
|
+
resources = resp.stack_resources
|
|
51
|
+
warm_function = resources.find do |resource|
|
|
52
|
+
resource.logical_resource_id =~ /WarmLambdaFunction/
|
|
53
|
+
end
|
|
54
|
+
warm_function.physical_resource_id # IE: jets-preheat_job-warm
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def call_options(quiet)
|
|
58
|
+
options = {}
|
|
59
|
+
options.merge!(mute: true, mute_output: true) if quiet
|
|
60
|
+
# All the methods in this Job class leads to Jets::Commands::Call.
|
|
61
|
+
# This is true for the Jets::Preheat.warm_all also.
|
|
62
|
+
# These jobs delegate out to Lambda function calls. We do not need/want
|
|
63
|
+
# the invocation type: RequestResponse in this case.
|
|
64
|
+
options.merge!(invocation_type: "Event")
|
|
65
|
+
options
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= @info.html_safe %>
|