jets 3.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +5 -1
- data/CHANGELOG.md +141 -0
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/README.md +21 -43
- data/Rakefile +3 -3
- data/backers.md +0 -5
- data/engines/internal/app/controllers/jets/application_controller.rb +28 -0
- data/engines/internal/app/controllers/jets/bare_controller.rb +6 -0
- data/engines/internal/app/controllers/jets/health_controller.rb +55 -0
- data/engines/internal/app/controllers/jets/info_controller.rb +45 -0
- data/{lib/jets → engines}/internal/app/controllers/jets/mailers_controller.rb +12 -14
- data/{lib/jets → engines}/internal/app/controllers/jets/mount_controller.rb +6 -10
- data/{lib/jets → engines}/internal/app/controllers/jets/public_controller.rb +6 -2
- data/engines/internal/app/controllers/jets/welcome_controller.rb +9 -0
- data/engines/internal/app/functions/jets/base_path.rb +109 -0
- data/engines/internal/app/functions/jets/base_path_mapping.rb +191 -0
- data/engines/internal/app/jobs/jets/preheat_job.rb +67 -0
- data/engines/internal/app/views/jets/info/properties.html.erb +1 -0
- data/engines/internal/app/views/jets/info/routes.html.erb +10 -0
- data/{lib/jets → engines}/internal/app/views/jets/mailers/email.html.erb +37 -17
- data/engines/internal/app/views/jets/mailers/index.html.erb +8 -0
- data/engines/internal/app/views/jets/mailers/mailer.html.erb +6 -0
- data/{lib/jets/commands/templates/skeleton/public/index.html.tt → engines/internal/app/views/jets/welcome/index.html.erb} +8 -4
- data/engines/internal/app/views/layouts/application.html.erb +51 -0
- data/engines/internal/lib/internal/actiondispatch.rb +39 -0
- data/engines/internal/lib/internal/actionmailer.rb +51 -0
- data/engines/internal/lib/internal/actionview.rb +152 -0
- data/engines/internal/lib/internal/activerecord.rb +37 -0
- data/engines/internal/lib/internal/activesupport.rb +47 -0
- data/engines/internal/lib/internal/engine.rb +13 -0
- data/engines/internal/lib/internal/i18n_engine.rb +19 -0
- data/engines/internal/lib/internal/jets_controller.rb +46 -0
- data/engines/internal/lib/internal/overrides/debug_exceptions.rb +40 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +62 -0
- data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +9 -0
- data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +70 -0
- data/engines/internal/lib/internal/turbines/helpers.rb +18 -0
- data/engines/internal/lib/internal/turbines/routes_helpers.rb +42 -0
- data/exe/jets +1 -10
- data/jets.gemspec +16 -13
- data/lib/jets/app_loader.rb +77 -0
- data/lib/jets/application/bootstrap.rb +100 -0
- data/lib/jets/application/configuration/defaults.rb +256 -0
- data/lib/jets/application/configuration.rb +494 -0
- data/lib/jets/application/default_middleware_stack.rb +140 -0
- data/lib/jets/application/dummy_erb_compiler.rb +18 -0
- data/lib/jets/application/finisher.rb +266 -0
- data/lib/jets/application/routes_reloader.rb +80 -0
- data/lib/jets/application.rb +515 -199
- data/lib/jets/authorizer/base.rb +1 -0
- data/lib/jets/authorizer/dsl.rb +15 -11
- data/lib/jets/authorizer/helpers/iam_helper.rb +13 -11
- data/lib/jets/autoloaders/gem.rb +70 -0
- data/lib/jets/autoloaders/inflector.rb +21 -0
- data/lib/jets/autoloaders.rb +38 -101
- data/lib/jets/aws_info.rb +2 -2
- data/lib/jets/aws_services/stack_status.rb +1 -1
- data/lib/jets/aws_services.rb +8 -0
- data/lib/jets/backtrace_cleaner.rb +27 -0
- data/lib/jets/booter.rb +30 -118
- data/lib/jets/builders/code_builder.rb +64 -122
- data/lib/jets/builders/code_size.rb +1 -0
- data/lib/jets/builders/gem_replacer.rb +6 -12
- data/lib/jets/builders/handler_generator.rb +34 -14
- data/lib/jets/builders/lambda_layer.rb +2 -7
- data/lib/jets/builders/purger.rb +1 -1
- data/lib/jets/builders/rack_packager.rb +1 -1
- data/lib/jets/builders/ruby_packager.rb +54 -10
- data/lib/jets/builders/shim_vars/app.rb +10 -6
- data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +33 -0
- data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +20 -0
- data/lib/jets/builders/templates/{handler.rb → handlers/one_lambda_per_method.rb} +6 -0
- data/lib/jets/bundle.rb +2 -9
- data/lib/jets/cfn/base.rb +82 -0
- data/lib/jets/cfn/builder/api/base.rb +12 -0
- data/lib/jets/cfn/{builders/api_deployment_builder.rb → builder/api/deployment.rb} +11 -21
- data/lib/jets/cfn/builder/api/gateway.rb +104 -0
- data/lib/jets/cfn/builder/api/mapping.rb +54 -0
- data/lib/jets/cfn/builder/api/methods.rb +72 -0
- data/lib/jets/cfn/builder/api/paged.rb +30 -0
- data/lib/jets/cfn/builder/api/pages/base.rb +105 -0
- data/lib/jets/cfn/builder/api/pages/methods.rb +17 -0
- data/lib/jets/cfn/builder/api/pages/page.rb +19 -0
- data/lib/jets/cfn/builder/api/pages/resources.rb +21 -0
- data/lib/jets/cfn/builder/api/resources.rb +40 -0
- data/lib/jets/cfn/{builders/authorizer_builder.rb → builder/authorizer.rb} +16 -19
- data/lib/jets/cfn/builder/controller.rb +28 -0
- data/lib/jets/cfn/builder/function.rb +9 -0
- data/lib/jets/cfn/builder/interface.rb +146 -0
- data/lib/jets/cfn/builder/job.rb +10 -0
- data/lib/jets/cfn/builder/nested.rb +130 -0
- data/lib/jets/cfn/builder/one_controller.rb +53 -0
- data/lib/jets/cfn/{builders/parent_builder → builder/parent}/stagger.rb +1 -1
- data/lib/jets/cfn/builder/parent.rb +149 -0
- data/lib/jets/cfn/builder/post_process.rb +25 -0
- data/lib/jets/cfn/{builders/rule_builder.rb → builder/rule.rb} +4 -8
- data/lib/jets/cfn/{builders/shared_builder.rb → builder/shared.rb} +5 -4
- data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
- data/lib/jets/{commands/build.rb → cfn/builder.rb} +50 -78
- data/lib/jets/cfn/deployment.rb +45 -0
- data/lib/jets/cfn/download.rb +39 -0
- data/lib/jets/cfn/params/api/base.rb +39 -0
- data/lib/jets/cfn/params/api/cors.rb +10 -0
- data/lib/jets/cfn/params/api/methods.rb +69 -0
- data/lib/jets/cfn/params/api/resources.rb +28 -0
- data/lib/jets/{resource/child_stack/common_parameters.rb → cfn/params/common.rb} +3 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/authorizer.rb +21 -21
- data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +57 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/base_path/mapping.rb +13 -12
- data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +70 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/deployment.rb +13 -20
- data/lib/jets/{resource → cfn/resource}/api_gateway/domain_name.rb +11 -11
- data/lib/jets/{resource → cfn/resource}/api_gateway/method/authorization.rb +1 -1
- data/lib/jets/cfn/resource/api_gateway/method.rb +92 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/resource.rb +14 -10
- data/lib/jets/cfn/resource/api_gateway/resource_id.rb +25 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/change_detection.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id/message.rb +14 -4
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +15 -41
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +3 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +6 -6
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/to.rb +8 -3
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/variable.rb +2 -2
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +27 -0
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +22 -12
- data/lib/jets/{resource → cfn/resource}/associated.rb +1 -1
- data/lib/jets/{resource → cfn/resource}/config/config_rule.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/config/managed_rule.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/events/rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/iam/application_role.rb +4 -4
- data/lib/jets/cfn/resource/iam/base_role_definition.rb +56 -0
- data/lib/jets/{resource → cfn/resource}/iam/class_role.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/iam/function_role.rb +6 -6
- data/lib/jets/{resource → cfn/resource}/iam/managed_policy.rb +1 -1
- data/lib/jets/cfn/resource/iam/policy.rb +31 -0
- data/lib/jets/{resource → cfn/resource}/iam/policy_document.rb +10 -9
- data/lib/jets/{resource → cfn/resource}/iot/topic_rule.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/lambda/event_source_mapping.rb +9 -9
- data/lib/jets/cfn/resource/lambda/function/controller.rb +21 -0
- data/lib/jets/{resource → cfn/resource}/lambda/function/environment.rb +9 -7
- data/lib/jets/cfn/resource/lambda/function.rb +266 -0
- data/lib/jets/{resource → cfn/resource}/lambda/gem_layer.rb +2 -2
- data/lib/jets/{resource → cfn/resource}/lambda/layer_version.rb +10 -10
- data/lib/jets/cfn/resource/lambda/permission.rb +51 -0
- data/lib/jets/cfn/resource/logs/subscription_filter.rb +31 -0
- data/lib/jets/cfn/resource/nested/api/base.rb +4 -0
- data/lib/jets/cfn/resource/nested/api/deployment.rb +53 -0
- data/lib/jets/cfn/resource/nested/api/gateway.rb +15 -0
- data/lib/jets/cfn/resource/nested/api/mapping.rb +33 -0
- data/lib/jets/cfn/resource/nested/api/methods.rb +30 -0
- data/lib/jets/cfn/resource/nested/api/page.rb +8 -0
- data/lib/jets/cfn/resource/nested/api/resources.rb +22 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/app_class.rb +15 -48
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/authorizer.rb +8 -14
- data/lib/jets/cfn/resource/nested/base.rb +38 -0
- data/lib/jets/cfn/resource/nested/one_controller.rb +48 -0
- data/lib/jets/{resource/child_stack → cfn/resource/nested}/shared.rb +10 -16
- data/lib/jets/cfn/resource/one/function.rb +66 -0
- data/lib/jets/cfn/resource/one/permission.rb +17 -0
- data/lib/jets/{resource → cfn/resource}/replacer.rb +26 -27
- data/lib/jets/{resource → cfn/resource}/route53/record_set.rb +18 -18
- data/lib/jets/{resource → cfn/resource}/s3/bucket.rb +4 -4
- data/lib/jets/cfn/resource/s3/jets_bucket.rb +68 -0
- data/lib/jets/{resource → cfn/resource}/sns/subscription.rb +8 -8
- data/lib/jets/{resource → cfn/resource}/sns/topic.rb +10 -10
- data/lib/jets/{resource → cfn/resource}/sns/topic_policy.rb +13 -13
- data/lib/jets/{resource → cfn/resource}/sqs/queue.rb +5 -5
- data/lib/jets/{resource → cfn/resource}/standardizer.rb +8 -9
- data/lib/jets/cfn/resource.rb +8 -0
- data/lib/jets/cfn/ship.rb +30 -16
- data/lib/jets/cfn/status.rb +1 -1
- data/lib/jets/cfn/template.rb +89 -0
- data/lib/jets/cfn/upload.rb +26 -23
- data/lib/jets/cli.rb +28 -203
- data/lib/jets/command/actions.rb +49 -0
- data/lib/jets/command/api_helpers.rb +41 -0
- data/lib/jets/command/aws_helpers.rb +26 -0
- data/lib/jets/command/base.rb +204 -0
- data/lib/jets/command/behavior.rb +83 -0
- data/lib/jets/command/environment_argument.rb +42 -0
- data/lib/jets/command/help/call.md +48 -0
- data/lib/jets/{commands → command}/help/deploy.md +1 -1
- data/lib/jets/command/help/logs.md +21 -0
- data/lib/jets/{commands → command}/help/new.md +3 -4
- data/lib/jets/command/help/projects.md +6 -0
- data/lib/jets/command/help/releases.md +37 -0
- data/lib/jets/command/help/rollback.md +5 -0
- data/lib/jets/command/help/routes.md +15 -0
- data/lib/jets/command/help/runner.md +40 -0
- data/lib/jets/command/help/stacks.md +6 -0
- data/lib/jets/command/help.rb +17 -0
- data/lib/jets/command/helpers/editor.rb +35 -0
- data/lib/jets/command.rb +133 -0
- data/lib/jets/commands/application/application_command.rb +40 -0
- data/lib/jets/commands/build/build_command.rb +33 -0
- data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
- data/lib/jets/commands/call/autoload_guesser.rb +2 -2
- data/lib/jets/commands/call/base_guesser.rb +5 -5
- data/lib/jets/commands/call/call_command.rb +27 -0
- data/lib/jets/commands/call/caller.rb +184 -0
- data/lib/jets/commands/call/guesser.rb +1 -1
- data/lib/jets/commands/clean/base.rb +1 -1
- data/lib/jets/commands/clean/build.rb +1 -1
- data/lib/jets/commands/clean/clean_command.rb +15 -0
- data/lib/jets/commands/clean/log.rb +4 -4
- data/lib/jets/commands/configure/configure_command.rb +9 -0
- data/lib/jets/commands/console/console_command.rb +38 -0
- data/lib/jets/commands/credentials/USAGE +103 -0
- data/lib/jets/commands/credentials/credentials_command/diffing.rb +51 -0
- data/lib/jets/commands/credentials/credentials_command.rb +139 -0
- data/lib/jets/commands/db/system/change/change_command.rb +24 -0
- data/lib/jets/commands/dbconsole/dbconsole_command.rb +184 -0
- data/lib/jets/commands/degenerate/degenerate_command.rb +21 -0
- data/lib/jets/commands/delete/delete_command.rb +155 -0
- data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +30 -49
- data/lib/jets/commands/dev/dev_command.rb +19 -0
- data/lib/jets/commands/{dotenv.rb → dotenv/dotenv_command.rb} +2 -2
- data/lib/jets/commands/encrypted/USAGE +46 -0
- data/lib/jets/commands/encrypted/encrypted_command.rb +87 -0
- data/lib/jets/commands/gems/gems_command.rb +14 -0
- data/lib/jets/commands/generate/generate_command.rb +95 -0
- data/lib/jets/commands/help/USAGE +20 -0
- data/lib/jets/commands/help/help_command.rb +15 -0
- data/lib/jets/commands/initializers/initializers_command.rb +19 -0
- data/lib/jets/commands/logs/logs_command.rb +45 -0
- data/lib/jets/commands/new/new_command.rb +19 -0
- data/lib/jets/commands/notes/notes_command.rb +30 -0
- data/lib/jets/commands/plugin/plugin_command.rb +45 -0
- data/lib/jets/commands/projects/projects_command.rb +30 -0
- data/lib/jets/commands/rake/rake_command.rb +59 -0
- data/lib/jets/commands/releases/releases_command.rb +72 -0
- data/lib/jets/commands/rollback/rollback_command.rb +41 -0
- data/lib/jets/commands/routes/routes_command.rb +19 -0
- data/lib/jets/commands/runner/runner_command.rb +60 -0
- data/lib/jets/commands/server/server_command.rb +291 -0
- data/lib/jets/commands/stacks/stacks_command.rb +39 -0
- data/lib/jets/commands/status/status_command.rb +9 -0
- data/lib/jets/commands/url/url_command.rb +92 -0
- data/lib/jets/commands/version/version_command.rb +11 -0
- data/lib/jets/commands.rb +17 -0
- data/lib/jets/configuration.rb +166 -0
- data/lib/jets/controller/base.rb +105 -183
- data/lib/jets/controller/compat/abstract_controller/base.rb +126 -0
- data/lib/jets/controller/compat/action_controller/metal.rb +99 -0
- data/lib/jets/controller/compat/caching.rb +13 -0
- data/lib/jets/controller/compat/future.rb +13 -0
- data/lib/jets/controller/compat/route_set.rb +47 -0
- data/lib/jets/controller/decorate/apigw_stage.rb +39 -0
- data/lib/jets/controller/{authorization.rb → decorate/authorization.rb} +1 -1
- data/lib/jets/controller/decorate/logging.rb +90 -0
- data/lib/jets/controller/decorate/redirecting.rb +16 -0
- data/lib/jets/controller/decorate/url_for.rb +10 -0
- data/lib/jets/controller/{rack/adapter.rb → handler/apigw.rb} +36 -37
- data/lib/jets/controller/handler.rb +41 -0
- data/lib/jets/controller/middleware/main.rb +16 -8
- data/lib/jets/controller/middleware/{local/api_gateway.rb → mimic/apigw.rb} +41 -4
- data/lib/jets/controller/middleware/mimic/lambda_context.rb +44 -0
- data/lib/jets/controller/middleware/{local.rb → mimic.rb} +36 -51
- data/lib/jets/controller/rack_adapter/action.rb +35 -0
- data/lib/jets/controller/{rack → rack_adapter}/env.rb +39 -18
- data/lib/jets/controller/request/compat/params.rb +144 -0
- data/lib/jets/controller/request/compat/request.rb +125 -0
- data/lib/jets/controller/request.rb +35 -18
- data/lib/jets/controller/response/compat/response.rb +67 -0
- data/lib/jets/controller/response.rb +91 -8
- data/lib/jets/core.rb +153 -50
- data/lib/jets/core_ext/file.rb +9 -0
- data/lib/jets/core_ext/kernel.rb +2 -2
- data/lib/jets/core_ext/symbol.rb +5 -0
- data/lib/jets/core_ext.rb +4 -0
- data/lib/jets/dev_caching.rb +44 -0
- data/lib/jets/dotenv/ssm.rb +5 -2
- data/lib/jets/dotenv.rb +4 -3
- data/lib/jets/engine/configuration.rb +96 -0
- data/lib/jets/engine/turbines.rb +23 -0
- data/lib/jets/engine.rb +380 -0
- data/lib/jets/erb.rb +1 -1
- data/lib/jets/exception_reporting.rb +43 -0
- data/lib/jets/generators/job/job_generator.rb +41 -0
- data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/iot.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/kinesis.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/log.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/rule.rb.tt +23 -0
- data/lib/jets/generators/job/templates/event_types/s3.rb.tt +11 -0
- data/lib/jets/{generator/templates/active_job/job/templates/job.rb.tt → generators/job/templates/event_types/scheduled.rb.tt} +3 -3
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +9 -0
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +9 -0
- data/lib/jets/generators/overrides/app/USAGE +38 -0
- data/lib/jets/generators/overrides/app/app_generator.rb +148 -0
- data/lib/jets/generators/overrides/app/helpers.rb +139 -0
- data/lib/jets/generators/overrides/app/templates/.env +10 -0
- data/lib/jets/{commands/templates/skeleton/.gitignore → generators/overrides/app/templates/.gitignore.tt} +2 -1
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +25 -0
- data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
- data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +19 -0
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
- data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
- data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
- data/lib/jets/generators.rb +112 -0
- data/lib/jets/inflections.rb +1 -1
- data/lib/jets/info.rb +116 -0
- data/lib/jets/initializable.rb +95 -0
- data/lib/jets/job/base.rb +5 -2
- data/lib/jets/job/dsl/dynamodb_event.rb +19 -9
- data/lib/jets/job/dsl/event_source_mapping.rb +1 -1
- data/lib/jets/job/dsl/iot_event.rb +6 -6
- data/lib/jets/job/dsl/kinesis_event.rb +5 -5
- data/lib/jets/job/dsl/log_event.rb +2 -2
- data/lib/jets/job/dsl/rule_event.rb +7 -4
- data/lib/jets/job/dsl/s3_event.rb +1 -1
- data/lib/jets/job/dsl/sns_event.rb +6 -6
- data/lib/jets/job/dsl/sqs_event.rb +11 -11
- data/lib/jets/job/helpers/sns_event_helper.rb +8 -0
- data/lib/jets/job/helpers/sqs_event_helper.rb +8 -0
- data/lib/jets/klass.rb +5 -6
- data/lib/jets/lambda/definition.rb +118 -0
- data/lib/jets/lambda/dsl/warnings.rb +57 -0
- data/lib/jets/lambda/dsl.rb +73 -54
- data/lib/jets/lambda/function.rb +3 -3
- data/lib/jets/lambda/function_constructor.rb +6 -6
- data/lib/jets/lambda/functions.rb +36 -1
- data/lib/jets/mega/hash_converter.rb +2 -2
- data/lib/jets/mega/request/source.rb +1 -2
- data/lib/jets/mega/request.rb +4 -4
- data/lib/jets/names.rb +79 -0
- data/lib/jets/overrides/dummy/rails.rb +11 -0
- data/lib/jets/overrides/lambda/marshaller.rb +10 -0
- data/lib/jets/overrides/puma.rb +10 -0
- data/lib/jets/paths.rb +243 -0
- data/lib/jets/{poly_fun → poly}/base_executor.rb +13 -13
- data/lib/jets/{poly_fun → poly}/lambda_executor.rb +2 -2
- data/lib/jets/{poly_fun → poly}/node_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/node_executor.rb +4 -4
- data/lib/jets/{poly_fun → poly}/python_error.rb +1 -1
- data/lib/jets/{poly_fun → poly}/python_executor.rb +2 -2
- data/lib/jets/{poly_fun.rb → poly.rb} +12 -12
- data/lib/jets/preheat.rb +26 -33
- data/lib/jets/processors/deducer.rb +2 -2
- data/lib/jets/processors/main_processor.rb +6 -13
- data/lib/jets/rack/logger.rb +77 -0
- data/lib/jets/router/compat/route_set.rb +177 -0
- data/lib/jets/router/dsl/mount.rb +40 -6
- data/lib/jets/router/dsl.rb +125 -105
- data/lib/jets/router/engine_mount.rb +36 -0
- data/lib/jets/router/help.rb +130 -0
- data/lib/jets/router/helpers/named_routes/add_full_url.rb +13 -0
- data/lib/jets/router/helpers/named_routes/generated.rb +197 -0
- data/lib/jets/router/helpers/named_routes/proxy.rb +66 -0
- data/lib/jets/router/matcher.rb +140 -17
- data/lib/jets/router/resources/options.rb +6 -4
- data/lib/jets/router/route/after_initialize.rb +64 -0
- data/lib/jets/router/route/as.rb +93 -0
- data/lib/jets/router/route/authorizer.rb +1 -0
- data/lib/jets/router/route/compat.rb +45 -0
- data/lib/jets/router/route/info.rb +74 -0
- data/lib/jets/router/route/node.rb +137 -0
- data/lib/jets/router/route/path.rb +93 -0
- data/lib/jets/router/route.rb +109 -90
- data/lib/jets/router/route_set.rb +214 -0
- data/lib/jets/router/scope.rb +204 -69
- data/lib/jets/router/state.rb +67 -0
- data/lib/jets/router/util.rb +1 -31
- data/lib/jets/router.rb +64 -150
- data/lib/jets/ruby_version_check.rb +15 -0
- data/lib/jets/rule/base.rb +1 -0
- data/lib/jets/rule/dsl.rb +7 -7
- data/lib/jets/secrets.rb +110 -0
- data/lib/jets/spec_helpers/controllers/request.rb +22 -16
- data/lib/jets/spec_helpers/controllers.rb +32 -24
- data/lib/jets/spec_helpers.rb +0 -6
- data/lib/jets/stack/builder.rb +3 -2
- data/lib/jets/stack/definition.rb +1 -4
- data/lib/jets/stack/function.rb +2 -2
- data/lib/jets/stack/main/dsl/cloudwatch.rb +4 -4
- data/lib/jets/stack/main/dsl/kinesis.rb +2 -2
- data/lib/jets/stack/main/dsl/lambda.rb +26 -19
- data/lib/jets/stack/main/dsl/sqs.rb +2 -2
- data/lib/jets/stack/output/lookup.rb +1 -1
- data/lib/jets/stack/output.rb +2 -2
- data/lib/jets/stack/parameter.rb +2 -2
- data/lib/jets/stack/resource.rb +3 -3
- data/lib/jets/stack/s3_event.rb +51 -37
- data/lib/jets/stack.rb +1 -1
- data/lib/jets/tasks/engine.rake +85 -0
- data/lib/jets/tasks/framework.rake +66 -0
- data/lib/jets/tasks/log.rake +41 -0
- data/lib/jets/tasks/middleware.rake +9 -0
- data/lib/jets/tasks/misc.rake +81 -0
- data/lib/jets/tasks/statistics.rake +37 -0
- data/lib/jets/tasks/tmp.rake +51 -0
- data/lib/jets/tasks/yarn.rake +29 -0
- data/lib/jets/tasks/zeitwerk.rake +61 -0
- data/lib/jets/tasks.rb +18 -0
- data/lib/jets/tmp_loader.rb +1 -1
- data/lib/jets/turbine/configurable.rb +36 -0
- data/lib/jets/turbine/configuration.rb +101 -0
- data/lib/jets/turbine.rb +164 -20
- data/lib/jets/util/camelize.rb +24 -0
- data/lib/jets/util/yamler.rb +16 -0
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +8 -14
- metadata +444 -347
- data/.python-version +0 -1
- data/.ruby-version +0 -1
- data/bin/release +0 -9
- data/lib/jets/application/defaults.rb +0 -200
- data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +0 -16
- data/lib/jets/builders/reconfigure_rails.rb +0 -114
- data/lib/jets/cfn/builders/api_gateway_builder.rb +0 -123
- data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
- data/lib/jets/cfn/builders/base_child_builder.rb +0 -69
- data/lib/jets/cfn/builders/controller_builder.rb +0 -50
- data/lib/jets/cfn/builders/function_builder.rb +0 -14
- data/lib/jets/cfn/builders/interface.rb +0 -133
- data/lib/jets/cfn/builders/job_builder.rb +0 -14
- data/lib/jets/cfn/builders/parent_builder.rb +0 -130
- data/lib/jets/cfn/built_template.rb +0 -15
- data/lib/jets/cfn/template_source.rb +0 -61
- data/lib/jets/commands/base.rb +0 -145
- data/lib/jets/commands/call.rb +0 -182
- data/lib/jets/commands/clean.rb +0 -19
- data/lib/jets/commands/configure.rb +0 -51
- data/lib/jets/commands/console.rb +0 -12
- data/lib/jets/commands/db/environment-task.rake +0 -3
- data/lib/jets/commands/db/tasks/dummy/app.rb +0 -25
- data/lib/jets/commands/db/tasks/dummy/config.rb +0 -14
- data/lib/jets/commands/db/tasks.rb +0 -34
- data/lib/jets/commands/db.rb +0 -13
- data/lib/jets/commands/dbconsole.rb +0 -134
- data/lib/jets/commands/delete.rb +0 -136
- data/lib/jets/commands/dynamodb/migrate.rb +0 -9
- data/lib/jets/commands/dynamodb/migrator.rb +0 -36
- data/lib/jets/commands/dynamodb.rb +0 -19
- data/lib/jets/commands/gems.rb +0 -13
- data/lib/jets/commands/help/call.md +0 -69
- data/lib/jets/commands/help/dynamodb/generate.md +0 -52
- data/lib/jets/commands/help/dynamodb/migrate.md +0 -4
- data/lib/jets/commands/help/routes.md +0 -16
- data/lib/jets/commands/help/runner.md +0 -17
- data/lib/jets/commands/help.rb +0 -9
- data/lib/jets/commands/import/base.rb +0 -49
- data/lib/jets/commands/import/cheatsheet.rb +0 -35
- data/lib/jets/commands/import/rack.rb +0 -16
- data/lib/jets/commands/import/rails.rb +0 -74
- data/lib/jets/commands/import/sequence.rb +0 -90
- data/lib/jets/commands/import/templates/config/database.yml +0 -30
- data/lib/jets/commands/import/templates/submodules-cheatsheet.md +0 -89
- data/lib/jets/commands/import.rb +0 -12
- data/lib/jets/commands/main.rb +0 -166
- data/lib/jets/commands/markdown/creator.rb +0 -58
- data/lib/jets/commands/markdown/index.rb +0 -27
- data/lib/jets/commands/markdown/page.rb +0 -125
- data/lib/jets/commands/markdown/shell.rb +0 -11
- data/lib/jets/commands/new.rb +0 -173
- data/lib/jets/commands/rake_command.rb +0 -61
- data/lib/jets/commands/rake_tasks.rb +0 -50
- data/lib/jets/commands/runner.rb +0 -16
- data/lib/jets/commands/sequence.rb +0 -105
- data/lib/jets/commands/stack_info.rb +0 -30
- data/lib/jets/commands/templates/skeleton/.env.development.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.env.test +0 -3
- data/lib/jets/commands/templates/skeleton/.env.tt +0 -3
- data/lib/jets/commands/templates/skeleton/.jetskeep +0 -1
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -40
- data/lib/jets/commands/templates/skeleton/Procfile +0 -7
- data/lib/jets/commands/templates/skeleton/Rakefile +0 -2
- data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +0 -2
- data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +0 -26
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -71
- data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +0 -22
- data/lib/jets/commands/templates/skeleton/config/environments/development.rb +0 -7
- data/lib/jets/commands/templates/skeleton/config/environments/production.rb +0 -9
- data/lib/jets/commands/templates/skeleton/config/environments/test.rb +0 -7
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +0 -23
- data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +0 -24
- data/lib/jets/commands/upgrade/templates/bin/webpack +0 -19
- data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
- data/lib/jets/commands/upgrade/version1.rb +0 -136
- data/lib/jets/commands/upgrade.rb +0 -105
- data/lib/jets/commands/url.rb +0 -69
- data/lib/jets/commands/webpacker_template.rb +0 -18
- data/lib/jets/controller/callbacks.rb +0 -73
- data/lib/jets/controller/cookies/jar.rb +0 -269
- data/lib/jets/controller/cookies.rb +0 -38
- data/lib/jets/controller/error/invalid_authenticity_token.rb +0 -6
- data/lib/jets/controller/error.rb +0 -4
- data/lib/jets/controller/forgery_protection.rb +0 -43
- data/lib/jets/controller/layout.rb +0 -17
- data/lib/jets/controller/middleware/cors.rb +0 -60
- data/lib/jets/controller/middleware/local/mimic_aws_call.rb +0 -38
- data/lib/jets/controller/middleware/local/route_matcher.rb +0 -22
- data/lib/jets/controller/middleware/reloader.rb +0 -15
- data/lib/jets/controller/parameters_filter.rb +0 -29
- data/lib/jets/controller/params.rb +0 -117
- data/lib/jets/controller/redirection.rb +0 -61
- data/lib/jets/controller/rendering/rack_renderer.rb +0 -267
- data/lib/jets/controller/rendering.rb +0 -96
- data/lib/jets/controller/stage.rb +0 -34
- data/lib/jets/controller.rb +0 -3
- data/lib/jets/db.rb +0 -15
- data/lib/jets/generator/templates/erb/controller/view.html.erb +0 -2
- data/lib/jets/generator/templates/erb/scaffold/index.html.erb +0 -29
- data/lib/jets/generator/templates/rails/controller/controller.rb +0 -13
- data/lib/jets/generator/templates/rails/helper/helper.rb +0 -4
- data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +0 -67
- data/lib/jets/generator.rb +0 -112
- data/lib/jets/internal/app/controllers/jets/bare_controller.rb +0 -16
- data/lib/jets/internal/app/controllers/jets/rack_controller.rb +0 -12
- data/lib/jets/internal/app/functions/jets/base_path.rb +0 -18
- data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +0 -100
- data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
- data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -70
- data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
- data/lib/jets/lambda/task.rb +0 -111
- data/lib/jets/logger.rb +0 -21
- data/lib/jets/middleware/configurator.rb +0 -84
- data/lib/jets/middleware/default_stack.rb +0 -53
- data/lib/jets/middleware/layer.rb +0 -34
- data/lib/jets/middleware/stack.rb +0 -77
- data/lib/jets/middleware.rb +0 -33
- data/lib/jets/naming.rb +0 -63
- data/lib/jets/overrides/rails/action_controller.rb +0 -13
- data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
- data/lib/jets/overrides/rails/common_methods.rb +0 -13
- data/lib/jets/overrides/rails/migration_checker.rb +0 -34
- data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
- data/lib/jets/overrides/rails/url_helper.rb +0 -88
- data/lib/jets/overrides/rails.rb +0 -6
- data/lib/jets/rack_server.rb +0 -86
- data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
- data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
- data/lib/jets/resource/api_gateway/cors.rb +0 -61
- data/lib/jets/resource/api_gateway/method.rb +0 -102
- data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
- data/lib/jets/resource/base.rb +0 -28
- data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
- data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
- data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
- data/lib/jets/resource/child_stack/api_resource.rb +0 -54
- data/lib/jets/resource/child_stack/base.rb +0 -24
- data/lib/jets/resource/iam/base_role_definition.rb +0 -47
- data/lib/jets/resource/lambda/function.rb +0 -221
- data/lib/jets/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/resource/permission.rb +0 -45
- data/lib/jets/resource.rb +0 -71
- data/lib/jets/router/error.rb +0 -4
- data/lib/jets/router/finder.rb +0 -47
- data/lib/jets/router/helpers/core_helper.rb +0 -27
- data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
- data/lib/jets/router/helpers.rb +0 -4
- data/lib/jets/router/method_creator/code.rb +0 -99
- data/lib/jets/router/method_creator/edit.rb +0 -12
- data/lib/jets/router/method_creator/generic.rb +0 -11
- data/lib/jets/router/method_creator/index.rb +0 -48
- data/lib/jets/router/method_creator/new.rb +0 -12
- data/lib/jets/router/method_creator/root.rb +0 -15
- data/lib/jets/router/method_creator/show.rb +0 -12
- data/lib/jets/router/method_creator.rb +0 -50
- data/lib/jets/turbo/database_yaml.rb +0 -41
- data/lib/jets/turbo/project/.gitignore +0 -12
- data/lib/jets/turbo/project/.jetskeep +0 -1
- data/lib/jets/turbo/project/Gemfile +0 -16
- data/lib/jets/turbo/project/Rakefile +0 -2
- data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
- data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
- data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
- data/lib/jets/turbo/project/config/application.rb +0 -5
- data/lib/jets/turbo/project/config/routes.rb +0 -4
- data/lib/jets/turbo/project/config.ru +0 -5
- data/lib/jets/turbo/rails.rb +0 -127
- data/lib/jets/turbo/templates/config/database.yml +0 -30
- data/lib/jets/turbo.rb +0 -56
- data/readme/prerelease.md +0 -6
- data/readme/testing.md +0 -60
- /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
- /data/lib/jets/{commands → command}/help/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
- /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
- /data/lib/jets/{commands → command}/help/console.md +0 -0
- /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
- /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
- /data/lib/jets/{commands → command}/help/delete.md +0 -0
- /data/lib/jets/{commands → command}/help/gems/check.md +0 -0
- /data/lib/jets/{commands → command}/help/generate.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
- /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
- /data/lib/jets/{commands → command}/help/server.md +0 -0
- /data/lib/jets/{commands → command}/help/status.md +0 -0
- /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
- /data/lib/jets/{commands → command}/help/url.md +0 -0
- /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
- /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
- /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
- /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
data/lib/jets/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
|
|
|
@@ -57,6 +60,7 @@ module Jets::Lambda::Dsl
|
|
|
57
60
|
PROPERTIES = %W[
|
|
58
61
|
dead_letter_config
|
|
59
62
|
description
|
|
63
|
+
ephemeral_storage
|
|
60
64
|
handler
|
|
61
65
|
kms_key_arn
|
|
62
66
|
memory_size
|
|
@@ -98,7 +102,9 @@ module Jets::Lambda::Dsl
|
|
|
98
102
|
if definitions.empty?
|
|
99
103
|
@iam_policy
|
|
100
104
|
else
|
|
101
|
-
|
|
105
|
+
iam_policy_unused_warning(managed=false)
|
|
106
|
+
@iam_policy ||= []
|
|
107
|
+
@iam_policy += definitions.flatten
|
|
102
108
|
end
|
|
103
109
|
end
|
|
104
110
|
|
|
@@ -107,7 +113,9 @@ module Jets::Lambda::Dsl
|
|
|
107
113
|
if definitions.empty?
|
|
108
114
|
@class_iam_policy
|
|
109
115
|
else
|
|
110
|
-
|
|
116
|
+
class_iam_policy_unused_warning(managed=false)
|
|
117
|
+
@class_iam_policy ||= []
|
|
118
|
+
@class_iam_policy += definitions.flatten
|
|
111
119
|
end
|
|
112
120
|
end
|
|
113
121
|
|
|
@@ -116,7 +124,9 @@ module Jets::Lambda::Dsl
|
|
|
116
124
|
if definitions.empty?
|
|
117
125
|
@managed_iam_policy
|
|
118
126
|
else
|
|
119
|
-
|
|
127
|
+
iam_policy_unused_warning(managed=true)
|
|
128
|
+
@managed_iam_policy ||= []
|
|
129
|
+
@managed_iam_policy += definitions.flatten
|
|
120
130
|
end
|
|
121
131
|
end
|
|
122
132
|
|
|
@@ -125,7 +135,9 @@ module Jets::Lambda::Dsl
|
|
|
125
135
|
if definitions.empty?
|
|
126
136
|
@class_managed_iam_policy
|
|
127
137
|
else
|
|
128
|
-
|
|
138
|
+
class_iam_policy_unused_warning(managed=true)
|
|
139
|
+
@class_managed_iam_policy ||= []
|
|
140
|
+
@class_managed_iam_policy += definitions.flatten
|
|
129
141
|
end
|
|
130
142
|
end
|
|
131
143
|
|
|
@@ -141,7 +153,7 @@ module Jets::Lambda::Dsl
|
|
|
141
153
|
@associated_resources || []
|
|
142
154
|
else
|
|
143
155
|
@associated_resources ||= []
|
|
144
|
-
associated_resource = Jets::Resource::Associated.new(definitions)
|
|
156
|
+
associated_resource = Jets::Cfn::Resource::Associated.new(definitions)
|
|
145
157
|
associated_resource.multiple_resources = @multiple_resources
|
|
146
158
|
@associated_resources << associated_resource
|
|
147
159
|
@associated_resources.flatten!
|
|
@@ -207,7 +219,7 @@ module Jets::Lambda::Dsl
|
|
|
207
219
|
|
|
208
220
|
logical_id = logical_id.to_s.sub(/\d+$/,'')
|
|
209
221
|
new_definition = { "#{logical_id}#{n}" => attributes }
|
|
210
|
-
numbered_resources << Jets::Resource::Associated.new(new_definition)
|
|
222
|
+
numbered_resources << Jets::Cfn::Resource::Associated.new(new_definition)
|
|
211
223
|
n += 1
|
|
212
224
|
end
|
|
213
225
|
@associated_resources = numbered_resources
|
|
@@ -233,7 +245,13 @@ module Jets::Lambda::Dsl
|
|
|
233
245
|
end
|
|
234
246
|
|
|
235
247
|
def ref(name)
|
|
236
|
-
|
|
248
|
+
name = name.is_a?(Symbol) ? name.to_s.camelize : name
|
|
249
|
+
"!Ref #{name}"
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
def sub(value)
|
|
253
|
+
value = value.is_a?(Symbol) ? value.to_s.camelize : value
|
|
254
|
+
"!Sub #{value}"
|
|
237
255
|
end
|
|
238
256
|
|
|
239
257
|
# meth is a Symbol
|
|
@@ -241,13 +259,13 @@ module Jets::Lambda::Dsl
|
|
|
241
259
|
return if %w[initialize method_missing].include?(meth.to_s)
|
|
242
260
|
return unless public_method_defined?(meth)
|
|
243
261
|
|
|
244
|
-
|
|
262
|
+
register_definition(meth)
|
|
245
263
|
end
|
|
246
264
|
|
|
247
|
-
def
|
|
265
|
+
def register_definition(meth, lang=:ruby)
|
|
248
266
|
# Note: for anonymous classes like for app/functions self.name is ""
|
|
249
267
|
# We adjust the class name when we build the functions later in
|
|
250
|
-
# FunctionContstructor#
|
|
268
|
+
# FunctionContstructor#adjust_definitions.
|
|
251
269
|
|
|
252
270
|
# At this point we can use the current associated_properties and defined the
|
|
253
271
|
# associated resource with the Lambda function.
|
|
@@ -261,7 +279,7 @@ module Jets::Lambda::Dsl
|
|
|
261
279
|
add_logical_id_counter
|
|
262
280
|
end
|
|
263
281
|
|
|
264
|
-
|
|
282
|
+
all_definitions[meth] = Jets::Lambda::Definition.new(self.name, meth,
|
|
265
283
|
properties: @properties, # lambda function properties
|
|
266
284
|
iam_policy: @iam_policy,
|
|
267
285
|
managed_iam_policy: @managed_iam_policy,
|
|
@@ -272,7 +290,7 @@ module Jets::Lambda::Dsl
|
|
|
272
290
|
# Done storing options, clear out for the next added method.
|
|
273
291
|
clear_properties
|
|
274
292
|
# Important to clear @properties at the end of registering outside of
|
|
275
|
-
#
|
|
293
|
+
# register_definition because register_definition is overridden in Jets::Job::Dsl
|
|
276
294
|
#
|
|
277
295
|
# Jets::Job::Base < Jets::Lambda::Functions
|
|
278
296
|
#
|
|
@@ -295,81 +313,82 @@ module Jets::Lambda::Dsl
|
|
|
295
313
|
@associated_properties = nil
|
|
296
314
|
end
|
|
297
315
|
|
|
298
|
-
# Returns the all
|
|
316
|
+
# Returns the all definitions for this class with their method names as keys.
|
|
299
317
|
#
|
|
300
318
|
# ==== Returns
|
|
301
|
-
# OrderedHash:: An ordered hash with
|
|
319
|
+
# OrderedHash:: An ordered hash with definitions names as keys and definition
|
|
302
320
|
# objects as values.
|
|
303
321
|
#
|
|
304
|
-
def
|
|
305
|
-
@
|
|
322
|
+
def all_definitions
|
|
323
|
+
@all_definitions ||= ActiveSupport::OrderedHash.new
|
|
306
324
|
end
|
|
307
|
-
# Do not call all
|
|
308
|
-
private :
|
|
325
|
+
# Do not call all definitions outside this class, instead use: definitions or lambda functions
|
|
326
|
+
private :all_definitions
|
|
309
327
|
|
|
310
|
-
# Goes up the class inheritance chain to build the
|
|
328
|
+
# Goes up the class inheritance chain to build the definitions.
|
|
311
329
|
#
|
|
312
330
|
# Example heirarchy:
|
|
313
331
|
#
|
|
314
332
|
# Jets::Lambda::Functions > Jets::Controller::Base > ApplicationController ...
|
|
315
333
|
# > PostsController > ChildPostsController
|
|
316
334
|
#
|
|
317
|
-
# Do not include
|
|
335
|
+
# Do not include definitions from the direct subclasses of Jets::Lambda::Functions
|
|
318
336
|
# because those classes are abstract. Dont want those methods to be included.
|
|
319
|
-
def
|
|
337
|
+
def find_all_definitions(options={})
|
|
338
|
+
public = options[:public].nil? ? true : options[:public]
|
|
320
339
|
klass = self
|
|
321
340
|
direct_subclasses = Jets::Lambda::Functions.subclasses
|
|
322
341
|
lookup = []
|
|
323
342
|
|
|
324
343
|
# Go up class inheritance and builds lookup structure in memory
|
|
325
344
|
until direct_subclasses.include?(klass)
|
|
326
|
-
lookup << klass.send(:
|
|
345
|
+
lookup << klass.send(:all_definitions) # one place we want to call private all_definitions method
|
|
327
346
|
klass = klass.superclass
|
|
328
347
|
end
|
|
329
|
-
|
|
330
|
-
# Go back down the class inheritance chain in reverse order and merge the
|
|
331
|
-
lookup.reverse.each do |
|
|
332
|
-
#
|
|
333
|
-
|
|
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)
|
|
334
353
|
end
|
|
335
354
|
|
|
336
355
|
# The cfn builders required the right final child class to build the lambda functions correctly.
|
|
337
|
-
|
|
356
|
+
merged_definitions.each do |meth, definition|
|
|
338
357
|
# Override the class name for the cfn builders
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
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
|
|
342
361
|
end
|
|
343
362
|
|
|
344
363
|
# Methods can be made private with the :private keyword after the method has been defined.
|
|
345
364
|
# To account for this, loop back thorugh all the methods and check if the method is indeed public.
|
|
346
|
-
|
|
347
|
-
|
|
365
|
+
definitions = ActiveSupport::OrderedHash.new
|
|
366
|
+
merged_definitions.each do |meth, definition|
|
|
348
367
|
if public
|
|
349
|
-
|
|
368
|
+
definitions[meth] = definition if definition.public_meth?
|
|
350
369
|
else
|
|
351
|
-
|
|
370
|
+
definitions[meth] = definition unless definition.public_meth?
|
|
352
371
|
end
|
|
353
372
|
end
|
|
354
|
-
|
|
373
|
+
definitions
|
|
355
374
|
end
|
|
356
|
-
memoize :
|
|
375
|
+
memoize :find_all_definitions
|
|
357
376
|
|
|
358
|
-
def
|
|
359
|
-
|
|
377
|
+
def all_public_definitions
|
|
378
|
+
find_all_definitions(public: true)
|
|
360
379
|
end
|
|
361
380
|
|
|
362
|
-
def
|
|
363
|
-
|
|
381
|
+
def all_private_definitions
|
|
382
|
+
find_all_definitions(public: false)
|
|
364
383
|
end
|
|
365
384
|
|
|
366
|
-
# Returns the
|
|
385
|
+
# Returns the definitions for this class in Array form.
|
|
367
386
|
#
|
|
368
387
|
# ==== Returns
|
|
369
|
-
# Array of
|
|
388
|
+
# Array of definition objects
|
|
370
389
|
#
|
|
371
|
-
def
|
|
372
|
-
|
|
390
|
+
def definitions
|
|
391
|
+
all_public_definitions.values
|
|
373
392
|
end
|
|
374
393
|
|
|
375
394
|
# The public methods defined in the project app class ulimately become
|
|
@@ -378,18 +397,18 @@ module Jets::Lambda::Dsl
|
|
|
378
397
|
# Example return value:
|
|
379
398
|
# [:index, :new, :create, :show]
|
|
380
399
|
def lambda_functions
|
|
381
|
-
|
|
400
|
+
all_public_definitions.keys
|
|
382
401
|
end
|
|
383
402
|
|
|
384
|
-
# Used in Jets::Cfn::
|
|
403
|
+
# Used in Jets::Cfn::Builder::Interface#build
|
|
385
404
|
# Overridden in rule/dsl.rb
|
|
386
405
|
def build?
|
|
387
|
-
!
|
|
406
|
+
!definitions.empty?
|
|
388
407
|
end
|
|
389
408
|
|
|
390
409
|
# Polymorphic support
|
|
391
410
|
def defpoly(lang, meth)
|
|
392
|
-
|
|
411
|
+
register_definition(meth, lang)
|
|
393
412
|
end
|
|
394
413
|
|
|
395
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
|
|
@@ -7,7 +7,7 @@ module Jets::Mega
|
|
|
7
7
|
value.each { |k,v| encode(v, append_key(key,k), out_hash) }
|
|
8
8
|
out_hash
|
|
9
9
|
when Array then
|
|
10
|
-
value.each { |v| encode(v, "#{key}
|
|
10
|
+
value.each { |v| encode(v, "#{key}", out_hash) }
|
|
11
11
|
out_hash
|
|
12
12
|
when nil then ''
|
|
13
13
|
else
|
|
@@ -22,4 +22,4 @@ module Jets::Mega
|
|
|
22
22
|
root_key.nil? ? :"#{key}" : :"#{root_key}[#{key.to_s}]"
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
|
-
end
|
|
25
|
+
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
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# This class groups the names in one place.
|
|
2
|
+
# Some names are for CloudFormation
|
|
3
|
+
# Some are for the Build process
|
|
4
|
+
class Jets::Names
|
|
5
|
+
# Mainly used by build.rb
|
|
6
|
+
class << self
|
|
7
|
+
extend Memoist
|
|
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
|
+
|
|
17
|
+
def app_template_path(app_class)
|
|
18
|
+
underscored = underscore(app_class)
|
|
19
|
+
"#{templates_folder}/app-#{underscored}.yml"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def shared_template_path(shared_class)
|
|
23
|
+
underscored = underscore(shared_class)
|
|
24
|
+
"#{templates_folder}/shared-#{underscored}.yml"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# consider moving these methods into cfn/builder/helpers.rb or that area.
|
|
28
|
+
def parent_template_path
|
|
29
|
+
"#{templates_folder}/parent.yml"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# consider moving these methods into cfn/builder/helpers.rb or that area.
|
|
33
|
+
def api_gateway_template_path
|
|
34
|
+
"#{templates_folder}/api-gateway.yml"
|
|
35
|
+
end
|
|
36
|
+
|
|
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"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def api_deployment_template_path
|
|
50
|
+
"#{templates_folder}/api-deployment.yml"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def api_mapping_template_path
|
|
54
|
+
"#{templates_folder}/api-mapping.yml"
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def shared_resources_template_path
|
|
58
|
+
"#{templates_folder}/shared-resources.yml"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def parent_stack_name
|
|
62
|
+
Jets.project_namespace
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def gateway_api_name
|
|
66
|
+
Jets.project_namespace
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def authorizer_template_path(path)
|
|
70
|
+
underscored = underscore(path)
|
|
71
|
+
underscored.sub!(/^app-/, '')
|
|
72
|
+
"#{templates_folder}/#{underscored}.yml"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def underscore(s)
|
|
76
|
+
s.to_s.underscore.sub(/\.rb$/,'').gsub('/','-')
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -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
|