jets 3.1.0 → 5.0.10
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 +190 -1
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +1 -5
- data/LICENSE.txt +1 -1
- data/README.md +28 -50
- 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 +68 -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 +17 -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 +2 -2
- 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 +67 -125
- 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 +43 -15
- 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} +58 -80
- data/lib/jets/cfn/deployment.rb +85 -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} +4 -4
- 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 +4 -4
- 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 +33 -29
- data/lib/jets/cfn/status.rb +46 -3
- data/lib/jets/cfn/template.rb +89 -0
- data/lib/jets/cfn/upload.rb +29 -23
- data/lib/jets/cli.rb +28 -203
- data/lib/jets/command/actions.rb +49 -0
- data/lib/jets/command/api_helpers.rb +42 -0
- data/lib/jets/command/aws_helpers.rb +26 -0
- data/lib/jets/command/base.rb +209 -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/gems/check.md +1 -0
- 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 +19 -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/rake_decorate.rb +38 -0
- data/lib/jets/command.rb +142 -0
- data/lib/jets/commands/application/application_command.rb +46 -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 +154 -0
- data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +34 -53
- 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 +124 -0
- data/lib/jets/commands/rollback/rollback_command.rb +33 -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 +16 -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 +159 -52
- 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 +6 -3
- 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/generators/job/templates/event_types/scheduled.rb.tt +8 -0
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +11 -0
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +11 -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/.jetsignore +6 -0
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +28 -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 +21 -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 +11 -8
- data/lib/jets/job/dsl/dynamodb_event.rb +25 -14
- 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 +10 -9
- 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 +5 -5
- data/lib/jets/job/dsl/sns_event.rb +6 -6
- data/lib/jets/job/dsl/sqs_event.rb +15 -14
- data/lib/jets/job/helpers/{kinesis_event_helper.rb → kinesis_event.rb} +5 -1
- data/lib/jets/job/helpers/{log_event_helper.rb → log_event.rb} +5 -1
- data/lib/jets/job/helpers/s3_event.rb +50 -0
- data/lib/jets/job/helpers/sns_event.rb +26 -0
- data/lib/jets/job/helpers/sqs_event.rb +26 -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 +70 -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/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 +4 -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 +1 -1
- data/lib/jets/stack/output/lookup.rb +6 -2
- 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 +18 -0
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +9 -14
- metadata +462 -349
- 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/gems/check.md +0 -6
- 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/active_job/job/templates/job.rb.tt +0 -8
- 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/job/helpers/s3_event_helper.rb +0 -13
- 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/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
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
module Jets::Lambda::Dsl
|
|
2
|
+
module Warnings
|
|
3
|
+
def iam_policy_unused_warning(managed=false)
|
|
4
|
+
return unless show_iam_policy_unused_warning?
|
|
5
|
+
|
|
6
|
+
managed_prefix = managed ? "managed_" : ""
|
|
7
|
+
use_instead = case Jets.config.cfn.build.controllers
|
|
8
|
+
when "one_lambda_per_contoller"
|
|
9
|
+
"class_#{managed_prefix}iam_policy"
|
|
10
|
+
when "one_lambda_for_all_controllers"
|
|
11
|
+
"class_#{managed_prefix}iam_policy in the ApplicationController"
|
|
12
|
+
end
|
|
13
|
+
puts <<~EOL.color(:yellow)
|
|
14
|
+
WARNING: #{managed_prefix}iam_policy is not respected when config.cfn.build.controllers is not set to "one_lambda_per_controller"
|
|
15
|
+
Current setting: config.cfn.build.controllers = "#{Jets.config.cfn.build.controllers}"
|
|
16
|
+
Please use #{use_instead} instead.
|
|
17
|
+
Docs: #{iam_docs_url(managed)}
|
|
18
|
+
EOL
|
|
19
|
+
|
|
20
|
+
DslEvaluator.print_code(app_call_line) if app_call_line
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def class_iam_policy_unused_warning(managed=false)
|
|
24
|
+
return unless Jets.config.cfn.build.controllers == "one_lambda_for_all_controllers"
|
|
25
|
+
return if self.to_s == "ApplicationController" # ApplicationController not defined in job mode
|
|
26
|
+
return if self.ancestors.include?(Jets::Job::Base)
|
|
27
|
+
|
|
28
|
+
managed_prefix = managed ? "managed_" : ""
|
|
29
|
+
puts <<~EOL.color(:yellow)
|
|
30
|
+
WARNING: class_#{managed_prefix}iam_policy is not respected when
|
|
31
|
+
config.cfn.build.controllers is not set to "one_lambda_per_controller" or "one_lambda_per_method"
|
|
32
|
+
Current setting: config.cfn.build.controllers = "#{Jets.config.cfn.build.controllers}"
|
|
33
|
+
Please use class_#{managed_prefix}iam_policy in the ApplicationController instead.
|
|
34
|
+
Docs: #{iam_docs_url(managed)}
|
|
35
|
+
EOL
|
|
36
|
+
|
|
37
|
+
DslEvaluator.print_code(app_call_line) if app_call_line
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def show_iam_policy_unused_warning?
|
|
41
|
+
Jets.config.cfn.build.controllers != "one_lambda_per_method" &&
|
|
42
|
+
self.name.include?("Controller")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def iam_docs_url(managed)
|
|
46
|
+
if managed
|
|
47
|
+
"http://rubyonjets.com/docs/managed-iam-policies/"
|
|
48
|
+
else
|
|
49
|
+
"http://rubyonjets.com/docs/iam-policies/"
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def app_call_line
|
|
54
|
+
caller.find { |l| l.include?('app/controllers') }
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
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
|
|
@@ -236,18 +248,22 @@ module Jets::Lambda::Dsl
|
|
|
236
248
|
"!Ref #{name.to_s.camelize}"
|
|
237
249
|
end
|
|
238
250
|
|
|
251
|
+
def sub(value)
|
|
252
|
+
"!Sub #{value.to_s.camelize}"
|
|
253
|
+
end
|
|
254
|
+
|
|
239
255
|
# meth is a Symbol
|
|
240
256
|
def method_added(meth)
|
|
241
257
|
return if %w[initialize method_missing].include?(meth.to_s)
|
|
242
258
|
return unless public_method_defined?(meth)
|
|
243
259
|
|
|
244
|
-
|
|
260
|
+
register_definition(meth)
|
|
245
261
|
end
|
|
246
262
|
|
|
247
|
-
def
|
|
263
|
+
def register_definition(meth, lang=:ruby)
|
|
248
264
|
# Note: for anonymous classes like for app/functions self.name is ""
|
|
249
265
|
# We adjust the class name when we build the functions later in
|
|
250
|
-
# FunctionContstructor#
|
|
266
|
+
# FunctionContstructor#adjust_definitions.
|
|
251
267
|
|
|
252
268
|
# At this point we can use the current associated_properties and defined the
|
|
253
269
|
# associated resource with the Lambda function.
|
|
@@ -261,7 +277,7 @@ module Jets::Lambda::Dsl
|
|
|
261
277
|
add_logical_id_counter
|
|
262
278
|
end
|
|
263
279
|
|
|
264
|
-
|
|
280
|
+
all_definitions[meth] = Jets::Lambda::Definition.new(self.name, meth,
|
|
265
281
|
properties: @properties, # lambda function properties
|
|
266
282
|
iam_policy: @iam_policy,
|
|
267
283
|
managed_iam_policy: @managed_iam_policy,
|
|
@@ -272,7 +288,7 @@ module Jets::Lambda::Dsl
|
|
|
272
288
|
# Done storing options, clear out for the next added method.
|
|
273
289
|
clear_properties
|
|
274
290
|
# Important to clear @properties at the end of registering outside of
|
|
275
|
-
#
|
|
291
|
+
# register_definition because register_definition is overridden in Jets::Job::Dsl
|
|
276
292
|
#
|
|
277
293
|
# Jets::Job::Base < Jets::Lambda::Functions
|
|
278
294
|
#
|
|
@@ -295,81 +311,82 @@ module Jets::Lambda::Dsl
|
|
|
295
311
|
@associated_properties = nil
|
|
296
312
|
end
|
|
297
313
|
|
|
298
|
-
# Returns the all
|
|
314
|
+
# Returns the all definitions for this class with their method names as keys.
|
|
299
315
|
#
|
|
300
316
|
# ==== Returns
|
|
301
|
-
# OrderedHash:: An ordered hash with
|
|
317
|
+
# OrderedHash:: An ordered hash with definitions names as keys and definition
|
|
302
318
|
# objects as values.
|
|
303
319
|
#
|
|
304
|
-
def
|
|
305
|
-
@
|
|
320
|
+
def all_definitions
|
|
321
|
+
@all_definitions ||= ActiveSupport::OrderedHash.new
|
|
306
322
|
end
|
|
307
|
-
# Do not call all
|
|
308
|
-
private :
|
|
323
|
+
# Do not call all definitions outside this class, instead use: definitions or lambda functions
|
|
324
|
+
private :all_definitions
|
|
309
325
|
|
|
310
|
-
# Goes up the class inheritance chain to build the
|
|
326
|
+
# Goes up the class inheritance chain to build the definitions.
|
|
311
327
|
#
|
|
312
328
|
# Example heirarchy:
|
|
313
329
|
#
|
|
314
330
|
# Jets::Lambda::Functions > Jets::Controller::Base > ApplicationController ...
|
|
315
331
|
# > PostsController > ChildPostsController
|
|
316
332
|
#
|
|
317
|
-
# Do not include
|
|
333
|
+
# Do not include definitions from the direct subclasses of Jets::Lambda::Functions
|
|
318
334
|
# because those classes are abstract. Dont want those methods to be included.
|
|
319
|
-
def
|
|
335
|
+
def find_all_definitions(options={})
|
|
336
|
+
public = options[:public].nil? ? true : options[:public]
|
|
320
337
|
klass = self
|
|
321
338
|
direct_subclasses = Jets::Lambda::Functions.subclasses
|
|
322
339
|
lookup = []
|
|
323
340
|
|
|
324
341
|
# Go up class inheritance and builds lookup structure in memory
|
|
325
342
|
until direct_subclasses.include?(klass)
|
|
326
|
-
lookup << klass.send(:
|
|
343
|
+
lookup << klass.send(:all_definitions) # one place we want to call private all_definitions method
|
|
327
344
|
klass = klass.superclass
|
|
328
345
|
end
|
|
329
|
-
|
|
330
|
-
# Go back down the class inheritance chain in reverse order and merge the
|
|
331
|
-
lookup.reverse.each do |
|
|
332
|
-
#
|
|
333
|
-
|
|
346
|
+
merged_definitions = ActiveSupport::OrderedHash.new
|
|
347
|
+
# Go back down the class inheritance chain in reverse order and merge the definitions
|
|
348
|
+
lookup.reverse.each do |definitions_hash|
|
|
349
|
+
# definitions_hash is a result of all_definitions. Example: PostsController.all_definitions
|
|
350
|
+
merged_definitions.merge!(definitions_hash)
|
|
334
351
|
end
|
|
335
352
|
|
|
336
353
|
# The cfn builders required the right final child class to build the lambda functions correctly.
|
|
337
|
-
|
|
354
|
+
merged_definitions.each do |meth, definition|
|
|
338
355
|
# Override the class name for the cfn builders
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
356
|
+
definition = definition.clone # do not stomp over current definitions since things are usually looked by reference
|
|
357
|
+
definition.instance_variable_set(:@class_name, self.name)
|
|
358
|
+
merged_definitions[meth] = definition
|
|
342
359
|
end
|
|
343
360
|
|
|
344
361
|
# Methods can be made private with the :private keyword after the method has been defined.
|
|
345
362
|
# To account for this, loop back thorugh all the methods and check if the method is indeed public.
|
|
346
|
-
|
|
347
|
-
|
|
363
|
+
definitions = ActiveSupport::OrderedHash.new
|
|
364
|
+
merged_definitions.each do |meth, definition|
|
|
348
365
|
if public
|
|
349
|
-
|
|
366
|
+
definitions[meth] = definition if definition.public_meth?
|
|
350
367
|
else
|
|
351
|
-
|
|
368
|
+
definitions[meth] = definition unless definition.public_meth?
|
|
352
369
|
end
|
|
353
370
|
end
|
|
354
|
-
|
|
371
|
+
definitions
|
|
355
372
|
end
|
|
356
|
-
memoize :
|
|
373
|
+
memoize :find_all_definitions
|
|
357
374
|
|
|
358
|
-
def
|
|
359
|
-
|
|
375
|
+
def all_public_definitions
|
|
376
|
+
find_all_definitions(public: true)
|
|
360
377
|
end
|
|
361
378
|
|
|
362
|
-
def
|
|
363
|
-
|
|
379
|
+
def all_private_definitions
|
|
380
|
+
find_all_definitions(public: false)
|
|
364
381
|
end
|
|
365
382
|
|
|
366
|
-
# Returns the
|
|
383
|
+
# Returns the definitions for this class in Array form.
|
|
367
384
|
#
|
|
368
385
|
# ==== Returns
|
|
369
|
-
# Array of
|
|
386
|
+
# Array of definition objects
|
|
370
387
|
#
|
|
371
|
-
def
|
|
372
|
-
|
|
388
|
+
def definitions
|
|
389
|
+
all_public_definitions.values
|
|
373
390
|
end
|
|
374
391
|
|
|
375
392
|
# The public methods defined in the project app class ulimately become
|
|
@@ -378,18 +395,18 @@ module Jets::Lambda::Dsl
|
|
|
378
395
|
# Example return value:
|
|
379
396
|
# [:index, :new, :create, :show]
|
|
380
397
|
def lambda_functions
|
|
381
|
-
|
|
398
|
+
all_public_definitions.keys
|
|
382
399
|
end
|
|
383
400
|
|
|
384
|
-
# Used in Jets::Cfn::
|
|
401
|
+
# Used in Jets::Cfn::Builder::Interface#build
|
|
385
402
|
# Overridden in rule/dsl.rb
|
|
386
403
|
def build?
|
|
387
|
-
!
|
|
404
|
+
!definitions.empty?
|
|
388
405
|
end
|
|
389
406
|
|
|
390
407
|
# Polymorphic support
|
|
391
408
|
def defpoly(lang, meth)
|
|
392
|
-
|
|
409
|
+
register_definition(meth, lang)
|
|
393
410
|
end
|
|
394
411
|
|
|
395
412
|
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
|