jets 5.0.17 → 6.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -19
- data/Gemfile +4 -0
- data/README.md +19 -165
- data/Rakefile +3 -3
- data/exe/jets +2 -1
- data/jets.gemspec +15 -22
- data/lib/jets/api/agree.rb +62 -0
- data/lib/jets/api/base.rb +8 -0
- data/lib/jets/api/client.rb +246 -0
- data/lib/jets/api/config.rb +73 -0
- data/lib/jets/api/error.rb +70 -0
- data/lib/jets/api/ping.rb +9 -0
- data/lib/jets/api/project.rb +9 -0
- data/lib/jets/api/release.rb +17 -0
- data/lib/jets/api/response.rb +27 -0
- data/lib/jets/api/sig.rb +13 -0
- data/lib/jets/api/stack.rb +14 -0
- data/lib/jets/api.rb +17 -0
- data/lib/jets/autoloaders/gem.rb +47 -58
- data/lib/jets/autoloaders/main.rb +64 -0
- data/lib/jets/autoloaders.rb +14 -43
- data/lib/jets/aws_services/aws_helpers.rb +17 -0
- data/lib/jets/{aws_info.rb → aws_services/aws_info.rb} +24 -17
- data/lib/jets/aws_services/global_memoist.rb +9 -4
- data/lib/jets/aws_services/s3_bucket.rb +8 -10
- data/lib/jets/aws_services/stack_status.rb +5 -31
- data/lib/jets/aws_services.rb +36 -17
- data/lib/jets/bundle.rb +9 -7
- data/lib/jets/cfn/base.rb +16 -5
- data/lib/jets/cfn/bootstrap.rb +13 -0
- data/lib/jets/cfn/builder/interface.rb +22 -31
- data/lib/jets/cfn/builder/parent/genesis.rb +84 -0
- data/lib/jets/cfn/builder/post_process.rb +3 -3
- data/lib/jets/cfn/delete.rb +17 -0
- data/lib/jets/cfn/deploy.rb +151 -0
- data/lib/jets/cfn/iam/managed_policy.rb +21 -0
- data/lib/jets/cfn/iam/policy.rb +121 -0
- data/lib/jets/cfn/resource/associated.rb +1 -1
- data/lib/jets/cfn/resource/codebuild/fleet.rb +48 -0
- data/lib/jets/cfn/resource/codebuild/iam_role.rb +63 -0
- data/lib/jets/cfn/resource/codebuild/project/base.rb +4 -0
- data/lib/jets/cfn/resource/codebuild/project/ec2.rb +125 -0
- data/lib/jets/cfn/resource/codebuild/project/env.rb +55 -0
- data/lib/jets/cfn/resource/codebuild/project/format_env.rb +35 -0
- data/lib/jets/cfn/resource/codebuild/project/lambda.rb +15 -0
- data/lib/jets/cfn/resource/replacer.rb +5 -5
- data/lib/jets/cfn/resource/s3/bucket.rb +3 -3
- data/lib/jets/cfn/resource/s3/jets_bucket.rb +9 -18
- data/lib/jets/cfn/resource/standardizer.rb +11 -9
- data/lib/jets/cfn/rollback.rb +8 -0
- data/lib/jets/cfn/stack/deployable.rb +16 -0
- data/lib/jets/cfn/stack/rollback.rb +59 -0
- data/lib/jets/cfn/stack/template.rb +47 -0
- data/lib/jets/cfn/stack/yamler.rb +53 -0
- data/lib/jets/cfn/stack.rb +24 -0
- data/lib/jets/cfn/status.rb +41 -6
- data/lib/jets/cfn/teardown/bucket.rb +79 -0
- data/lib/jets/cfn/teardown.rb +20 -0
- data/lib/jets/cli/base.rb +46 -0
- data/lib/jets/cli/bootstrap.rb +17 -0
- data/lib/jets/cli/build.rb +8 -0
- data/lib/jets/cli/call.rb +133 -0
- data/lib/jets/cli/ci/base.rb +54 -0
- data/lib/jets/cli/ci/build.rb +8 -0
- data/lib/jets/cli/ci/delete.rb +25 -0
- data/lib/jets/cli/ci/deploy.rb +17 -0
- data/lib/jets/cli/ci/info.rb +40 -0
- data/lib/jets/cli/ci/init.rb +97 -0
- data/lib/jets/cli/ci/logs.rb +10 -0
- data/lib/jets/cli/ci/start.rb +121 -0
- data/lib/jets/cli/ci/status.rb +29 -0
- data/lib/jets/cli/ci/stop.rb +24 -0
- data/lib/jets/cli/ci/tailer.rb +17 -0
- data/lib/jets/cli/ci/templates/ci.rb.tt +19 -0
- data/lib/jets/cli/ci.rb +55 -0
- data/lib/jets/cli/clean.rb +10 -0
- data/lib/jets/cli/concurrency/base.rb +17 -0
- data/lib/jets/cli/concurrency/get.rb +37 -0
- data/lib/jets/cli/concurrency/info.rb +86 -0
- data/lib/jets/cli/concurrency/set.rb +31 -0
- data/lib/jets/cli/concurrency/unset.rb +21 -0
- data/lib/jets/cli/concurrency.rb +33 -0
- data/lib/jets/cli/curl/adapter/base.rb +8 -0
- data/lib/jets/cli/curl/adapter/cookies/jar.rb +28 -0
- data/lib/jets/cli/curl/adapter/cookies/parser.rb +48 -0
- data/lib/jets/cli/curl/adapter/lambda.rb +142 -0
- data/lib/jets/cli/curl/request.rb +62 -0
- data/lib/jets/cli/curl.rb +9 -0
- data/lib/jets/cli/delete.rb +23 -0
- data/lib/jets/cli/deploy.rb +18 -0
- data/lib/jets/cli/dotenv/base.rb +4 -0
- data/lib/jets/cli/dotenv/get.rb +14 -0
- data/lib/jets/cli/dotenv/list.rb +32 -0
- data/lib/jets/cli/dotenv/set.rb +50 -0
- data/lib/jets/cli/dotenv/ssm.rb +60 -0
- data/lib/jets/cli/dotenv/unset.rb +11 -0
- data/lib/jets/cli/dotenv.rb +28 -0
- data/lib/jets/cli/env/base.rb +13 -0
- data/lib/jets/cli/env/get.rb +13 -0
- data/lib/jets/cli/env/list.rb +19 -0
- data/lib/jets/cli/env/parse.rb +11 -0
- data/lib/jets/cli/env/set.rb +25 -0
- data/lib/jets/cli/env/unset.rb +17 -0
- data/lib/jets/cli/env.rb +29 -0
- data/lib/jets/cli/exec/command.rb +61 -0
- data/lib/jets/cli/exec/repl/history.rb +42 -0
- data/lib/jets/cli/exec/repl.rb +122 -0
- data/lib/jets/cli/exec.rb +14 -0
- data/lib/jets/cli/functions.rb +39 -0
- data/lib/jets/cli/generate/event.rb +29 -0
- data/lib/jets/cli/generate/templates/application_event.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/application_event.rb +4 -0
- data/lib/jets/cli/generate/templates/event_types/dynamodb.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/iot.rb.tt +6 -0
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/kinesis.rb.tt +2 -4
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/log.rb.tt +2 -4
- data/lib/jets/{generators/job → cli/generate}/templates/event_types/rule.rb.tt +2 -4
- data/lib/jets/cli/generate/templates/event_types/s3.rb.tt +13 -0
- data/lib/jets/cli/generate/templates/event_types/scheduled.rb.tt +6 -0
- data/lib/jets/cli/generate/templates/event_types/sns.rb.tt +8 -0
- data/lib/jets/cli/generate/templates/event_types/sqs.rb.tt +9 -0
- data/lib/jets/cli/generate.rb +6 -0
- data/lib/jets/cli/group/actions.rb +57 -0
- data/lib/jets/cli/group/base.rb +12 -0
- data/lib/jets/cli/group/helpers.rb +26 -0
- data/lib/jets/cli/help/build.md +1 -0
- data/lib/jets/cli/help/call.md +28 -0
- data/lib/jets/cli/help/curl.md +82 -0
- data/lib/jets/{command → cli}/help/delete.md +4 -4
- data/lib/jets/cli/help/deploy.md +5 -0
- data/lib/jets/cli/help/dotenv/get.md +4 -0
- data/lib/jets/cli/help/dotenv/list.md +5 -0
- data/lib/jets/cli/help/dotenv/set.md +25 -0
- data/lib/jets/cli/help/dotenv/unset.md +12 -0
- data/lib/jets/cli/help/exec.md +53 -0
- data/lib/jets/cli/help/generate/event.md +11 -0
- data/lib/jets/{command → cli}/help/logs.md +2 -2
- data/lib/jets/{command/help/releases.md → cli/help/release/history.md} +3 -3
- data/lib/jets/cli/help/rollback.md +5 -0
- data/lib/jets/cli/help/schedule/validate.md +1 -0
- data/lib/jets/{command → cli}/help/status.md +1 -1
- data/lib/jets/cli/help.rb +16 -0
- data/lib/jets/cli/init/detect.rb +30 -0
- data/lib/jets/cli/init/templates/config/jets/bootstrap.rb.tt +16 -0
- data/lib/jets/cli/init/templates/config/jets/deploy.rb.tt +43 -0
- data/lib/jets/cli/init/templates/config/jets/project.rb.tt +3 -0
- data/lib/jets/cli/init/templates/env/.env.tt +18 -0
- data/lib/jets/cli/init.rb +66 -0
- data/lib/jets/cli/lambda/checks.rb +22 -0
- data/lib/jets/cli/lambda/function.rb +104 -0
- data/lib/jets/cli/lambda/functions.rb +10 -0
- data/lib/jets/cli/lambda/lookup.rb +68 -0
- data/lib/jets/cli/login.rb +7 -0
- data/lib/jets/cli/logout.rb +7 -0
- data/lib/jets/cli/logs.rb +40 -0
- data/lib/jets/cli/maintenance/base.rb +15 -0
- data/lib/jets/cli/maintenance/mode.rb +44 -0
- data/lib/jets/cli/maintenance/web.rb +31 -0
- data/lib/jets/cli/maintenance/worker/base.rb +22 -0
- data/lib/jets/cli/maintenance/worker/restorer.rb +19 -0
- data/lib/jets/cli/maintenance/worker/saver.rb +15 -0
- data/lib/jets/cli/maintenance/worker/zeroer.rb +19 -0
- data/lib/jets/cli/maintenance/worker.rb +31 -0
- data/lib/jets/cli/maintenance.rb +32 -0
- data/lib/jets/cli/package/dockerfile.rb +9 -0
- data/lib/jets/cli/package.rb +8 -0
- data/lib/jets/cli/ping.rb +10 -0
- data/lib/jets/cli/projects.rb +22 -0
- data/lib/jets/cli/release/base.rb +4 -0
- data/lib/jets/cli/release/history.rb +68 -0
- data/lib/jets/cli/release/info.rb +59 -0
- data/lib/jets/cli/release/rollback.rb +15 -0
- data/lib/jets/cli/release.rb +23 -0
- data/lib/jets/cli/schedule/base.rb +5 -0
- data/lib/jets/cli/schedule/translate.rb +168 -0
- data/lib/jets/cli/schedule/validate.rb +95 -0
- data/lib/jets/cli/schedule.rb +15 -0
- data/lib/jets/cli/stacks.rb +33 -0
- data/lib/jets/cli/stop.rb +31 -0
- data/lib/jets/cli/teardown.rb +8 -0
- data/lib/jets/cli/tip.rb +86 -0
- data/lib/jets/cli/url.rb +41 -0
- data/lib/jets/cli/waf/base.rb +7 -0
- data/lib/jets/cli/waf/build.rb +8 -0
- data/lib/jets/cli/waf/delete.rb +17 -0
- data/lib/jets/cli/waf/deploy.rb +17 -0
- data/lib/jets/cli/waf/info.rb +128 -0
- data/lib/jets/cli/waf/init.rb +40 -0
- data/lib/jets/cli/waf/templates/waf.rb.tt +26 -0
- data/lib/jets/cli/waf.rb +38 -0
- data/lib/jets/cli.rb +180 -28
- data/lib/jets/code/copy/base.rb +84 -0
- data/lib/jets/code/copy/full.rb +9 -0
- data/lib/jets/code/copy/git_copy.rb +26 -0
- data/lib/jets/code/copy/git_inline.rb +13 -0
- data/lib/jets/code/copy/rsync.rb +19 -0
- data/lib/jets/code/dummy.rb +11 -0
- data/lib/jets/code/stager.rb +124 -0
- data/lib/jets/code/user.rb +24 -0
- data/lib/jets/code.rb +80 -0
- data/lib/jets/core/booter.rb +58 -0
- data/lib/jets/core/config/base.rb +17 -0
- data/lib/jets/core/config/bootstrap/cfn.rb +12 -0
- data/lib/jets/core/config/bootstrap/code.rb +16 -0
- data/lib/jets/core/config/bootstrap/codebuild.rb +97 -0
- data/lib/jets/core/config/bootstrap/s3_bucket.rb +19 -0
- data/lib/jets/core/config/bootstrap.rb +24 -0
- data/lib/jets/core/config/helpers/ssm.rb +9 -0
- data/lib/jets/core/config/helpers.rb +5 -0
- data/lib/jets/core/config/info.rb +27 -0
- data/lib/jets/core/config/project.rb +103 -0
- data/lib/jets/core.rb +26 -202
- data/lib/jets/core_ext/bundler.rb +6 -4
- data/lib/jets/core_ext.rb +0 -1
- data/lib/jets/dotenv/convention.rb +86 -0
- data/lib/jets/dotenv/ssm.rb +61 -38
- data/lib/jets/dotenv/var.rb +60 -0
- data/lib/jets/dotenv.rb +55 -50
- data/lib/jets/event/base.rb +55 -0
- data/lib/jets/event/dsl/dynamodb_event.rb +8 -0
- data/lib/jets/event/dsl/iot_event.rb +17 -0
- data/lib/jets/event/dsl/kinesis_event.rb +8 -0
- data/lib/jets/event/dsl/log_event.rb +8 -0
- data/lib/jets/event/dsl/rate_expression.rb +27 -0
- data/lib/jets/event/dsl/s3_event.rb +7 -0
- data/lib/jets/event/dsl/scheduled_event.rb +53 -0
- data/lib/jets/event/dsl/sns_event.rb +8 -0
- data/lib/jets/event/dsl/sqs_event.rb +8 -0
- data/lib/jets/{job → event}/dsl.rb +7 -12
- data/lib/jets/{job → event}/helpers/kinesis_event.rb +2 -2
- data/lib/jets/{job → event}/helpers/log_event.rb +5 -5
- data/lib/jets/event/helpers/s3_event.rb +76 -0
- data/lib/jets/event/helpers/sns_event.rb +16 -0
- data/lib/jets/event/helpers/sqs_event.rb +23 -0
- data/lib/jets/event/s3.rb +21 -0
- data/lib/jets/git/azure.rb +64 -0
- data/lib/jets/git/base.rb +26 -0
- data/lib/jets/git/bitbucket.rb +30 -0
- data/lib/jets/git/circleci.rb +23 -0
- data/lib/jets/git/codebuild.rb +49 -0
- data/lib/jets/git/custom.rb +32 -0
- data/lib/jets/git/git_cli.rb +28 -0
- data/lib/jets/git/github.rb +48 -0
- data/lib/jets/git/gitlab.rb +30 -0
- data/lib/jets/git/info.rb +39 -0
- data/lib/jets/git/local.rb +69 -0
- data/lib/jets/git/saved.rb +16 -0
- data/lib/jets/git/user.rb +33 -0
- data/lib/jets/git.rb +5 -0
- data/lib/jets/lambda/definition.rb +22 -16
- data/lib/jets/lambda/dsl.rb +394 -394
- data/lib/jets/lambda/function_constructor.rb +1 -2
- data/lib/jets/lambda/functions.rb +10 -25
- data/lib/jets/names.rb +5 -17
- data/lib/jets/prewarm.rb +27 -0
- data/lib/jets/rdoc.rb +2 -2
- data/lib/jets/remote/base.rb +11 -0
- data/lib/jets/remote/download.rb +65 -0
- data/lib/jets/remote/runner.rb +101 -0
- data/lib/jets/remote/tailer.rb +272 -0
- data/lib/jets/shim/adapter/alb.rb +16 -0
- data/lib/jets/shim/adapter/apigw.rb +37 -0
- data/lib/jets/shim/adapter/base.rb +16 -0
- data/lib/jets/shim/adapter/command.rb +21 -0
- data/lib/jets/shim/adapter/event.rb +27 -0
- data/lib/jets/shim/adapter/fallback.rb +64 -0
- data/lib/jets/shim/adapter/lambda.rb +35 -0
- data/lib/jets/shim/adapter/prewarm.rb +27 -0
- data/lib/jets/shim/adapter/web.rb +145 -0
- data/lib/jets/shim/config.rb +71 -0
- data/lib/jets/shim/handler.rb +60 -0
- data/lib/jets/shim/maintenance/maintenance.html +45 -0
- data/lib/jets/shim/maintenance.rb +37 -0
- data/lib/jets/shim/response/alb.rb +10 -0
- data/lib/jets/shim/response/apigw.rb +4 -0
- data/lib/jets/shim/response/base.rb +124 -0
- data/lib/jets/shim/response/lambda.rb +4 -0
- data/lib/jets/shim/response/web.rb +4 -0
- data/lib/jets/shim.rb +46 -0
- data/lib/jets/stack/{main/dsl → dsl/main}/base.rb +2 -23
- data/lib/jets/stack/dsl/main/cloudwatch.rb +6 -0
- data/lib/jets/stack/dsl/main/iam.rb +6 -0
- data/lib/jets/stack/dsl/main/kinesis.rb +6 -0
- data/lib/jets/stack/dsl/main/lambda.rb +39 -0
- data/lib/jets/stack/dsl/main/s3.rb +9 -0
- data/lib/jets/stack/dsl/main/sns.rb +12 -0
- data/lib/jets/stack/dsl/main/sqs.rb +6 -0
- data/lib/jets/stack/dsl/main.rb +15 -0
- data/lib/jets/stack/dsl/output.rb +11 -0
- data/lib/jets/stack/dsl/parameter.rb +11 -0
- data/lib/jets/stack/dsl/resource.rb +11 -0
- data/lib/jets/stack/dsl.rb +10 -0
- data/lib/jets/stack/{output/lookup.rb → outputs.rb} +7 -6
- data/lib/jets/stack.rb +11 -58
- data/lib/jets/thor/auth.rb +96 -0
- data/lib/jets/thor/base.rb +155 -0
- data/lib/jets/thor/help.rb +129 -0
- data/lib/jets/thor/project_check.rb +50 -0
- data/lib/jets/thor/shared_options.rb +31 -0
- data/lib/jets/thor/version_check.rb +51 -0
- data/lib/jets/util/call_line.rb +9 -0
- data/lib/jets/util/camelize.rb +1 -1
- data/lib/jets/util/git.rb +11 -0
- data/lib/jets/util/logging.rb +16 -0
- data/lib/jets/util/pretty.rb +23 -0
- data/lib/jets/util/sh.rb +38 -0
- data/lib/jets/util/sure.rb +25 -0
- data/lib/jets/util/truthy.rb +9 -0
- data/lib/jets/util/yamler.rb +3 -5
- data/lib/jets/version.rb +1 -1
- data/lib/jets.rb +4 -8
- metadata +339 -604
- data/.circleci/config.yml +0 -92
- data/.cody/README.md +0 -13
- data/.cody/docs/bin/build.sh +0 -7
- data/.cody/docs/bin/bundler_setup.sh +0 -8
- data/.cody/docs/bin/cli_docs.sh +0 -6
- data/.cody/docs/bin/git_commit.sh +0 -27
- data/.cody/docs/bin/git_setup.sh +0 -12
- data/.cody/docs/bin/subnav.sh +0 -14
- data/.cody/docs/buildspec.yml +0 -10
- data/.cody/docs/project.rb +0 -10
- data/Dockerfile +0 -16
- data/Dockerfile.base +0 -53
- data/Guardfile +0 -22
- data/Procfile +0 -2
- data/engines/internal/app/controllers/jets/application_controller.rb +0 -28
- data/engines/internal/app/controllers/jets/bare_controller.rb +0 -6
- data/engines/internal/app/controllers/jets/health_controller.rb +0 -55
- data/engines/internal/app/controllers/jets/info_controller.rb +0 -45
- data/engines/internal/app/controllers/jets/mailers_controller.rb +0 -95
- data/engines/internal/app/controllers/jets/mount_controller.rb +0 -59
- data/engines/internal/app/controllers/jets/public_controller.rb +0 -35
- data/engines/internal/app/controllers/jets/welcome_controller.rb +0 -9
- data/engines/internal/app/functions/jets/base_path.rb +0 -109
- data/engines/internal/app/functions/jets/base_path_mapping.rb +0 -191
- data/engines/internal/app/jobs/jets/preheat_job.rb +0 -64
- data/engines/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -33
- data/engines/internal/app/views/jets/info/properties.html.erb +0 -1
- data/engines/internal/app/views/jets/info/routes.html.erb +0 -10
- data/engines/internal/app/views/jets/mailers/email.html.erb +0 -165
- data/engines/internal/app/views/jets/mailers/index.html.erb +0 -8
- data/engines/internal/app/views/jets/mailers/mailer.html.erb +0 -6
- data/engines/internal/app/views/jets/welcome/index.html.erb +0 -95
- data/engines/internal/app/views/layouts/application.html.erb +0 -51
- data/engines/internal/lib/internal/actiondispatch.rb +0 -39
- data/engines/internal/lib/internal/actionmailer.rb +0 -51
- data/engines/internal/lib/internal/actionview.rb +0 -152
- data/engines/internal/lib/internal/activerecord.rb +0 -37
- data/engines/internal/lib/internal/activesupport.rb +0 -47
- data/engines/internal/lib/internal/engine.rb +0 -13
- data/engines/internal/lib/internal/i18n_engine.rb +0 -19
- data/engines/internal/lib/internal/jets_controller.rb +0 -46
- data/engines/internal/lib/internal/overrides/debug_exceptions.rb +0 -40
- data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +0 -62
- data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +0 -9
- data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +0 -70
- data/engines/internal/lib/internal/turbines/helpers.rb +0 -18
- data/engines/internal/lib/internal/turbines/routes_helpers.rb +0 -42
- data/lib/jets/app_loader.rb +0 -77
- data/lib/jets/application/bootstrap.rb +0 -100
- data/lib/jets/application/configuration/defaults.rb +0 -256
- data/lib/jets/application/configuration.rb +0 -494
- data/lib/jets/application/default_middleware_stack.rb +0 -140
- data/lib/jets/application/dummy_erb_compiler.rb +0 -18
- data/lib/jets/application/finisher.rb +0 -266
- data/lib/jets/application/routes_reloader.rb +0 -80
- data/lib/jets/application.rb +0 -556
- data/lib/jets/authorizer/base.rb +0 -37
- data/lib/jets/authorizer/dsl.rb +0 -73
- data/lib/jets/authorizer/helpers/iam_helper.rb +0 -49
- data/lib/jets/autoloaders/inflector.rb +0 -21
- data/lib/jets/backtrace_cleaner.rb +0 -27
- data/lib/jets/booter.rb +0 -78
- data/lib/jets/builders/code_builder.rb +0 -359
- data/lib/jets/builders/code_size.rb +0 -58
- data/lib/jets/builders/gem_replacer.rb +0 -83
- data/lib/jets/builders/handler_generator.rb +0 -214
- data/lib/jets/builders/lambda_layer.rb +0 -63
- data/lib/jets/builders/md5.rb +0 -60
- data/lib/jets/builders/md5_zip.rb +0 -61
- data/lib/jets/builders/purger.rb +0 -35
- data/lib/jets/builders/rack_packager.rb +0 -51
- data/lib/jets/builders/rackup_wrappers/rackup +0 -19
- data/lib/jets/builders/rackup_wrappers/rackup.rb +0 -7
- data/lib/jets/builders/ruby_packager.rb +0 -288
- data/lib/jets/builders/shim_vars/app.rb +0 -82
- data/lib/jets/builders/shim_vars/base.rb +0 -25
- data/lib/jets/builders/shim_vars/shared.rb +0 -37
- data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +0 -33
- data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +0 -20
- data/lib/jets/builders/templates/handlers/one_lambda_per_method.rb +0 -18
- data/lib/jets/builders/tidy.rb +0 -107
- data/lib/jets/builders/util.rb +0 -31
- data/lib/jets/cfn/builder/api/base.rb +0 -12
- data/lib/jets/cfn/builder/api/deployment.rb +0 -46
- data/lib/jets/cfn/builder/api/gateway.rb +0 -106
- data/lib/jets/cfn/builder/api/mapping.rb +0 -54
- data/lib/jets/cfn/builder/api/methods.rb +0 -72
- data/lib/jets/cfn/builder/api/paged.rb +0 -30
- data/lib/jets/cfn/builder/api/pages/base.rb +0 -105
- data/lib/jets/cfn/builder/api/pages/methods.rb +0 -17
- data/lib/jets/cfn/builder/api/pages/page.rb +0 -19
- data/lib/jets/cfn/builder/api/pages/resources.rb +0 -21
- data/lib/jets/cfn/builder/api/resources.rb +0 -40
- data/lib/jets/cfn/builder/authorizer.rb +0 -64
- data/lib/jets/cfn/builder/controller.rb +0 -28
- data/lib/jets/cfn/builder/function.rb +0 -9
- data/lib/jets/cfn/builder/job.rb +0 -10
- data/lib/jets/cfn/builder/nested.rb +0 -130
- data/lib/jets/cfn/builder/one_controller.rb +0 -53
- data/lib/jets/cfn/builder/parent/stagger.rb +0 -34
- data/lib/jets/cfn/builder/parent.rb +0 -149
- data/lib/jets/cfn/builder/rule.rb +0 -20
- data/lib/jets/cfn/builder/shared.rb +0 -15
- data/lib/jets/cfn/builder/util/source.rb +0 -21
- data/lib/jets/cfn/builder.rb +0 -230
- data/lib/jets/cfn/deployment.rb +0 -85
- data/lib/jets/cfn/download.rb +0 -39
- data/lib/jets/cfn/params/api/base.rb +0 -39
- data/lib/jets/cfn/params/api/cors.rb +0 -10
- data/lib/jets/cfn/params/api/methods.rb +0 -69
- data/lib/jets/cfn/params/api/resources.rb +0 -28
- data/lib/jets/cfn/params/common.rb +0 -14
- data/lib/jets/cfn/resource/api_gateway/authorizer.rb +0 -82
- data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +0 -57
- data/lib/jets/cfn/resource/api_gateway/base_path/mapping.rb +0 -45
- data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +0 -70
- data/lib/jets/cfn/resource/api_gateway/deployment.rb +0 -73
- data/lib/jets/cfn/resource/api_gateway/domain_name.rb +0 -65
- data/lib/jets/cfn/resource/api_gateway/method/authorization.rb +0 -41
- data/lib/jets/cfn/resource/api_gateway/method.rb +0 -92
- data/lib/jets/cfn/resource/api_gateway/resource.rb +0 -86
- data/lib/jets/cfn/resource/api_gateway/resource_id.rb +0 -25
- data/lib/jets/cfn/resource/api_gateway/rest_api/change_detection.rb +0 -10
- data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id/message.rb +0 -59
- data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id.rb +0 -98
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/base.rb +0 -110
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/media_types.rb +0 -36
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/page.rb +0 -93
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/to.rb +0 -30
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/variable.rb +0 -35
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +0 -27
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision/variable_exception.rb +0 -7
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision.rb +0 -121
- data/lib/jets/cfn/resource/api_gateway/rest_api/routes.rb +0 -7
- data/lib/jets/cfn/resource/api_gateway/rest_api.rb +0 -74
- data/lib/jets/cfn/resource/config/config_rule.rb +0 -74
- data/lib/jets/cfn/resource/config/managed_rule.rb +0 -15
- data/lib/jets/cfn/resource/events/rule.rb +0 -31
- data/lib/jets/cfn/resource/iam/application_role.rb +0 -27
- data/lib/jets/cfn/resource/iam/base_role_definition.rb +0 -56
- data/lib/jets/cfn/resource/iam/class_role.rb +0 -74
- data/lib/jets/cfn/resource/iam/function_role.rb +0 -54
- data/lib/jets/cfn/resource/iam/managed_policy.rb +0 -22
- data/lib/jets/cfn/resource/iam/policy.rb +0 -31
- data/lib/jets/cfn/resource/iam/policy_document.rb +0 -42
- data/lib/jets/cfn/resource/iot/topic_rule.rb +0 -34
- data/lib/jets/cfn/resource/lambda/event_source_mapping.rb +0 -31
- data/lib/jets/cfn/resource/lambda/function/controller.rb +0 -21
- data/lib/jets/cfn/resource/lambda/function/environment.rb +0 -64
- data/lib/jets/cfn/resource/lambda/function.rb +0 -266
- data/lib/jets/cfn/resource/lambda/gem_layer.rb +0 -17
- data/lib/jets/cfn/resource/lambda/layer_version.rb +0 -44
- data/lib/jets/cfn/resource/lambda/permission.rb +0 -51
- data/lib/jets/cfn/resource/logs/subscription_filter.rb +0 -31
- data/lib/jets/cfn/resource/nested/api/base.rb +0 -4
- data/lib/jets/cfn/resource/nested/api/deployment.rb +0 -53
- data/lib/jets/cfn/resource/nested/api/gateway.rb +0 -15
- data/lib/jets/cfn/resource/nested/api/mapping.rb +0 -33
- data/lib/jets/cfn/resource/nested/api/methods.rb +0 -30
- data/lib/jets/cfn/resource/nested/api/page.rb +0 -8
- data/lib/jets/cfn/resource/nested/api/resources.rb +0 -22
- data/lib/jets/cfn/resource/nested/app_class.rb +0 -116
- data/lib/jets/cfn/resource/nested/authorizer.rb +0 -34
- data/lib/jets/cfn/resource/nested/base.rb +0 -38
- data/lib/jets/cfn/resource/nested/one_controller.rb +0 -48
- data/lib/jets/cfn/resource/nested/shared.rb +0 -79
- data/lib/jets/cfn/resource/one/function.rb +0 -66
- data/lib/jets/cfn/resource/one/permission.rb +0 -17
- data/lib/jets/cfn/resource/route53/record_set.rb +0 -98
- data/lib/jets/cfn/resource/sns/subscription.rb +0 -29
- data/lib/jets/cfn/resource/sns/topic.rb +0 -35
- data/lib/jets/cfn/resource/sns/topic_policy.rb +0 -40
- data/lib/jets/cfn/resource/sqs/queue.rb +0 -21
- data/lib/jets/cfn/ship.rb +0 -192
- data/lib/jets/cfn/template.rb +0 -93
- data/lib/jets/cfn/upload.rb +0 -163
- data/lib/jets/command/actions.rb +0 -49
- data/lib/jets/command/api_helpers.rb +0 -42
- data/lib/jets/command/aws_helpers.rb +0 -26
- data/lib/jets/command/base.rb +0 -209
- data/lib/jets/command/behavior.rb +0 -83
- data/lib/jets/command/environment_argument.rb +0 -42
- data/lib/jets/command/help/build.md +0 -6
- data/lib/jets/command/help/call.md +0 -48
- data/lib/jets/command/help/clean/build.md +0 -5
- data/lib/jets/command/help/clean/log.md +0 -5
- data/lib/jets/command/help/console.md +0 -18
- data/lib/jets/command/help/db/generate.md +0 -8
- data/lib/jets/command/help/dbconsole.md +0 -9
- data/lib/jets/command/help/degenerate.md +0 -16
- data/lib/jets/command/help/deploy.md +0 -32
- data/lib/jets/command/help/gems/check.md +0 -1
- data/lib/jets/command/help/generate.md +0 -28
- data/lib/jets/command/help/import/rack.md +0 -13
- data/lib/jets/command/help/import/rails.md +0 -11
- data/lib/jets/command/help/new.md +0 -41
- data/lib/jets/command/help/rollback.md +0 -5
- data/lib/jets/command/help/routes.md +0 -15
- data/lib/jets/command/help/runner.md +0 -40
- data/lib/jets/command/help/server.md +0 -15
- data/lib/jets/command/help/upgrade.md +0 -7
- data/lib/jets/command/help.rb +0 -17
- data/lib/jets/command/helpers/editor.rb +0 -35
- data/lib/jets/command/rake_decorate.rb +0 -38
- data/lib/jets/command.rb +0 -142
- data/lib/jets/commands/application/application_command.rb +0 -46
- data/lib/jets/commands/build/build_command.rb +0 -33
- data/lib/jets/commands/call/anonymous_guesser.rb +0 -96
- data/lib/jets/commands/call/autoload_guesser.rb +0 -136
- data/lib/jets/commands/call/base_guesser.rb +0 -62
- data/lib/jets/commands/call/call_command.rb +0 -27
- data/lib/jets/commands/call/caller.rb +0 -184
- data/lib/jets/commands/call/guesser.rb +0 -48
- data/lib/jets/commands/clean/base.rb +0 -24
- data/lib/jets/commands/clean/build.rb +0 -13
- data/lib/jets/commands/clean/clean_command.rb +0 -15
- data/lib/jets/commands/clean/log.rb +0 -111
- data/lib/jets/commands/configure/configure_command.rb +0 -9
- data/lib/jets/commands/console/console_command.rb +0 -38
- data/lib/jets/commands/credentials/USAGE +0 -103
- data/lib/jets/commands/credentials/credentials_command/diffing.rb +0 -51
- data/lib/jets/commands/credentials/credentials_command.rb +0 -139
- data/lib/jets/commands/db/system/change/change_command.rb +0 -24
- data/lib/jets/commands/dbconsole/dbconsole_command.rb +0 -184
- data/lib/jets/commands/degenerate/degenerate_command.rb +0 -21
- data/lib/jets/commands/delete/delete_command.rb +0 -154
- data/lib/jets/commands/deploy/deploy_command.rb +0 -118
- data/lib/jets/commands/dev/dev_command.rb +0 -19
- data/lib/jets/commands/dotenv/dotenv_command.rb +0 -9
- data/lib/jets/commands/encrypted/USAGE +0 -46
- data/lib/jets/commands/encrypted/encrypted_command.rb +0 -87
- data/lib/jets/commands/gems/gems_command.rb +0 -14
- data/lib/jets/commands/generate/generate_command.rb +0 -95
- data/lib/jets/commands/help/USAGE +0 -20
- data/lib/jets/commands/help/help_command.rb +0 -15
- data/lib/jets/commands/initializers/initializers_command.rb +0 -19
- data/lib/jets/commands/logs/logs_command.rb +0 -45
- data/lib/jets/commands/new/new_command.rb +0 -19
- data/lib/jets/commands/notes/notes_command.rb +0 -30
- data/lib/jets/commands/plugin/plugin_command.rb +0 -45
- data/lib/jets/commands/projects/projects_command.rb +0 -30
- data/lib/jets/commands/rake/rake_command.rb +0 -59
- data/lib/jets/commands/releases/releases_command.rb +0 -124
- data/lib/jets/commands/rollback/rollback_command.rb +0 -33
- data/lib/jets/commands/routes/routes_command.rb +0 -19
- data/lib/jets/commands/runner/runner_command.rb +0 -60
- data/lib/jets/commands/server/server_command.rb +0 -291
- data/lib/jets/commands/stacks/stacks_command.rb +0 -39
- data/lib/jets/commands/status/status_command.rb +0 -16
- data/lib/jets/commands/url/url_command.rb +0 -92
- data/lib/jets/commands/version/version_command.rb +0 -11
- data/lib/jets/commands.rb +0 -17
- data/lib/jets/configuration.rb +0 -166
- data/lib/jets/controller/base.rb +0 -117
- data/lib/jets/controller/compat/abstract_controller/base.rb +0 -126
- data/lib/jets/controller/compat/action_controller/metal.rb +0 -99
- data/lib/jets/controller/compat/caching.rb +0 -13
- data/lib/jets/controller/compat/future.rb +0 -13
- data/lib/jets/controller/compat/route_set.rb +0 -47
- data/lib/jets/controller/decorate/apigw_stage.rb +0 -39
- data/lib/jets/controller/decorate/authorization.rb +0 -91
- data/lib/jets/controller/decorate/logging.rb +0 -90
- data/lib/jets/controller/decorate/redirecting.rb +0 -16
- data/lib/jets/controller/decorate/url_for.rb +0 -10
- data/lib/jets/controller/handler/apigw.rb +0 -93
- data/lib/jets/controller/handler.rb +0 -41
- data/lib/jets/controller/middleware/main.rb +0 -61
- data/lib/jets/controller/middleware/mimic/apigw.rb +0 -140
- data/lib/jets/controller/middleware/mimic/lambda_context.rb +0 -44
- data/lib/jets/controller/middleware/mimic.rb +0 -105
- data/lib/jets/controller/middleware/webpacker_setup.rb +0 -6
- data/lib/jets/controller/rack_adapter/action.rb +0 -35
- data/lib/jets/controller/rack_adapter/env.rb +0 -145
- data/lib/jets/controller/request/compat/params.rb +0 -144
- data/lib/jets/controller/request/compat/request.rb +0 -125
- data/lib/jets/controller/request.rb +0 -46
- data/lib/jets/controller/response/compat/response.rb +0 -67
- data/lib/jets/controller/response.rb +0 -144
- data/lib/jets/core_ext/kernel.rb +0 -13
- data/lib/jets/dev_caching.rb +0 -44
- data/lib/jets/dotenv/show.rb +0 -11
- data/lib/jets/engine/configuration.rb +0 -96
- data/lib/jets/engine/turbines.rb +0 -23
- data/lib/jets/engine.rb +0 -380
- data/lib/jets/erb.rb +0 -51
- data/lib/jets/generators/job/job_generator.rb +0 -41
- data/lib/jets/generators/job/templates/application_job.rb.tt +0 -6
- data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/iot.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/s3.rb.tt +0 -11
- data/lib/jets/generators/job/templates/event_types/scheduled.rb.tt +0 -8
- data/lib/jets/generators/job/templates/event_types/sns.rb.tt +0 -11
- data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +0 -11
- data/lib/jets/generators/overrides/app/USAGE +0 -38
- data/lib/jets/generators/overrides/app/app_generator.rb +0 -148
- data/lib/jets/generators/overrides/app/helpers.rb +0 -139
- data/lib/jets/generators/overrides/app/templates/.env +0 -10
- data/lib/jets/generators/overrides/app/templates/.gitignore.tt +0 -13
- data/lib/jets/generators/overrides/app/templates/.jetsignore +0 -6
- data/lib/jets/generators/overrides/app/templates/.rspec +0 -3
- data/lib/jets/generators/overrides/app/templates/Gemfile.tt +0 -28
- data/lib/jets/generators/overrides/app/templates/README.md +0 -11
- data/lib/jets/generators/overrides/app/templates/Rakefile +0 -2
- data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +0 -3
- data/lib/jets/generators/overrides/app/templates/app/assets/images/.keep +0 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/javascripts/.keep +0 -0
- data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +0 -15
- data/lib/jets/generators/overrides/app/templates/app/controllers/application_controller.rb +0 -2
- data/lib/jets/generators/overrides/app/templates/app/helpers/application_helper.rb +0 -2
- data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +0 -5
- data/lib/jets/generators/overrides/app/templates/app/jobs/application_job.rb +0 -4
- data/lib/jets/generators/overrides/app/templates/app/models/application_record.rb +0 -3
- data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +0 -30
- data/lib/jets/generators/overrides/app/templates/bin/jets +0 -3
- data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +0 -15
- data/lib/jets/generators/overrides/app/templates/config/database.yml.tt +0 -27
- data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +0 -29
- data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +0 -21
- data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +0 -23
- data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +0 -31
- data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +0 -8
- data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +0 -11
- data/lib/jets/generators/overrides/app/templates/config/routes.rb +0 -13
- data/lib/jets/generators/overrides/app/templates/config.ru +0 -5
- data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
- data/lib/jets/generators/overrides/app/templates/public/404.html +0 -67
- data/lib/jets/generators/overrides/app/templates/public/422.html +0 -67
- data/lib/jets/generators/overrides/app/templates/public/500.html +0 -66
- data/lib/jets/generators/overrides/app/templates/public/favicon.ico +0 -0
- data/lib/jets/generators/overrides/app/templates/spec/controllers/posts_controller_spec.rb +0 -15
- data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-index.json +0 -51
- data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-show.json +0 -53
- data/lib/jets/generators/overrides/app/templates/spec/spec_helper.rb.tt +0 -30
- data/lib/jets/generators/overrides/templates/erb/scaffold/_form.html.erb +0 -34
- data/lib/jets/generators/overrides/templates/erb/scaffold/edit.html.erb +0 -6
- data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +0 -22
- data/lib/jets/generators/overrides/templates/erb/scaffold/new.html.erb +0 -5
- data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +0 -8
- data/lib/jets/generators/overrides/templates/erb/scaffold/show.html.erb +0 -9
- data/lib/jets/generators/overrides/templates/rails/assets/javascript.js +0 -2
- data/lib/jets/generators/overrides/templates/rails/assets/stylesheet.css +0 -4
- data/lib/jets/generators/overrides/templates/rails/scaffold/scaffold.css +0 -80
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt +0 -58
- data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +0 -67
- data/lib/jets/generators.rb +0 -112
- data/lib/jets/inflections.rb +0 -32
- data/lib/jets/info.rb +0 -116
- data/lib/jets/initializable.rb +0 -95
- data/lib/jets/job/base.rb +0 -52
- data/lib/jets/job/dsl/dynamodb_event.rb +0 -78
- data/lib/jets/job/dsl/event_source_mapping.rb +0 -11
- data/lib/jets/job/dsl/iot_event.rb +0 -24
- data/lib/jets/job/dsl/kinesis_event.rb +0 -47
- data/lib/jets/job/dsl/log_event.rb +0 -15
- data/lib/jets/job/dsl/rule_event.rb +0 -78
- data/lib/jets/job/dsl/s3_event.rb +0 -77
- data/lib/jets/job/dsl/sns_event.rb +0 -54
- data/lib/jets/job/dsl/sqs_event.rb +0 -97
- data/lib/jets/job/helpers/s3_event.rb +0 -50
- data/lib/jets/job/helpers/sns_event.rb +0 -26
- data/lib/jets/job/helpers/sqs_event.rb +0 -26
- data/lib/jets/klass.rb +0 -108
- data/lib/jets/lambda/dsl/warnings.rb +0 -57
- data/lib/jets/mega/hash_converter.rb +0 -25
- data/lib/jets/mega/request/source.rb +0 -20
- data/lib/jets/mega/request.rb +0 -163
- data/lib/jets/overrides/dummy/rails.rb +0 -11
- data/lib/jets/overrides/lambda/marshaller.rb +0 -31
- data/lib/jets/overrides/lambda.rb +0 -1
- data/lib/jets/overrides/puma.rb +0 -10
- data/lib/jets/paths.rb +0 -243
- data/lib/jets/poly/base_executor.rb +0 -125
- data/lib/jets/poly/lambda_executor.rb +0 -16
- data/lib/jets/poly/node_error.rb +0 -8
- data/lib/jets/poly/node_executor.rb +0 -54
- data/lib/jets/poly/python_error.rb +0 -8
- data/lib/jets/poly/python_executor.rb +0 -23
- data/lib/jets/poly.rb +0 -73
- data/lib/jets/preheat.rb +0 -110
- data/lib/jets/processors/deducer.rb +0 -65
- data/lib/jets/processors/main_processor.rb +0 -54
- data/lib/jets/rack/logger.rb +0 -77
- data/lib/jets/router/compat/route_set.rb +0 -177
- data/lib/jets/router/dsl/mount.rb +0 -47
- data/lib/jets/router/dsl.rb +0 -164
- data/lib/jets/router/engine_mount.rb +0 -36
- data/lib/jets/router/help.rb +0 -130
- data/lib/jets/router/helpers/named_routes/add_full_url.rb +0 -13
- data/lib/jets/router/helpers/named_routes/generated.rb +0 -197
- data/lib/jets/router/helpers/named_routes/proxy.rb +0 -66
- data/lib/jets/router/matcher.rb +0 -204
- data/lib/jets/router/resources/base.rb +0 -7
- data/lib/jets/router/resources/filter.rb +0 -15
- data/lib/jets/router/resources/options.rb +0 -15
- data/lib/jets/router/route/after_initialize.rb +0 -64
- data/lib/jets/router/route/as.rb +0 -93
- data/lib/jets/router/route/authorizer.rb +0 -58
- data/lib/jets/router/route/compat.rb +0 -45
- data/lib/jets/router/route/info.rb +0 -74
- data/lib/jets/router/route/node.rb +0 -137
- data/lib/jets/router/route/path.rb +0 -93
- data/lib/jets/router/route.rb +0 -249
- data/lib/jets/router/route_set.rb +0 -214
- data/lib/jets/router/scope.rb +0 -230
- data/lib/jets/router/state.rb +0 -67
- data/lib/jets/router/util.rb +0 -8
- data/lib/jets/router.rb +0 -94
- data/lib/jets/ruby_version_check.rb +0 -15
- data/lib/jets/rule/base.rb +0 -20
- data/lib/jets/rule/dsl.rb +0 -109
- data/lib/jets/secrets.rb +0 -110
- data/lib/jets/spec_helpers/controllers/params.rb +0 -8
- data/lib/jets/spec_helpers/controllers/request.rb +0 -107
- data/lib/jets/spec_helpers/controllers/response.rb +0 -10
- data/lib/jets/spec_helpers/controllers.rb +0 -54
- data/lib/jets/spec_helpers/fixtures.rb +0 -11
- data/lib/jets/spec_helpers.rb +0 -15
- data/lib/jets/stack/builder.rb +0 -44
- data/lib/jets/stack/definition.rb +0 -47
- data/lib/jets/stack/depends/item.rb +0 -26
- data/lib/jets/stack/depends.rb +0 -34
- data/lib/jets/stack/function.rb +0 -71
- data/lib/jets/stack/main/dsl/cloudwatch.rb +0 -19
- data/lib/jets/stack/main/dsl/iam.rb +0 -8
- data/lib/jets/stack/main/dsl/kinesis.rb +0 -15
- data/lib/jets/stack/main/dsl/lambda.rb +0 -90
- data/lib/jets/stack/main/dsl/s3.rb +0 -12
- data/lib/jets/stack/main/dsl/sns.rb +0 -16
- data/lib/jets/stack/main/dsl/sqs.rb +0 -10
- data/lib/jets/stack/main/dsl.rb +0 -17
- data/lib/jets/stack/main.rb +0 -4
- data/lib/jets/stack/output/dsl.rb +0 -19
- data/lib/jets/stack/output.rb +0 -35
- data/lib/jets/stack/parameter/dsl.rb +0 -42
- data/lib/jets/stack/parameter.rb +0 -37
- data/lib/jets/stack/resource/dsl.rb +0 -19
- data/lib/jets/stack/resource.rb +0 -31
- data/lib/jets/stack/s3_event.rb +0 -101
- data/lib/jets/tasks/engine.rake +0 -85
- data/lib/jets/tasks/framework.rake +0 -66
- data/lib/jets/tasks/log.rake +0 -41
- data/lib/jets/tasks/middleware.rake +0 -9
- data/lib/jets/tasks/misc.rake +0 -81
- data/lib/jets/tasks/statistics.rake +0 -37
- data/lib/jets/tasks/tmp.rake +0 -51
- data/lib/jets/tasks/yarn.rake +0 -29
- data/lib/jets/tasks/zeitwerk.rake +0 -61
- data/lib/jets/tasks.rb +0 -18
- data/lib/jets/tmp_loader.rb +0 -53
- data/lib/jets/turbine/configurable.rb +0 -36
- data/lib/jets/turbine/configuration.rb +0 -101
- data/lib/jets/turbine.rb +0 -185
- data/lib/jets/util.rb +0 -40
- /data/lib/jets/{command → cli}/help/projects.md +0 -0
- /data/lib/jets/{command → cli}/help/stacks.md +0 -0
- /data/lib/jets/{command → cli}/help/url.md +0 -0
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
module Jets::Controller::Decorate
|
|
2
|
-
module Authorization
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
included do
|
|
6
|
-
class_attribute :auth_type,
|
|
7
|
-
:auth_to,
|
|
8
|
-
:auth_options, # for only and except filters
|
|
9
|
-
:api_key_needed,
|
|
10
|
-
:authorization_scopes_value
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
class_methods do
|
|
14
|
-
def controller_path
|
|
15
|
-
name.sub(/Controller$/, "".freeze).underscore
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def authorization_type(value=nil)
|
|
19
|
-
if !value.nil?
|
|
20
|
-
self.auth_type = value
|
|
21
|
-
else
|
|
22
|
-
self.auth_type
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def authorizer(value=nil, options={})
|
|
27
|
-
if !value.nil?
|
|
28
|
-
self.auth_to = value # IE: main#protect
|
|
29
|
-
self.auth_options = options # IE: only: %w[index] or expect: [:show]
|
|
30
|
-
else
|
|
31
|
-
self.auth_to
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def authorization_scopes(value=nil)
|
|
36
|
-
if !value.nil?
|
|
37
|
-
self.authorization_scopes_value = value
|
|
38
|
-
else
|
|
39
|
-
self.authorization_scopes_value
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def authorizer_metadata
|
|
44
|
-
Jets::Router::Route::Authorizer.metadata(auth_to)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# Used to add to parameter to controller templates
|
|
48
|
-
def authorizer_id
|
|
49
|
-
Jets::Router::Route::Authorizer.logical_id(auth_to)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# Used to add to the API::Gateway Method selectively
|
|
53
|
-
def authorizer_logical_id_for(action_name)
|
|
54
|
-
return unless auth_to
|
|
55
|
-
|
|
56
|
-
only = auth_options[:only].map(&:to_s) if auth_options && auth_options[:only]
|
|
57
|
-
except = auth_options[:except].map(&:to_s) if auth_options && auth_options[:except]
|
|
58
|
-
|
|
59
|
-
if except and !except.include?(action_name)
|
|
60
|
-
logical_id = Jets::Router::Route::Authorizer.logical_id(auth_to)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# only overrides except
|
|
64
|
-
if only and only.include?(action_name)
|
|
65
|
-
logical_id = Jets::Router::Route::Authorizer.logical_id(auth_to)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
# if both only and except are not set then always set the logical_id
|
|
69
|
-
if !only && !except
|
|
70
|
-
logical_id = Jets::Router::Route::Authorizer.logical_id(auth_to)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
logical_id
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
# Autoamtically sets authorization_type for the specific route based on the controller authorizer
|
|
77
|
-
def infer_authorization_type_for(action_name)
|
|
78
|
-
return unless authorizer_logical_id_for(action_name)
|
|
79
|
-
Jets::Authorizer::Base.authorization_type(auth_to)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def api_key_required(value=nil)
|
|
83
|
-
if !value.nil?
|
|
84
|
-
self.api_key_needed = value
|
|
85
|
-
else
|
|
86
|
-
self.api_key_needed
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
end
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
module Jets::Controller::Decorate
|
|
2
|
-
module Logging
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
included do
|
|
6
|
-
# A little bit tricky. Jets::Controller::Base includes AbstractController::Logger
|
|
7
|
-
# via ActionController::Redirecting.
|
|
8
|
-
# AbstractController::Logger defines a config_accessor :logger
|
|
9
|
-
# This results in logger being nil. We set it to logger here to correct it.
|
|
10
|
-
# Unsure why this does not happen with ActionController::Base though.
|
|
11
|
-
delegate :logger, to: Jets # fixes logger but Rails doesnt need this
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def dispatch!
|
|
15
|
-
t1 = Time.now
|
|
16
|
-
log_start
|
|
17
|
-
triplet = super # Abstract#dispatch!
|
|
18
|
-
took = Time.now - t1
|
|
19
|
-
log_finish status: status, took: took
|
|
20
|
-
triplet
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def processing_log
|
|
24
|
-
processing = "Processing #{self.class.name}##{@meth}"
|
|
25
|
-
processing << " (original method #{@original_meth})" if @original_meth
|
|
26
|
-
processing
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# Documented interface method, careful not to rename
|
|
30
|
-
def log_start
|
|
31
|
-
# Commented out Started because Jets::Rack::Logger middleware handles now
|
|
32
|
-
# ip = request.ip
|
|
33
|
-
# logger.info "Started (Jets) #{request.request_method} \"#{request.path}\" for #{ip} at #{Time.now}"
|
|
34
|
-
|
|
35
|
-
logger.info processing_log
|
|
36
|
-
logger.info " Raw Event: #{@event}" if ENV['JETS_LOG_RAW_EVENT']
|
|
37
|
-
logger.info " Event: #{event_log}" if log_event?
|
|
38
|
-
params = filtered_parameters.to_h.except('controller', 'action')
|
|
39
|
-
# JSON.dump makes logging look pretty in CloudWatch logs because it keeps it on 1 line
|
|
40
|
-
logger.info " Parameters: #{JSON.dump(params)}" unless params.empty?
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def log_event?
|
|
44
|
-
return false if ENV['JETS_LOG_EVENT'] == '0'
|
|
45
|
-
Jets.config.logging.event
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# Documented interface method, careful not to rename
|
|
49
|
-
def log_finish(options={})
|
|
50
|
-
status, took = options[:status], options[:took]
|
|
51
|
-
logger.info "Completed Status Code #{status} in #{"%.3f" % took}s"
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def event_log
|
|
55
|
-
event = @event.dup # clone to display event
|
|
56
|
-
|
|
57
|
-
if event['isBase64Encoded']
|
|
58
|
-
event['body'] = '[BASE64_ENCODED]'
|
|
59
|
-
else
|
|
60
|
-
event['body'] = filter_json_log(event['body'])
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
event["multiValueQueryStringParameters"] = parameter_filter.filter(event['multiValueQueryStringParameters']) if event['multiValueQueryStringParameters']
|
|
64
|
-
event["pathParameters"] = parameter_filter.filter(event['pathParameters']) if event['pathParameters']
|
|
65
|
-
event["queryStringParameters"] = parameter_filter.filter(event['queryStringParameters']) if event['queryStringParameters']
|
|
66
|
-
json_dump_log(event)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# Append _log to reduce chance of name collision with user defined methods
|
|
70
|
-
def filter_json_log(json_text)
|
|
71
|
-
return json_text if json_text.blank?
|
|
72
|
-
|
|
73
|
-
begin
|
|
74
|
-
hash_params = JSON.parse(json_text)
|
|
75
|
-
filtered_params = parameter_filter.filter(hash_params)
|
|
76
|
-
JSON.dump(filtered_params)
|
|
77
|
-
rescue JSON::ParserError
|
|
78
|
-
'[FILTERED]'
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# Handles binary data safely
|
|
83
|
-
def json_dump_log(data)
|
|
84
|
-
JSON.dump(data)
|
|
85
|
-
rescue Encoding::UndefinedConversionError
|
|
86
|
-
data['body'] = '[BINARY]'
|
|
87
|
-
JSON.dump(data)
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
module Jets::Controller::Decorate
|
|
2
|
-
module Redirecting
|
|
3
|
-
include ApigwStage
|
|
4
|
-
|
|
5
|
-
def _compute_redirect_to_location(request, options) # :nodoc:
|
|
6
|
-
adjust = options.respond_to?(:to_str) || options.is_a?(String)
|
|
7
|
-
options = add_apigw_stage(options) if adjust
|
|
8
|
-
super
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def redirect_back(fallback_location: '/')
|
|
12
|
-
location = request.headers["Referer"] || fallback_location
|
|
13
|
-
redirect_to location
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
require 'base64'
|
|
2
|
-
|
|
3
|
-
# Also, logic in the opposite direction: Jets::Controller::Middleware::Mimic::Apigw
|
|
4
|
-
# Only called by AWS Lambda before it runs through the middlewares.
|
|
5
|
-
module Jets::Controller::Handler
|
|
6
|
-
class Apigw
|
|
7
|
-
extend Memoist
|
|
8
|
-
|
|
9
|
-
attr_reader :event, :context, :controller, :meth, :rack_env
|
|
10
|
-
def initialize(event, context, controller, meth, rack_env)
|
|
11
|
-
@event = event
|
|
12
|
-
@context = context
|
|
13
|
-
@controller = controller
|
|
14
|
-
@meth = meth
|
|
15
|
-
@rack_env = rack_env
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# 1. Convert API Gateway event event to Rack env
|
|
19
|
-
# 2. Process using full Rack middleware stack
|
|
20
|
-
# 3. Convert back to API gateway response structure payload
|
|
21
|
-
#
|
|
22
|
-
# Returns back API Gateway response hash structure
|
|
23
|
-
# Only called when running in AWS Lambda.
|
|
24
|
-
#
|
|
25
|
-
# Set the jets.* env variables so we have access to them in the middleware.
|
|
26
|
-
# The controller instance is called in the Main middleware.
|
|
27
|
-
# On AWS, will use original event and context.
|
|
28
|
-
# On local server, will use Middleware::Mimic event and context.
|
|
29
|
-
def process_through_middlewares
|
|
30
|
-
env = rack_env.merge(
|
|
31
|
-
'jets.controller' => @controller, # original controller instance from handler
|
|
32
|
-
'jets.context' => @context, # original AWS Lambda context
|
|
33
|
-
'jets.event' => @event, # original AWS Lambda event
|
|
34
|
-
'jets.meth' => @meth,
|
|
35
|
-
)
|
|
36
|
-
status, headers, body = Jets.application.call(env) # goes through full middleware stack
|
|
37
|
-
# middleware can handle Array or BodyProxy, APIGW require Strings
|
|
38
|
-
case body
|
|
39
|
-
when Rack::Files::Iterator
|
|
40
|
-
str = File.read(body.path)
|
|
41
|
-
else
|
|
42
|
-
# join for Rack::BodyProxy or Array
|
|
43
|
-
str = body.join
|
|
44
|
-
end
|
|
45
|
-
convert_to_api_gateway(status, headers, str)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# Transform the structure to AWS_PROXY compatible structure
|
|
49
|
-
# http://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format
|
|
50
|
-
def convert_to_api_gateway(status, headers, body)
|
|
51
|
-
base64 = headers["x-jets-base64"] == 'yes'
|
|
52
|
-
body = body.respond_to?(:read) ? body.read : body
|
|
53
|
-
body = Base64.encode64(body) if base64
|
|
54
|
-
|
|
55
|
-
{}.tap do |resp|
|
|
56
|
-
resp['statusCode'] = status
|
|
57
|
-
resp['body'] = body
|
|
58
|
-
resp['isBase64Encoded'] = base64
|
|
59
|
-
add_response_headers(resp, headers)
|
|
60
|
-
adjust_for_elb(resp)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def add_response_headers(resp, headers)
|
|
65
|
-
resp['headers'] = headers.reject { |_, val| val.is_a?(Array) }
|
|
66
|
-
multi_value_headers = headers.select { |_, val| val.is_a?(Array) }
|
|
67
|
-
|
|
68
|
-
resp['multiValueHeaders'] = multi_value_headers unless multi_value_headers.blank?
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
# Note: ELB is not officially support. This is just in case users wish to manually
|
|
72
|
-
# connect ELBs to the functions created by Jets.
|
|
73
|
-
def adjust_for_elb(resp)
|
|
74
|
-
return resp unless from_elb?
|
|
75
|
-
|
|
76
|
-
# ELB requires statusCode to be an Integer whereas API Gateway requires statusCode to be a String
|
|
77
|
-
status = resp["statusCode"] = resp["statusCode"].to_i
|
|
78
|
-
|
|
79
|
-
# ELB also requires statusDescription attribute
|
|
80
|
-
status_desc = Rack::Utils::HTTP_STATUS_CODES[status]
|
|
81
|
-
status_desc = status_desc.nil? ? status.to_s : "#{status} #{status_desc}"
|
|
82
|
-
resp["statusDescription"] = status_desc
|
|
83
|
-
|
|
84
|
-
resp
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def from_elb?
|
|
88
|
-
# NOTE: @event["requestContext"]["elb"] is set when the request is coming from an elb
|
|
89
|
-
# Can set JETS_ELB=1 for local testing
|
|
90
|
-
@event["requestContext"] && @event["requestContext"]["elb"] || ENV['JETS_ELB']
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
module Jets::Controller
|
|
2
|
-
# Only called by AWS Lambda before it runs through the middlewares.
|
|
3
|
-
module Handler
|
|
4
|
-
extend ActiveSupport::Concern
|
|
5
|
-
|
|
6
|
-
# One key difference between process! vs dispatch!
|
|
7
|
-
#
|
|
8
|
-
# process! - takes the request through the middleware stack
|
|
9
|
-
# dispatch! - does not
|
|
10
|
-
#
|
|
11
|
-
# Generally, we want to use process! so it goes through the middleware stacks.
|
|
12
|
-
#
|
|
13
|
-
# The last middleware stack is Jets::Controller::Middleware::Main
|
|
14
|
-
# Which comes back to dispatch! in this same Controller Base class.
|
|
15
|
-
#
|
|
16
|
-
# class Jets::Controller::Middleware::Main
|
|
17
|
-
# def call!
|
|
18
|
-
# setup
|
|
19
|
-
# @controller.dispatch! # Returns triplet
|
|
20
|
-
# end
|
|
21
|
-
# end
|
|
22
|
-
#
|
|
23
|
-
def process!
|
|
24
|
-
apigw = Jets::Controller::Handler::Apigw.new(event, context, self, @meth, @rack_env)
|
|
25
|
-
apigw.process_through_middlewares # Returns API Gateway hash structure
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
class_methods do
|
|
29
|
-
def process(event, context={}, meth)
|
|
30
|
-
rack_env = Jets::Controller::RackAdapter::Env.new(event, context).convert # convert to Rack env
|
|
31
|
-
controller = new(event, context, meth, rack_env)
|
|
32
|
-
# Using send because process! was a private method in Jets::RackController (old) so
|
|
33
|
-
# it doesnt create a lambda function. It's doesnt matter what scope process!
|
|
34
|
-
# is in Controller::Base because Jets lambda functions inheritance doesnt
|
|
35
|
-
# include methods in Controller::Base.
|
|
36
|
-
controller.send(:process!)
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# All roads lead here
|
|
2
|
-
#
|
|
3
|
-
# 1. AWS Lambda: PostsController - Handler::Apigw - Jets.application.call
|
|
4
|
-
# 2. Local server: config.ru - run Jet.application - Jets.application.call
|
|
5
|
-
#
|
|
6
|
-
# Then eventually:
|
|
7
|
-
#
|
|
8
|
-
# Jets.application.call - Middleware stack - Jets::Controller::Middleware::Main
|
|
9
|
-
#
|
|
10
|
-
module Jets::Controller::Middleware
|
|
11
|
-
class Main
|
|
12
|
-
include Jets::ExceptionReporting
|
|
13
|
-
|
|
14
|
-
def initialize(env)
|
|
15
|
-
@env = env
|
|
16
|
-
@controller = env['jets.controller'] # original controller instance from handler or mimic
|
|
17
|
-
@context = env['jets.context'] # original AWS Lambda event or mimic context
|
|
18
|
-
@event = env['jets.event'] # original AWS Lambda event or mimic event
|
|
19
|
-
@meth = env['jets.meth']
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def call
|
|
23
|
-
dup.call!
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# With exception reporting here instead of Controller::Base#process so any
|
|
27
|
-
# exception in the middleware stack is caught.
|
|
28
|
-
# Also using with_exception_reporting instead of
|
|
29
|
-
# prepend Jets::ExceptionReporting::Process because the method is call!
|
|
30
|
-
# not process. The interface is different.
|
|
31
|
-
def call!
|
|
32
|
-
with_exception_reporting do
|
|
33
|
-
setup
|
|
34
|
-
@controller.dispatch! # Returns triplet
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# Common setup logical at this point of middleware processing right before
|
|
39
|
-
# calling any controller actions.
|
|
40
|
-
def setup
|
|
41
|
-
# We already recreated a mimic rack env earlier as part of the very first
|
|
42
|
-
# middleware layer. However, by the time the rack env reaches the main middleware
|
|
43
|
-
# it could had been updated by other middlewares. We update the env here again.
|
|
44
|
-
@controller.request.set_env!(@env)
|
|
45
|
-
# This allows sesison helpers to work. Sessions are managed by
|
|
46
|
-
# the Rack::Session::Cookie middleware by default.
|
|
47
|
-
@controller.session = @env['rack.session'] || {}
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def jets_host
|
|
51
|
-
protocol = @event.dig('headers', 'X-Forwarded-Proto') || @env['rack.url_scheme']
|
|
52
|
-
default = "#{protocol}://#{@env['HTTP_HOST']}"
|
|
53
|
-
Jets.config.helpers.host || default
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def self.call(env)
|
|
57
|
-
instance = new(env)
|
|
58
|
-
instance.call
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
# Takes a Rack env and converts to ApiGateway event
|
|
2
|
-
# This runs only locally, when not on AWS Lambda
|
|
3
|
-
# Note: Logic in the opposite direction: Jets::Controller::Handler::Apigw#rack_vars
|
|
4
|
-
class Jets::Controller::Middleware::Mimic
|
|
5
|
-
class Apigw
|
|
6
|
-
extend Memoist
|
|
7
|
-
|
|
8
|
-
def initialize(route, env)
|
|
9
|
-
@route, @env = route, env
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# Actual controller instance
|
|
13
|
-
def controller
|
|
14
|
-
controller_class = @route.controller_name.constantize
|
|
15
|
-
meth = @route.action_name
|
|
16
|
-
# must keep the same env as @env, rack env, else constraint lambda proc request will be different
|
|
17
|
-
controller_class.new(event, context, meth, @env)
|
|
18
|
-
end
|
|
19
|
-
memoize :controller # for same object_id in case apigw.controller is called twice
|
|
20
|
-
|
|
21
|
-
def meth
|
|
22
|
-
@route.action_name
|
|
23
|
-
end
|
|
24
|
-
memoize :meth
|
|
25
|
-
|
|
26
|
-
def context
|
|
27
|
-
LambdaContext.new
|
|
28
|
-
end
|
|
29
|
-
memoize :context
|
|
30
|
-
|
|
31
|
-
def event
|
|
32
|
-
resource = @route.path(:api_gateway) # /posts/{id}/edit
|
|
33
|
-
path = @env['PATH_INFO'].sub('/','') # remove beginning slash
|
|
34
|
-
{
|
|
35
|
-
"resource" => resource, # "/posts/{id}/edit"
|
|
36
|
-
"path" => @env['PATH_INFO'], # /posts/tung/edit
|
|
37
|
-
"httpMethod" => @env['REQUEST_METHOD'], # GET
|
|
38
|
-
"headers" => request_headers,
|
|
39
|
-
"queryStringParameters" => query_string_parameters,
|
|
40
|
-
"multiValueQueryStringParameters" => multi_value_query_string_parameters,
|
|
41
|
-
"pathParameters" => @route.extract_parameters(path),
|
|
42
|
-
"stageVariables" => nil,
|
|
43
|
-
"requestContext" => request_context,
|
|
44
|
-
"body" => get_body,
|
|
45
|
-
"isBase64Encoded" => false,
|
|
46
|
-
}
|
|
47
|
-
end
|
|
48
|
-
memoize :event
|
|
49
|
-
alias convert event
|
|
50
|
-
|
|
51
|
-
protected
|
|
52
|
-
# Annoying. The headers part of the AWS Lambda proxy structure
|
|
53
|
-
# does not consisently use the same casing scheme for the header keys.
|
|
54
|
-
# Sometimes it looks like this:
|
|
55
|
-
# Accept-Encoding
|
|
56
|
-
# and sometimes it looks like this:
|
|
57
|
-
# cache-control
|
|
58
|
-
# Map for special cases when the casing doesn't match.
|
|
59
|
-
CASING_MAP = {
|
|
60
|
-
"Cache-Control" => "cache-control",
|
|
61
|
-
"Content-Type" => "content-type",
|
|
62
|
-
"Origin" => "origin",
|
|
63
|
-
"Upgrade-Insecure-Requests" => "upgrade-insecure-requests",
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
# For mocking in RSepc:
|
|
67
|
-
#
|
|
68
|
-
# allow_any_instance_of(Jets::Controller::Middleware::Mimic::Apigw).to receive(:request_context) {
|
|
69
|
-
# {'authorizer' => { 'claims' => { 'sub' => sub, 'email_verified' => 'true', 'email' => 'me@example.com' }}}
|
|
70
|
-
# }
|
|
71
|
-
#
|
|
72
|
-
def request_context
|
|
73
|
-
{}
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
# Map rack env headers to Api Gateway event headers. Most rack env headers are
|
|
77
|
-
# prepended by HTTP_.
|
|
78
|
-
#
|
|
79
|
-
# Some API Gateway Lambda Proxy are also in the rack env headers. Example:
|
|
80
|
-
#
|
|
81
|
-
# "X-Amz-Cf-Id": "W8DF6J-lx1bkV00eCiBwIq5dldTSGGiG4BinJlxvN_4o8fCZtbsVjw==",
|
|
82
|
-
# "X-Amzn-Trace-Id": "Root=1-5a0dc1ac-58a7db712a57d6aa4186c2ac",
|
|
83
|
-
# "X-Forwarded-For": "88.88.88.88, 54.239.203.117",
|
|
84
|
-
# "X-Forwarded-Port": "443",
|
|
85
|
-
# "X-Forwarded-Proto": "https",
|
|
86
|
-
#
|
|
87
|
-
# For sample dump of the event headers, check out:
|
|
88
|
-
# spec/fixtures/samples/event-headers-form-post.json
|
|
89
|
-
#
|
|
90
|
-
# We generally do add those API Gateway Lambda specific headers because
|
|
91
|
-
# they would be fake anyway and by not adding them we can distinguish a
|
|
92
|
-
# local request from a remote request on API Gateway.
|
|
93
|
-
def request_headers
|
|
94
|
-
headers = @env.select { |k,v| k =~ /^HTTP_/ }.inject({}) do |h,(k,v)|
|
|
95
|
-
# map things like HTTP_USER_AGENT to "User-Agent"
|
|
96
|
-
key = k.sub('HTTP_','').split('_').map(&:capitalize).join('-')
|
|
97
|
-
h[key] = v
|
|
98
|
-
h
|
|
99
|
-
end
|
|
100
|
-
# Content type is not prepended with HTTP_
|
|
101
|
-
headers["Content-Type"] = @env["CONTENT_TYPE"] if @env["CONTENT_TYPE"]
|
|
102
|
-
|
|
103
|
-
# Adjust the casing so it matches the Lambda AWS Proxy structure
|
|
104
|
-
CASING_MAP.each do |nice_casing, bad_casing|
|
|
105
|
-
if headers.key?(nice_casing)
|
|
106
|
-
headers[bad_casing] = headers.delete(nice_casing)
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
headers
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def query_string_parameters
|
|
114
|
-
Rack::Utils.parse_nested_query(@env['QUERY_STRING'])
|
|
115
|
-
# @env['QUERY_STRING']&.split('&')&.each_with_object({}) do |parameter, hash|
|
|
116
|
-
# key, value = parameter.split('=')
|
|
117
|
-
# hash[key] = value
|
|
118
|
-
# end || {}
|
|
119
|
-
end
|
|
120
|
-
alias multi_value_query_string_parameters query_string_parameters
|
|
121
|
-
|
|
122
|
-
# def multi_value_query_string_parameters
|
|
123
|
-
# @env['QUERY_STRING']&.split('&')&.each_with_object({}) do |parameter, hash|
|
|
124
|
-
# key, value = parameter.split('=')
|
|
125
|
-
# hash[key] = [] if hash[key].nil?
|
|
126
|
-
# hash[key] << value
|
|
127
|
-
# end || {}
|
|
128
|
-
# end
|
|
129
|
-
|
|
130
|
-
# To get the post body:
|
|
131
|
-
# rack.input: #<StringIO:0x007f8ccf8db9a0>
|
|
132
|
-
def get_body
|
|
133
|
-
input = @env["rack.input"] || StringIO.new
|
|
134
|
-
body = input.read
|
|
135
|
-
input.rewind # IMPORTANT or else it screws up other middlewares that use the body
|
|
136
|
-
# return nil for blank string, because Lambda AWS_PROXY does this
|
|
137
|
-
body unless body.empty?
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
class Jets::Controller::Middleware::Mimic
|
|
2
|
-
# This class uses method_missing to mimic for all possible future methods
|
|
3
|
-
# that AWS Lambda might add to the context object.
|
|
4
|
-
#
|
|
5
|
-
# The current methods available on the Lambda Context object:
|
|
6
|
-
# aws_request_id, invoked_function_arn, log_group_name,
|
|
7
|
-
# log_stream_name, function_name, memory_limit_in_mb, function_version,
|
|
8
|
-
# identity, client_context, deadline_ms
|
|
9
|
-
#
|
|
10
|
-
# Locally, example mimic values:
|
|
11
|
-
#
|
|
12
|
-
# context.aws_request_id "mimic lambda context: aws_request_id"
|
|
13
|
-
# context.invoked_function_arn "mimic lambda context: invoked_function_arn"
|
|
14
|
-
# context.log_group_name "mimic lambda context: log_group_name"
|
|
15
|
-
# context.log_stream_name "mimic lambda context: log_stream_name"
|
|
16
|
-
# context.function_name "mimic lambda context: function_name"
|
|
17
|
-
# context.memory_limit_in_mb "mimic lambda context: memory_limit_in_mb"
|
|
18
|
-
# context.function_version "mimic lambda context: function_version"
|
|
19
|
-
# context.identity "mimic lambda context: identity"
|
|
20
|
-
# context.client_context "mimic lambda context: client_context"
|
|
21
|
-
# context.deadline_ms "mimic lambda context: deadline_ms"
|
|
22
|
-
#
|
|
23
|
-
# On AWS, example real values:
|
|
24
|
-
#
|
|
25
|
-
# context.aws_request_id "b8357b1d-15f2-4197-9c6b-d6873be5eaba"
|
|
26
|
-
# context.invoked_function_arn "arn:aws:lambda:us-west-2:112233445566:function:demo-dev-controller"
|
|
27
|
-
# context.log_group_name "/aws/lambda/demo-dev-controller"
|
|
28
|
-
# context.log_stream_name "2023/09/10/[$LATEST]18323c481c674665b25496c329daa382"
|
|
29
|
-
# context.function_name "demo-dev-controller"
|
|
30
|
-
# context.memory_limit_in_mb "1536"
|
|
31
|
-
# context.function_version "$LATEST"
|
|
32
|
-
# context.identity nil
|
|
33
|
-
# context.client_context nil
|
|
34
|
-
# context.deadline_ms 1694353587386
|
|
35
|
-
#
|
|
36
|
-
class LambdaContext
|
|
37
|
-
def initialize(*)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def method_missing(method_name, *args)
|
|
41
|
-
"mimic lambda context: #{method_name}"
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|