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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
## Remote mode
|
|
2
|
+
|
|
3
|
+
Invoke the lambda function on AWS.
|
|
4
|
+
|
|
5
|
+
## Examples
|
|
6
|
+
|
|
7
|
+
### Controller Examples
|
|
8
|
+
|
|
9
|
+
jets call controller '{"path": "/up", "httpMethod": "GET"}' --show-logs | jq
|
|
10
|
+
|
|
11
|
+
You'll need to specify enough of the event payload so that the Jets shim handler can find the route and send it to the right controller action.
|
|
12
|
+
|
|
13
|
+
jets call controller '{"path":"/posts"}' --show-logs | jq .
|
|
14
|
+
jets call controller 'file://event.json' --show-logs | jq .
|
|
15
|
+
|
|
16
|
+
## Job Examples
|
|
17
|
+
|
|
18
|
+
jets call hard_job-drive '{"test":1}'
|
|
19
|
+
jets call hard_job-drive '{"test":1}' | jq .
|
|
20
|
+
jets call hard_job-drive file://event.json | jq . # load event with a file
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
The equivalent AWS Lambda CLI command:
|
|
24
|
+
|
|
25
|
+
aws lambda invoke --function-name demo-dev-hard_job-dig --payload '{"path":"/posts","test":1}' outfile.txt
|
|
26
|
+
cat outfile.txt | jq '.'
|
|
27
|
+
|
|
28
|
+
Jets figures out what functions to call by evaluating the app code and finds if the class and method exists. If you want to turn guess mode off and want to always explicitly provide the method name use the `--no-guess` option. The function name will then have to match the lambda function without the namespace. Example:
|
|
29
|
+
|
|
30
|
+
jets call controller --no-guess
|
|
31
|
+
|
|
32
|
+
If you want to call a function which runs too long time, you can set `read_timeout`.
|
|
33
|
+
|
|
34
|
+
jets call some_long_job-index --read_timeout 900
|
|
35
|
+
|
|
36
|
+
And you can set `retry_limit`. If you don't want to retry you can set 0.
|
|
37
|
+
|
|
38
|
+
jets call some_long_job-index --retry_limit 0
|
|
39
|
+
|
|
40
|
+
## Local mode
|
|
41
|
+
|
|
42
|
+
Instead of calling AWS lambda remote, you can also have `jets call` use the code directly on your machine. To enable this, use the `--local` flag. Example:
|
|
43
|
+
|
|
44
|
+
jets call hard_job-drive --local
|
|
45
|
+
|
|
46
|
+
## Logs
|
|
47
|
+
|
|
48
|
+
The `jets call` command can also print out the last 4KB of the lambda logs with the `--show-logs` option. The logging output is directed to stderr and the response output from the lambda function itself is directed to stdout so you can safely pipe the results of the call command to other tools like `jq`.
|
|
@@ -5,7 +5,7 @@ This builds the project and deploys it AWS Lambda. The deployment is mainly hand
|
|
|
5
5
|
## Example
|
|
6
6
|
|
|
7
7
|
$ jets deploy
|
|
8
|
-
Deploying
|
|
8
|
+
Deploying stack demo-dev ...
|
|
9
9
|
=> Compling assets in current project directory
|
|
10
10
|
=> Copying current project directory to temporary build area: /tmp/jets/demo/app_root
|
|
11
11
|
=> Tidying project: removing ignored files to reduce package size.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Show logs from Lambda function CloudWatch log group.
|
|
2
|
+
|
|
3
|
+
This defaults to the controller Lambda function in the `one_lambda_for_all_controllers` mode. Example:
|
|
4
|
+
|
|
5
|
+
❯ jets logs
|
|
6
|
+
Showing logs for /aws/lambda/demo-dev-controller
|
|
7
|
+
|
|
8
|
+
If you want to follow the logs use the `-f` flag.
|
|
9
|
+
|
|
10
|
+
❯ jets logs
|
|
11
|
+
Tailing logs for /aws/lambda/demo-dev-controller
|
|
12
|
+
|
|
13
|
+
If you want to see the production logs:
|
|
14
|
+
|
|
15
|
+
❯ JETS_ENV=production jets logs -f
|
|
16
|
+
Tailing logs for /aws/lambda/demo-prod-controller
|
|
17
|
+
|
|
18
|
+
If you want to see logs for a job, specify the job and method.
|
|
19
|
+
|
|
20
|
+
❯ jets logs -f -n hard_job-dig
|
|
21
|
+
Tailing logs for /aws/lambda/demo-dev-hard_job-dig
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
## Examples
|
|
2
2
|
|
|
3
3
|
$ jets new demo
|
|
4
|
-
|
|
5
|
-
create
|
|
6
|
-
create
|
|
7
|
-
create demo/app/jobs/application_job.rb
|
|
4
|
+
create app/controllers/application_controller.rb
|
|
5
|
+
create app/helpers/application_helper.rb
|
|
6
|
+
create app/jobs/application_job.rb
|
|
8
7
|
...
|
|
9
8
|
================================================================
|
|
10
9
|
Congrats You have successfully created a Jets project.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
## Examples
|
|
2
|
+
|
|
3
|
+
$ jets releases
|
|
4
|
+
Releases for stack: demo-dev
|
|
5
|
+
+---------+-----------------+--------------+---------+
|
|
6
|
+
| Version | Status | Released At | Message |
|
|
7
|
+
+---------+-----------------+--------------+---------+
|
|
8
|
+
| 27 | UPDATE_COMPLETE | 10 hours ago | Deploy |
|
|
9
|
+
| 26 | UPDATE_COMPLETE | 11 hours ago | Deploy |
|
|
10
|
+
| 25 | UPDATE_COMPLETE | 11 hours ago | Deploy |
|
|
11
|
+
| 24 | UPDATE_COMPLETE | 11 hours ago | Deploy |
|
|
12
|
+
| 23 | DELETE_COMPLETE | 14 hours ago | Deleted |
|
|
13
|
+
| 22 | UPDATE_COMPLETE | 14 hours ago | Deploy |
|
|
14
|
+
| 21 | UPDATE_COMPLETE | 14 hours ago | Deploy |
|
|
15
|
+
| 20 | UPDATE_COMPLETE | 14 hours ago | Deploy |
|
|
16
|
+
| 19 | DELETE_COMPLETE | 14 hours ago | Deleted |
|
|
17
|
+
| 18 | UPDATE_COMPLETE | 14 hours ago | Deploy |
|
|
18
|
+
| 17 | UPDATE_COMPLETE | 17 hours ago | Deploy |
|
|
19
|
+
| 16 | UPDATE_COMPLETE | 18 hours ago | Deploy |
|
|
20
|
+
| 15 | UPDATE_COMPLETE | 18 hours ago | Deploy |
|
|
21
|
+
| 14 | DELETE_COMPLETE | 18 hours ago | Deleted |
|
|
22
|
+
| 13 | UPDATE_COMPLETE | 19 hours ago | Deploy |
|
|
23
|
+
| 12 | UPDATE_COMPLETE | 19 hours ago | Deploy |
|
|
24
|
+
| 11 | UPDATE_COMPLETE | 19 hours ago | Deploy |
|
|
25
|
+
| 10 | DELETE_COMPLETE | 19 hours ago | Deleted |
|
|
26
|
+
| 9 | UPDATE_COMPLETE | 21 hours ago | Deploy |
|
|
27
|
+
| 8 | UPDATE_COMPLETE | 21 hours ago | Deploy |
|
|
28
|
+
| 7 | DELETE_COMPLETE | 21 hours ago | Deleted |
|
|
29
|
+
| 6 | UPDATE_COMPLETE | 21 hours ago | Deploy |
|
|
30
|
+
| 5 | DELETE_COMPLETE | 22 hours ago | Deleted |
|
|
31
|
+
| 4 | UPDATE_COMPLETE | 22 hours ago | Deploy |
|
|
32
|
+
| 3 | UPDATE_COMPLETE | 22 hours ago | Deploy |
|
|
33
|
+
+---------+-----------------+--------------+---------+
|
|
34
|
+
|
|
35
|
+
The shown releases are paginated. If you need to see more releases you can use the `--page` option.
|
|
36
|
+
|
|
37
|
+
$ jets releases --page 2
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
## Example
|
|
2
|
+
|
|
3
|
+
$ jets routes
|
|
4
|
+
+-------------------+--------+--------------------+--------------------+
|
|
5
|
+
| As (Prefix) | Verb | Path (URI Pattern) | Controller#action |
|
|
6
|
+
+-------------------+--------+--------------------+--------------------+
|
|
7
|
+
| posts | GET | /posts | posts#index |
|
|
8
|
+
| posts | POST | /posts | posts#create |
|
|
9
|
+
| new_post | GET | /posts/new | posts#new |
|
|
10
|
+
| edit_post | GET | /posts/:id/edit | posts#edit |
|
|
11
|
+
| post | GET | /posts/:id | posts#show |
|
|
12
|
+
| post | PUT | /posts/:id | posts#update |
|
|
13
|
+
| post | PATCH | /posts/:id | posts#update |
|
|
14
|
+
| post | DELETE | /posts/:id | posts#destroy |
|
|
15
|
+
+-------------------+--------+--------------------+--------------------+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Jets::Command
|
|
2
|
+
class Help
|
|
3
|
+
class << self
|
|
4
|
+
def text(namespaced_command)
|
|
5
|
+
file = namespaced_command.to_s.gsub(':','/')
|
|
6
|
+
path = File.expand_path("../help/#{file}.md", __FILE__)
|
|
7
|
+
return IO.read(path) if File.exist?(path)
|
|
8
|
+
|
|
9
|
+
# Also look up for a help folder within the current command folder
|
|
10
|
+
called_from = caller.first.split(':').first
|
|
11
|
+
unnamespaced_command = namespaced_command.to_s.split(':').last
|
|
12
|
+
path = File.expand_path("../help/#{unnamespaced_command}.md", called_from)
|
|
13
|
+
return IO.read(path) if File.exist?(path)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_support/encrypted_file"
|
|
4
|
+
|
|
5
|
+
module Jets
|
|
6
|
+
module Command
|
|
7
|
+
module Helpers
|
|
8
|
+
module Editor
|
|
9
|
+
private
|
|
10
|
+
def ensure_editor_available(command:)
|
|
11
|
+
if ENV["EDITOR"].to_s.empty?
|
|
12
|
+
say "No $EDITOR to open file in. Assign one like this:"
|
|
13
|
+
say ""
|
|
14
|
+
say %(EDITOR="mate --wait" #{command})
|
|
15
|
+
say ""
|
|
16
|
+
say "For editors that fork and exit immediately, it's important to pass a wait flag,"
|
|
17
|
+
say "otherwise the credentials will be saved immediately with no chance to edit."
|
|
18
|
+
|
|
19
|
+
false
|
|
20
|
+
else
|
|
21
|
+
true
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def catch_editing_exceptions
|
|
26
|
+
yield
|
|
27
|
+
rescue Interrupt
|
|
28
|
+
say "Aborted changing file: nothing saved."
|
|
29
|
+
rescue ActiveSupport::EncryptedFile::MissingKeyError => error
|
|
30
|
+
say error.message
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
data/lib/jets/command.rb
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_support"
|
|
4
|
+
require "active_support/core_ext/enumerable"
|
|
5
|
+
require "active_support/core_ext/object/blank"
|
|
6
|
+
|
|
7
|
+
require "thor"
|
|
8
|
+
|
|
9
|
+
module Jets
|
|
10
|
+
module Command
|
|
11
|
+
extend ActiveSupport::Autoload
|
|
12
|
+
|
|
13
|
+
autoload :Behavior
|
|
14
|
+
autoload :Base
|
|
15
|
+
|
|
16
|
+
include Behavior
|
|
17
|
+
|
|
18
|
+
HELP_MAPPINGS = %w(-h -? --help)
|
|
19
|
+
|
|
20
|
+
class << self
|
|
21
|
+
def hidden_commands # :nodoc:
|
|
22
|
+
@hidden_commands ||= []
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def environment # :nodoc:
|
|
26
|
+
ENV["JETS_ENV"].presence || ENV["RACK_ENV"].presence || "development"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Receives a namespace, arguments, and the behavior to invoke the command.
|
|
30
|
+
def invoke(full_namespace, args = [], **config)
|
|
31
|
+
namespace = full_namespace = full_namespace.to_s
|
|
32
|
+
|
|
33
|
+
if char = namespace =~ /:(\w+)$/
|
|
34
|
+
command_name, namespace = $1, namespace.slice(0, char)
|
|
35
|
+
else
|
|
36
|
+
command_name = namespace
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
command_name, namespace = "help", "help" if command_name.blank? || HELP_MAPPINGS.include?(command_name)
|
|
40
|
+
command_name, namespace, args = "application", "application", ["--help"] if jets_new_with_no_path?(args)
|
|
41
|
+
command_name, namespace = "version", "version" if %w( -v --version ).include?(command_name)
|
|
42
|
+
|
|
43
|
+
original_argv = ARGV.dup
|
|
44
|
+
ARGV.replace(args)
|
|
45
|
+
|
|
46
|
+
command = find_by_namespace(namespace, command_name)
|
|
47
|
+
if command && command.all_commands[command_name]
|
|
48
|
+
command.perform(full_namespace, command_name, args, config)
|
|
49
|
+
else
|
|
50
|
+
args = ["--describe", full_namespace] if HELP_MAPPINGS.include?(args[0])
|
|
51
|
+
find_by_namespace("rake").perform(full_namespace, args, config)
|
|
52
|
+
end
|
|
53
|
+
ensure
|
|
54
|
+
ARGV.replace(original_argv)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Jets finds namespaces similar to Thor, it only adds one rule:
|
|
58
|
+
#
|
|
59
|
+
# Command names must end with "_command.rb". This is required because Jets
|
|
60
|
+
# looks in load paths and loads the command just before it's going to be used.
|
|
61
|
+
#
|
|
62
|
+
# find_by_namespace :webrat, :integration
|
|
63
|
+
#
|
|
64
|
+
# Will search for the following commands:
|
|
65
|
+
#
|
|
66
|
+
# "webrat", "webrat:integration", "jets:webrat", "jets:webrat:integration"
|
|
67
|
+
#
|
|
68
|
+
def find_by_namespace(namespace, command_name = nil) # :nodoc:
|
|
69
|
+
lookups = [ namespace ]
|
|
70
|
+
lookups << "#{namespace}:#{command_name}" if command_name
|
|
71
|
+
lookups.concat lookups.map { |lookup| "jets:#{lookup}" }
|
|
72
|
+
|
|
73
|
+
lookup(lookups)
|
|
74
|
+
|
|
75
|
+
namespaces = subclasses.index_by(&:namespace)
|
|
76
|
+
namespaces[(lookups & namespaces.keys).first]
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Returns the root of the Jets engine or app running the command.
|
|
80
|
+
def root
|
|
81
|
+
if defined?(ENGINE_ROOT)
|
|
82
|
+
Pathname.new(ENGINE_ROOT)
|
|
83
|
+
elsif defined?(APP_PATH)
|
|
84
|
+
Pathname.new(File.expand_path("../..", APP_PATH))
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def print_commands # :nodoc:
|
|
89
|
+
commands.each { |command| puts(" #{command}") }
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
private
|
|
93
|
+
COMMANDS_IN_USAGE = %w(
|
|
94
|
+
generate
|
|
95
|
+
console
|
|
96
|
+
server
|
|
97
|
+
deploy
|
|
98
|
+
logs
|
|
99
|
+
new
|
|
100
|
+
)
|
|
101
|
+
private_constant :COMMANDS_IN_USAGE
|
|
102
|
+
|
|
103
|
+
PRO_COMMANDS = %w(
|
|
104
|
+
projects
|
|
105
|
+
stacks
|
|
106
|
+
releases
|
|
107
|
+
rollback
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
def jets_new_with_no_path?(args)
|
|
111
|
+
args == ["new"]
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def commands
|
|
115
|
+
lookup!
|
|
116
|
+
visible_commands = (subclasses - hidden_commands).flat_map(&:printing_commands)
|
|
117
|
+
(visible_commands - COMMANDS_IN_USAGE - PRO_COMMANDS).sort
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def command_type # :doc:
|
|
121
|
+
@command_type ||= "command"
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def lookup_paths # :doc:
|
|
125
|
+
@lookup_paths ||= %w( jets/commands commands )
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def file_lookup_paths # :doc:
|
|
129
|
+
@file_lookup_paths ||= [ "{#{lookup_paths.join(',')}}", "**", "*_command.rb" ]
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Jets
|
|
4
|
+
module Command
|
|
5
|
+
class ApplicationCommand < Base # :nodoc:
|
|
6
|
+
hide_command!
|
|
7
|
+
|
|
8
|
+
self.bin = "jets" if respond_to?(:bin=) # Rails 7.1
|
|
9
|
+
|
|
10
|
+
def help
|
|
11
|
+
perform # Punt help output to the generator.
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# This is:
|
|
15
|
+
#
|
|
16
|
+
# bundle exec jets application:help => jets new --help
|
|
17
|
+
# bundle exec jets application => jets new --help
|
|
18
|
+
#
|
|
19
|
+
def perform(*args)
|
|
20
|
+
# require lazily so that Rails constant is only defined within generators
|
|
21
|
+
require "jets/generators/overrides/app/app_generator"
|
|
22
|
+
override_exit_on_failure?
|
|
23
|
+
argv = Rails::Generators::ARGVScrubber.new(args).prepare!
|
|
24
|
+
Jets::Generators::AppGenerator.start argv
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
# We override this way because Jets require generators lazily
|
|
29
|
+
def override_exit_on_failure?
|
|
30
|
+
Jets::Generators::AppGenerator.class_eval do
|
|
31
|
+
# We want to exit on failure to be kind to other libraries
|
|
32
|
+
# This is only when accessing via CLI
|
|
33
|
+
def self.exit_on_failure?
|
|
34
|
+
true
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Jets::Command
|
|
2
|
+
class BuildCommand < Base # :nodoc:
|
|
3
|
+
include EnvironmentArgument
|
|
4
|
+
|
|
5
|
+
option :templates, type: :boolean, desc: "Build CloudFormation templates only"
|
|
6
|
+
|
|
7
|
+
desc "build", "Builds and packages project for AWS Lambda"
|
|
8
|
+
long_desc Help.text(:build)
|
|
9
|
+
def perform
|
|
10
|
+
ENV['JETS_TEMPLATES'] = '1' if options[:templates]
|
|
11
|
+
|
|
12
|
+
extract_environment_option_from_argument
|
|
13
|
+
require_application_and_environment!
|
|
14
|
+
|
|
15
|
+
puts "Building project for Lambda..."
|
|
16
|
+
# run gets called from the CLI and does not have all the stack_options yet.
|
|
17
|
+
# We compute it and change the options early here.
|
|
18
|
+
@options.merge!(stack_type: stack_type, s3_bucket: Jets.s3_bucket)
|
|
19
|
+
do_build
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
# Note: build is picked up as a command so naming it do_build
|
|
24
|
+
def do_build
|
|
25
|
+
Jets::Builders::CodeBuilder.new.build unless ENV['JETS_TEMPLATES']
|
|
26
|
+
Jets::Cfn::Builder.new(@options).build
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def stack_type
|
|
30
|
+
first_run? ? :minimal : :full
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
module Jets::Commands::Call
|
|
2
2
|
class AutoloadGuesser < BaseGuesser
|
|
3
3
|
def detect_class_name
|
|
4
4
|
# First guess the class name assuming simple
|
|
@@ -53,7 +53,7 @@ class Jets::Commands::Call
|
|
|
53
53
|
meth = underscored_function_name.sub(underscored_class_name, '')
|
|
54
54
|
meth = meth.sub(/^[-_]/,'') # remove leading _ or -
|
|
55
55
|
|
|
56
|
-
if class_name.constantize.
|
|
56
|
+
if class_name.constantize.definitions.map(&:meth).include?(meth.to_sym)
|
|
57
57
|
@method_name = meth
|
|
58
58
|
else
|
|
59
59
|
@method_name_error ="#{class_name} class found but #{meth} method not found"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# method_name
|
|
4
4
|
# error_message
|
|
5
5
|
#
|
|
6
|
-
|
|
6
|
+
module Jets::Commands::Call
|
|
7
7
|
class BaseGuesser
|
|
8
8
|
include Jets::AwsServices
|
|
9
9
|
|
|
@@ -26,15 +26,15 @@ class Jets::Commands::Call
|
|
|
26
26
|
# Strip the project namespace if the user has accidentally added it
|
|
27
27
|
# Since we're going to automatically add it no matter what at the end
|
|
28
28
|
# and dont want the namespace to be included twice
|
|
29
|
-
@provided_function_name = @provided_function_name.sub("#{Jets.
|
|
29
|
+
@provided_function_name = @provided_function_name.sub("#{Jets.project_namespace}-", "")
|
|
30
30
|
|
|
31
31
|
code_path = class_name.underscore.gsub('/','-')
|
|
32
|
-
function_name = [Jets.
|
|
32
|
+
function_name = [Jets.project_namespace, code_path, method_name].join('-')
|
|
33
33
|
generated_function_name(function_name)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def generated_function_name(function_name)
|
|
37
|
-
if function_name.size > Jets::MAX_FUNCTION_NAME_SIZE # name generated by CloudFormation
|
|
37
|
+
if function_name.size > Jets::Cfn::Resource::Lambda::Function::MAX_FUNCTION_NAME_SIZE # name generated by CloudFormation
|
|
38
38
|
logical_id = @class_name.gsub('::','')
|
|
39
39
|
|
|
40
40
|
parent_resources = stack_resources(parent_stack.stack_id)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require "base64"
|
|
2
|
+
require "json"
|
|
3
|
+
|
|
4
|
+
module Jets::Command
|
|
5
|
+
class CallCommand < Base # :nodoc:
|
|
6
|
+
include Jets::AwsServices
|
|
7
|
+
|
|
8
|
+
desc "call [function] [event]", "Call a lambda function on AWS or locally"
|
|
9
|
+
long_desc Help.text(:call)
|
|
10
|
+
option :invocation_type, default: "RequestResponse", desc: "RequestResponse, Event, or DryRun"
|
|
11
|
+
option :log_type, default: "Tail", desc: "Works if invocation_type set to RequestResponse"
|
|
12
|
+
option :qualifier, desc: "Lambda function version or alias name"
|
|
13
|
+
option :show_log, type: :boolean, desc: "Shows last 4KB of log in the x-amz-log-result header"
|
|
14
|
+
option :show_logs, type: :boolean, desc: "Shows last 4KB of log in the x-amz-log-result header"
|
|
15
|
+
option :lambda_proxy, type: :boolean, default: true, desc: "Enables automatic Lambda proxy transformation of the event payload"
|
|
16
|
+
option :guess, type: :boolean, default: true, desc: "Enables guess mode. Uses inference to allows use of all dashes to specify functions. Guess mode verifies that the function exists in the code base."
|
|
17
|
+
option :local, type: :boolean, desc: "Enables local mode. Instead of invoke the AWS Lambda function, the method gets called locally with current app code. With local mode guess mode is always used."
|
|
18
|
+
option :retry_limit, type: :numeric, default: nil, desc: "Retry count of invoking function. It work with remote call"
|
|
19
|
+
option :read_timeout, type: :numeric, default: nil, desc: " The number of seconds to wait for response data. It work with remote call"
|
|
20
|
+
def perform(function_name, payload='')
|
|
21
|
+
$stdout.sync = true
|
|
22
|
+
$stderr.sync = true
|
|
23
|
+
$stdout = $stderr # jets call operation
|
|
24
|
+
Jets::Commands::Call::Caller.new(function_name, payload, options).run
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|