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,109 +0,0 @@
|
|
|
1
|
-
begin
|
|
2
|
-
require 'bundler/setup'
|
|
3
|
-
# When require bundler/setup fails, AWS Lambda won't be able to load base_path_mapping
|
|
4
|
-
# So we'll require base_path_mapping within begin/rescue block so that it does not also
|
|
5
|
-
# fail the entire lambda function.
|
|
6
|
-
# require 'jets/internal/app/functions/jets/base_path_mapping'
|
|
7
|
-
require_relative "base_path_mapping"
|
|
8
|
-
rescue Exception => e
|
|
9
|
-
# Note: rescue LoadError is not enough in AWS Lambda environment
|
|
10
|
-
# Actual exceptions:
|
|
11
|
-
# require bundler/setup: Ruby exception "Bundler::GemNotFound"
|
|
12
|
-
# require base_path_mappnig: AWS Lambda reported error "errorType": "Init<LoadError>"
|
|
13
|
-
# Will use a generic rescue Exception though in case error changes in the future.
|
|
14
|
-
puts "WARN: #{e.class} #{e.message}"
|
|
15
|
-
puts <<~EOL
|
|
16
|
-
Could not require bundler/setup.
|
|
17
|
-
This can happen for weird timeout missing error. Example:
|
|
18
|
-
|
|
19
|
-
Could not find timeout-0.3.2 in locally installed gems
|
|
20
|
-
|
|
21
|
-
Happens when the gem command is out-of-date on old versions of ruby 2.7.
|
|
22
|
-
See: https://community.boltops.com/t/could-not-find-timeout-0-3-1-in-any-of-the-sources/996
|
|
23
|
-
EOL
|
|
24
|
-
end
|
|
25
|
-
require 'cfn_response'
|
|
26
|
-
|
|
27
|
-
STAGE_NAME = "<%= @stage_name %>"
|
|
28
|
-
|
|
29
|
-
def lambda_handler(event:, context:)
|
|
30
|
-
cfn = CfnResponse.new(event, context)
|
|
31
|
-
cfn.response do
|
|
32
|
-
# Super edge case: mapping is nil when require bundler/setup fails
|
|
33
|
-
begin
|
|
34
|
-
mapping = BasePathMapping.new(event, STAGE_NAME)
|
|
35
|
-
rescue NameError => e
|
|
36
|
-
puts "ERROR: #{e.class} #{e.message}"
|
|
37
|
-
puts error_message
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# This is the "second pass" of CloudFormation when it tries to delete the BasePathMapping during rollback
|
|
41
|
-
if mapping.nil? && event['RequestType'] == "Delete"
|
|
42
|
-
cfn.success # so that CloudFormation can continue the delete process from a rollback
|
|
43
|
-
delay
|
|
44
|
-
return
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# Normal behavior when mapping is not nil when bundler/setup loads successfully
|
|
48
|
-
case event['RequestType']
|
|
49
|
-
when "Create", "Update"
|
|
50
|
-
mapping.update
|
|
51
|
-
when "Delete"
|
|
52
|
-
mapping.delete(true) if mapping.should_delete?
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def delay
|
|
58
|
-
puts "Delaying 60 seconds to allow user some time to see lambda function logs."
|
|
59
|
-
60.times do
|
|
60
|
-
puts Time.now
|
|
61
|
-
sleep 1
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def error_message
|
|
66
|
-
<<~EOL
|
|
67
|
-
This is ultimately the result of require bundler/setup failing to load.
|
|
68
|
-
On the CloudFormation first pass, the BasePathMapping fails to CREATE.
|
|
69
|
-
CloudFormation does a rollback and tries to delete the BasePathMapping.
|
|
70
|
-
|
|
71
|
-
Jets will send a success response to CloudFormation so it can continue and delete
|
|
72
|
-
BasePathMapping on the rollback. Otherwise, CloudFormation ends up in the terminal
|
|
73
|
-
UPDATE_FAILED state and the CloudFormation console provides 3 options:
|
|
74
|
-
|
|
75
|
-
1) retry 2) update 3) rollback.
|
|
76
|
-
|
|
77
|
-
The only option that seems to work is rollback to get it out of UPDATE_FAILED to
|
|
78
|
-
UPDATE_ROLLBACK_COMPLETE. But then, if we `jets deploy` again without fixing the
|
|
79
|
-
require bundler/setup issue, we'll end back up in the UPDATE_FAILED state.
|
|
80
|
-
|
|
81
|
-
Will handle this error so we can continue the stack because we do not want it to fail
|
|
82
|
-
and never be able to send the CfnResponse. Then we have to wait hours for a CloudFormation timeout.
|
|
83
|
-
Sometimes deleting the APP-dev-ApiDeployment20230518230443-EXAMPLEY8YQP0 stack
|
|
84
|
-
allows the cloudformation stacks to continue, but usually, it'll only just slightly speed up the rollback.
|
|
85
|
-
|
|
86
|
-
Some examples of actual rollback times:
|
|
87
|
-
|
|
88
|
-
When left alone, the rollback takes about 2.5 hours.
|
|
89
|
-
|
|
90
|
-
2023-05-19 05:39:25 User Initiated
|
|
91
|
-
2023-05-19 08:01:48 UPDATE_ROLLBACK_COMPLETE
|
|
92
|
-
|
|
93
|
-
When deleting the APP-dev-ApiDeployment20230518230443-EXAMPLEY8YQP0 stack, it takes about 1.5 hours.
|
|
94
|
-
|
|
95
|
-
2023-05-19 06:25:41 User Initiated
|
|
96
|
-
2023-05-19 07:47:03 UPDATE_ROLLBACK_COMPLETE
|
|
97
|
-
|
|
98
|
-
Rescuing and handling the error here allows the CloudFormation stack to continue and finish the rollback process.
|
|
99
|
-
It takes the rollback time down to about 3 minutes. Example:
|
|
100
|
-
|
|
101
|
-
2023-05-19 16:34:19 User Initiated
|
|
102
|
-
2023-05-19 16:37:34 UPDATE_ROLLBACK_COMPLETE
|
|
103
|
-
|
|
104
|
-
Note: The first cloudformation CREATE pass sends FAILED Status to CloudFormation,
|
|
105
|
-
and the second cloudformation DELETE pass sends SUCCESS Status to CloudFormation.
|
|
106
|
-
|
|
107
|
-
Related: https://community.boltops.com/t/could-not-find-timeout-0-3-1-in-any-of-the-sources/996
|
|
108
|
-
EOL
|
|
109
|
-
end
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
require 'aws-sdk-apigateway'
|
|
2
|
-
require 'aws-sdk-cloudformation'
|
|
3
|
-
|
|
4
|
-
class BasePathMapping
|
|
5
|
-
def initialize(event, stage_name)
|
|
6
|
-
@event, @stage_name = event, stage_name
|
|
7
|
-
aws_config_update!
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# Override the AWS retry settings. The aws-sdk-core has expondential backup with this formula:
|
|
11
|
-
#
|
|
12
|
-
# 2 ** c.retries * c.config.retry_base_delay
|
|
13
|
-
#
|
|
14
|
-
# So the max delay will be 2 ** 7 * 0.6 = 76.8s
|
|
15
|
-
#
|
|
16
|
-
# Useful links:
|
|
17
|
-
#
|
|
18
|
-
# https://github.com/aws/aws-sdk-ruby/blob/master/gems/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb
|
|
19
|
-
# https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html
|
|
20
|
-
#
|
|
21
|
-
def aws_config_update!
|
|
22
|
-
Aws.config.update(
|
|
23
|
-
retry_limit: 7, # default: 3
|
|
24
|
-
retry_base_delay: 0.6, # default: 0.3
|
|
25
|
-
)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# Cannot use update_base_path_mapping to update the base_mapping because it doesnt
|
|
29
|
-
# allow us to change the rest_api_id. So we delete and create.
|
|
30
|
-
def update
|
|
31
|
-
puts "BasePathMapping update"
|
|
32
|
-
if rest_api_changed?
|
|
33
|
-
delete(true)
|
|
34
|
-
create
|
|
35
|
-
else
|
|
36
|
-
puts "BasePathMapping update: rest_api_id #{rest_api_id} did not change. Skipping."
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
puts "BasePathMapping update complete"
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def rest_api_changed?
|
|
43
|
-
puts "BasePathMapping checking if rest_api_id changed"
|
|
44
|
-
mapping = current_base_path_mapping
|
|
45
|
-
return true unless mapping
|
|
46
|
-
mapping.rest_api_id != rest_api_id
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def current_base_path_mapping
|
|
50
|
-
resp = apigateway.get_base_path_mapping(base_path: "(none)", domain_name: domain_name)
|
|
51
|
-
rescue Aws::APIGateway::Errors::NotFoundException
|
|
52
|
-
return nil
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Dont delete the newly created base path mapping unless this is an operation
|
|
56
|
-
# where we're fully deleting the stack
|
|
57
|
-
def should_delete?
|
|
58
|
-
deleting_parent?
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def delete(fail_silently=false)
|
|
62
|
-
puts "BasePathMapping delete"
|
|
63
|
-
options = {
|
|
64
|
-
domain_name: domain_name, # required
|
|
65
|
-
base_path: base_path.empty? ? '(none)' : base_path,
|
|
66
|
-
}
|
|
67
|
-
puts "BasePathMapping delete options #{options.inspect}"
|
|
68
|
-
apigateway.delete_base_path_mapping(options)
|
|
69
|
-
wait_for_delete
|
|
70
|
-
puts "BasePathMapping delete complete"
|
|
71
|
-
# https://github.com/tongueroo/jets/issues/255
|
|
72
|
-
# Used to return: Aws::APIGateway::Errors::NotFoundException
|
|
73
|
-
# Now returns: Aws::APIGateway::Errors::InternalFailure
|
|
74
|
-
# So we'll use a more generic error
|
|
75
|
-
rescue Aws::APIGateway::Errors::ServiceError => e
|
|
76
|
-
raise(e) unless fail_silently
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# Wait for deletion to complete
|
|
80
|
-
# Otherwise, CloudFormation continues too fast during a `jets delete`
|
|
81
|
-
# and the initially fails deletion. CloudFormaton then retries until it's successfully.
|
|
82
|
-
# The stack ultimately finishes deleting successfully but the error messages
|
|
83
|
-
# are confusing to the user.
|
|
84
|
-
def wait_for_delete
|
|
85
|
-
loop do
|
|
86
|
-
resp = apigateway.get_base_path_mapping(
|
|
87
|
-
domain_name: domain_name,
|
|
88
|
-
base_path: base_path.empty? ? '(none)' : base_path,
|
|
89
|
-
)
|
|
90
|
-
break if resp.nil? || resp.empty?
|
|
91
|
-
sleep(5)
|
|
92
|
-
end
|
|
93
|
-
rescue Aws::APIGateway::Errors::NotFoundException
|
|
94
|
-
nil
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def create
|
|
98
|
-
puts "BasePathMapping create"
|
|
99
|
-
options = {
|
|
100
|
-
domain_name: domain_name, # required
|
|
101
|
-
base_path: base_path,
|
|
102
|
-
rest_api_id: rest_api_id, # required
|
|
103
|
-
stage: @stage_name,
|
|
104
|
-
}
|
|
105
|
-
puts "BasePathMapping create options #{options.inspect}"
|
|
106
|
-
apigateway.create_base_path_mapping(options)
|
|
107
|
-
puts "BasePathMapping create complete"
|
|
108
|
-
rescue Aws::APIGateway::Errors::ServiceError => e
|
|
109
|
-
puts "ERROR: #{e.class}: #{e.message}"
|
|
110
|
-
puts "BasePathMapping create failed"
|
|
111
|
-
if e.message.include?("Invalid domain name identifier specified")
|
|
112
|
-
puts <<~EOL
|
|
113
|
-
This super edge case error seems to happen when the cloudformation stack does a rollback
|
|
114
|
-
because the BasePathMapping custom resource fails. This has happened with a strange combination of
|
|
115
|
-
ruby 2.7 and the timeout gem not being picked up in the AWS Lambda runtime environment
|
|
116
|
-
Specifically, when jets deploy was used with a rubygems install that is out-of-date.
|
|
117
|
-
See: https://community.boltops.com/t/could-not-find-timeout-0-3-1-in-any-of-the-sources/996
|
|
118
|
-
|
|
119
|
-
The new base path mapping is not created correctly and the old base path mapping is not properly deleted.
|
|
120
|
-
The old ghost base mapping interferes with the new base path mapping.
|
|
121
|
-
The workaround solution seems to require removing all the config.domain settings and deploying again. Example:
|
|
122
|
-
|
|
123
|
-
config/application.rb
|
|
124
|
-
|
|
125
|
-
config.domain.cert_arn = "arn:aws:acm:us-west-2:111111111111:certificate/EXAMPLE1-a3de-4fe7-b72e-4cc153c5303e"
|
|
126
|
-
config.domain.hosted_zone_name = "example.com"
|
|
127
|
-
|
|
128
|
-
Comment out those settings, deploy, then uncomment and deploy again.
|
|
129
|
-
If there's a better workaround, please let us know.
|
|
130
|
-
EOL
|
|
131
|
-
end
|
|
132
|
-
raise(e)
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def mapping_stack
|
|
136
|
-
@mapping_stack ||= cfn.describe_stacks(stack_name: @event['StackId']).stacks.first
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def rest_api_id
|
|
140
|
-
@rest_api_id ||= parameter_value('RestApi')
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
def domain_name
|
|
144
|
-
@domain_name ||= parameter_value('DomainName')
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
def base_path
|
|
148
|
-
@base_path ||= parameter_value('BasePath') || ''
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
def parameter_value(parameter_key)
|
|
152
|
-
puts "mapping_stack #{mapping_stack.inspect}"
|
|
153
|
-
param = mapping_stack[:parameters].find { |p| p.parameter_key == parameter_key }
|
|
154
|
-
param&.parameter_value # possible for this to be nil when removing the config: IE: config.domain.name = nil
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
def deleting_parent?
|
|
158
|
-
stack = cfn.describe_stacks(stack_name: parent_stack_name).stacks.first
|
|
159
|
-
stack.stack_status == 'DELETE_IN_PROGRESS'
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
def parent_stack_name
|
|
163
|
-
mapping_stack[:root_id]
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
def apigateway
|
|
167
|
-
@apigateway ||= Aws::APIGateway::Client.new(aws_options)
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
def cfn
|
|
171
|
-
@cfn ||= Aws::CloudFormation::Client.new(aws_options)
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
def aws_options
|
|
175
|
-
options = {
|
|
176
|
-
retry_limit: 7, # default: 3
|
|
177
|
-
retry_base_delay: 0.6, # default: 0.3
|
|
178
|
-
}
|
|
179
|
-
options.merge!(
|
|
180
|
-
log_level: :debug,
|
|
181
|
-
logger: Logger.new($stdout),
|
|
182
|
-
) if ENV['JETS_DEBUG_AWS_SDK']
|
|
183
|
-
options
|
|
184
|
-
end
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
if __FILE__ == $0
|
|
188
|
-
event = JSON.load(File.read(ARGV[0]))
|
|
189
|
-
stage_name = 'dev' # change to test
|
|
190
|
-
BasePathMapping.new(event, stage_name).update
|
|
191
|
-
end
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
class Jets::PreheatJob < Jets::Job::Base
|
|
2
|
-
include Jets::AwsServices
|
|
3
|
-
|
|
4
|
-
class_timeout 30
|
|
5
|
-
class_memory 1024
|
|
6
|
-
class_iam_policy([
|
|
7
|
-
{
|
|
8
|
-
Sid: "Statement1",
|
|
9
|
-
Action: ["logs:*"],
|
|
10
|
-
Effect: "Allow",
|
|
11
|
-
Resource: [{
|
|
12
|
-
"Fn::Sub": "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/${JetsPreheatJobWarmLambdaFunction}"
|
|
13
|
-
}]
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
Sid: "Statement2",
|
|
17
|
-
Action: ["lambda:InvokeFunction", "lambda:InvokeAsync"],
|
|
18
|
-
Effect: "Allow",
|
|
19
|
-
Resource: [{
|
|
20
|
-
"Fn::Sub": "arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:#{Jets.project_namespace}-*"
|
|
21
|
-
}]
|
|
22
|
-
}
|
|
23
|
-
])
|
|
24
|
-
|
|
25
|
-
rate(Jets.config.prewarm.rate) if Jets.config.prewarm.enable
|
|
26
|
-
def warm
|
|
27
|
-
options = call_options(event[:quiet])
|
|
28
|
-
Jets::Preheat.warm_all(options)
|
|
29
|
-
"Finished prewarming your application."
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
class << self
|
|
33
|
-
# Can use this to prewarm post deploy
|
|
34
|
-
def prewarm!
|
|
35
|
-
perform_now(:warm, quiet: true)
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
private
|
|
40
|
-
|
|
41
|
-
# Usually: jets-preheat_job-warm unless JETS_RESET=1, in that case need to lookup the function name
|
|
42
|
-
def warm_function_name
|
|
43
|
-
# Return early to avoid lookup call normally
|
|
44
|
-
return "jets-preheat_job-warm" unless ENV["JETS_RESET"] == "1"
|
|
45
|
-
|
|
46
|
-
parent_stack = cfn.describe_stack_resources(stack_name: Jets::Names.parent_stack_name)
|
|
47
|
-
preheat_stack = parent_stack.stack_resources.find do |resource|
|
|
48
|
-
resource.logical_resource_id =~ /JetsPreheatJob/
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
resp = cfn.describe_stack_resources(stack_name: preheat_stack.physical_resource_id)
|
|
52
|
-
resources = resp.stack_resources
|
|
53
|
-
warm_function = resources.find do |resource|
|
|
54
|
-
resource.logical_resource_id =~ /WarmLambdaFunction/
|
|
55
|
-
end
|
|
56
|
-
warm_function.physical_resource_id # IE: jets-preheat_job-warm
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def call_options(quiet)
|
|
60
|
-
options = {}
|
|
61
|
-
options.merge!(mute: true, mute_output: true) if quiet
|
|
62
|
-
options
|
|
63
|
-
end
|
|
64
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
require 'bundler/setup'
|
|
2
|
-
require 'active_support/core_ext/hash'
|
|
3
|
-
require 'cfn_response'
|
|
4
|
-
|
|
5
|
-
def lambda_handler(event:, context:)
|
|
6
|
-
cfn = CfnResponse.new(event, context)
|
|
7
|
-
cfn.response do
|
|
8
|
-
case event['RequestType']
|
|
9
|
-
when "Create", "Update"
|
|
10
|
-
properties = event["ResourceProperties"].dup
|
|
11
|
-
# After deleting ServiceToken, the rest of the values are the bucket configuration properties.
|
|
12
|
-
properties.delete("ServiceToken")
|
|
13
|
-
configurator = BucketConfigurator.new
|
|
14
|
-
configurator.put(properties)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
########################################################
|
|
20
|
-
require "aws-sdk-s3"
|
|
21
|
-
|
|
22
|
-
class BucketConfigurator
|
|
23
|
-
def put(props={})
|
|
24
|
-
# all props including bucket gets passed from the Custom::S3BucketConfiguration resource
|
|
25
|
-
props = props.deep_transform_keys { |k| k.to_s.underscore.to_sym }
|
|
26
|
-
puts "props: #{JSON.dump(props)}"
|
|
27
|
-
s3.put_bucket_notification_configuration(props)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def s3
|
|
31
|
-
@s3 ||= Aws::S3::Client.new
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<%= @info.html_safe %>
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html><head>
|
|
3
|
-
<title><%= @page_title %></title>
|
|
4
|
-
<meta name="viewport" content="width=device-width" />
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
html, body, iframe {
|
|
7
|
-
height: 100%;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
body {
|
|
11
|
-
margin: 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
header {
|
|
15
|
-
width: 100%;
|
|
16
|
-
padding: 10px 0 0 0;
|
|
17
|
-
margin: 0;
|
|
18
|
-
background: white;
|
|
19
|
-
font: 12px "Lucida Grande", sans-serif;
|
|
20
|
-
border-bottom: 1px solid #dedede;
|
|
21
|
-
overflow: hidden;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
dl {
|
|
25
|
-
margin: 0 0 10px 0;
|
|
26
|
-
padding: 0;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
dt {
|
|
30
|
-
width: 80px;
|
|
31
|
-
padding: 1px;
|
|
32
|
-
float: left;
|
|
33
|
-
clear: left;
|
|
34
|
-
text-align: right;
|
|
35
|
-
color: #7f7f7f;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
dd {
|
|
39
|
-
margin-left: 90px; /* 80px + 10px */
|
|
40
|
-
padding: 1px;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
dd:empty:before {
|
|
44
|
-
content: "\00a0"; //
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
iframe {
|
|
48
|
-
border: 0;
|
|
49
|
-
width: 100%;
|
|
50
|
-
}
|
|
51
|
-
</style>
|
|
52
|
-
</head>
|
|
53
|
-
|
|
54
|
-
<body>
|
|
55
|
-
<header>
|
|
56
|
-
<dl>
|
|
57
|
-
<% if @email.respond_to?(:smtp_envelope_from) && Array(@email.from) != Array(@email.smtp_envelope_from) %>
|
|
58
|
-
<dt>SMTP-From:</dt>
|
|
59
|
-
<dd id="smtp_from"><%= @email.smtp_envelope_from %></dd>
|
|
60
|
-
<% end %>
|
|
61
|
-
|
|
62
|
-
<% if @email.respond_to?(:smtp_envelope_to) && @email.to != @email.smtp_envelope_to %>
|
|
63
|
-
<dt>SMTP-To:</dt>
|
|
64
|
-
<dd id="smtp_to"><%= @email.smtp_envelope_to %></dd>
|
|
65
|
-
<% end %>
|
|
66
|
-
|
|
67
|
-
<dt>From:</dt>
|
|
68
|
-
<dd id="from"><%= @email.header['from'] %></dd>
|
|
69
|
-
|
|
70
|
-
<% if @email.reply_to %>
|
|
71
|
-
<dt>Reply-To:</dt>
|
|
72
|
-
<dd id="reply_to"><%= @email.header['reply-to'] %></dd>
|
|
73
|
-
<% end %>
|
|
74
|
-
|
|
75
|
-
<dt>To:</dt>
|
|
76
|
-
<dd id="to"><%= @email.header['to'] %></dd>
|
|
77
|
-
|
|
78
|
-
<% if @email.cc %>
|
|
79
|
-
<dt>CC:</dt>
|
|
80
|
-
<dd id="cc"><%= @email.header['cc'] %></dd>
|
|
81
|
-
<% end %>
|
|
82
|
-
|
|
83
|
-
<dt>Date:</dt>
|
|
84
|
-
<dd id="date"><%= Time.current.rfc2822 %></dd>
|
|
85
|
-
|
|
86
|
-
<dt>Subject:</dt>
|
|
87
|
-
<dd><strong id="subject"><%= @email.subject %></strong></dd>
|
|
88
|
-
|
|
89
|
-
<% unless @email.attachments.nil? || @email.attachments.empty? %>
|
|
90
|
-
<dt>Attachments:</dt>
|
|
91
|
-
<dd>
|
|
92
|
-
<% @email.attachments.each do |a| %>
|
|
93
|
-
<% filename = a.respond_to?(:original_filename) ? a.original_filename : a.filename %>
|
|
94
|
-
<%= link_to filename, "data:application/octet-stream;charset=utf-8;base64,#{Base64.encode64(a.body.to_s)}", download: filename %>
|
|
95
|
-
<% end %>
|
|
96
|
-
</dd>
|
|
97
|
-
<% end %>
|
|
98
|
-
|
|
99
|
-
<dt>Format:</dt>
|
|
100
|
-
<% if @email.html_part && @email.text_part %>
|
|
101
|
-
<dd>
|
|
102
|
-
<select id="part" onchange="refreshBody(false);">
|
|
103
|
-
<option <%= request.format == Mime[:html] ? 'selected' : '' %> value="<%= part_query('text/html') %>">View as HTML email</option>
|
|
104
|
-
<option <%= request.format == Mime[:text] ? 'selected' : '' %> value="<%= part_query('text/plain') %>">View as plain-text email</option>
|
|
105
|
-
</select>
|
|
106
|
-
</dd>
|
|
107
|
-
<% elsif @part %>
|
|
108
|
-
<dd id="mime_type" data-mime-type="<%= part_query(@part.mime_type) %>"><%= @part.mime_type == 'text/html' ? 'HTML email' : 'plain-text email' %></dd>
|
|
109
|
-
<% else %>
|
|
110
|
-
<dd id="mime_type" data-mime-type=""></dd>
|
|
111
|
-
<% end %>
|
|
112
|
-
|
|
113
|
-
<% if I18n.available_locales.count > 1 %>
|
|
114
|
-
<dt>Locale:</dt>
|
|
115
|
-
<dd>
|
|
116
|
-
<select id="locale" onchange="refreshBody(true);">
|
|
117
|
-
<% I18n.available_locales.each do |locale| %>
|
|
118
|
-
<option <%= I18n.locale == locale ? 'selected' : '' %> value="<%= locale_query(locale) %>"><%= locale %></option>
|
|
119
|
-
<% end %>
|
|
120
|
-
</select>
|
|
121
|
-
</dd>
|
|
122
|
-
<% end %>
|
|
123
|
-
</dl>
|
|
124
|
-
</header>
|
|
125
|
-
|
|
126
|
-
<% if @part && @part.mime_type %>
|
|
127
|
-
<iframe name="messageBody" src="?<%= part_query(@part.mime_type) %>"></iframe>
|
|
128
|
-
<% else %>
|
|
129
|
-
<p>
|
|
130
|
-
You are trying to preview an email that does not have any content.
|
|
131
|
-
This is probably because the <em>mail</em> method has not been called in <em><%= @preview.preview_name %>#<%= @email_action %></em>.
|
|
132
|
-
</p>
|
|
133
|
-
<% end %>
|
|
134
|
-
|
|
135
|
-
<script>
|
|
136
|
-
function refreshBody(reload) {
|
|
137
|
-
var part_select = document.querySelector('select#part');
|
|
138
|
-
var locale_select = document.querySelector('select#locale');
|
|
139
|
-
var iframe = document.getElementsByName('messageBody')[0];
|
|
140
|
-
var part_param = part_select ?
|
|
141
|
-
part_select.options[part_select.selectedIndex].value :
|
|
142
|
-
document.querySelector('#mime_type').dataset.mimeType;
|
|
143
|
-
var locale_param = locale_select ? locale_select.options[locale_select.selectedIndex].value : null;
|
|
144
|
-
var fresh_location;
|
|
145
|
-
if (locale_param) {
|
|
146
|
-
fresh_location = '?' + part_param + '&' + locale_param;
|
|
147
|
-
} else {
|
|
148
|
-
fresh_location = '?' + part_param;
|
|
149
|
-
}
|
|
150
|
-
iframe.contentWindow.location = fresh_location;
|
|
151
|
-
|
|
152
|
-
var url = location.pathname.replace(/\.(txt|html)$/, '');
|
|
153
|
-
var format = /html/.test(part_param) ? '.html' : '.txt';
|
|
154
|
-
var state_to_replace = locale_param ? (url + format + '?' + locale_param) : (url + format);
|
|
155
|
-
|
|
156
|
-
if (reload) {
|
|
157
|
-
location.href = state_to_replace;
|
|
158
|
-
} else if (history.replaceState) {
|
|
159
|
-
window.history.replaceState({}, '', state_to_replace);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
</script>
|
|
163
|
-
|
|
164
|
-
</body>
|
|
165
|
-
</html>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<% @previews.each do |preview| %>
|
|
2
|
-
<h3><%= link_to preview.preview_name.titleize, url_for(controller: "jets/mailers", action: "preview", path: preview.preview_name) %></h3>
|
|
3
|
-
<ul>
|
|
4
|
-
<% preview.emails.each do |email| %>
|
|
5
|
-
<li><%= link_to email, url_for(controller: "jets/mailers", action: "preview", path: "#{preview.preview_name}/#{email}") %></li>
|
|
6
|
-
<% end %>
|
|
7
|
-
</ul>
|
|
8
|
-
<% end %>
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Ruby on Jets</title>
|
|
5
|
-
<meta charset="utf-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width">
|
|
7
|
-
<style type="text/css" media="screen" charset="utf-8">
|
|
8
|
-
body {
|
|
9
|
-
text-align: center;
|
|
10
|
-
margin: 0;
|
|
11
|
-
}
|
|
12
|
-
img {
|
|
13
|
-
max-width: 320px;
|
|
14
|
-
}
|
|
15
|
-
.container {
|
|
16
|
-
max-width: 648px;
|
|
17
|
-
}
|
|
18
|
-
@media (min-width: 768px) {
|
|
19
|
-
img {
|
|
20
|
-
max-width: none;
|
|
21
|
-
}
|
|
22
|
-
.container {
|
|
23
|
-
max-width: none;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.header {
|
|
28
|
-
padding: 20px;
|
|
29
|
-
/*background-color: #b81513;*/
|
|
30
|
-
/*color: white;*/
|
|
31
|
-
}
|
|
32
|
-
.title {
|
|
33
|
-
font-size: 1.5em;
|
|
34
|
-
}
|
|
35
|
-
@media (max-width: 500px) {
|
|
36
|
-
.title {
|
|
37
|
-
font-size: 1.3em;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
.intro {
|
|
41
|
-
text-align: left;
|
|
42
|
-
font-size: large;
|
|
43
|
-
margin: 0 auto;
|
|
44
|
-
padding: 0 20px;
|
|
45
|
-
max-width: 640px;
|
|
46
|
-
}
|
|
47
|
-
pre, code {
|
|
48
|
-
padding: 0;
|
|
49
|
-
margin: 0;
|
|
50
|
-
}
|
|
51
|
-
pre {
|
|
52
|
-
margin-left: 20px;
|
|
53
|
-
width: 99%;
|
|
54
|
-
overflow: auto;
|
|
55
|
-
}
|
|
56
|
-
@media (max-width: 500px) {
|
|
57
|
-
pre {
|
|
58
|
-
margin-left: -30px;
|
|
59
|
-
font-size: 0.8em;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
</style>
|
|
63
|
-
</head>
|
|
64
|
-
|
|
65
|
-
<body>
|
|
66
|
-
<div class="container">
|
|
67
|
-
<header class="header">
|
|
68
|
-
<img src="https://s3.amazonaws.com/jets-public/jets/images/jets.png" class="logo" alt="logo" />
|
|
69
|
-
<h1 class="title">Welcome and congrats!<br /> Jets is running.</h1>
|
|
70
|
-
</header>
|
|
71
|
-
<div class="intro">
|
|
72
|
-
<p>
|
|
73
|
-
To get started:
|
|
74
|
-
</p>
|
|
75
|
-
<div class="code"><pre><code>
|
|
76
|
-
$ jets generate scaffold post title:string
|
|
77
|
-
$ jets db:create db:migrate
|
|
78
|
-
$ jets server
|
|
79
|
-
$ open http://localhost:8888/posts
|
|
80
|
-
$ jets help
|
|
81
|
-
</code></pre></div>
|
|
82
|
-
<p>Docs on: <a href="http://rubyonjets.com">rubyonjets.com</a></p>
|
|
83
|
-
<p>CLI: <a href="http://rubyonjets.com/reference">Jets CLI reference</a></p>
|
|
84
|
-
<p>Jets Info: <%= link_to "Properties", controller: "jets/info", action: "properties" %></p>
|
|
85
|
-
<p>Jets Info: <%= link_to "Routes", controller: "jets/info", action: "routes" %></p>
|
|
86
|
-
</div>
|
|
87
|
-
<p class="version">
|
|
88
|
-
<ul>
|
|
89
|
-
<li><strong>Jets version:</strong> <%= Jets.version %></li>
|
|
90
|
-
<li><strong>Ruby version:</strong> <%= RUBY_DESCRIPTION %></li>
|
|
91
|
-
</ul>
|
|
92
|
-
</p>
|
|
93
|
-
</div>
|
|
94
|
-
</body>
|
|
95
|
-
</html>
|