jets 4.0.10 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +5 -1
- data/CHANGELOG.md +53 -0
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/README.md +20 -36
- 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 +14 -11
- 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 +17 -6
- 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 +5 -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 +27 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +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 +26 -23
- 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 +142 -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 +5 -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 +139 -0
- data/lib/jets/generators/overrides/app/templates/.env +10 -0
- data/lib/jets/{commands/templates/skeleton/.gitignore → generators/overrides/app/templates/.gitignore.tt} +2 -1
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +25 -0
- data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
- data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +19 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
- data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
- data/lib/jets/generators.rb +112 -0
- data/lib/jets/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 +140 -17
- data/lib/jets/router/resources/options.rb +6 -4
- data/lib/jets/router/route/after_initialize.rb +64 -0
- data/lib/jets/router/route/as.rb +93 -0
- data/lib/jets/router/route/authorizer.rb +1 -0
- data/lib/jets/router/route/compat.rb +45 -0
- data/lib/jets/router/route/info.rb +74 -0
- data/lib/jets/router/route/node.rb +137 -0
- data/lib/jets/router/route/path.rb +93 -0
- data/lib/jets/router/route.rb +109 -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 -15
- metadata +427 -336
- 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 -61
- data/lib/jets/commands/base.rb +0 -145
- data/lib/jets/commands/call.rb +0 -184
- 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 -19
- data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
- data/lib/jets/commands/upgrade/version1.rb +0 -136
- data/lib/jets/commands/upgrade.rb +0 -105
- data/lib/jets/commands/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 -57
- data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
- data/lib/jets/lambda/task.rb +0 -111
- data/lib/jets/logger.rb +0 -21
- data/lib/jets/middleware/configurator.rb +0 -84
- data/lib/jets/middleware/default_stack.rb +0 -53
- data/lib/jets/middleware/layer.rb +0 -34
- data/lib/jets/middleware/stack.rb +0 -77
- data/lib/jets/middleware.rb +0 -33
- data/lib/jets/overrides/rails/action_controller.rb +0 -13
- data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
- data/lib/jets/overrides/rails/common_methods.rb +0 -13
- data/lib/jets/overrides/rails/migration_checker.rb +0 -34
- data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
- data/lib/jets/overrides/rails/url_helper.rb +0 -88
- data/lib/jets/overrides/rails.rb +0 -6
- data/lib/jets/rack_server.rb +0 -86
- data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
- data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
- data/lib/jets/resource/api_gateway/cors.rb +0 -61
- data/lib/jets/resource/api_gateway/method.rb +0 -102
- data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
- data/lib/jets/resource/base.rb +0 -28
- data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
- data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
- data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
- data/lib/jets/resource/child_stack/api_resource.rb +0 -54
- data/lib/jets/resource/child_stack/base.rb +0 -24
- data/lib/jets/resource/lambda/function.rb +0 -221
- data/lib/jets/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/resource/permission.rb +0 -45
- data/lib/jets/resource.rb +0 -71
- data/lib/jets/router/error.rb +0 -4
- data/lib/jets/router/finder.rb +0 -47
- data/lib/jets/router/helpers/core_helper.rb +0 -27
- data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
- data/lib/jets/router/helpers.rb +0 -4
- data/lib/jets/router/method_creator/code.rb +0 -99
- data/lib/jets/router/method_creator/edit.rb +0 -12
- data/lib/jets/router/method_creator/generic.rb +0 -11
- data/lib/jets/router/method_creator/index.rb +0 -48
- data/lib/jets/router/method_creator/new.rb +0 -12
- data/lib/jets/router/method_creator/root.rb +0 -15
- data/lib/jets/router/method_creator/show.rb +0 -12
- data/lib/jets/router/method_creator.rb +0 -50
- data/lib/jets/turbo/database_yaml.rb +0 -41
- data/lib/jets/turbo/project/.gitignore +0 -12
- data/lib/jets/turbo/project/.jetskeep +0 -1
- data/lib/jets/turbo/project/Gemfile +0 -16
- data/lib/jets/turbo/project/Rakefile +0 -2
- data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
- data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
- data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
- data/lib/jets/turbo/project/config/application.rb +0 -5
- data/lib/jets/turbo/project/config/routes.rb +0 -4
- data/lib/jets/turbo/project/config.ru +0 -5
- data/lib/jets/turbo/rails.rb +0 -127
- data/lib/jets/turbo/templates/config/database.yml +0 -30
- data/lib/jets/turbo.rb +0 -56
- data/readme/prerelease.md +0 -6
- data/readme/testing.md +0 -60
- /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
- /data/lib/jets/{commands → command}/help/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
- /data/lib/jets/{commands → command}/help/console.md +0 -0
- /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
- /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
- /data/lib/jets/{commands → command}/help/delete.md +0 -0
- /data/lib/jets/{commands → command}/help/gems/check.md +0 -0
- /data/lib/jets/{commands → command}/help/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
- /data/lib/jets/{commands → command}/help/runner.md +0 -0
- /data/lib/jets/{commands → command}/help/server.md +0 -0
- /data/lib/jets/{commands → command}/help/status.md +0 -0
- /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
- /data/lib/jets/{commands → command}/help/url.md +0 -0
- /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
- /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
data/lib/jets/lambda/dsl.rb
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
#
|
|
3
3
|
# default_associated_resource_definition
|
|
4
4
|
#
|
|
5
|
+
require "dsl_evaluator" # for DslEvaluator.print_code only
|
|
6
|
+
|
|
5
7
|
module Jets::Lambda::Dsl
|
|
6
8
|
extend ActiveSupport::Concern
|
|
7
9
|
|
|
@@ -12,6 +14,7 @@ module Jets::Lambda::Dsl
|
|
|
12
14
|
included do
|
|
13
15
|
class << self
|
|
14
16
|
extend Memoist
|
|
17
|
+
include Warnings
|
|
15
18
|
|
|
16
19
|
def class_properties(options=nil)
|
|
17
20
|
if options
|
|
@@ -31,23 +34,23 @@ module Jets::Lambda::Dsl
|
|
|
31
34
|
|
|
32
35
|
def class_environment(hash)
|
|
33
36
|
environment = standardize_env(hash)
|
|
34
|
-
class_properties(
|
|
37
|
+
class_properties(Environment: environment)
|
|
35
38
|
end
|
|
36
39
|
alias_method :class_env, :class_environment
|
|
37
40
|
|
|
38
41
|
def environment(hash)
|
|
39
42
|
environment = standardize_env(hash)
|
|
40
|
-
properties(
|
|
43
|
+
properties(Environment: environment)
|
|
41
44
|
end
|
|
42
45
|
alias_method :env, :environment
|
|
43
46
|
|
|
44
47
|
# Allows user to pass in hash with or without the :variables key.
|
|
45
48
|
def standardize_env(hash)
|
|
46
|
-
return hash if hash.key?(:
|
|
49
|
+
return hash if hash.key?(:Variables)
|
|
47
50
|
|
|
48
51
|
environment = {}
|
|
49
|
-
environment[:
|
|
50
|
-
environment[:
|
|
52
|
+
environment[:Variables] ||= {}
|
|
53
|
+
environment[:Variables].merge!(hash)
|
|
51
54
|
environment
|
|
52
55
|
end
|
|
53
56
|
|
|
@@ -99,7 +102,9 @@ module Jets::Lambda::Dsl
|
|
|
99
102
|
if definitions.empty?
|
|
100
103
|
@iam_policy
|
|
101
104
|
else
|
|
102
|
-
|
|
105
|
+
iam_policy_unused_warning(managed=false)
|
|
106
|
+
@iam_policy ||= []
|
|
107
|
+
@iam_policy += definitions.flatten
|
|
103
108
|
end
|
|
104
109
|
end
|
|
105
110
|
|
|
@@ -108,7 +113,9 @@ module Jets::Lambda::Dsl
|
|
|
108
113
|
if definitions.empty?
|
|
109
114
|
@class_iam_policy
|
|
110
115
|
else
|
|
111
|
-
|
|
116
|
+
class_iam_policy_unused_warning(managed=false)
|
|
117
|
+
@class_iam_policy ||= []
|
|
118
|
+
@class_iam_policy += definitions.flatten
|
|
112
119
|
end
|
|
113
120
|
end
|
|
114
121
|
|
|
@@ -117,7 +124,9 @@ module Jets::Lambda::Dsl
|
|
|
117
124
|
if definitions.empty?
|
|
118
125
|
@managed_iam_policy
|
|
119
126
|
else
|
|
120
|
-
|
|
127
|
+
iam_policy_unused_warning(managed=true)
|
|
128
|
+
@managed_iam_policy ||= []
|
|
129
|
+
@managed_iam_policy += definitions.flatten
|
|
121
130
|
end
|
|
122
131
|
end
|
|
123
132
|
|
|
@@ -126,7 +135,9 @@ module Jets::Lambda::Dsl
|
|
|
126
135
|
if definitions.empty?
|
|
127
136
|
@class_managed_iam_policy
|
|
128
137
|
else
|
|
129
|
-
|
|
138
|
+
class_iam_policy_unused_warning(managed=true)
|
|
139
|
+
@class_managed_iam_policy ||= []
|
|
140
|
+
@class_managed_iam_policy += definitions.flatten
|
|
130
141
|
end
|
|
131
142
|
end
|
|
132
143
|
|
|
@@ -142,7 +153,7 @@ module Jets::Lambda::Dsl
|
|
|
142
153
|
@associated_resources || []
|
|
143
154
|
else
|
|
144
155
|
@associated_resources ||= []
|
|
145
|
-
associated_resource = Jets::Resource::Associated.new(definitions)
|
|
156
|
+
associated_resource = Jets::Cfn::Resource::Associated.new(definitions)
|
|
146
157
|
associated_resource.multiple_resources = @multiple_resources
|
|
147
158
|
@associated_resources << associated_resource
|
|
148
159
|
@associated_resources.flatten!
|
|
@@ -208,7 +219,7 @@ module Jets::Lambda::Dsl
|
|
|
208
219
|
|
|
209
220
|
logical_id = logical_id.to_s.sub(/\d+$/,'')
|
|
210
221
|
new_definition = { "#{logical_id}#{n}" => attributes }
|
|
211
|
-
numbered_resources << Jets::Resource::Associated.new(new_definition)
|
|
222
|
+
numbered_resources << Jets::Cfn::Resource::Associated.new(new_definition)
|
|
212
223
|
n += 1
|
|
213
224
|
end
|
|
214
225
|
@associated_resources = numbered_resources
|
|
@@ -248,13 +259,13 @@ module Jets::Lambda::Dsl
|
|
|
248
259
|
return if %w[initialize method_missing].include?(meth.to_s)
|
|
249
260
|
return unless public_method_defined?(meth)
|
|
250
261
|
|
|
251
|
-
|
|
262
|
+
register_definition(meth)
|
|
252
263
|
end
|
|
253
264
|
|
|
254
|
-
def
|
|
265
|
+
def register_definition(meth, lang=:ruby)
|
|
255
266
|
# Note: for anonymous classes like for app/functions self.name is ""
|
|
256
267
|
# We adjust the class name when we build the functions later in
|
|
257
|
-
# FunctionContstructor#
|
|
268
|
+
# FunctionContstructor#adjust_definitions.
|
|
258
269
|
|
|
259
270
|
# At this point we can use the current associated_properties and defined the
|
|
260
271
|
# associated resource with the Lambda function.
|
|
@@ -268,7 +279,7 @@ module Jets::Lambda::Dsl
|
|
|
268
279
|
add_logical_id_counter
|
|
269
280
|
end
|
|
270
281
|
|
|
271
|
-
|
|
282
|
+
all_definitions[meth] = Jets::Lambda::Definition.new(self.name, meth,
|
|
272
283
|
properties: @properties, # lambda function properties
|
|
273
284
|
iam_policy: @iam_policy,
|
|
274
285
|
managed_iam_policy: @managed_iam_policy,
|
|
@@ -279,7 +290,7 @@ module Jets::Lambda::Dsl
|
|
|
279
290
|
# Done storing options, clear out for the next added method.
|
|
280
291
|
clear_properties
|
|
281
292
|
# Important to clear @properties at the end of registering outside of
|
|
282
|
-
#
|
|
293
|
+
# register_definition because register_definition is overridden in Jets::Job::Dsl
|
|
283
294
|
#
|
|
284
295
|
# Jets::Job::Base < Jets::Lambda::Functions
|
|
285
296
|
#
|
|
@@ -302,28 +313,28 @@ module Jets::Lambda::Dsl
|
|
|
302
313
|
@associated_properties = nil
|
|
303
314
|
end
|
|
304
315
|
|
|
305
|
-
# Returns the all
|
|
316
|
+
# Returns the all definitions for this class with their method names as keys.
|
|
306
317
|
#
|
|
307
318
|
# ==== Returns
|
|
308
|
-
# OrderedHash:: An ordered hash with
|
|
319
|
+
# OrderedHash:: An ordered hash with definitions names as keys and definition
|
|
309
320
|
# objects as values.
|
|
310
321
|
#
|
|
311
|
-
def
|
|
312
|
-
@
|
|
322
|
+
def all_definitions
|
|
323
|
+
@all_definitions ||= ActiveSupport::OrderedHash.new
|
|
313
324
|
end
|
|
314
|
-
# Do not call all
|
|
315
|
-
private :
|
|
325
|
+
# Do not call all definitions outside this class, instead use: definitions or lambda functions
|
|
326
|
+
private :all_definitions
|
|
316
327
|
|
|
317
|
-
# Goes up the class inheritance chain to build the
|
|
328
|
+
# Goes up the class inheritance chain to build the definitions.
|
|
318
329
|
#
|
|
319
330
|
# Example heirarchy:
|
|
320
331
|
#
|
|
321
332
|
# Jets::Lambda::Functions > Jets::Controller::Base > ApplicationController ...
|
|
322
333
|
# > PostsController > ChildPostsController
|
|
323
334
|
#
|
|
324
|
-
# Do not include
|
|
335
|
+
# Do not include definitions from the direct subclasses of Jets::Lambda::Functions
|
|
325
336
|
# because those classes are abstract. Dont want those methods to be included.
|
|
326
|
-
def
|
|
337
|
+
def find_all_definitions(options={})
|
|
327
338
|
public = options[:public].nil? ? true : options[:public]
|
|
328
339
|
klass = self
|
|
329
340
|
direct_subclasses = Jets::Lambda::Functions.subclasses
|
|
@@ -331,53 +342,53 @@ module Jets::Lambda::Dsl
|
|
|
331
342
|
|
|
332
343
|
# Go up class inheritance and builds lookup structure in memory
|
|
333
344
|
until direct_subclasses.include?(klass)
|
|
334
|
-
lookup << klass.send(:
|
|
345
|
+
lookup << klass.send(:all_definitions) # one place we want to call private all_definitions method
|
|
335
346
|
klass = klass.superclass
|
|
336
347
|
end
|
|
337
|
-
|
|
338
|
-
# Go back down the class inheritance chain in reverse order and merge the
|
|
339
|
-
lookup.reverse.each do |
|
|
340
|
-
#
|
|
341
|
-
|
|
348
|
+
merged_definitions = ActiveSupport::OrderedHash.new
|
|
349
|
+
# Go back down the class inheritance chain in reverse order and merge the definitions
|
|
350
|
+
lookup.reverse.each do |definitions_hash|
|
|
351
|
+
# definitions_hash is a result of all_definitions. Example: PostsController.all_definitions
|
|
352
|
+
merged_definitions.merge!(definitions_hash)
|
|
342
353
|
end
|
|
343
354
|
|
|
344
355
|
# The cfn builders required the right final child class to build the lambda functions correctly.
|
|
345
|
-
|
|
356
|
+
merged_definitions.each do |meth, definition|
|
|
346
357
|
# Override the class name for the cfn builders
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
358
|
+
definition = definition.clone # do not stomp over current definitions since things are usually looked by reference
|
|
359
|
+
definition.instance_variable_set(:@class_name, self.name)
|
|
360
|
+
merged_definitions[meth] = definition
|
|
350
361
|
end
|
|
351
362
|
|
|
352
363
|
# Methods can be made private with the :private keyword after the method has been defined.
|
|
353
364
|
# To account for this, loop back thorugh all the methods and check if the method is indeed public.
|
|
354
|
-
|
|
355
|
-
|
|
365
|
+
definitions = ActiveSupport::OrderedHash.new
|
|
366
|
+
merged_definitions.each do |meth, definition|
|
|
356
367
|
if public
|
|
357
|
-
|
|
368
|
+
definitions[meth] = definition if definition.public_meth?
|
|
358
369
|
else
|
|
359
|
-
|
|
370
|
+
definitions[meth] = definition unless definition.public_meth?
|
|
360
371
|
end
|
|
361
372
|
end
|
|
362
|
-
|
|
373
|
+
definitions
|
|
363
374
|
end
|
|
364
|
-
memoize :
|
|
375
|
+
memoize :find_all_definitions
|
|
365
376
|
|
|
366
|
-
def
|
|
367
|
-
|
|
377
|
+
def all_public_definitions
|
|
378
|
+
find_all_definitions(public: true)
|
|
368
379
|
end
|
|
369
380
|
|
|
370
|
-
def
|
|
371
|
-
|
|
381
|
+
def all_private_definitions
|
|
382
|
+
find_all_definitions(public: false)
|
|
372
383
|
end
|
|
373
384
|
|
|
374
|
-
# Returns the
|
|
385
|
+
# Returns the definitions for this class in Array form.
|
|
375
386
|
#
|
|
376
387
|
# ==== Returns
|
|
377
|
-
# Array of
|
|
388
|
+
# Array of definition objects
|
|
378
389
|
#
|
|
379
|
-
def
|
|
380
|
-
|
|
390
|
+
def definitions
|
|
391
|
+
all_public_definitions.values
|
|
381
392
|
end
|
|
382
393
|
|
|
383
394
|
# The public methods defined in the project app class ulimately become
|
|
@@ -386,18 +397,18 @@ module Jets::Lambda::Dsl
|
|
|
386
397
|
# Example return value:
|
|
387
398
|
# [:index, :new, :create, :show]
|
|
388
399
|
def lambda_functions
|
|
389
|
-
|
|
400
|
+
all_public_definitions.keys
|
|
390
401
|
end
|
|
391
402
|
|
|
392
|
-
# Used in Jets::Cfn::
|
|
403
|
+
# Used in Jets::Cfn::Builder::Interface#build
|
|
393
404
|
# Overridden in rule/dsl.rb
|
|
394
405
|
def build?
|
|
395
|
-
!
|
|
406
|
+
!definitions.empty?
|
|
396
407
|
end
|
|
397
408
|
|
|
398
409
|
# Polymorphic support
|
|
399
410
|
def defpoly(lang, meth)
|
|
400
|
-
|
|
411
|
+
register_definition(meth, lang)
|
|
401
412
|
end
|
|
402
413
|
|
|
403
414
|
def python(meth)
|
data/lib/jets/lambda/function.rb
CHANGED
|
@@ -13,11 +13,11 @@ module Jets::Lambda
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def self.handler
|
|
16
|
-
|
|
16
|
+
handler_definition.meth
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
def self.
|
|
20
|
-
|
|
19
|
+
def self.handler_definition
|
|
20
|
+
definitions.first
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
# Used by main_processor.rb. Same interface as controllers and jobs.
|
|
@@ -36,18 +36,18 @@ module Jets::Lambda
|
|
|
36
36
|
code = IO.read(@code_path)
|
|
37
37
|
function_klass = Class.new(Jets::Lambda::Function)
|
|
38
38
|
function_klass.module_eval(code, @code_path)
|
|
39
|
-
|
|
39
|
+
adjust_definitions(function_klass)
|
|
40
40
|
function_klass # assign this to a Constant for a pretty class name
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
# For anonymous classes method_added during
|
|
43
|
+
# For anonymous classes method_added during definition registration contains ""
|
|
44
44
|
# for the class name. We adjust it here.
|
|
45
|
-
def
|
|
45
|
+
def adjust_definitions(klass)
|
|
46
46
|
class_name = @code_path.to_s.sub(/.*\/functions\//,'').sub(/\.rb$/, '')
|
|
47
47
|
class_name = class_name.camelize
|
|
48
|
-
klass.
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
klass.definitions.each do |definition|
|
|
49
|
+
definition.class_name = class_name
|
|
50
|
+
definition.type = "function"
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
end
|
|
@@ -7,6 +7,8 @@ require 'json'
|
|
|
7
7
|
# Jets::Job::Base
|
|
8
8
|
module Jets::Lambda
|
|
9
9
|
class Functions
|
|
10
|
+
include Jets::ExceptionReporting
|
|
11
|
+
|
|
10
12
|
attr_reader :event, :context, :meth
|
|
11
13
|
def initialize(event, context, meth)
|
|
12
14
|
@event = HashWithIndifferentAccess.new(event) # Hash, JSON.parse(event) ran BaseProcessor
|
|
@@ -16,11 +18,44 @@ module Jets::Lambda
|
|
|
16
18
|
# to use later.
|
|
17
19
|
end
|
|
18
20
|
|
|
21
|
+
def logger
|
|
22
|
+
Jets.logger
|
|
23
|
+
end
|
|
24
|
+
|
|
19
25
|
include Dsl # At the end so methods like event, context and method
|
|
20
26
|
# do not trigger method_added
|
|
21
27
|
|
|
28
|
+
# Pretty hacky since action_view/rendering.rb _normalize_options calls super
|
|
29
|
+
def _normalize_options(options) # :doc:
|
|
30
|
+
options
|
|
31
|
+
end
|
|
32
|
+
|
|
22
33
|
class << self
|
|
23
|
-
|
|
34
|
+
attr_reader :abstract
|
|
35
|
+
alias_method :abstract?, :abstract
|
|
36
|
+
@abstract = true
|
|
37
|
+
|
|
38
|
+
class << self
|
|
39
|
+
def inherited(klass) # :nodoc:
|
|
40
|
+
# Define the abstract ivar on subclasses so that we don't get
|
|
41
|
+
# uninitialized ivar warnings
|
|
42
|
+
unless klass.instance_variable_defined?(:@abstract)
|
|
43
|
+
klass.instance_variable_set(:@abstract, false)
|
|
44
|
+
end
|
|
45
|
+
super
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Define a controller as abstract. See internal_methods for more details.
|
|
50
|
+
def abstract!
|
|
51
|
+
@abstract = true
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def _prefixes
|
|
55
|
+
[]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Tracking subclasses because it helps with Lambda::Dsl#find_all_definitions
|
|
24
59
|
def subclasses
|
|
25
60
|
@subclasses ||= []
|
|
26
61
|
end
|
|
@@ -2,8 +2,7 @@ class Jets::Mega::Request
|
|
|
2
2
|
class Source
|
|
3
3
|
def initialize(event)
|
|
4
4
|
@event = event
|
|
5
|
-
|
|
6
|
-
@source_request = Rack::Request.new(env)
|
|
5
|
+
@source_request = Rack::Request.new(event: event)
|
|
7
6
|
end
|
|
8
7
|
|
|
9
8
|
def body
|
data/lib/jets/mega/request.rb
CHANGED
|
@@ -14,14 +14,14 @@ module Jets::Mega
|
|
|
14
14
|
|
|
15
15
|
def proxy
|
|
16
16
|
http_method = @event['httpMethod'] # GET, POST, PUT, DELETE, etc
|
|
17
|
-
params = @controller.params(
|
|
17
|
+
params = @controller.params(include_path_params: false)
|
|
18
18
|
|
|
19
19
|
uri = get_uri
|
|
20
20
|
|
|
21
21
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
22
22
|
http.open_timeout = http.read_timeout = 60
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# Jets sets _method=patch or _method=put as workaround
|
|
25
25
|
# Falls back to GET when testing in lambda console
|
|
26
26
|
http_class = params['_method'] || http_method || 'GET'
|
|
27
27
|
http_class.capitalize!
|
|
@@ -115,7 +115,7 @@ module Jets::Mega
|
|
|
115
115
|
end
|
|
116
116
|
memoize :source
|
|
117
117
|
|
|
118
|
-
#
|
|
118
|
+
# Jets sets _method=patch or _method=put as workaround
|
|
119
119
|
# Falls back to GET when testing in lambda console
|
|
120
120
|
# @event['httpMethod'] is GET, POST, PUT, DELETE, etc
|
|
121
121
|
def http_class
|
|
@@ -125,7 +125,7 @@ module Jets::Mega
|
|
|
125
125
|
end
|
|
126
126
|
|
|
127
127
|
def params
|
|
128
|
-
@controller.params(
|
|
128
|
+
@controller.params(include_path_params: false, include_body_params: true)
|
|
129
129
|
end
|
|
130
130
|
memoize :params
|
|
131
131
|
|
data/lib/jets/names.rb
CHANGED
|
@@ -6,54 +6,70 @@ class Jets::Names
|
|
|
6
6
|
class << self
|
|
7
7
|
extend Memoist
|
|
8
8
|
|
|
9
|
+
def templates_folder
|
|
10
|
+
"#{Jets.build_root}/templates"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def one_controller_template_path
|
|
14
|
+
"#{templates_folder}/jets-controller.yml"
|
|
15
|
+
end
|
|
16
|
+
|
|
9
17
|
def app_template_path(app_class)
|
|
10
18
|
underscored = underscore(app_class)
|
|
11
|
-
"#{
|
|
19
|
+
"#{templates_folder}/app-#{underscored}.yml"
|
|
12
20
|
end
|
|
13
21
|
|
|
14
22
|
def shared_template_path(shared_class)
|
|
15
23
|
underscored = underscore(shared_class)
|
|
16
|
-
"#{
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def template_path_prefix
|
|
20
|
-
"#{Jets.build_root}/templates/#{Jets.config.project_namespace}"
|
|
24
|
+
"#{templates_folder}/shared-#{underscored}.yml"
|
|
21
25
|
end
|
|
22
26
|
|
|
23
27
|
# consider moving these methods into cfn/builder/helpers.rb or that area.
|
|
24
28
|
def parent_template_path
|
|
25
|
-
"#{
|
|
29
|
+
"#{templates_folder}/parent.yml"
|
|
26
30
|
end
|
|
27
31
|
|
|
28
32
|
# consider moving these methods into cfn/builder/helpers.rb or that area.
|
|
29
33
|
def api_gateway_template_path
|
|
30
|
-
"#{
|
|
34
|
+
"#{templates_folder}/api-gateway.yml"
|
|
31
35
|
end
|
|
32
36
|
|
|
33
|
-
def api_resources_template_path(
|
|
34
|
-
"#{
|
|
37
|
+
def api_resources_template_path(page_number)
|
|
38
|
+
"#{templates_folder}/api-resources-#{page_number}.yml"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def api_cors_template_path(page_number)
|
|
42
|
+
"#{templates_folder}/api-cors-#{page_number}.yml"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def api_methods_template_path(page_number)
|
|
46
|
+
"#{templates_folder}/api-methods-#{page_number}.yml"
|
|
35
47
|
end
|
|
36
48
|
|
|
37
49
|
def api_deployment_template_path
|
|
38
|
-
"#{
|
|
50
|
+
"#{templates_folder}/api-deployment.yml"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def api_mapping_template_path
|
|
54
|
+
"#{templates_folder}/api-mapping.yml"
|
|
39
55
|
end
|
|
40
56
|
|
|
41
57
|
def shared_resources_template_path
|
|
42
|
-
"#{
|
|
58
|
+
"#{templates_folder}/shared-resources.yml"
|
|
43
59
|
end
|
|
44
60
|
|
|
45
61
|
def parent_stack_name
|
|
46
|
-
|
|
62
|
+
Jets.project_namespace
|
|
47
63
|
end
|
|
48
64
|
|
|
49
65
|
def gateway_api_name
|
|
50
|
-
|
|
66
|
+
Jets.project_namespace
|
|
51
67
|
end
|
|
52
68
|
|
|
53
69
|
def authorizer_template_path(path)
|
|
54
70
|
underscored = underscore(path)
|
|
55
71
|
underscored.sub!(/^app-/, '')
|
|
56
|
-
"#{
|
|
72
|
+
"#{templates_folder}/#{underscored}.yml"
|
|
57
73
|
end
|
|
58
74
|
|
|
59
75
|
def underscore(s)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# This is a dummy Rails class that delegates to Jets.
|
|
2
|
+
# It's only used for jets generate and jets db:migrate.
|
|
3
|
+
# It's easier to mock out the Rails module then to get them working.
|
|
4
|
+
|
|
5
|
+
module Rails
|
|
6
|
+
cattr_accessor :application
|
|
7
|
+
self.application = Jets.application
|
|
8
|
+
class << self
|
|
9
|
+
delegate :env, :root, to: Jets
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -22,6 +22,16 @@ module AwsLambda
|
|
|
22
22
|
else
|
|
23
23
|
# Orignal method calls .to_json but this collides with ActiveSupport's to_json
|
|
24
24
|
# method_response.to_json # application/json is assumed
|
|
25
|
+
# https://stackoverflow.com/questions/18067203/ruby-to-json-issue-with-error-illegal-malformed-utf-8
|
|
26
|
+
if method_response.is_a?(Hash)
|
|
27
|
+
method_response.deep_transform_values! do |v|
|
|
28
|
+
if v.respond_to?(:force_encoding) && !v.frozen?
|
|
29
|
+
v.force_encoding("ISO-8859-1").encode("UTF-8")
|
|
30
|
+
else
|
|
31
|
+
v # IE: Integer
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
25
35
|
JSON.dump(method_response)
|
|
26
36
|
end
|
|
27
37
|
end
|