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.
Files changed (769) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -19
  3. data/Gemfile +4 -0
  4. data/README.md +19 -165
  5. data/Rakefile +3 -3
  6. data/exe/jets +2 -1
  7. data/jets.gemspec +15 -22
  8. data/lib/jets/api/agree.rb +62 -0
  9. data/lib/jets/api/base.rb +8 -0
  10. data/lib/jets/api/client.rb +246 -0
  11. data/lib/jets/api/config.rb +73 -0
  12. data/lib/jets/api/error.rb +70 -0
  13. data/lib/jets/api/ping.rb +9 -0
  14. data/lib/jets/api/project.rb +9 -0
  15. data/lib/jets/api/release.rb +17 -0
  16. data/lib/jets/api/response.rb +27 -0
  17. data/lib/jets/api/sig.rb +13 -0
  18. data/lib/jets/api/stack.rb +14 -0
  19. data/lib/jets/api.rb +17 -0
  20. data/lib/jets/autoloaders/gem.rb +47 -58
  21. data/lib/jets/autoloaders/main.rb +64 -0
  22. data/lib/jets/autoloaders.rb +14 -43
  23. data/lib/jets/aws_services/aws_helpers.rb +17 -0
  24. data/lib/jets/{aws_info.rb → aws_services/aws_info.rb} +24 -17
  25. data/lib/jets/aws_services/global_memoist.rb +9 -4
  26. data/lib/jets/aws_services/s3_bucket.rb +8 -10
  27. data/lib/jets/aws_services/stack_status.rb +5 -31
  28. data/lib/jets/aws_services.rb +36 -17
  29. data/lib/jets/bundle.rb +9 -7
  30. data/lib/jets/cfn/base.rb +16 -5
  31. data/lib/jets/cfn/bootstrap.rb +13 -0
  32. data/lib/jets/cfn/builder/interface.rb +22 -31
  33. data/lib/jets/cfn/builder/parent/genesis.rb +84 -0
  34. data/lib/jets/cfn/builder/post_process.rb +3 -3
  35. data/lib/jets/cfn/delete.rb +17 -0
  36. data/lib/jets/cfn/deploy.rb +151 -0
  37. data/lib/jets/cfn/iam/managed_policy.rb +21 -0
  38. data/lib/jets/cfn/iam/policy.rb +121 -0
  39. data/lib/jets/cfn/resource/associated.rb +1 -1
  40. data/lib/jets/cfn/resource/codebuild/fleet.rb +48 -0
  41. data/lib/jets/cfn/resource/codebuild/iam_role.rb +63 -0
  42. data/lib/jets/cfn/resource/codebuild/project/base.rb +4 -0
  43. data/lib/jets/cfn/resource/codebuild/project/ec2.rb +125 -0
  44. data/lib/jets/cfn/resource/codebuild/project/env.rb +55 -0
  45. data/lib/jets/cfn/resource/codebuild/project/format_env.rb +35 -0
  46. data/lib/jets/cfn/resource/codebuild/project/lambda.rb +15 -0
  47. data/lib/jets/cfn/resource/replacer.rb +5 -5
  48. data/lib/jets/cfn/resource/s3/bucket.rb +3 -3
  49. data/lib/jets/cfn/resource/s3/jets_bucket.rb +9 -18
  50. data/lib/jets/cfn/resource/standardizer.rb +11 -9
  51. data/lib/jets/cfn/rollback.rb +8 -0
  52. data/lib/jets/cfn/stack/deployable.rb +16 -0
  53. data/lib/jets/cfn/stack/rollback.rb +59 -0
  54. data/lib/jets/cfn/stack/template.rb +47 -0
  55. data/lib/jets/cfn/stack/yamler.rb +53 -0
  56. data/lib/jets/cfn/stack.rb +24 -0
  57. data/lib/jets/cfn/status.rb +41 -6
  58. data/lib/jets/cfn/teardown/bucket.rb +79 -0
  59. data/lib/jets/cfn/teardown.rb +20 -0
  60. data/lib/jets/cli/base.rb +46 -0
  61. data/lib/jets/cli/bootstrap.rb +17 -0
  62. data/lib/jets/cli/build.rb +8 -0
  63. data/lib/jets/cli/call.rb +133 -0
  64. data/lib/jets/cli/ci/base.rb +54 -0
  65. data/lib/jets/cli/ci/build.rb +8 -0
  66. data/lib/jets/cli/ci/delete.rb +25 -0
  67. data/lib/jets/cli/ci/deploy.rb +17 -0
  68. data/lib/jets/cli/ci/info.rb +40 -0
  69. data/lib/jets/cli/ci/init.rb +97 -0
  70. data/lib/jets/cli/ci/logs.rb +10 -0
  71. data/lib/jets/cli/ci/start.rb +121 -0
  72. data/lib/jets/cli/ci/status.rb +29 -0
  73. data/lib/jets/cli/ci/stop.rb +24 -0
  74. data/lib/jets/cli/ci/tailer.rb +17 -0
  75. data/lib/jets/cli/ci/templates/ci.rb.tt +19 -0
  76. data/lib/jets/cli/ci.rb +55 -0
  77. data/lib/jets/cli/clean.rb +10 -0
  78. data/lib/jets/cli/concurrency/base.rb +17 -0
  79. data/lib/jets/cli/concurrency/get.rb +37 -0
  80. data/lib/jets/cli/concurrency/info.rb +86 -0
  81. data/lib/jets/cli/concurrency/set.rb +31 -0
  82. data/lib/jets/cli/concurrency/unset.rb +21 -0
  83. data/lib/jets/cli/concurrency.rb +33 -0
  84. data/lib/jets/cli/curl/adapter/base.rb +8 -0
  85. data/lib/jets/cli/curl/adapter/cookies/jar.rb +28 -0
  86. data/lib/jets/cli/curl/adapter/cookies/parser.rb +48 -0
  87. data/lib/jets/cli/curl/adapter/lambda.rb +142 -0
  88. data/lib/jets/cli/curl/request.rb +62 -0
  89. data/lib/jets/cli/curl.rb +9 -0
  90. data/lib/jets/cli/delete.rb +23 -0
  91. data/lib/jets/cli/deploy.rb +18 -0
  92. data/lib/jets/cli/dotenv/base.rb +4 -0
  93. data/lib/jets/cli/dotenv/get.rb +14 -0
  94. data/lib/jets/cli/dotenv/list.rb +32 -0
  95. data/lib/jets/cli/dotenv/set.rb +50 -0
  96. data/lib/jets/cli/dotenv/ssm.rb +60 -0
  97. data/lib/jets/cli/dotenv/unset.rb +11 -0
  98. data/lib/jets/cli/dotenv.rb +28 -0
  99. data/lib/jets/cli/env/base.rb +13 -0
  100. data/lib/jets/cli/env/get.rb +13 -0
  101. data/lib/jets/cli/env/list.rb +19 -0
  102. data/lib/jets/cli/env/parse.rb +11 -0
  103. data/lib/jets/cli/env/set.rb +25 -0
  104. data/lib/jets/cli/env/unset.rb +17 -0
  105. data/lib/jets/cli/env.rb +29 -0
  106. data/lib/jets/cli/exec/command.rb +61 -0
  107. data/lib/jets/cli/exec/repl/history.rb +42 -0
  108. data/lib/jets/cli/exec/repl.rb +122 -0
  109. data/lib/jets/cli/exec.rb +14 -0
  110. data/lib/jets/cli/functions.rb +39 -0
  111. data/lib/jets/cli/generate/event.rb +29 -0
  112. data/lib/jets/cli/generate/templates/application_event.rb.tt +6 -0
  113. data/lib/jets/cli/generate/templates/event_types/application_event.rb +4 -0
  114. data/lib/jets/cli/generate/templates/event_types/dynamodb.rb.tt +6 -0
  115. data/lib/jets/cli/generate/templates/event_types/iot.rb.tt +6 -0
  116. data/lib/jets/{generators/job → cli/generate}/templates/event_types/kinesis.rb.tt +2 -4
  117. data/lib/jets/{generators/job → cli/generate}/templates/event_types/log.rb.tt +2 -4
  118. data/lib/jets/{generators/job → cli/generate}/templates/event_types/rule.rb.tt +2 -4
  119. data/lib/jets/cli/generate/templates/event_types/s3.rb.tt +13 -0
  120. data/lib/jets/cli/generate/templates/event_types/scheduled.rb.tt +6 -0
  121. data/lib/jets/cli/generate/templates/event_types/sns.rb.tt +8 -0
  122. data/lib/jets/cli/generate/templates/event_types/sqs.rb.tt +9 -0
  123. data/lib/jets/cli/generate.rb +6 -0
  124. data/lib/jets/cli/group/actions.rb +57 -0
  125. data/lib/jets/cli/group/base.rb +12 -0
  126. data/lib/jets/cli/group/helpers.rb +26 -0
  127. data/lib/jets/cli/help/build.md +1 -0
  128. data/lib/jets/cli/help/call.md +28 -0
  129. data/lib/jets/cli/help/curl.md +82 -0
  130. data/lib/jets/{command → cli}/help/delete.md +4 -4
  131. data/lib/jets/cli/help/deploy.md +5 -0
  132. data/lib/jets/cli/help/dotenv/get.md +4 -0
  133. data/lib/jets/cli/help/dotenv/list.md +5 -0
  134. data/lib/jets/cli/help/dotenv/set.md +25 -0
  135. data/lib/jets/cli/help/dotenv/unset.md +12 -0
  136. data/lib/jets/cli/help/exec.md +53 -0
  137. data/lib/jets/cli/help/generate/event.md +11 -0
  138. data/lib/jets/{command → cli}/help/logs.md +2 -2
  139. data/lib/jets/{command/help/releases.md → cli/help/release/history.md} +3 -3
  140. data/lib/jets/cli/help/rollback.md +5 -0
  141. data/lib/jets/cli/help/schedule/validate.md +1 -0
  142. data/lib/jets/{command → cli}/help/status.md +1 -1
  143. data/lib/jets/cli/help.rb +16 -0
  144. data/lib/jets/cli/init/detect.rb +30 -0
  145. data/lib/jets/cli/init/templates/config/jets/bootstrap.rb.tt +16 -0
  146. data/lib/jets/cli/init/templates/config/jets/deploy.rb.tt +43 -0
  147. data/lib/jets/cli/init/templates/config/jets/project.rb.tt +3 -0
  148. data/lib/jets/cli/init/templates/env/.env.tt +18 -0
  149. data/lib/jets/cli/init.rb +66 -0
  150. data/lib/jets/cli/lambda/checks.rb +22 -0
  151. data/lib/jets/cli/lambda/function.rb +104 -0
  152. data/lib/jets/cli/lambda/functions.rb +10 -0
  153. data/lib/jets/cli/lambda/lookup.rb +68 -0
  154. data/lib/jets/cli/login.rb +7 -0
  155. data/lib/jets/cli/logout.rb +7 -0
  156. data/lib/jets/cli/logs.rb +40 -0
  157. data/lib/jets/cli/maintenance/base.rb +15 -0
  158. data/lib/jets/cli/maintenance/mode.rb +44 -0
  159. data/lib/jets/cli/maintenance/web.rb +31 -0
  160. data/lib/jets/cli/maintenance/worker/base.rb +22 -0
  161. data/lib/jets/cli/maintenance/worker/restorer.rb +19 -0
  162. data/lib/jets/cli/maintenance/worker/saver.rb +15 -0
  163. data/lib/jets/cli/maintenance/worker/zeroer.rb +19 -0
  164. data/lib/jets/cli/maintenance/worker.rb +31 -0
  165. data/lib/jets/cli/maintenance.rb +32 -0
  166. data/lib/jets/cli/package/dockerfile.rb +9 -0
  167. data/lib/jets/cli/package.rb +8 -0
  168. data/lib/jets/cli/ping.rb +10 -0
  169. data/lib/jets/cli/projects.rb +22 -0
  170. data/lib/jets/cli/release/base.rb +4 -0
  171. data/lib/jets/cli/release/history.rb +68 -0
  172. data/lib/jets/cli/release/info.rb +59 -0
  173. data/lib/jets/cli/release/rollback.rb +15 -0
  174. data/lib/jets/cli/release.rb +23 -0
  175. data/lib/jets/cli/schedule/base.rb +5 -0
  176. data/lib/jets/cli/schedule/translate.rb +168 -0
  177. data/lib/jets/cli/schedule/validate.rb +95 -0
  178. data/lib/jets/cli/schedule.rb +15 -0
  179. data/lib/jets/cli/stacks.rb +33 -0
  180. data/lib/jets/cli/stop.rb +31 -0
  181. data/lib/jets/cli/teardown.rb +8 -0
  182. data/lib/jets/cli/tip.rb +86 -0
  183. data/lib/jets/cli/url.rb +41 -0
  184. data/lib/jets/cli/waf/base.rb +7 -0
  185. data/lib/jets/cli/waf/build.rb +8 -0
  186. data/lib/jets/cli/waf/delete.rb +17 -0
  187. data/lib/jets/cli/waf/deploy.rb +17 -0
  188. data/lib/jets/cli/waf/info.rb +128 -0
  189. data/lib/jets/cli/waf/init.rb +40 -0
  190. data/lib/jets/cli/waf/templates/waf.rb.tt +26 -0
  191. data/lib/jets/cli/waf.rb +38 -0
  192. data/lib/jets/cli.rb +180 -28
  193. data/lib/jets/code/copy/base.rb +84 -0
  194. data/lib/jets/code/copy/full.rb +9 -0
  195. data/lib/jets/code/copy/git_copy.rb +26 -0
  196. data/lib/jets/code/copy/git_inline.rb +13 -0
  197. data/lib/jets/code/copy/rsync.rb +19 -0
  198. data/lib/jets/code/dummy.rb +11 -0
  199. data/lib/jets/code/stager.rb +124 -0
  200. data/lib/jets/code/user.rb +24 -0
  201. data/lib/jets/code.rb +80 -0
  202. data/lib/jets/core/booter.rb +58 -0
  203. data/lib/jets/core/config/base.rb +17 -0
  204. data/lib/jets/core/config/bootstrap/cfn.rb +12 -0
  205. data/lib/jets/core/config/bootstrap/code.rb +16 -0
  206. data/lib/jets/core/config/bootstrap/codebuild.rb +97 -0
  207. data/lib/jets/core/config/bootstrap/s3_bucket.rb +19 -0
  208. data/lib/jets/core/config/bootstrap.rb +24 -0
  209. data/lib/jets/core/config/helpers/ssm.rb +9 -0
  210. data/lib/jets/core/config/helpers.rb +5 -0
  211. data/lib/jets/core/config/info.rb +27 -0
  212. data/lib/jets/core/config/project.rb +103 -0
  213. data/lib/jets/core.rb +26 -202
  214. data/lib/jets/core_ext/bundler.rb +6 -4
  215. data/lib/jets/core_ext.rb +0 -1
  216. data/lib/jets/dotenv/convention.rb +86 -0
  217. data/lib/jets/dotenv/ssm.rb +61 -38
  218. data/lib/jets/dotenv/var.rb +60 -0
  219. data/lib/jets/dotenv.rb +55 -50
  220. data/lib/jets/event/base.rb +55 -0
  221. data/lib/jets/event/dsl/dynamodb_event.rb +8 -0
  222. data/lib/jets/event/dsl/iot_event.rb +17 -0
  223. data/lib/jets/event/dsl/kinesis_event.rb +8 -0
  224. data/lib/jets/event/dsl/log_event.rb +8 -0
  225. data/lib/jets/event/dsl/rate_expression.rb +27 -0
  226. data/lib/jets/event/dsl/s3_event.rb +7 -0
  227. data/lib/jets/event/dsl/scheduled_event.rb +53 -0
  228. data/lib/jets/event/dsl/sns_event.rb +8 -0
  229. data/lib/jets/event/dsl/sqs_event.rb +8 -0
  230. data/lib/jets/{job → event}/dsl.rb +7 -12
  231. data/lib/jets/{job → event}/helpers/kinesis_event.rb +2 -2
  232. data/lib/jets/{job → event}/helpers/log_event.rb +5 -5
  233. data/lib/jets/event/helpers/s3_event.rb +76 -0
  234. data/lib/jets/event/helpers/sns_event.rb +16 -0
  235. data/lib/jets/event/helpers/sqs_event.rb +23 -0
  236. data/lib/jets/event/s3.rb +21 -0
  237. data/lib/jets/git/azure.rb +64 -0
  238. data/lib/jets/git/base.rb +26 -0
  239. data/lib/jets/git/bitbucket.rb +30 -0
  240. data/lib/jets/git/circleci.rb +23 -0
  241. data/lib/jets/git/codebuild.rb +49 -0
  242. data/lib/jets/git/custom.rb +32 -0
  243. data/lib/jets/git/git_cli.rb +28 -0
  244. data/lib/jets/git/github.rb +48 -0
  245. data/lib/jets/git/gitlab.rb +30 -0
  246. data/lib/jets/git/info.rb +39 -0
  247. data/lib/jets/git/local.rb +69 -0
  248. data/lib/jets/git/saved.rb +16 -0
  249. data/lib/jets/git/user.rb +33 -0
  250. data/lib/jets/git.rb +5 -0
  251. data/lib/jets/lambda/definition.rb +22 -16
  252. data/lib/jets/lambda/dsl.rb +394 -394
  253. data/lib/jets/lambda/function_constructor.rb +1 -2
  254. data/lib/jets/lambda/functions.rb +10 -25
  255. data/lib/jets/names.rb +5 -17
  256. data/lib/jets/prewarm.rb +27 -0
  257. data/lib/jets/rdoc.rb +2 -2
  258. data/lib/jets/remote/base.rb +11 -0
  259. data/lib/jets/remote/download.rb +65 -0
  260. data/lib/jets/remote/runner.rb +101 -0
  261. data/lib/jets/remote/tailer.rb +272 -0
  262. data/lib/jets/shim/adapter/alb.rb +16 -0
  263. data/lib/jets/shim/adapter/apigw.rb +37 -0
  264. data/lib/jets/shim/adapter/base.rb +16 -0
  265. data/lib/jets/shim/adapter/command.rb +21 -0
  266. data/lib/jets/shim/adapter/event.rb +27 -0
  267. data/lib/jets/shim/adapter/fallback.rb +64 -0
  268. data/lib/jets/shim/adapter/lambda.rb +35 -0
  269. data/lib/jets/shim/adapter/prewarm.rb +27 -0
  270. data/lib/jets/shim/adapter/web.rb +145 -0
  271. data/lib/jets/shim/config.rb +71 -0
  272. data/lib/jets/shim/handler.rb +60 -0
  273. data/lib/jets/shim/maintenance/maintenance.html +45 -0
  274. data/lib/jets/shim/maintenance.rb +37 -0
  275. data/lib/jets/shim/response/alb.rb +10 -0
  276. data/lib/jets/shim/response/apigw.rb +4 -0
  277. data/lib/jets/shim/response/base.rb +124 -0
  278. data/lib/jets/shim/response/lambda.rb +4 -0
  279. data/lib/jets/shim/response/web.rb +4 -0
  280. data/lib/jets/shim.rb +46 -0
  281. data/lib/jets/stack/{main/dsl → dsl/main}/base.rb +2 -23
  282. data/lib/jets/stack/dsl/main/cloudwatch.rb +6 -0
  283. data/lib/jets/stack/dsl/main/iam.rb +6 -0
  284. data/lib/jets/stack/dsl/main/kinesis.rb +6 -0
  285. data/lib/jets/stack/dsl/main/lambda.rb +39 -0
  286. data/lib/jets/stack/dsl/main/s3.rb +9 -0
  287. data/lib/jets/stack/dsl/main/sns.rb +12 -0
  288. data/lib/jets/stack/dsl/main/sqs.rb +6 -0
  289. data/lib/jets/stack/dsl/main.rb +15 -0
  290. data/lib/jets/stack/dsl/output.rb +11 -0
  291. data/lib/jets/stack/dsl/parameter.rb +11 -0
  292. data/lib/jets/stack/dsl/resource.rb +11 -0
  293. data/lib/jets/stack/dsl.rb +10 -0
  294. data/lib/jets/stack/{output/lookup.rb → outputs.rb} +7 -6
  295. data/lib/jets/stack.rb +11 -58
  296. data/lib/jets/thor/auth.rb +96 -0
  297. data/lib/jets/thor/base.rb +155 -0
  298. data/lib/jets/thor/help.rb +129 -0
  299. data/lib/jets/thor/project_check.rb +50 -0
  300. data/lib/jets/thor/shared_options.rb +31 -0
  301. data/lib/jets/thor/version_check.rb +51 -0
  302. data/lib/jets/util/call_line.rb +9 -0
  303. data/lib/jets/util/camelize.rb +1 -1
  304. data/lib/jets/util/git.rb +11 -0
  305. data/lib/jets/util/logging.rb +16 -0
  306. data/lib/jets/util/pretty.rb +23 -0
  307. data/lib/jets/util/sh.rb +38 -0
  308. data/lib/jets/util/sure.rb +25 -0
  309. data/lib/jets/util/truthy.rb +9 -0
  310. data/lib/jets/util/yamler.rb +3 -5
  311. data/lib/jets/version.rb +1 -1
  312. data/lib/jets.rb +4 -8
  313. metadata +339 -604
  314. data/.circleci/config.yml +0 -92
  315. data/.cody/README.md +0 -13
  316. data/.cody/docs/bin/build.sh +0 -7
  317. data/.cody/docs/bin/bundler_setup.sh +0 -8
  318. data/.cody/docs/bin/cli_docs.sh +0 -6
  319. data/.cody/docs/bin/git_commit.sh +0 -27
  320. data/.cody/docs/bin/git_setup.sh +0 -12
  321. data/.cody/docs/bin/subnav.sh +0 -14
  322. data/.cody/docs/buildspec.yml +0 -10
  323. data/.cody/docs/project.rb +0 -10
  324. data/Dockerfile +0 -16
  325. data/Dockerfile.base +0 -53
  326. data/Guardfile +0 -22
  327. data/Procfile +0 -2
  328. data/engines/internal/app/controllers/jets/application_controller.rb +0 -28
  329. data/engines/internal/app/controllers/jets/bare_controller.rb +0 -6
  330. data/engines/internal/app/controllers/jets/health_controller.rb +0 -55
  331. data/engines/internal/app/controllers/jets/info_controller.rb +0 -45
  332. data/engines/internal/app/controllers/jets/mailers_controller.rb +0 -95
  333. data/engines/internal/app/controllers/jets/mount_controller.rb +0 -59
  334. data/engines/internal/app/controllers/jets/public_controller.rb +0 -35
  335. data/engines/internal/app/controllers/jets/welcome_controller.rb +0 -9
  336. data/engines/internal/app/functions/jets/base_path.rb +0 -109
  337. data/engines/internal/app/functions/jets/base_path_mapping.rb +0 -191
  338. data/engines/internal/app/jobs/jets/preheat_job.rb +0 -64
  339. data/engines/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -33
  340. data/engines/internal/app/views/jets/info/properties.html.erb +0 -1
  341. data/engines/internal/app/views/jets/info/routes.html.erb +0 -10
  342. data/engines/internal/app/views/jets/mailers/email.html.erb +0 -165
  343. data/engines/internal/app/views/jets/mailers/index.html.erb +0 -8
  344. data/engines/internal/app/views/jets/mailers/mailer.html.erb +0 -6
  345. data/engines/internal/app/views/jets/welcome/index.html.erb +0 -95
  346. data/engines/internal/app/views/layouts/application.html.erb +0 -51
  347. data/engines/internal/lib/internal/actiondispatch.rb +0 -39
  348. data/engines/internal/lib/internal/actionmailer.rb +0 -51
  349. data/engines/internal/lib/internal/actionview.rb +0 -152
  350. data/engines/internal/lib/internal/activerecord.rb +0 -37
  351. data/engines/internal/lib/internal/activesupport.rb +0 -47
  352. data/engines/internal/lib/internal/engine.rb +0 -13
  353. data/engines/internal/lib/internal/i18n_engine.rb +0 -19
  354. data/engines/internal/lib/internal/jets_controller.rb +0 -46
  355. data/engines/internal/lib/internal/overrides/debug_exceptions.rb +0 -40
  356. data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +0 -62
  357. data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +0 -9
  358. data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +0 -70
  359. data/engines/internal/lib/internal/turbines/helpers.rb +0 -18
  360. data/engines/internal/lib/internal/turbines/routes_helpers.rb +0 -42
  361. data/lib/jets/app_loader.rb +0 -77
  362. data/lib/jets/application/bootstrap.rb +0 -100
  363. data/lib/jets/application/configuration/defaults.rb +0 -256
  364. data/lib/jets/application/configuration.rb +0 -494
  365. data/lib/jets/application/default_middleware_stack.rb +0 -140
  366. data/lib/jets/application/dummy_erb_compiler.rb +0 -18
  367. data/lib/jets/application/finisher.rb +0 -266
  368. data/lib/jets/application/routes_reloader.rb +0 -80
  369. data/lib/jets/application.rb +0 -556
  370. data/lib/jets/authorizer/base.rb +0 -37
  371. data/lib/jets/authorizer/dsl.rb +0 -73
  372. data/lib/jets/authorizer/helpers/iam_helper.rb +0 -49
  373. data/lib/jets/autoloaders/inflector.rb +0 -21
  374. data/lib/jets/backtrace_cleaner.rb +0 -27
  375. data/lib/jets/booter.rb +0 -78
  376. data/lib/jets/builders/code_builder.rb +0 -359
  377. data/lib/jets/builders/code_size.rb +0 -58
  378. data/lib/jets/builders/gem_replacer.rb +0 -83
  379. data/lib/jets/builders/handler_generator.rb +0 -214
  380. data/lib/jets/builders/lambda_layer.rb +0 -63
  381. data/lib/jets/builders/md5.rb +0 -60
  382. data/lib/jets/builders/md5_zip.rb +0 -61
  383. data/lib/jets/builders/purger.rb +0 -35
  384. data/lib/jets/builders/rack_packager.rb +0 -51
  385. data/lib/jets/builders/rackup_wrappers/rackup +0 -19
  386. data/lib/jets/builders/rackup_wrappers/rackup.rb +0 -7
  387. data/lib/jets/builders/ruby_packager.rb +0 -288
  388. data/lib/jets/builders/shim_vars/app.rb +0 -82
  389. data/lib/jets/builders/shim_vars/base.rb +0 -25
  390. data/lib/jets/builders/shim_vars/shared.rb +0 -37
  391. data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +0 -33
  392. data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +0 -20
  393. data/lib/jets/builders/templates/handlers/one_lambda_per_method.rb +0 -18
  394. data/lib/jets/builders/tidy.rb +0 -107
  395. data/lib/jets/builders/util.rb +0 -31
  396. data/lib/jets/cfn/builder/api/base.rb +0 -12
  397. data/lib/jets/cfn/builder/api/deployment.rb +0 -46
  398. data/lib/jets/cfn/builder/api/gateway.rb +0 -106
  399. data/lib/jets/cfn/builder/api/mapping.rb +0 -54
  400. data/lib/jets/cfn/builder/api/methods.rb +0 -72
  401. data/lib/jets/cfn/builder/api/paged.rb +0 -30
  402. data/lib/jets/cfn/builder/api/pages/base.rb +0 -105
  403. data/lib/jets/cfn/builder/api/pages/methods.rb +0 -17
  404. data/lib/jets/cfn/builder/api/pages/page.rb +0 -19
  405. data/lib/jets/cfn/builder/api/pages/resources.rb +0 -21
  406. data/lib/jets/cfn/builder/api/resources.rb +0 -40
  407. data/lib/jets/cfn/builder/authorizer.rb +0 -64
  408. data/lib/jets/cfn/builder/controller.rb +0 -28
  409. data/lib/jets/cfn/builder/function.rb +0 -9
  410. data/lib/jets/cfn/builder/job.rb +0 -10
  411. data/lib/jets/cfn/builder/nested.rb +0 -130
  412. data/lib/jets/cfn/builder/one_controller.rb +0 -53
  413. data/lib/jets/cfn/builder/parent/stagger.rb +0 -34
  414. data/lib/jets/cfn/builder/parent.rb +0 -149
  415. data/lib/jets/cfn/builder/rule.rb +0 -20
  416. data/lib/jets/cfn/builder/shared.rb +0 -15
  417. data/lib/jets/cfn/builder/util/source.rb +0 -21
  418. data/lib/jets/cfn/builder.rb +0 -230
  419. data/lib/jets/cfn/deployment.rb +0 -85
  420. data/lib/jets/cfn/download.rb +0 -39
  421. data/lib/jets/cfn/params/api/base.rb +0 -39
  422. data/lib/jets/cfn/params/api/cors.rb +0 -10
  423. data/lib/jets/cfn/params/api/methods.rb +0 -69
  424. data/lib/jets/cfn/params/api/resources.rb +0 -28
  425. data/lib/jets/cfn/params/common.rb +0 -14
  426. data/lib/jets/cfn/resource/api_gateway/authorizer.rb +0 -82
  427. data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +0 -57
  428. data/lib/jets/cfn/resource/api_gateway/base_path/mapping.rb +0 -45
  429. data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +0 -70
  430. data/lib/jets/cfn/resource/api_gateway/deployment.rb +0 -73
  431. data/lib/jets/cfn/resource/api_gateway/domain_name.rb +0 -65
  432. data/lib/jets/cfn/resource/api_gateway/method/authorization.rb +0 -41
  433. data/lib/jets/cfn/resource/api_gateway/method.rb +0 -92
  434. data/lib/jets/cfn/resource/api_gateway/resource.rb +0 -86
  435. data/lib/jets/cfn/resource/api_gateway/resource_id.rb +0 -25
  436. data/lib/jets/cfn/resource/api_gateway/rest_api/change_detection.rb +0 -10
  437. data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id/message.rb +0 -59
  438. data/lib/jets/cfn/resource/api_gateway/rest_api/logical_id.rb +0 -98
  439. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/base.rb +0 -110
  440. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/media_types.rb +0 -36
  441. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/page.rb +0 -93
  442. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/to.rb +0 -30
  443. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change/variable.rb +0 -35
  444. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +0 -27
  445. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision/variable_exception.rb +0 -7
  446. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/collision.rb +0 -121
  447. data/lib/jets/cfn/resource/api_gateway/rest_api/routes.rb +0 -7
  448. data/lib/jets/cfn/resource/api_gateway/rest_api.rb +0 -74
  449. data/lib/jets/cfn/resource/config/config_rule.rb +0 -74
  450. data/lib/jets/cfn/resource/config/managed_rule.rb +0 -15
  451. data/lib/jets/cfn/resource/events/rule.rb +0 -31
  452. data/lib/jets/cfn/resource/iam/application_role.rb +0 -27
  453. data/lib/jets/cfn/resource/iam/base_role_definition.rb +0 -56
  454. data/lib/jets/cfn/resource/iam/class_role.rb +0 -74
  455. data/lib/jets/cfn/resource/iam/function_role.rb +0 -54
  456. data/lib/jets/cfn/resource/iam/managed_policy.rb +0 -22
  457. data/lib/jets/cfn/resource/iam/policy.rb +0 -31
  458. data/lib/jets/cfn/resource/iam/policy_document.rb +0 -42
  459. data/lib/jets/cfn/resource/iot/topic_rule.rb +0 -34
  460. data/lib/jets/cfn/resource/lambda/event_source_mapping.rb +0 -31
  461. data/lib/jets/cfn/resource/lambda/function/controller.rb +0 -21
  462. data/lib/jets/cfn/resource/lambda/function/environment.rb +0 -64
  463. data/lib/jets/cfn/resource/lambda/function.rb +0 -266
  464. data/lib/jets/cfn/resource/lambda/gem_layer.rb +0 -17
  465. data/lib/jets/cfn/resource/lambda/layer_version.rb +0 -44
  466. data/lib/jets/cfn/resource/lambda/permission.rb +0 -51
  467. data/lib/jets/cfn/resource/logs/subscription_filter.rb +0 -31
  468. data/lib/jets/cfn/resource/nested/api/base.rb +0 -4
  469. data/lib/jets/cfn/resource/nested/api/deployment.rb +0 -53
  470. data/lib/jets/cfn/resource/nested/api/gateway.rb +0 -15
  471. data/lib/jets/cfn/resource/nested/api/mapping.rb +0 -33
  472. data/lib/jets/cfn/resource/nested/api/methods.rb +0 -30
  473. data/lib/jets/cfn/resource/nested/api/page.rb +0 -8
  474. data/lib/jets/cfn/resource/nested/api/resources.rb +0 -22
  475. data/lib/jets/cfn/resource/nested/app_class.rb +0 -116
  476. data/lib/jets/cfn/resource/nested/authorizer.rb +0 -34
  477. data/lib/jets/cfn/resource/nested/base.rb +0 -38
  478. data/lib/jets/cfn/resource/nested/one_controller.rb +0 -48
  479. data/lib/jets/cfn/resource/nested/shared.rb +0 -79
  480. data/lib/jets/cfn/resource/one/function.rb +0 -66
  481. data/lib/jets/cfn/resource/one/permission.rb +0 -17
  482. data/lib/jets/cfn/resource/route53/record_set.rb +0 -98
  483. data/lib/jets/cfn/resource/sns/subscription.rb +0 -29
  484. data/lib/jets/cfn/resource/sns/topic.rb +0 -35
  485. data/lib/jets/cfn/resource/sns/topic_policy.rb +0 -40
  486. data/lib/jets/cfn/resource/sqs/queue.rb +0 -21
  487. data/lib/jets/cfn/ship.rb +0 -192
  488. data/lib/jets/cfn/template.rb +0 -93
  489. data/lib/jets/cfn/upload.rb +0 -163
  490. data/lib/jets/command/actions.rb +0 -49
  491. data/lib/jets/command/api_helpers.rb +0 -42
  492. data/lib/jets/command/aws_helpers.rb +0 -26
  493. data/lib/jets/command/base.rb +0 -209
  494. data/lib/jets/command/behavior.rb +0 -83
  495. data/lib/jets/command/environment_argument.rb +0 -42
  496. data/lib/jets/command/help/build.md +0 -6
  497. data/lib/jets/command/help/call.md +0 -48
  498. data/lib/jets/command/help/clean/build.md +0 -5
  499. data/lib/jets/command/help/clean/log.md +0 -5
  500. data/lib/jets/command/help/console.md +0 -18
  501. data/lib/jets/command/help/db/generate.md +0 -8
  502. data/lib/jets/command/help/dbconsole.md +0 -9
  503. data/lib/jets/command/help/degenerate.md +0 -16
  504. data/lib/jets/command/help/deploy.md +0 -32
  505. data/lib/jets/command/help/gems/check.md +0 -1
  506. data/lib/jets/command/help/generate.md +0 -28
  507. data/lib/jets/command/help/import/rack.md +0 -13
  508. data/lib/jets/command/help/import/rails.md +0 -11
  509. data/lib/jets/command/help/new.md +0 -41
  510. data/lib/jets/command/help/rollback.md +0 -5
  511. data/lib/jets/command/help/routes.md +0 -15
  512. data/lib/jets/command/help/runner.md +0 -40
  513. data/lib/jets/command/help/server.md +0 -15
  514. data/lib/jets/command/help/upgrade.md +0 -7
  515. data/lib/jets/command/help.rb +0 -17
  516. data/lib/jets/command/helpers/editor.rb +0 -35
  517. data/lib/jets/command/rake_decorate.rb +0 -38
  518. data/lib/jets/command.rb +0 -142
  519. data/lib/jets/commands/application/application_command.rb +0 -46
  520. data/lib/jets/commands/build/build_command.rb +0 -33
  521. data/lib/jets/commands/call/anonymous_guesser.rb +0 -96
  522. data/lib/jets/commands/call/autoload_guesser.rb +0 -136
  523. data/lib/jets/commands/call/base_guesser.rb +0 -62
  524. data/lib/jets/commands/call/call_command.rb +0 -27
  525. data/lib/jets/commands/call/caller.rb +0 -184
  526. data/lib/jets/commands/call/guesser.rb +0 -48
  527. data/lib/jets/commands/clean/base.rb +0 -24
  528. data/lib/jets/commands/clean/build.rb +0 -13
  529. data/lib/jets/commands/clean/clean_command.rb +0 -15
  530. data/lib/jets/commands/clean/log.rb +0 -111
  531. data/lib/jets/commands/configure/configure_command.rb +0 -9
  532. data/lib/jets/commands/console/console_command.rb +0 -38
  533. data/lib/jets/commands/credentials/USAGE +0 -103
  534. data/lib/jets/commands/credentials/credentials_command/diffing.rb +0 -51
  535. data/lib/jets/commands/credentials/credentials_command.rb +0 -139
  536. data/lib/jets/commands/db/system/change/change_command.rb +0 -24
  537. data/lib/jets/commands/dbconsole/dbconsole_command.rb +0 -184
  538. data/lib/jets/commands/degenerate/degenerate_command.rb +0 -21
  539. data/lib/jets/commands/delete/delete_command.rb +0 -154
  540. data/lib/jets/commands/deploy/deploy_command.rb +0 -118
  541. data/lib/jets/commands/dev/dev_command.rb +0 -19
  542. data/lib/jets/commands/dotenv/dotenv_command.rb +0 -9
  543. data/lib/jets/commands/encrypted/USAGE +0 -46
  544. data/lib/jets/commands/encrypted/encrypted_command.rb +0 -87
  545. data/lib/jets/commands/gems/gems_command.rb +0 -14
  546. data/lib/jets/commands/generate/generate_command.rb +0 -95
  547. data/lib/jets/commands/help/USAGE +0 -20
  548. data/lib/jets/commands/help/help_command.rb +0 -15
  549. data/lib/jets/commands/initializers/initializers_command.rb +0 -19
  550. data/lib/jets/commands/logs/logs_command.rb +0 -45
  551. data/lib/jets/commands/new/new_command.rb +0 -19
  552. data/lib/jets/commands/notes/notes_command.rb +0 -30
  553. data/lib/jets/commands/plugin/plugin_command.rb +0 -45
  554. data/lib/jets/commands/projects/projects_command.rb +0 -30
  555. data/lib/jets/commands/rake/rake_command.rb +0 -59
  556. data/lib/jets/commands/releases/releases_command.rb +0 -124
  557. data/lib/jets/commands/rollback/rollback_command.rb +0 -33
  558. data/lib/jets/commands/routes/routes_command.rb +0 -19
  559. data/lib/jets/commands/runner/runner_command.rb +0 -60
  560. data/lib/jets/commands/server/server_command.rb +0 -291
  561. data/lib/jets/commands/stacks/stacks_command.rb +0 -39
  562. data/lib/jets/commands/status/status_command.rb +0 -16
  563. data/lib/jets/commands/url/url_command.rb +0 -92
  564. data/lib/jets/commands/version/version_command.rb +0 -11
  565. data/lib/jets/commands.rb +0 -17
  566. data/lib/jets/configuration.rb +0 -166
  567. data/lib/jets/controller/base.rb +0 -117
  568. data/lib/jets/controller/compat/abstract_controller/base.rb +0 -126
  569. data/lib/jets/controller/compat/action_controller/metal.rb +0 -99
  570. data/lib/jets/controller/compat/caching.rb +0 -13
  571. data/lib/jets/controller/compat/future.rb +0 -13
  572. data/lib/jets/controller/compat/route_set.rb +0 -47
  573. data/lib/jets/controller/decorate/apigw_stage.rb +0 -39
  574. data/lib/jets/controller/decorate/authorization.rb +0 -91
  575. data/lib/jets/controller/decorate/logging.rb +0 -90
  576. data/lib/jets/controller/decorate/redirecting.rb +0 -16
  577. data/lib/jets/controller/decorate/url_for.rb +0 -10
  578. data/lib/jets/controller/handler/apigw.rb +0 -93
  579. data/lib/jets/controller/handler.rb +0 -41
  580. data/lib/jets/controller/middleware/main.rb +0 -61
  581. data/lib/jets/controller/middleware/mimic/apigw.rb +0 -140
  582. data/lib/jets/controller/middleware/mimic/lambda_context.rb +0 -44
  583. data/lib/jets/controller/middleware/mimic.rb +0 -105
  584. data/lib/jets/controller/middleware/webpacker_setup.rb +0 -6
  585. data/lib/jets/controller/rack_adapter/action.rb +0 -35
  586. data/lib/jets/controller/rack_adapter/env.rb +0 -145
  587. data/lib/jets/controller/request/compat/params.rb +0 -144
  588. data/lib/jets/controller/request/compat/request.rb +0 -125
  589. data/lib/jets/controller/request.rb +0 -46
  590. data/lib/jets/controller/response/compat/response.rb +0 -67
  591. data/lib/jets/controller/response.rb +0 -144
  592. data/lib/jets/core_ext/kernel.rb +0 -13
  593. data/lib/jets/dev_caching.rb +0 -44
  594. data/lib/jets/dotenv/show.rb +0 -11
  595. data/lib/jets/engine/configuration.rb +0 -96
  596. data/lib/jets/engine/turbines.rb +0 -23
  597. data/lib/jets/engine.rb +0 -380
  598. data/lib/jets/erb.rb +0 -51
  599. data/lib/jets/generators/job/job_generator.rb +0 -41
  600. data/lib/jets/generators/job/templates/application_job.rb.tt +0 -6
  601. data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +0 -8
  602. data/lib/jets/generators/job/templates/event_types/iot.rb.tt +0 -8
  603. data/lib/jets/generators/job/templates/event_types/s3.rb.tt +0 -11
  604. data/lib/jets/generators/job/templates/event_types/scheduled.rb.tt +0 -8
  605. data/lib/jets/generators/job/templates/event_types/sns.rb.tt +0 -11
  606. data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +0 -11
  607. data/lib/jets/generators/overrides/app/USAGE +0 -38
  608. data/lib/jets/generators/overrides/app/app_generator.rb +0 -148
  609. data/lib/jets/generators/overrides/app/helpers.rb +0 -139
  610. data/lib/jets/generators/overrides/app/templates/.env +0 -10
  611. data/lib/jets/generators/overrides/app/templates/.gitignore.tt +0 -13
  612. data/lib/jets/generators/overrides/app/templates/.jetsignore +0 -6
  613. data/lib/jets/generators/overrides/app/templates/.rspec +0 -3
  614. data/lib/jets/generators/overrides/app/templates/Gemfile.tt +0 -28
  615. data/lib/jets/generators/overrides/app/templates/README.md +0 -11
  616. data/lib/jets/generators/overrides/app/templates/Rakefile +0 -2
  617. data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +0 -3
  618. data/lib/jets/generators/overrides/app/templates/app/assets/images/.keep +0 -0
  619. data/lib/jets/generators/overrides/app/templates/app/assets/javascripts/.keep +0 -0
  620. data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +0 -15
  621. data/lib/jets/generators/overrides/app/templates/app/controllers/application_controller.rb +0 -2
  622. data/lib/jets/generators/overrides/app/templates/app/helpers/application_helper.rb +0 -2
  623. data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +0 -5
  624. data/lib/jets/generators/overrides/app/templates/app/jobs/application_job.rb +0 -4
  625. data/lib/jets/generators/overrides/app/templates/app/models/application_record.rb +0 -3
  626. data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +0 -30
  627. data/lib/jets/generators/overrides/app/templates/bin/jets +0 -3
  628. data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +0 -15
  629. data/lib/jets/generators/overrides/app/templates/config/database.yml.tt +0 -27
  630. data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +0 -29
  631. data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +0 -21
  632. data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +0 -23
  633. data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +0 -31
  634. data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +0 -8
  635. data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +0 -11
  636. data/lib/jets/generators/overrides/app/templates/config/routes.rb +0 -13
  637. data/lib/jets/generators/overrides/app/templates/config.ru +0 -5
  638. data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
  639. data/lib/jets/generators/overrides/app/templates/public/404.html +0 -67
  640. data/lib/jets/generators/overrides/app/templates/public/422.html +0 -67
  641. data/lib/jets/generators/overrides/app/templates/public/500.html +0 -66
  642. data/lib/jets/generators/overrides/app/templates/public/favicon.ico +0 -0
  643. data/lib/jets/generators/overrides/app/templates/spec/controllers/posts_controller_spec.rb +0 -15
  644. data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-index.json +0 -51
  645. data/lib/jets/generators/overrides/app/templates/spec/fixtures/payloads/posts-show.json +0 -53
  646. data/lib/jets/generators/overrides/app/templates/spec/spec_helper.rb.tt +0 -30
  647. data/lib/jets/generators/overrides/templates/erb/scaffold/_form.html.erb +0 -34
  648. data/lib/jets/generators/overrides/templates/erb/scaffold/edit.html.erb +0 -6
  649. data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +0 -22
  650. data/lib/jets/generators/overrides/templates/erb/scaffold/new.html.erb +0 -5
  651. data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +0 -8
  652. data/lib/jets/generators/overrides/templates/erb/scaffold/show.html.erb +0 -9
  653. data/lib/jets/generators/overrides/templates/rails/assets/javascript.js +0 -2
  654. data/lib/jets/generators/overrides/templates/rails/assets/stylesheet.css +0 -4
  655. data/lib/jets/generators/overrides/templates/rails/scaffold/scaffold.css +0 -80
  656. data/lib/jets/generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt +0 -58
  657. data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +0 -67
  658. data/lib/jets/generators.rb +0 -112
  659. data/lib/jets/inflections.rb +0 -32
  660. data/lib/jets/info.rb +0 -116
  661. data/lib/jets/initializable.rb +0 -95
  662. data/lib/jets/job/base.rb +0 -52
  663. data/lib/jets/job/dsl/dynamodb_event.rb +0 -78
  664. data/lib/jets/job/dsl/event_source_mapping.rb +0 -11
  665. data/lib/jets/job/dsl/iot_event.rb +0 -24
  666. data/lib/jets/job/dsl/kinesis_event.rb +0 -47
  667. data/lib/jets/job/dsl/log_event.rb +0 -15
  668. data/lib/jets/job/dsl/rule_event.rb +0 -78
  669. data/lib/jets/job/dsl/s3_event.rb +0 -77
  670. data/lib/jets/job/dsl/sns_event.rb +0 -54
  671. data/lib/jets/job/dsl/sqs_event.rb +0 -97
  672. data/lib/jets/job/helpers/s3_event.rb +0 -50
  673. data/lib/jets/job/helpers/sns_event.rb +0 -26
  674. data/lib/jets/job/helpers/sqs_event.rb +0 -26
  675. data/lib/jets/klass.rb +0 -108
  676. data/lib/jets/lambda/dsl/warnings.rb +0 -57
  677. data/lib/jets/mega/hash_converter.rb +0 -25
  678. data/lib/jets/mega/request/source.rb +0 -20
  679. data/lib/jets/mega/request.rb +0 -163
  680. data/lib/jets/overrides/dummy/rails.rb +0 -11
  681. data/lib/jets/overrides/lambda/marshaller.rb +0 -31
  682. data/lib/jets/overrides/lambda.rb +0 -1
  683. data/lib/jets/overrides/puma.rb +0 -10
  684. data/lib/jets/paths.rb +0 -243
  685. data/lib/jets/poly/base_executor.rb +0 -125
  686. data/lib/jets/poly/lambda_executor.rb +0 -16
  687. data/lib/jets/poly/node_error.rb +0 -8
  688. data/lib/jets/poly/node_executor.rb +0 -54
  689. data/lib/jets/poly/python_error.rb +0 -8
  690. data/lib/jets/poly/python_executor.rb +0 -23
  691. data/lib/jets/poly.rb +0 -73
  692. data/lib/jets/preheat.rb +0 -110
  693. data/lib/jets/processors/deducer.rb +0 -65
  694. data/lib/jets/processors/main_processor.rb +0 -54
  695. data/lib/jets/rack/logger.rb +0 -77
  696. data/lib/jets/router/compat/route_set.rb +0 -177
  697. data/lib/jets/router/dsl/mount.rb +0 -47
  698. data/lib/jets/router/dsl.rb +0 -164
  699. data/lib/jets/router/engine_mount.rb +0 -36
  700. data/lib/jets/router/help.rb +0 -130
  701. data/lib/jets/router/helpers/named_routes/add_full_url.rb +0 -13
  702. data/lib/jets/router/helpers/named_routes/generated.rb +0 -197
  703. data/lib/jets/router/helpers/named_routes/proxy.rb +0 -66
  704. data/lib/jets/router/matcher.rb +0 -204
  705. data/lib/jets/router/resources/base.rb +0 -7
  706. data/lib/jets/router/resources/filter.rb +0 -15
  707. data/lib/jets/router/resources/options.rb +0 -15
  708. data/lib/jets/router/route/after_initialize.rb +0 -64
  709. data/lib/jets/router/route/as.rb +0 -93
  710. data/lib/jets/router/route/authorizer.rb +0 -58
  711. data/lib/jets/router/route/compat.rb +0 -45
  712. data/lib/jets/router/route/info.rb +0 -74
  713. data/lib/jets/router/route/node.rb +0 -137
  714. data/lib/jets/router/route/path.rb +0 -93
  715. data/lib/jets/router/route.rb +0 -249
  716. data/lib/jets/router/route_set.rb +0 -214
  717. data/lib/jets/router/scope.rb +0 -230
  718. data/lib/jets/router/state.rb +0 -67
  719. data/lib/jets/router/util.rb +0 -8
  720. data/lib/jets/router.rb +0 -94
  721. data/lib/jets/ruby_version_check.rb +0 -15
  722. data/lib/jets/rule/base.rb +0 -20
  723. data/lib/jets/rule/dsl.rb +0 -109
  724. data/lib/jets/secrets.rb +0 -110
  725. data/lib/jets/spec_helpers/controllers/params.rb +0 -8
  726. data/lib/jets/spec_helpers/controllers/request.rb +0 -107
  727. data/lib/jets/spec_helpers/controllers/response.rb +0 -10
  728. data/lib/jets/spec_helpers/controllers.rb +0 -54
  729. data/lib/jets/spec_helpers/fixtures.rb +0 -11
  730. data/lib/jets/spec_helpers.rb +0 -15
  731. data/lib/jets/stack/builder.rb +0 -44
  732. data/lib/jets/stack/definition.rb +0 -47
  733. data/lib/jets/stack/depends/item.rb +0 -26
  734. data/lib/jets/stack/depends.rb +0 -34
  735. data/lib/jets/stack/function.rb +0 -71
  736. data/lib/jets/stack/main/dsl/cloudwatch.rb +0 -19
  737. data/lib/jets/stack/main/dsl/iam.rb +0 -8
  738. data/lib/jets/stack/main/dsl/kinesis.rb +0 -15
  739. data/lib/jets/stack/main/dsl/lambda.rb +0 -90
  740. data/lib/jets/stack/main/dsl/s3.rb +0 -12
  741. data/lib/jets/stack/main/dsl/sns.rb +0 -16
  742. data/lib/jets/stack/main/dsl/sqs.rb +0 -10
  743. data/lib/jets/stack/main/dsl.rb +0 -17
  744. data/lib/jets/stack/main.rb +0 -4
  745. data/lib/jets/stack/output/dsl.rb +0 -19
  746. data/lib/jets/stack/output.rb +0 -35
  747. data/lib/jets/stack/parameter/dsl.rb +0 -42
  748. data/lib/jets/stack/parameter.rb +0 -37
  749. data/lib/jets/stack/resource/dsl.rb +0 -19
  750. data/lib/jets/stack/resource.rb +0 -31
  751. data/lib/jets/stack/s3_event.rb +0 -101
  752. data/lib/jets/tasks/engine.rake +0 -85
  753. data/lib/jets/tasks/framework.rake +0 -66
  754. data/lib/jets/tasks/log.rake +0 -41
  755. data/lib/jets/tasks/middleware.rake +0 -9
  756. data/lib/jets/tasks/misc.rake +0 -81
  757. data/lib/jets/tasks/statistics.rake +0 -37
  758. data/lib/jets/tasks/tmp.rake +0 -51
  759. data/lib/jets/tasks/yarn.rake +0 -29
  760. data/lib/jets/tasks/zeitwerk.rake +0 -61
  761. data/lib/jets/tasks.rb +0 -18
  762. data/lib/jets/tmp_loader.rb +0 -53
  763. data/lib/jets/turbine/configurable.rb +0 -36
  764. data/lib/jets/turbine/configuration.rb +0 -101
  765. data/lib/jets/turbine.rb +0 -185
  766. data/lib/jets/util.rb +0 -40
  767. /data/lib/jets/{command → cli}/help/projects.md +0 -0
  768. /data/lib/jets/{command → cli}/help/stacks.md +0 -0
  769. /data/lib/jets/{command → cli}/help/url.md +0 -0
@@ -43,7 +43,7 @@ module Jets::Lambda
43
43
  # For anonymous classes method_added during definition registration contains ""
44
44
  # for the class name. We adjust it here.
45
45
  def adjust_definitions(klass)
46
- class_name = @code_path.to_s.sub(/.*\/functions\//,'').sub(/\.rb$/, '')
46
+ class_name = @code_path.to_s.sub(/.*\/functions\//, "").sub(/\.rb$/, "")
47
47
  class_name = class_name.camelize
48
48
  klass.definitions.each do |definition|
49
49
  definition.class_name = class_name
@@ -52,4 +52,3 @@ module Jets::Lambda
52
52
  end
53
53
  end
54
54
  end
55
-
@@ -1,29 +1,23 @@
1
- require 'json'
1
+ require "json"
2
2
 
3
3
  # Jets::Lambda::Functions represents a collection of Lambda functions.
4
4
  #
5
5
  # Jets::Lambda::Functions is the superclass of:
6
- # Jets::Controller::Base
7
- # Jets::Job::Base
6
+ # Jets::Event::Base
8
7
  module Jets::Lambda
9
8
  class Functions
10
9
  include Jets::ExceptionReporting
10
+ include Jets::Util::Logging
11
11
 
12
12
  attr_reader :event, :context, :meth
13
13
  def initialize(event, context, meth)
14
14
  @event = HashWithIndifferentAccess.new(event) # Hash, JSON.parse(event) ran BaseProcessor
15
15
  @context = context # Hash. JSON.parse(context) ran in BaseProcessor
16
- @meth = meth
17
- # store meth because it is useful to for identifying the which template
18
- # to use later.
19
- end
20
-
21
- def logger
22
- Jets.logger
16
+ @meth = meth # useful to identify which template to use later.
23
17
  end
24
18
 
25
19
  include Dsl # At the end so methods like event, context and method
26
- # do not trigger method_added
20
+ # do not trigger method_added
27
21
 
28
22
  # Pretty hacky since action_view/rendering.rb _normalize_options calls super
29
23
  def _normalize_options(options) # :doc:
@@ -31,19 +25,15 @@ module Jets::Lambda
31
25
  end
32
26
 
33
27
  class << self
28
+ include Jets::Util::Logging
29
+
34
30
  attr_reader :abstract
35
31
  alias_method :abstract?, :abstract
36
32
  @abstract = true
37
33
 
38
- class << self
39
- def inherited(klass) # :nodoc:
40
- # Define the abstract ivar on subclasses so that we don't get
41
- # uninitialized ivar warnings
42
- unless klass.instance_variable_defined?(:@abstract)
43
- klass.instance_variable_set(:@abstract, false)
44
- end
45
- super
46
- end
34
+ def inherited(base)
35
+ super
36
+ subclasses << base if base.name
47
37
  end
48
38
 
49
39
  # Define a controller as abstract. See internal_methods for more details.
@@ -60,11 +50,6 @@ module Jets::Lambda
60
50
  @subclasses ||= []
61
51
  end
62
52
 
63
- def inherited(base)
64
- super
65
- self.subclasses << base if base.name
66
- end
67
-
68
53
  # Needed for depends_on. Got added due to stagger logic.
69
54
  def output_keys
70
55
  []
data/lib/jets/names.rb CHANGED
@@ -11,7 +11,7 @@ class Jets::Names
11
11
  end
12
12
 
13
13
  def one_controller_template_path
14
- "#{templates_folder}/jets-controller.yml"
14
+ "#{templates_folder}/controller.yml"
15
15
  end
16
16
 
17
17
  def app_template_path(app_class)
@@ -34,18 +34,6 @@ class Jets::Names
34
34
  "#{templates_folder}/api-gateway.yml"
35
35
  end
36
36
 
37
- def api_resources_template_path(page_number)
38
- "#{templates_folder}/api-resources-#{page_number}.yml"
39
- end
40
-
41
- def api_cors_template_path(page_number)
42
- "#{templates_folder}/api-cors-#{page_number}.yml"
43
- end
44
-
45
- def api_methods_template_path(page_number)
46
- "#{templates_folder}/api-methods-#{page_number}.yml"
47
- end
48
-
49
37
  def api_deployment_template_path
50
38
  "#{templates_folder}/api-deployment.yml"
51
39
  end
@@ -59,21 +47,21 @@ class Jets::Names
59
47
  end
60
48
 
61
49
  def parent_stack_name
62
- Jets.project_namespace
50
+ Jets.project.namespace
63
51
  end
64
52
 
65
53
  def gateway_api_name
66
- Jets.project_namespace
54
+ Jets.project.namespace
67
55
  end
68
56
 
69
57
  def authorizer_template_path(path)
70
58
  underscored = underscore(path)
71
- underscored.sub!(/^app-/, '')
59
+ underscored.sub!(/^app-/, "")
72
60
  "#{templates_folder}/#{underscored}.yml"
73
61
  end
74
62
 
75
63
  def underscore(s)
76
- s.to_s.underscore.sub(/\.rb$/,'').gsub('/','-')
64
+ s.to_s.underscore.sub(/\.rb$/, "").tr("/", "-")
77
65
  end
78
66
  end
79
67
  end
@@ -0,0 +1,27 @@
1
+ module Jets
2
+ class Prewarm
3
+ class << self
4
+ include Jets::Util::Logging
5
+
6
+ # Can use to prewarm post deploy
7
+ # Jets::Prewarm.handle
8
+ # Jets::Prewarm.handle(verbose: true, invocation_type: "RequestResponse")
9
+ # Note: verbose is only useful when invocation_type is "RequestResponse"
10
+ def handle(options = {})
11
+ defaults = {
12
+ function_name: "controller",
13
+ event: '{"_prewarm": 1}'
14
+ }
15
+ options = defaults.merge(options.symbolize_keys)
16
+ # Always calls Lambda, not local
17
+ # Use invoke so messages don't get printed
18
+ Jets::CLI::Call.new(options).invoke
19
+ rescue Jets::CLI::Call::Error => e
20
+ puts "ERROR: #{e.message}".color(:red)
21
+ puts "The stack may not be full deployed yet. Please check the stack and try again."
22
+ end
23
+
24
+ delegate :stats, to: Jets::Shim::Adapter::Prewarm
25
+ end
26
+ end
27
+ end
data/lib/jets/rdoc.rb CHANGED
@@ -22,9 +22,9 @@ module Jets
22
22
  Rakefile
23
23
  bin
24
24
  ]
25
- exclude = exclude.map { |word| ['-x', word] }.flatten
25
+ exclude = exclude.map { |word| ["-x", word] }.flatten
26
26
  ["-m", "README.md", "--markup", "tomdoc"] + exclude
27
27
  end
28
28
  extend self
29
29
  end
30
- end
30
+ end
@@ -0,0 +1,11 @@
1
+ module Jets::Remote
2
+ class Base
3
+ extend Memoist
4
+ include Jets::AwsServices
5
+ include Jets::Util::Logging
6
+
7
+ def initialize(options)
8
+ @options = options
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,65 @@
1
+ module Jets::Remote
2
+ class Download < Base
3
+ delegate :s3_bucket, to: "Jets.project"
4
+
5
+ def initialize(command)
6
+ @command = command
7
+ end
8
+
9
+ def download_built
10
+ # build deploy ci:build ci:deploy waf:build waf:deploy
11
+ subcommand = @command.split(":").last
12
+ case subcommand
13
+ when "build", "deploy", "dockerfile"
14
+ download_templates
15
+ download_dockerfile
16
+ end
17
+ end
18
+
19
+ def download_dockerfile
20
+ s3_key = "jets/sigs/#{sig}/docker/Dockerfile"
21
+ object = s3_resource.bucket(s3_bucket).object(s3_key)
22
+ # Can not exists for: jets build --templates
23
+ if object.exists?
24
+ dest = "#{Jets.build_root}/docker/Dockerfile"
25
+ FileUtils.mkdir_p(File.dirname(dest))
26
+ object.download_file(dest)
27
+ if @command.split(":").last == "dockerfile"
28
+ log.info "Dockerfile at: #{dest}"
29
+ else
30
+ log.debug "Download: #{dest}"
31
+ end
32
+ end
33
+ end
34
+
35
+ def download_templates
36
+ clean_all_templates
37
+ download_all_templates
38
+ end
39
+
40
+ def clean_all_templates
41
+ FileUtils.rm_rf("#{Jets.build_root}/templates")
42
+ end
43
+
44
+ def download_all_templates
45
+ s3.list_objects(bucket: s3_bucket, prefix: "jets/sigs/#{sig}/templates/").each do |resp|
46
+ resp.contents.each do |object|
47
+ download_template(object.key)
48
+ end
49
+ end
50
+ end
51
+
52
+ def download_template(s3_key)
53
+ object = s3_resource.bucket(s3_bucket).object(s3_key)
54
+ path = object.key.sub("jets/sigs/#{sig}/templates/", "")
55
+ dest = "#{Jets.build_root}/templates/#{path}"
56
+ log.debug "Download: #{dest}"
57
+ FileUtils.mkdir_p(File.dirname(dest))
58
+ object.download_file(dest)
59
+ end
60
+
61
+ def sig
62
+ Jets::Remote::Runner.sig
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,101 @@
1
+ module Jets::Remote
2
+ class Runner < Base
3
+ cattr_reader :sig
4
+ def run
5
+ code_zip_and_upload
6
+
7
+ command = @options[:command] || "deploy"
8
+ command_args = if @options[:version] # jets rollback 8
9
+ @options[:version]
10
+ elsif @options[:templates] # jets build --templates or jets deploy --templates
11
+ "--templates"
12
+ end
13
+
14
+ sig = Jets::Api::Sig.create(command: command, command_args: command_args, architecture: architecture)
15
+ @@sig = sig[:token]
16
+ @jets_go = sig[:jets_go]
17
+
18
+ params = {
19
+ buildspec_override: sig[:buildspec],
20
+ environment_variables_override: environment_variables_override,
21
+ project_name: project_name
22
+ }
23
+ fleet_override = Jets.bootstrap.config.codebuild.project.fleet_override
24
+ if fleet_override
25
+ params[:fleet_override] = {fleet_arn: fleet_override}
26
+ end
27
+
28
+ resp = codebuild.start_build(params)
29
+ Jets::Api::Sig.update(sig[:id], build_id: resp.build.id)
30
+
31
+ logger.info "Started remote run for #{command}"
32
+ Jets::CLI::Tip.show(:remote_run, disable_howto: false)
33
+ logger.info "Console Log Url:"
34
+ logger.info codebuild_log_url(resp.build.id)
35
+
36
+ tail_logs(resp.build.id)
37
+
38
+ Download.new(command).download_built
39
+
40
+ resp = codebuild.batch_get_builds(ids: [resp.build.id])
41
+ success = resp.builds.first.build_status == "SUCCEEDED"
42
+ exit 1 unless success
43
+ success
44
+ end
45
+
46
+ def code_zip_and_upload
47
+ code = Jets::Code.new(dummy: @options[:dummy])
48
+ @app_src = code.zip_and_upload # s3_location
49
+ end
50
+
51
+ # Get architecture of codebuild image being used
52
+ def architecture
53
+ project = codebuild.batch_get_projects(names: [project_name]).projects.first
54
+ image = project.environment.image # IE: aws/codebuild/amazonlinux-aarch64-lambda-standard:ruby3.2
55
+ if image.include?("aarch64") || image.include?("arm64")
56
+ "arm64"
57
+ else
58
+ "x86_64"
59
+ end
60
+ end
61
+
62
+ def project_name
63
+ stack_name = Jets::Names.parent_stack_name
64
+ stack = cfn.describe_stacks(stack_name: stack_name).stacks.first
65
+ logical_id = use_lambda_compute_type? ? "CodebuildLambda" : "Codebuild"
66
+ stack.outputs.find { |o| o.output_key == logical_id }.output_value
67
+ end
68
+ memoize :project_name
69
+
70
+ def use_lambda_compute_type?
71
+ return true if Jets.bootstrap.config.infra
72
+ return false unless Jets.bootstrap.config.codebuild.lambda.enable
73
+
74
+ command = ARGV.first
75
+ command == "ci" ||
76
+ command == "waf" ||
77
+ command == "dockerfile" ||
78
+ ARGV.include?("--templates")
79
+ end
80
+
81
+ def environment_variables_override
82
+ Jets::Cfn::Resource::Codebuild::Project::Env.new.pass_vars(
83
+ JETS_APP_SRC: @app_src,
84
+ JETS_GO: @jets_go,
85
+ JETS_SIG: @@sig
86
+ )
87
+ end
88
+
89
+ def tail_logs(build_id)
90
+ Tailer.new(@options, build_id).run
91
+ end
92
+
93
+ private
94
+
95
+ def codebuild_log_url(build_id)
96
+ build_id = build_id.split(":").last
97
+ region = Jets.aws.region
98
+ "https://#{region}.console.aws.amazon.com/codesuite/codebuild/projects/#{project_name}/build/#{project_name}%3A#{build_id}/log"
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,272 @@
1
+ require "aws-logs"
2
+
3
+ module Jets::Remote
4
+ class Tailer < Base
5
+ include Jets::Util::Pretty
6
+
7
+ def initialize(options, build_id)
8
+ @options, @build_id = options, build_id
9
+
10
+ @output = [] # for specs
11
+ @shown_phases = []
12
+ @thread = nil
13
+ end
14
+
15
+ @@delay = 2 # initial delay
16
+ def run
17
+ complete = false
18
+ until complete
19
+ build = find_build
20
+ unless build
21
+ puts "ERROR: Build id not found: #{@build_id}".color(:red)
22
+ return
23
+ end
24
+
25
+ # CodeBuild AWS Lambda Compute Type take slightly a few milliseconds to report phases.
26
+ # But return the build already. So we have to wait until the phases are available.
27
+ while build.phases.nil?
28
+ build = find_build # refresh
29
+ sleep 1
30
+ end
31
+
32
+ print_phases(build) unless @stop_printing_phases # once cloudwatch logs starts, stop printing phases
33
+ set_log_group_name(build)
34
+
35
+ complete = build.build_complete
36
+
37
+ next if ENV["JETS_TEST"]
38
+ if build_phase_started?(build)
39
+ start_cloudwatch_tail
40
+ @stop_printing_phases = true
41
+ @@delay = 5 # increase @@delay also
42
+ end
43
+
44
+ sleep @@delay
45
+ end
46
+
47
+ stop_cloudwatch_tail(build)
48
+ if Jets.bootstrap.config.codebuild.logging.final_phases
49
+ print_phases(build) # print final phases
50
+ end
51
+ display_failed_phases(build)
52
+ end
53
+
54
+ def build_phase_started?(build)
55
+ @build_phase_started ||= build.phases.any? do |phase|
56
+ phase.phase_type == "BUILD"
57
+ end
58
+ end
59
+
60
+ def display_failed_phases(build)
61
+ status = build.build_status.to_s # in case nil
62
+ status = (status != "SUCCEEDED") ? status.color(:red) : status.color(:green)
63
+ return if status == "SUCCEEDED"
64
+
65
+ failed_phases = build.phases.select do |phase|
66
+ phase.phase_status != "SUCCEEDED" && phase.phase_status.to_s != ""
67
+ end
68
+ return if failed_phases.empty?
69
+
70
+ puts "Failed Phases:"
71
+ failed_phases.each do |phase|
72
+ puts "#{phase.phase_type}: #{phase.phase_status.color(:red)}"
73
+ next unless phase.contexts # can be nil
74
+ context = phase.contexts.last
75
+ if context # show error details: Unable to pull customer's container image https://gist.github.com/tongueroo/22e4ca3d4cde002108ff506eba9062f6
76
+ message = context.message
77
+ puts message
78
+ if message.include?("CannotPullContainerError") && message.include?("access denied")
79
+ puts "See: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html"
80
+ end
81
+ end
82
+ end
83
+ end
84
+
85
+ def display_time_took(build)
86
+ puts "Remote runner took #{build_time(build)} to complete"
87
+ end
88
+
89
+ def find_build
90
+ resp = codebuild.batch_get_builds(ids: [@build_id])
91
+ resp.builds.first
92
+ rescue Aws::CodeBuild::Errors::ThrottlingException => e
93
+ log_arch "WARN: find_build codebuild.batch_get_builds ThrottlingException: #{e.message}"
94
+ @@delay = 10 # increase global @@delay also
95
+
96
+ # Also exponential backoff delay
97
+ # 2, 4, 8, 16, 32
98
+ @retries ||= 1
99
+ raise if @retries > 5 # give up after 5 retries
100
+ delay = 2**@retries
101
+ log_arch "Retrying in #{delay}s..."
102
+ sleep delay
103
+ @retries += 1
104
+ retry
105
+ end
106
+
107
+ def start_cloudwatch_tail
108
+ return if @cloudwatch_tail_started
109
+ return unless @log_group_name && @log_stream_name
110
+
111
+ @thread = Thread.new do
112
+ @cw_tail = cloudwatch_tail
113
+ @cw_tail.run
114
+ end
115
+ @cloudwatch_tail_started = true
116
+ end
117
+
118
+ def cloudwatch_tail
119
+ since = @options[:since] || "24h" # by default, search only 24h in the past
120
+ AwsLogs::Tail.new(
121
+ log_group_name: @log_group_name,
122
+ log_stream_names: [@log_stream_name],
123
+ since: since,
124
+ follow: true,
125
+ format: "plain",
126
+ show_if: show_if
127
+ )
128
+ end
129
+
130
+ def show_if
131
+ return true unless Jets.bootstrap.config.codebuild.logging.show == "filtered"
132
+
133
+ start_marker = "./jets"
134
+ end_marker = "Phase complete: BUILD"
135
+ proc do |event|
136
+ @display_showing ||= event.message.include?(start_marker)
137
+ if @display_showing && event.message.include?(end_marker)
138
+ @display_showing = false
139
+ end
140
+ @display_showing
141
+ end
142
+ end
143
+ memoize :show_if
144
+
145
+ def stop_cloudwatch_tail(build)
146
+ return if ENV["JETS_TEST"]
147
+ @cw_tail&.stop_follow!
148
+ @thread&.join
149
+ end
150
+
151
+ def logs_command?
152
+ ARGV.join(" ").include?("logs")
153
+ end
154
+
155
+ # build.build_status : The current status of the build. Valid values include:
156
+ #
157
+ # FAILED : The build failed.
158
+ # FAULT : The build faulted.
159
+ # IN_PROGRESS : The build is still in progress.
160
+ # STOPPED : The build stopped.
161
+ # SUCCEEDED : The build succeeded.
162
+ # TIMED_OUT : The build timed out.
163
+ #
164
+ def complete_failed?(build)
165
+ return if ENV["JETS_TEST"]
166
+ build.build_complete && build.build_status != "SUCCEEDED"
167
+ end
168
+
169
+ # Setting enables start_cloudwatch_tail
170
+ def set_log_group_name(build)
171
+ logs = build.logs
172
+ @log_group_name = logs.group_name if logs.group_name
173
+ @log_stream_name = logs.stream_name if logs.stream_name
174
+ end
175
+
176
+ def print_phases(build)
177
+ build.phases.each do |phase|
178
+ details = {
179
+ phase_type: phase.phase_type,
180
+ phase_status: phase.phase_status,
181
+ start_time: phase.start_time,
182
+ duration_in_seconds: phase.duration_in_seconds
183
+ }
184
+ display_phase(details)
185
+ @shown_phases << details
186
+ end
187
+ end
188
+
189
+ def display_phase(details)
190
+ already_shown = @shown_phases.detect do |p|
191
+ p[:phase_type] == details[:phase_type] &&
192
+ p[:phase_status] == details[:phase_status] &&
193
+ p[:start_time] == details[:start_time] &&
194
+ p[:duration_in_seconds] == details[:duration_in_seconds]
195
+ end
196
+ return if already_shown
197
+
198
+ return if filter_phase_type?(details)
199
+
200
+ phases = [
201
+ "Phase:", details[:phase_type]
202
+ ]
203
+
204
+ if details[:phase_type] == "COMPLETED"
205
+ # nothing to add
206
+ elsif details[:phase_status].nil?
207
+ phases << "Pending"
208
+ else
209
+ phases += [
210
+ phase_status(details[:phase_status]),
211
+ phase_duration(details[:duration_in_seconds])
212
+ ]
213
+ end
214
+
215
+ phases = phases.flatten.compact.join(" ")
216
+
217
+ say phases
218
+ end
219
+
220
+ def filter_phase_type?(details)
221
+ return false unless Jets.bootstrap.config.codebuild.logging.show == "filtered"
222
+
223
+ # Phase: SUBMITTED Status: SUCCEEDED Duration: 0s
224
+ # Phase: QUEUED Pending
225
+ # Phase: QUEUED Status: SUCCEEDED Duration: 0s
226
+ # Phase: PROVISIONING Pending
227
+ # Phase: PROVISIONING Status: SUCCEEDED Duration: 5s
228
+ # Phase: DOWNLOAD_SOURCE Status: SUCCEEDED Duration: 0s
229
+ # Phase: INSTALL Status: SUCCEEDED Duration: 0s
230
+ # Phase: PRE_BUILD Status: SUCCEEDED Duration: 0s
231
+ # Phase: BUILD Pending
232
+ # [Container] 2024/04/06 15:51:12.262049 Running command ...
233
+ #
234
+ # Becomes
235
+ #
236
+ # Phase: SUBMITTED Status: SUCCEEDED Duration: 0s
237
+ # Phase: QUEUED Pending
238
+ # Phase: QUEUED Status: SUCCEEDED Duration: 0s
239
+ # Phase: PROVISIONING Pending
240
+ # Phase: PROVISIONING Status: SUCCEEDED Duration: 5s
241
+ # [Container] 2024/04/06 15:51:12.262049 Running command ...
242
+ filtered_phase_types = %w[DOWNLOAD_SOURCE INSTALL PRE_BUILD BUILD]
243
+ filtered_phase_types.include?(details[:phase_type])
244
+ end
245
+
246
+ def phase_status(status)
247
+ return unless status # can be nil
248
+
249
+ text = (status == "SUCCEEDED") ? status : status.color(:red)
250
+ ["Status:", text]
251
+ end
252
+
253
+ def phase_duration(duration)
254
+ return unless duration # can be nil
255
+
256
+ ["Duration:", pretty_time(duration)]
257
+ end
258
+
259
+ def say(text)
260
+ ENV["JETS_TEST"] ? @output << text : puts(text)
261
+ end
262
+
263
+ def output
264
+ @output.join("\n") + "\n"
265
+ end
266
+
267
+ def build_time(build)
268
+ duration = build.phases.inject(0) { |sum, p| sum + p.duration_in_seconds.to_i }
269
+ pretty_time(duration)
270
+ end
271
+ end
272
+ end
@@ -0,0 +1,16 @@
1
+ module Jets::Shim::Adapter
2
+ class Alb < Apigw
3
+ def env
4
+ super.merge(
5
+ "HTTP_PORT" => headers["x-forwarded-port"],
6
+ "SERVER_PORT" => headers["x-forwarded-port"],
7
+ "SERVER_PROTOCOL" => event.dig("requestContext", "protocol") || "HTTP/1.1"
8
+ )
9
+ end
10
+
11
+ def handle?
12
+ host =~ /elb\.amazonaws\.com/ ||
13
+ event.dig("requestContext", "elb")
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,37 @@
1
+ module Jets::Shim::Adapter
2
+ class Apigw < Web
3
+ # See: https://github.com/rack/rack/blob/main/lib/rack/constants.rb
4
+ def env
5
+ {
6
+ # Request env keys
7
+ "HTTP_HOST" => host,
8
+ "HTTP_PORT" => headers["X-Forwarded-Port"],
9
+ "HTTPS" => https,
10
+ "PATH_INFO" => path_info,
11
+ "QUERY_STRING" => query_string,
12
+ "REQUEST_METHOD" => event["httpMethod"] || "GET", # useful to default to GET when testing with Lambda console
13
+ "REQUEST_PATH" => path_info,
14
+ "SCRIPT_NAME" => "",
15
+ "SERVER_NAME" => host,
16
+ "SERVER_PORT" => headers["X-Forwarded-Port"],
17
+ "SERVER_PROTOCOL" => event.dig("requestContext", "protocol") || "HTTP/1.1"
18
+ }
19
+ end
20
+
21
+ def path_info
22
+ event["path"] || "/" # always set by API Gateway, but setting to make shim testing easier
23
+ end
24
+
25
+ def handle?
26
+ host =~ /execute-api/ ||
27
+ event["resource"] && event.dig("requestContext", "stage")
28
+ end
29
+
30
+ private
31
+
32
+ def query_string
33
+ query = event["queryStringParameters"] || {} # always set with API Gateway but when testing shim might not be
34
+ Rack::Utils.build_nested_query(query)
35
+ end
36
+ end
37
+ end