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,184 +0,0 @@
|
|
|
1
|
-
module Jets::Commands::Call
|
|
2
|
-
class Caller
|
|
3
|
-
include Jets::AwsServices
|
|
4
|
-
|
|
5
|
-
def initialize(provided_function_name, event, options={})
|
|
6
|
-
@options = options
|
|
7
|
-
@guess = @options[:guess].nil? ? true : @options[:guess]
|
|
8
|
-
|
|
9
|
-
@provided_function_name = provided_function_name
|
|
10
|
-
@event = event
|
|
11
|
-
|
|
12
|
-
@invocation_type = options[:invocation_type] || "RequestResponse"
|
|
13
|
-
@log_type = options[:log_type] || "Tail"
|
|
14
|
-
@qualifier = @qualifier
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def function_name
|
|
18
|
-
if @provided_function_name == 'controller'
|
|
19
|
-
"#{Jets.project_namespace}-controller"
|
|
20
|
-
elsif @provided_function_name.starts_with?(Jets.project_namespace)
|
|
21
|
-
@provided_function_name # fully qualified function name
|
|
22
|
-
elsif @guess
|
|
23
|
-
ensure_guesses_found! # possibly exits here
|
|
24
|
-
guesser.function_name # guesser adds namespace already
|
|
25
|
-
else
|
|
26
|
-
[Jets.project_namespace, @provided_function_name].join('-')
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def run
|
|
31
|
-
@options[:local] ? local_run : remote_run
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# With local mode there is no way to bypass the guesser
|
|
35
|
-
def local_run
|
|
36
|
-
puts "Local mode enabled!"
|
|
37
|
-
ensure_guesses_found! # possibly exits here
|
|
38
|
-
klass = guesser.class_name.constantize
|
|
39
|
-
# Example:
|
|
40
|
-
# PostsController.process(event, context, meth)
|
|
41
|
-
event = JSON.load(transformed_event) || {} # transformed_event is JSON text String
|
|
42
|
-
|
|
43
|
-
fun = Jets::Poly.new(klass, guesser.method_name)
|
|
44
|
-
result = fun.run(event) # check the logs for polymorphic function errors
|
|
45
|
-
# Note: even though data might not always be json, the JSON.dump does a
|
|
46
|
-
# good job of not bombing, so always calling it to simplify code.
|
|
47
|
-
|
|
48
|
-
text = Jets::Util.normalize_result(result)
|
|
49
|
-
STDOUT.puts text
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def remote_run
|
|
53
|
-
puts "Calling lambda function #{function_name} on AWS" unless @options[:mute]
|
|
54
|
-
return if @options[:noop]
|
|
55
|
-
|
|
56
|
-
options = {
|
|
57
|
-
# client_context: client_context,
|
|
58
|
-
function_name: function_name,
|
|
59
|
-
invocation_type: @invocation_type, # "Event", # RequestResponse
|
|
60
|
-
log_type: @log_type, # pretty sweet
|
|
61
|
-
payload: transformed_event, # "fileb://file-path/input.json", <= JSON
|
|
62
|
-
qualifier: @qualifier, # "1",
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
begin
|
|
66
|
-
resp = lambda_client.invoke(options)
|
|
67
|
-
rescue Aws::Lambda::Errors::ResourceNotFoundException
|
|
68
|
-
puts "The function #{function_name} was not found. Maybe check the spelling or the AWS_PROFILE?".color(:red)
|
|
69
|
-
return
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
if @options[:show_logs] || @options[:show_log]
|
|
73
|
-
puts "Last 4KB of log in the x-amz-log-result header:".color(:green)
|
|
74
|
-
puts Base64.decode64(resp.log_result)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
add_console_link_to_clipboard
|
|
78
|
-
result = resp.payload&.read # already been normalized/JSON.dump by AWS
|
|
79
|
-
unless result.nil? || @options[:mute_output]
|
|
80
|
-
STDOUT.puts result # only thing that goes to stdout
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def guesser
|
|
85
|
-
@guesser ||= Guesser.new(@provided_function_name)
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def ensure_guesses_found!
|
|
89
|
-
unless guesser.class_name and guesser.method_name
|
|
90
|
-
puts guesser.error_message
|
|
91
|
-
exit
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# @event is String because it can be the file:// notation
|
|
96
|
-
# Returns text String for the lambda.invoke payload.
|
|
97
|
-
def transformed_event
|
|
98
|
-
text = @event
|
|
99
|
-
if text && text.include?("file://")
|
|
100
|
-
text = load_event_from_file(text)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
check_valid_json!(text)
|
|
104
|
-
|
|
105
|
-
puts "Function name: #{function_name.color(:green)}" unless @options[:mute]
|
|
106
|
-
return text unless function_name.include?("_controller-")
|
|
107
|
-
return text if @options[:lambda_proxy] == false
|
|
108
|
-
|
|
109
|
-
event = JSON.load(text)
|
|
110
|
-
lambda_proxy = {"queryStringParameters" => event}
|
|
111
|
-
JSON.dump(lambda_proxy)
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
def load_event_from_file(text)
|
|
115
|
-
path = text.gsub('file://','')
|
|
116
|
-
path = "#{Jets.root}/#{path}" unless path[0..0] == '/'
|
|
117
|
-
unless File.exist?(path)
|
|
118
|
-
puts "File #{path} does not exist. Are you sure the file exists?".color(:red)
|
|
119
|
-
exit
|
|
120
|
-
end
|
|
121
|
-
text = IO.read(path)
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
# Exits with friendly error message when user provides bad just
|
|
125
|
-
def check_valid_json!(text)
|
|
126
|
-
JSON.load(text)
|
|
127
|
-
rescue JSON::ParserError => e
|
|
128
|
-
puts "Invalid json provided:\n '#{text}'"
|
|
129
|
-
puts "Exiting... Please try again and provide valid json."
|
|
130
|
-
exit 1
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
# So use can quickly paste this into their browser if they want to see the function
|
|
134
|
-
# via the Lambda console
|
|
135
|
-
def add_console_link_to_clipboard
|
|
136
|
-
return unless RUBY_PLATFORM =~ /darwin/
|
|
137
|
-
return unless system("type pbcopy > /dev/null")
|
|
138
|
-
|
|
139
|
-
# TODO: for add_console_link_to_clipboard get the region from the ~/.aws/config and AWS_PROFILE setting
|
|
140
|
-
region = Aws::S3::Client.new.config.region || ENV["AWS_REGION"] ||'us-east-1'
|
|
141
|
-
link = "https://console.aws.amazon.com/lambda/home?region=#{region}#/functions/#{function_name}?tab=configuration"
|
|
142
|
-
system("echo #{link} | pbcopy")
|
|
143
|
-
puts "Pro tip: The Lambda Console Link to the #{function_name} function has been added to your clipboard." unless @options[:mute]
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
# TODO: Hook client_context up and make sure it works. Think I've figure out how to sign client_context below.
|
|
147
|
-
# Client context must be a valid Base64-encoded JSON object
|
|
148
|
-
# Example: http://docs.aws.amazon.com/mobileanalytics/latest/ug/PutEvents.html
|
|
149
|
-
def client_context
|
|
150
|
-
context = {
|
|
151
|
-
"client" => {
|
|
152
|
-
"client_id" => "Jets",
|
|
153
|
-
"app_title" => "jets call cli",
|
|
154
|
-
"app_version_name" => Jets::VERSION,
|
|
155
|
-
},
|
|
156
|
-
"custom" => {},
|
|
157
|
-
"env" =>{
|
|
158
|
-
"platform" => RUBY_PLATFORM,
|
|
159
|
-
"platform_version" => RUBY_VERSION,
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
Base64.encode64(JSON.dump(context))
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
# For this class redirect puts to stderr so user can pipe output to tools like
|
|
166
|
-
# jq. Example:
|
|
167
|
-
# jets call posts_controller-index '{"test":1}' | jq .
|
|
168
|
-
def puts(text)
|
|
169
|
-
$stderr.puts(text)
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
def lambda_client
|
|
173
|
-
opt = {}
|
|
174
|
-
opt = opt.merge({retry_limit: @options[:retry_limit]}) if @options[:retry_limit].present?
|
|
175
|
-
opt = opt.merge({http_read_timeout: @options[:read_timeout]}) if @options[:read_timeout].present?
|
|
176
|
-
|
|
177
|
-
if opt.empty?
|
|
178
|
-
aws_lambda
|
|
179
|
-
else
|
|
180
|
-
Aws::Lambda::Client.new(opt)
|
|
181
|
-
end
|
|
182
|
-
end
|
|
183
|
-
end
|
|
184
|
-
end
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# Guesser transforms the user provided function name to the actual lambda
|
|
2
|
-
# function name.
|
|
3
|
-
#
|
|
4
|
-
# Allow for variety of different inputs to work:
|
|
5
|
-
# Simple:
|
|
6
|
-
# admin/pages_controller-index => admin-pages_controller-index
|
|
7
|
-
# admin-pages_controller-index => admin-pages_controller-index
|
|
8
|
-
#
|
|
9
|
-
# Complex, requires detecting the right class name:
|
|
10
|
-
# admin/related_pages_controller-list_all
|
|
11
|
-
# admin-related-pages-controller-list-all
|
|
12
|
-
#
|
|
13
|
-
# All still result in: admin-related_pages_controller-index
|
|
14
|
-
#
|
|
15
|
-
# The detection process follows. Given worse case:
|
|
16
|
-
# admin-related-pages-controller-list-all
|
|
17
|
-
#
|
|
18
|
-
# Know that the action comes after controller, try:
|
|
19
|
-
# AdminRelatedPagesController
|
|
20
|
-
# Admin::RelatedPagesController <= found stop guessing
|
|
21
|
-
#
|
|
22
|
-
# admin/related_pages_controller <= underscored
|
|
23
|
-
# admin/related_pages_controller-list_all <= add action back on
|
|
24
|
-
# admin-related_pages_controller-list_all <= gsub / - DONE
|
|
25
|
-
#
|
|
26
|
-
# Now we're at a point where we can start guessing
|
|
27
|
-
# function_name = detect_function_name(function_name)
|
|
28
|
-
module Jets::Commands::Call
|
|
29
|
-
class Guesser
|
|
30
|
-
delegate :class_name, :method_name, :error_message, :function_name,
|
|
31
|
-
to: :delegate_guesser
|
|
32
|
-
|
|
33
|
-
# Example of provided_function_name:
|
|
34
|
-
# admin/related_pages_controller-list_all
|
|
35
|
-
# admin-related-pages-controller-list-all
|
|
36
|
-
def initialize(provided_function_name)
|
|
37
|
-
@provided_function_name = provided_function_name
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def delegate_guesser
|
|
41
|
-
@delegate_guesser ||= if @provided_function_name =~ /[-_](controller|job|rule)/
|
|
42
|
-
AutoloadGuesser.new(@provided_function_name)
|
|
43
|
-
else
|
|
44
|
-
AnonymousGuesser.new(@provided_function_name)
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
module Jets::Commands::Clean
|
|
2
|
-
class Base
|
|
3
|
-
def initialize(options={})
|
|
4
|
-
@options = options
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
private
|
|
8
|
-
def say(message)
|
|
9
|
-
prefix = 'NOOP ' if @options[:noop]
|
|
10
|
-
puts "#{prefix}#{message}" unless @options[:mute]
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def are_you_sure?(message)
|
|
14
|
-
return true if @options[:yes]
|
|
15
|
-
|
|
16
|
-
puts "Are you sure that you want to #{message}? (y/N)"
|
|
17
|
-
yes = $stdin.gets.strip
|
|
18
|
-
unless yes =~ /^y/
|
|
19
|
-
puts "Phew that was close!"
|
|
20
|
-
exit 0
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
require 'fileutils'
|
|
2
|
-
|
|
3
|
-
module Jets::Commands::Clean
|
|
4
|
-
class Build < Base
|
|
5
|
-
def clean
|
|
6
|
-
are_you_sure?("delete /tmp/jets")
|
|
7
|
-
|
|
8
|
-
say "Removing /tmp/jets..."
|
|
9
|
-
FileUtils.rm_rf("/tmp/jets") unless @options[:noop]
|
|
10
|
-
say "Removed /tmp/jets"
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
module Jets::Command
|
|
2
|
-
class CleanCommand < Base # :nodoc:
|
|
3
|
-
desc "log", "Cleans CloudWatch log groups assocated with app"
|
|
4
|
-
long_desc Help.text("clean/log")
|
|
5
|
-
def log
|
|
6
|
-
Jets::Commands::Clean::Log.new(options).clean
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
desc "build", "Cleans jets build"
|
|
10
|
-
long_desc Help.text("clean/build")
|
|
11
|
-
def build
|
|
12
|
-
Jets::Commands::Clean::Build.new(options).clean
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# The thing that limits this implementation is that there needs to be at least
|
|
2
|
-
# one lambda function created from an internal jets function. Example:
|
|
3
|
-
#
|
|
4
|
-
# /aws/lambda/demo-dev-2-jets-preheat_job-warm
|
|
5
|
-
# /aws/lambda/demo-dev-2-jets-public_controller-show
|
|
6
|
-
#
|
|
7
|
-
# We're doing this because Jets.extra environments can create additional matching
|
|
8
|
-
# log groups and we don't want to overly-aggressively delete them.
|
|
9
|
-
#
|
|
10
|
-
# The `keep_prefixes(log_group_names)` method calcuates the log groups to keep.
|
|
11
|
-
module Jets::Commands::Clean
|
|
12
|
-
class Log < Base
|
|
13
|
-
extend Memoist
|
|
14
|
-
include Jets::AwsServices
|
|
15
|
-
|
|
16
|
-
def clean
|
|
17
|
-
are_you_sure?("delete CloudWatch logs")
|
|
18
|
-
|
|
19
|
-
say "Removing CloudWatch logs for #{prefix_guess}..."
|
|
20
|
-
log_groups.each do |g|
|
|
21
|
-
next if keep_log_group?(g.log_group_name)
|
|
22
|
-
delete_log_group(g.log_group_name) unless @options[:noop]
|
|
23
|
-
say "Removed log group: #{g.log_group_name}"
|
|
24
|
-
end
|
|
25
|
-
say "Removed CloudWatch logs for #{prefix_guess}"
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def delete_log_group(log_group_name)
|
|
29
|
-
logs.delete_log_group(log_group_name: log_group_name)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def clean_deploys
|
|
33
|
-
groups = deploy_log_groups.sort_by do |g|
|
|
34
|
-
g.log_group_name
|
|
35
|
-
end
|
|
36
|
-
# Keep the last 2 recent log groups so we can see the deleted logic
|
|
37
|
-
groups = groups[0..-3]
|
|
38
|
-
groups.each do |g|
|
|
39
|
-
logs.delete_log_group(log_group_name: g.log_group_name) unless @options[:noop]
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def deploy_log_groups
|
|
44
|
-
log_groups.select do |g|
|
|
45
|
-
!keep_log_group?(g.log_group_name) &&
|
|
46
|
-
g.log_group_name.include?('jets-base-path')
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
private
|
|
51
|
-
def prefix_guess
|
|
52
|
-
Jets::Names.parent_stack_name
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def log_groups
|
|
56
|
-
groups, next_token = [], true
|
|
57
|
-
while next_token
|
|
58
|
-
next_token = nil if next_token == true # just at start the loop
|
|
59
|
-
resp = logs.describe_log_groups(
|
|
60
|
-
log_group_name_prefix: "/aws/lambda/#{prefix_guess}-",
|
|
61
|
-
next_token: next_token,
|
|
62
|
-
)
|
|
63
|
-
groups += resp.log_groups
|
|
64
|
-
next_token = resp.next_token
|
|
65
|
-
end
|
|
66
|
-
groups
|
|
67
|
-
end
|
|
68
|
-
memoize :log_groups
|
|
69
|
-
|
|
70
|
-
def log_group_names
|
|
71
|
-
log_groups.map(&:log_group_name)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def all_prefixes(log_group_names)
|
|
75
|
-
log_prefixes(log_group_names)
|
|
76
|
-
end
|
|
77
|
-
memoize :all_prefixes
|
|
78
|
-
|
|
79
|
-
# Check for the prefixes to keep. The slightly tricky thing to watch for is
|
|
80
|
-
# for the prefix matching addiitonal log groups that belong to other
|
|
81
|
-
# JETS_EXTRA=xxx created environments.
|
|
82
|
-
#
|
|
83
|
-
# We find and store the prefixes to keep so we don't over aggressively delete
|
|
84
|
-
# log groups.
|
|
85
|
-
def keep_prefixes(log_group_names)
|
|
86
|
-
names = log_group_names.reject do |name|
|
|
87
|
-
name =~ %r{/aws/lambda/#{prefix_guess}-jets}
|
|
88
|
-
end
|
|
89
|
-
log_prefixes(names)
|
|
90
|
-
end
|
|
91
|
-
memoize :keep_prefixes
|
|
92
|
-
|
|
93
|
-
# Strips -jets.* from the full log group name to leave only the prefix behind
|
|
94
|
-
def log_prefixes(names)
|
|
95
|
-
names = names.select do |name|
|
|
96
|
-
name.match(Regexp.new("#{prefix_guess}-.*jets"))
|
|
97
|
-
end
|
|
98
|
-
names.map do |name|
|
|
99
|
-
name.sub(/-jets.*/,'')
|
|
100
|
-
end.uniq.sort
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
# Check if it is safe to delete the log group
|
|
104
|
-
def keep_log_group?(log_group_name)
|
|
105
|
-
keep_prefixes = keep_prefixes(log_group_names)
|
|
106
|
-
!!keep_prefixes.detect do |keep_prefix|
|
|
107
|
-
log_group_name =~ Regexp.new(keep_prefix)
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
end
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module Jets::Command
|
|
2
|
-
class ConfigureCommand < Base # :nodoc:
|
|
3
|
-
desc "configure [TOKEN]", "configure token and updates ~/.jets/config.yml"
|
|
4
|
-
long_desc Help.text(:configure)
|
|
5
|
-
def perform(token=nil)
|
|
6
|
-
Jets::Api::Config.instance.update_token(token)
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "irb"
|
|
4
|
-
require "irb/completion"
|
|
5
|
-
|
|
6
|
-
module Jets::Command
|
|
7
|
-
class ConsoleCommand < Base # :nodoc:
|
|
8
|
-
include EnvironmentArgument
|
|
9
|
-
|
|
10
|
-
desc "console", "REPL console with Jets environment loaded"
|
|
11
|
-
long_desc Help.text(:console)
|
|
12
|
-
def perform
|
|
13
|
-
extract_environment_option_from_argument
|
|
14
|
-
require_application_and_environment!
|
|
15
|
-
Console.new(options).run
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
class Console
|
|
20
|
-
attr_reader :environment
|
|
21
|
-
|
|
22
|
-
def initialize(environment)
|
|
23
|
-
@environment = environment
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def run
|
|
27
|
-
puts Jets::Booter.message
|
|
28
|
-
|
|
29
|
-
# Thanks: https://mutelight.org/bin-console
|
|
30
|
-
require "irb"
|
|
31
|
-
require "irb/completion"
|
|
32
|
-
|
|
33
|
-
ARGV.clear # https://stackoverflow.com/questions/33070092/irb-start-not-starting/33136762
|
|
34
|
-
IRB.start
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
end
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
## Storing Encrypted Credentials in Source Control
|
|
2
|
-
|
|
3
|
-
The Jets `credentials` commands provide access to encrypted credentials,
|
|
4
|
-
so you can safely store access tokens, database passwords, and the like
|
|
5
|
-
safely inside the app without relying on a mess of ENVs.
|
|
6
|
-
|
|
7
|
-
This also allows for atomic deploys: no need to coordinate key changes
|
|
8
|
-
to get everything working as the keys are shipped with the code.
|
|
9
|
-
|
|
10
|
-
## Setup
|
|
11
|
-
|
|
12
|
-
Applications after Jets 5 automatically have a basic credentials file generated
|
|
13
|
-
that just contains the secret_key_base used by MessageVerifiers/MessageEncryptors, like the ones
|
|
14
|
-
signing and encrypting cookies.
|
|
15
|
-
|
|
16
|
-
For applications created prior to Jets 5, we'll automatically generate a new
|
|
17
|
-
credentials file in `config/credentials.yml.enc` the first time you run `bin/jets credentials:edit`.
|
|
18
|
-
If you didn't have a master key saved in `config/master.key`, that'll be created too.
|
|
19
|
-
|
|
20
|
-
Don't lose this master key! Put it in a password manager your team can access.
|
|
21
|
-
Should you lose it no one, including you, will be able to access any encrypted
|
|
22
|
-
credentials.
|
|
23
|
-
|
|
24
|
-
Don't commit the key! Add `config/master.key` to your source control's
|
|
25
|
-
ignore file. If you use Git, Jets handles this for you.
|
|
26
|
-
|
|
27
|
-
Jets also looks for the master key in `ENV["JETS_MASTER_KEY"]`, if that's easier to manage.
|
|
28
|
-
|
|
29
|
-
You could prepend that to your server's start command like this:
|
|
30
|
-
|
|
31
|
-
JETS_MASTER_KEY="very-secret-and-secure" server.start
|
|
32
|
-
|
|
33
|
-
## Set up Git to Diff Credentials
|
|
34
|
-
|
|
35
|
-
Jets provides `bin/jets credentials:diff --enroll` to instruct Git to call
|
|
36
|
-
`bin/jets credentials:diff` when `git diff` is run on a credentials file.
|
|
37
|
-
|
|
38
|
-
Running the command enrolls the project such that all credentials files use the
|
|
39
|
-
"jets_credentials" diff driver in .gitattributes.
|
|
40
|
-
|
|
41
|
-
Additionally since Git requires the driver itself to be set up in a config file
|
|
42
|
-
that isn't tracked Jets automatically ensures it's configured when running
|
|
43
|
-
`credentials:edit`.
|
|
44
|
-
|
|
45
|
-
Otherwise each co-worker would have to run enable manually, including on each new
|
|
46
|
-
repo clone.
|
|
47
|
-
|
|
48
|
-
To disenroll from this feature, run `bin/jets credentials:diff --disenroll`.
|
|
49
|
-
|
|
50
|
-
## Editing Credentials
|
|
51
|
-
|
|
52
|
-
This will open a temporary file in `$EDITOR` with the decrypted contents to edit
|
|
53
|
-
the encrypted credentials.
|
|
54
|
-
|
|
55
|
-
When the temporary file is next saved the contents are encrypted and written to
|
|
56
|
-
`config/credentials.yml.enc` while the file itself is destroyed to prevent credentials
|
|
57
|
-
from leaking.
|
|
58
|
-
|
|
59
|
-
## Environment Specific Credentials
|
|
60
|
-
|
|
61
|
-
The `credentials` command supports passing an `--environment` option to create an
|
|
62
|
-
environment specific override. That override will take precedence over the
|
|
63
|
-
global `config/credentials.yml.enc` file when running in that environment. So:
|
|
64
|
-
|
|
65
|
-
bin/jets credentials:edit --environment development
|
|
66
|
-
|
|
67
|
-
will create `config/credentials/development.yml.enc` with the corresponding
|
|
68
|
-
encryption key in `config/credentials/development.key` if the credentials file
|
|
69
|
-
doesn't exist.
|
|
70
|
-
|
|
71
|
-
The encryption key can also be put in `ENV["JETS_MASTER_KEY"]`, which takes
|
|
72
|
-
precedence over the file encryption key.
|
|
73
|
-
|
|
74
|
-
In addition to that, the default credentials lookup paths can be overridden through
|
|
75
|
-
`config.credentials.content_path` and `config.credentials.key_path`.
|
|
76
|
-
|
|
77
|
-
## Editor wait
|
|
78
|
-
|
|
79
|
-
For editors that fork and exit immediately, it's important to pass a wait flag,
|
|
80
|
-
otherwise the credentials will be saved immediately with no chance to edit.
|
|
81
|
-
|
|
82
|
-
EDITOR="code --wait" jets credentials:edit
|
|
83
|
-
|
|
84
|
-
## Accessing in App
|
|
85
|
-
|
|
86
|
-
Let's say you have credentials like so:
|
|
87
|
-
|
|
88
|
-
❯ jets credentials:show
|
|
89
|
-
secret_key_base: somesecretvalue
|
|
90
|
-
foo: bar
|
|
91
|
-
|
|
92
|
-
You can access them in the app like so:
|
|
93
|
-
|
|
94
|
-
❯ jets console
|
|
95
|
-
> Jets.application.credentials.secret_key_base
|
|
96
|
-
=> "somesecretvalue"
|
|
97
|
-
> Jets.application.credentials.foo
|
|
98
|
-
=> "bar"
|
|
99
|
-
> Jets.application.credentials.does_not_exist
|
|
100
|
-
=> nil
|
|
101
|
-
|
|
102
|
-
Remember, when you deploy this to Lambda you should set the `JETS_MASTER_KEY`. You set it with [Env Files](https://rubyonjets.com/docs/env-files/). Otherwise the `Jets.application.credentials.xx` values will return `nil`.
|
|
103
|
-
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Jets::Command::CredentialsCommand::Diffing # :nodoc:
|
|
4
|
-
GITATTRIBUTES_ENTRY = <<~END
|
|
5
|
-
config/credentials/*.yml.enc diff=jets_credentials
|
|
6
|
-
config/credentials.yml.enc diff=jets_credentials
|
|
7
|
-
END
|
|
8
|
-
|
|
9
|
-
def enroll_project_in_credentials_diffing
|
|
10
|
-
if enrolled_in_credentials_diffing?
|
|
11
|
-
say "Project is already enrolled in credentials file diffing."
|
|
12
|
-
else
|
|
13
|
-
gitattributes.write(GITATTRIBUTES_ENTRY, mode: "a")
|
|
14
|
-
|
|
15
|
-
say "Enrolled project in credentials file diffing!"
|
|
16
|
-
say "Jets ensures the jets_credentials diff driver is set when running `credentials:edit`. See `credentials:help` for more."
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def disenroll_project_from_credentials_diffing
|
|
21
|
-
if enrolled_in_credentials_diffing?
|
|
22
|
-
gitattributes.write(gitattributes.read.gsub(GITATTRIBUTES_ENTRY, ""))
|
|
23
|
-
gitattributes.delete if gitattributes.empty?
|
|
24
|
-
|
|
25
|
-
say "Disenrolled project from credentials file diffing!"
|
|
26
|
-
else
|
|
27
|
-
say "Project is not enrolled in credentials file diffing."
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def ensure_diffing_driver_is_configured
|
|
32
|
-
configure_diffing_driver if enrolled_in_credentials_diffing? && !diffing_driver_configured?
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
private
|
|
36
|
-
def enrolled_in_credentials_diffing?
|
|
37
|
-
gitattributes.file? && gitattributes.read.include?(GITATTRIBUTES_ENTRY)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def diffing_driver_configured?
|
|
41
|
-
system "git config --get diff.jets_credentials.textconv", out: File::NULL
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def configure_diffing_driver
|
|
45
|
-
system "git config diff.jets_credentials.textconv 'bin/jets credentials:diff'"
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def gitattributes
|
|
49
|
-
Jets.root.join(".gitattributes")
|
|
50
|
-
end
|
|
51
|
-
end
|