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
data/lib/jets/core.rb CHANGED
@@ -1,221 +1,66 @@
1
1
  module Jets::Core
2
2
  extend Memoist
3
3
 
4
- mattr_accessor :cache
5
-
6
- delegate :aws, :autoloaders, :config, to: :application
7
-
8
- @application = @app_class = nil
9
-
10
- attr_writer :application
11
- attr_accessor :app_class
12
- def application
13
- @application ||= (app_class.instance if app_class)
14
- end
15
-
16
- def backtrace_cleaner
17
- @backtrace_cleaner ||= Jets::BacktraceCleaner.new
18
- end
19
-
20
- # The Configuration instance used to configure the Rails environment
21
- def configuration
22
- application.config
23
- end
24
-
25
4
  def root
26
- root = ENV['JETS_ROOT'].to_s
27
- root = Dir.pwd if root == ''
5
+ root = ENV["JETS_ROOT"].to_s
6
+ root = Dir.pwd if root == ""
28
7
  Pathname.new(root)
29
8
  end
9
+ memoize :root
30
10
 
31
11
  def env
32
- env = ENV['JETS_ENV'] || 'development'
33
- ENV['RAILS_ENV'] = ENV['RACK_ENV'] = env
12
+ env = ENV["JETS_ENV"] || "dev"
34
13
  ActiveSupport::StringInquirer.new(env)
35
14
  end
36
15
  memoize :env
37
16
 
38
- @@extra_warning_shown = false
39
17
  def extra
40
- # Keep for backwards compatibility
41
- unless ENV['JETS_ENV_EXTRA'].blank?
42
- puts "DEPRECATION WARNING: JETS_ENV_EXTRA is deprecated. Use JETS_EXTRA instead.".color(:yellow) unless @@extra_warning_shown
43
- @@extra_warning_shown = true
44
- extra = ENV['JETS_ENV_EXTRA']
45
- end
46
- extra = ENV['JETS_EXTRA'] unless ENV['JETS_EXTRA'].blank?
47
- extra
18
+ ENV["JETS_EXTRA"] unless ENV["JETS_EXTRA"].blank?
48
19
  end
49
20
 
50
- def project_name
51
- path = "config/project_name"
52
- if ENV['JETS_PROJECT_NAME'] && !ENV['JETS_PROJECT_NAME'].blank?
53
- ENV['JETS_PROJECT_NAME']
54
- elsif File.exist?(path)
55
- IO.read(path).strip
56
- elsif parsed_project_name
57
- parsed_project_name
58
- else
59
- Dir.pwd.split("/").last # conventionally infer app name from current directory
60
- end
21
+ def project
22
+ Config::Project.instance
61
23
  end
62
24
 
63
- def project_namespace
64
- [project_name, short_env, extra].compact.join('-').gsub('_','-')
25
+ def bootstrap
26
+ Config::Bootstrap.instance
65
27
  end
66
28
 
67
- def table_namespace
68
- [project_name, short_env].compact.join('-')
29
+ def shim
30
+ Jets::Shim
69
31
  end
70
32
 
71
- ENV_MAP = {
72
- development: 'dev',
73
- production: 'prod',
74
- staging: 'stag',
75
- }
76
- def short_env
77
- ENV_MAP[Jets.env.to_sym] || Jets.env
33
+ # Load project and app config files
34
+ def boot
35
+ Jets::Core::Booter.boot!
78
36
  end
79
37
 
80
- # Double evaling config/application.rb causes subtle issues:
81
- # * double loading of shared resources: Jets::Stack.subclasses will have the same
82
- # class twice when config is called when declaring a function
83
- # * forces us to rescue all exceptions, which is a big hammer
84
- #
85
- # Lets parse for the project name instead for now.
86
- #
87
- # Keep for backwards compatibility
88
- def parsed_project_name
89
- lines = IO.readlines("#{Jets.root}/config/application.rb")
90
- project_name_line = lines.find { |l| l =~ /config\.project_name.*=/ && l !~ /^\s+#/ }
91
- if project_name_line
92
- parsed = project_name_line.gsub(/.*=/,'').strip
93
- # The +? makes it non-greedy
94
- # See: https://ruby-doc.org/core-2.5.1/Regexp.html#class-Regexp-label-Repetition
95
- md = parsed.match(/['"](.+?)['"]/)
96
- md ? md[1] : raise("Unable to parse project name from config/application.rb: #{project_name_line}")
97
- end
38
+ # delegate :aws, :autoloaders, :config, to: :application
39
+ def aws
40
+ Jets::AwsServices::AwsInfo.new
98
41
  end
99
- memoize :parsed_project_name
42
+ memoize :aws
100
43
 
101
- # Load all application base classes and project classes
102
- def boot
103
- Jets::Booter.boot!
44
+ # Frameworks can set Jets.logger to use their own logger.
45
+ cattr_accessor :logger
46
+ def logger
47
+ @logger ||= Jets.bootstrap.config.logger
104
48
  end
105
49
 
106
50
  def build_root
107
- "/tmp/jets/#{Jets.project_name}".freeze
51
+ root = ENV["JETS_BUILD_ROOT"] || "/tmp/jets"
52
+ "#{root}/#{Jets.project.namespace}".freeze
108
53
  end
109
54
  memoize :build_root
110
55
 
111
- def logger
112
- @logger
113
- end
114
-
115
- def logger=(logger)
116
- @logger = logger
56
+ def s3_bucket
57
+ Jets::Cfn::Resource::S3::JetsBucket.name
117
58
  end
118
59
 
119
60
  def deprecator # :nodoc:
120
61
  @deprecator ||= ActiveSupport::Deprecation.new
121
62
  end
122
63
 
123
- def webpacker?
124
- Gem.loaded_specs.keys.any?{|k| k.start_with?("webpacker")}
125
- end
126
- memoize :webpacker?
127
-
128
- def version
129
- Jets::VERSION
130
- end
131
-
132
- # NOTE: In development this will always be 1 because the app gets reloaded.
133
- # On AWS Lambda, this will be ever increasing until the container gets replaced.
134
- @@call_count = 0
135
- def increase_call_count
136
- @@call_count += 1
137
- end
138
-
139
- def call_count
140
- @@call_count
141
- end
142
-
143
- @@prewarm_count = 0
144
- def increase_prewarm_count
145
- @@prewarm_count += 1
146
- end
147
-
148
- def prewarm_count
149
- @@prewarm_count
150
- end
151
-
152
- def poly_only?
153
- return true if ENV['JETS_POLY_ONLY'] # bypass to allow rapid development of handlers
154
- Jets::Cfn::Builder.poly_only?
155
- end
156
-
157
- def custom_domain?
158
- Jets.config.domain.hosted_zone_name
159
- end
160
-
161
- def s3_events?
162
- !Jets::Job::Base._s3_events.empty?
163
- end
164
-
165
- def process(event, context, handler)
166
- if event['_prewarm']
167
- Jets.increase_prewarm_count
168
- Jets.logger.info("Prewarm request")
169
- {prewarmed_at: Time.now.to_s}
170
- else
171
- Jets::Processors::MainProcessor.new(event, context, handler).run
172
- end
173
- end
174
-
175
- def once
176
- boot
177
- override_lambda_ruby_runtime
178
- # require "jets/overrides/puma" # leaving around as a comment in case needed in the future
179
- tmp_load!
180
- end
181
-
182
- def tmp_load!
183
- Jets::TmpLoader.load!
184
- end
185
-
186
- def override_lambda_ruby_runtime
187
- require "jets/overrides/lambda"
188
- end
189
-
190
- def ruby_folder
191
- RUBY_VERSION.split('.')[0..1].join('.') + '.0'
192
- end
193
-
194
- # used to configure internal lambda functions
195
- # current ruby runtime that user is running
196
- # IE: ruby2.5 ruby2.7
197
- def ruby_runtime
198
- version = RUBY_VERSION.split('.')[0..1].join('.')
199
- "ruby#{version}"
200
- end
201
-
202
- def one_lambda_per_controller?
203
- Jets.config.cfn.build.controllers == "one_lambda_per_controller"
204
- end
205
-
206
- def one_lambda_for_all_controllers?
207
- Jets.config.cfn.build.controllers == "one_lambda_for_all_controllers"
208
- end
209
-
210
- def gem_layer?
211
- !Jets.poly_only? || Jets.one_lambda_for_all_controllers?
212
- end
213
-
214
- # Do not memoize here. The JetsBucket.name does it's own special memoization.
215
- def s3_bucket
216
- Jets::Cfn::Resource::S3::JetsBucket.name
217
- end
218
-
219
64
  def report_exception(exception)
220
65
  # See Jets::ExceptionReporting decorate_exception_with_exception_reported!
221
66
  if exception.respond_to?(:with_exception_reported?) && exception.with_exception_reported?
@@ -240,25 +85,4 @@ module Jets::Core
240
85
  application && application.executor.error_reporter
241
86
  # ActiveSupport.error_reporter
242
87
  end
243
-
244
- # Returns a Pathname object of the public folder of the current
245
- # \Jets project, otherwise it returns +nil+ if there is no project:
246
- #
247
- # Jets.public_path
248
- # # => #<Pathname:/Users/someuser/some/path/project/public>
249
- def public_path
250
- application && Pathname.new(application.paths["public"].first)
251
- end
252
-
253
- def autoloaders
254
- application.autoloaders
255
- end
256
-
257
- # It's useful to eager load and find out any error within the jets code immediately.
258
- # Leaving in place because think the layer of protection is good.
259
- # Eager load outside of a jets project can error. IE: `jets -h`
260
- # Eager load inside a jets project is fine.
261
- def eager_load_gem?
262
- File.exist?("config/application.rb") || ENV['JETS_TEST'] || defined?(ENGINE_ROOT) # jets project
263
- end
264
88
  end
@@ -1,7 +1,9 @@
1
1
  # Bundler 2.0 does yet not have with_unbundled_env
2
- # Bundler 2.1 deprecates with_unbundled_env for with_unbundled_env
2
+ # Bundler 2.1 deprecates with_clean_env for with_unbundled_env
3
3
 
4
4
  require "bundler"
5
- def Bundler.with_unbundled_env(&block)
6
- with_clean_env(&block)
7
- end unless Bundler.respond_to?(:with_unbundled_env)
5
+ unless Bundler.respond_to?(:with_unbundled_env)
6
+ def Bundler.with_unbundled_env(&block)
7
+ with_clean_env(&block)
8
+ end
9
+ end
data/lib/jets/core_ext.rb CHANGED
@@ -1,4 +1,3 @@
1
1
  require "jets/core_ext/bundler"
2
2
  require "jets/core_ext/file"
3
3
  require "jets/core_ext/symbol"
4
- # Do not require jets/core_ext/kernel because it is a special case
@@ -0,0 +1,86 @@
1
+ class Jets::Dotenv
2
+ class Convention
3
+ extend Memoist
4
+ delegate :config, to: "Jets.project"
5
+ delegate :env, to: Jets
6
+
7
+ # ssm leaf name is the name of the leaf in the SSM parameter store.
8
+ # It can come from the key or the value.
9
+ #
10
+ # DATABASE_URL=SSM => DATABASE_URL
11
+ # DATABASE_URL=SSM:DB_URL => DB_URL
12
+ #
13
+ #
14
+ # Full SSM name. Example:
15
+ #
16
+ # /project/dev/DATABASE_URL
17
+ # /project/dev/DB_URL
18
+ #
19
+ def ssm_name(ssm_leaf_name)
20
+ if config.dotenv.ssm.convention_resolver
21
+ config.dotenv.ssm.convention_resolver.call(ssm_leaf_name)
22
+ else
23
+ "#{self.class.ssm_path}#{ssm_leaf_name}"
24
+ end
25
+ end
26
+
27
+ class << self
28
+ extend Memoist
29
+ delegate :config, to: "Jets.project"
30
+ delegate :env, to: Jets
31
+
32
+ def ssm_path
33
+ project = config.dotenv.ssm.project_name || Jets.project.name
34
+ # consider long_env config in the ssm_name only
35
+ ssm_env = config.dotenv.ssm.long_env_name ? resolved_long_env : resolved_env
36
+
37
+ "/#{project}/#{ssm_env}/"
38
+ end
39
+
40
+ # Does not use the envs.fallbakc and envs.unique settings.
41
+ def jets_env_path
42
+ project = config.dotenv.ssm.project_name || Jets.project.name
43
+ ssm_env = config.dotenv.ssm.long_env_name ? (long_env_map[Jets.env.to_sym] || Jets.env) : Jets.env
44
+
45
+ "/#{project}/#{ssm_env}/"
46
+ end
47
+
48
+ def ssm_env
49
+ config.dotenv.ssm.long_env_helper ? resolved_long_env : resolved_env
50
+ end
51
+
52
+ def resolved_env
53
+ if unique_env?(env)
54
+ env # IE: dev or prod
55
+ else
56
+ config.dotenv.ssm.envs.fallback # IE: dev
57
+ end
58
+ end
59
+
60
+ def unique_env?(env)
61
+ config.dotenv.ssm.envs.unique.nil? ||
62
+ config.dotenv.ssm.envs.unique == :all ||
63
+ config.dotenv.ssm.envs.unique.include?(env)
64
+ end
65
+
66
+ def resolved_long_env
67
+ short_env = resolved_env
68
+ long_env_map[short_env.to_sym] || short_env
69
+ end
70
+
71
+ # Jets 5.0 legacy
72
+ def long_env
73
+ short_env = Jets.env.to_s
74
+ long_env_map[short_env.to_sym] || short_env
75
+ end
76
+
77
+ def long_env_map
78
+ {
79
+ dev: "development",
80
+ prod: "production",
81
+ stag: "staging"
82
+ }
83
+ end
84
+ end
85
+ end
86
+ end
@@ -1,67 +1,90 @@
1
- require 'aws-sdk-ssm'
2
-
3
1
  class Jets::Dotenv
4
2
  class Ssm
5
- SSM_VARIABLE_REGEXP = /^ssm:(.*)/i
3
+ include Jets::AwsServices
4
+ include Jets::Util::Logging
6
5
 
7
- def initialize(variables={})
6
+ def initialize(variables)
8
7
  @variables = variables
9
8
  @missing = []
10
9
  end
11
10
 
12
11
  def interpolate!
13
- interpolated_variables = @variables.map do |key, value|
14
- if value[SSM_VARIABLE_REGEXP]
15
- value = fetch_ssm_value(key, $1)
16
- elsif value == "SSM"
17
- value = fetch_ssm_value(key, "SSM")
18
- end
19
-
20
- [key, value]
12
+ interpolated_vars = merged_variables.map do |key, value|
13
+ var = Var.new(key, value)
14
+ @missing << var if var.ssm_missing?
15
+ var
21
16
  end
22
17
 
23
- interpolated_variables.each do |key, value|
24
- ENV[key] = value
18
+ interpolated_vars.each do |var|
19
+ ENV[var.name] = var.value
25
20
  end
26
21
 
27
22
  if @missing.empty?
28
- interpolated_variables.to_h.sort_by { |k,_| k }.to_h # success
23
+ interpolated_vars.map { |var| [var.name, var.value] }.sort.to_h # success
29
24
  else
30
25
  message = "Error loading .env variables. No matching SSM parameters found for:\n".color(:red)
31
- message += @missing.map do |k,v,n|
32
- value = v == "SSM" ? v : "ssm:#{v}"
33
- " #{k}=#{value} # ssm name: #{n}"
26
+ message += @missing.map do |var|
27
+ " #{var.name}=#{var.raw_value} # ssm name: #{var.ssm_name}"
34
28
  end.join("\n")
35
29
  abort message
36
30
  end
37
31
  end
38
32
 
39
- def fetch_ssm_value(key, value)
40
- return "fake-ssm-value" if ENV['JETS_NO_INTERNET']
33
+ # Merges the variables from the dotenv files with the conventional ssm variables
34
+ # inferred by path, IE: /demo/dev/
35
+ # User defined config/jets/env files values win over inferred ssm variables.
36
+ def merged_variables
37
+ if Jets.project.dotenv.ssm.autoload.enable
38
+ ssm_vars = get_ssm_parameters_path(Convention.ssm_path) # IE: /demo/dev/
39
+ if Convention.jets_env_path != Convention.ssm_path
40
+ jets_env_vars = get_ssm_parameters_path(Convention.jets_env_path) # IE: /demo/sbx/
41
+ ssm_vars = ssm_vars.merge(jets_env_vars)
42
+ end
43
+
44
+ # skip list
45
+ ssm_vars = ssm_vars.delete_if { |k, v| skip_list?(k) }
41
46
 
42
- name = ssm_name(key, value)
43
- response = ssm.get_parameter(name: name, with_decryption: true)
44
- response.parameter.value
45
- rescue Aws::SSM::Errors::ParameterNotFound
46
- @missing << [key, value, name]
47
- ''
48
- rescue Aws::SSM::Errors::ValidationException
49
- puts "ERROR: Invalid SSM parameter name: #{name.inspect}".color(:red)
50
- raise
47
+ # optimization: no need to get vars with SSM values since they are already in ssm_vars
48
+ vars = @variables.dup.delete_if { |k, v| v == "SSM" && ssm_vars.key?(k) }
49
+ ssm_vars.merge(vars)
50
+ else
51
+ @variables
52
+ end
51
53
  end
52
54
 
53
- def ssm_name(key, value)
54
- if value == "SSM"
55
- "/#{Jets.project_name}/#{Jets.env}/#{key}"
56
- else
57
- value.start_with?("/") ?
58
- value :
59
- "/#{Jets.project_name}/#{Jets.env}/#{value}"
55
+ def skip_list?(key)
56
+ key = key.to_s
57
+ a = Jets.project.dotenv.ssm.autoload
58
+ skip_list = a.default_skip + a.skip
59
+ skip_list.detect do |i|
60
+ if i.is_a?(Regexp)
61
+ key.match(i)
62
+ else
63
+ key == i
64
+ end
60
65
  end
61
66
  end
62
67
 
63
- def ssm
64
- @ssm ||= Aws::SSM::Client.new
68
+ def get_ssm_parameters_path(path)
69
+ if ARGV.include?("dotenv") && ARGV.include?("list")
70
+ warn "# Autoloading SSM parameters within path #{path}"
71
+ end
72
+ parameters = {}
73
+ next_token = nil
74
+
75
+ loop do
76
+ resp = ssm.get_parameters_by_path(path: path, with_decryption: true, next_token: next_token)
77
+
78
+ resp.parameters.each do |param|
79
+ key = param.name.sub(path, "")
80
+ parameters[key] = param.value
81
+ end
82
+
83
+ next_token = resp.next_token
84
+ break unless next_token
85
+ end
86
+
87
+ parameters
65
88
  end
66
89
  end
67
90
  end
@@ -0,0 +1,60 @@
1
+ class Jets::Dotenv
2
+ class Var
3
+ extend Memoist
4
+ include Jets::AwsServices
5
+ include Jets::Util::Logging
6
+
7
+ attr_reader :raw_key, :raw_value
8
+ def initialize(raw_key, raw_value)
9
+ @raw_key, @raw_value = raw_key, raw_value
10
+ end
11
+
12
+ def name
13
+ @raw_key
14
+ end
15
+
16
+ def value
17
+ ssm? ? ssm_value : @raw_value
18
+ end
19
+ memoize :value
20
+
21
+ SSM_VARIABLE_REGEXP = /^SSM:(.*)/i
22
+ def ssm_name
23
+ if @raw_value == "SSM"
24
+ # "/#{Jets.project.name}/#{Jets.env}/#{@raw_key}"
25
+ Convention.new.ssm_name(@raw_key)
26
+ else
27
+ value = @raw_value.sub(/SSM:/i, "")
28
+ if value.start_with?("/")
29
+ value
30
+ else
31
+ # "/#{Jets.project.name}/#{Jets.env}/#{value}"
32
+ Convention.new.ssm_name(value)
33
+ end
34
+ end
35
+ end
36
+
37
+ def ssm_value
38
+ return "fake-ssm-value" if ENV["JETS_NO_INTERNET"]
39
+
40
+ name = ssm_name
41
+ resp = ssm.get_parameter(name: name, with_decryption: true)
42
+ resp.parameter.value
43
+ rescue Aws::SSM::Errors::ParameterNotFound
44
+ @ssm_missing = true
45
+ nil
46
+ rescue Aws::SSM::Errors::ValidationException
47
+ puts "ERROR: Invalid SSM parameter name: #{name.inspect}".color(:red)
48
+ raise
49
+ end
50
+
51
+ def ssm_missing?
52
+ value # trigger memoization
53
+ !!@ssm_missing
54
+ end
55
+
56
+ def ssm?
57
+ @raw_value&.start_with?("SSM")
58
+ end
59
+ end
60
+ end
data/lib/jets/dotenv.rb CHANGED
@@ -1,54 +1,59 @@
1
1
  require "dotenv"
2
2
 
3
- class Jets::Dotenv
4
- def self.load!(remote = false)
5
- new(remote).load!
6
- end
7
-
8
- def initialize(remote = false)
9
- @remote = ENV["JETS_ENV_REMOTE"] || remote
10
- end
11
-
12
- # @@vars cache to prevent multiple calls to Ssm
13
- # Tricky note: The cache also prevents the second call to Dotenv.load from
14
- # returning {} vars. Dotenv 3.0 will not return the vars if it has already been loaded
15
- # in the ENV. We want this side-effect due to the new way Dotenv 3.0 works.
16
- @@vars = nil
17
- def load!
18
- return @@vars if @@vars
19
- return if on_aws? # this prevents ssm calls if used in dotenv files
20
- vars = ::Dotenv.parse(*dotenv_files)
21
- @@vars = Ssm.new(vars).interpolate!
22
- end
23
-
24
- def on_aws?
25
- return true if ENV["ON_AWS"]
26
- !!ENV["_HANDLER"] # https://docs.aws.amazon.com/lambda/latest/dg/lambda-environment-variables.html
27
- end
28
-
29
- # dotenv files with the following precedence:
30
- #
31
- # - .env.development.jets_extra (highest)
32
- # - .env.development.remote (2nd highest, only if JETS_ENV_REMOTE=1)
33
- # - .env.development.local (unless JETS_ENV_REMOTE=1)
34
- # - .env.development
35
- # - .env.local - This file is loaded for all environments _except_ `test` or unless JETS_ENV_REMOTE=1
36
- # - .env - The original (lowest)
37
- #
38
- def dotenv_files
39
- files = []
40
-
41
- files << files << root.join(".env.#{Jets.env}.#{Jets.extra}") if Jets.extra
42
- files << root.join(".env.#{Jets.env}.remote") if @remote
43
- files << root.join(".env.#{Jets.env}.local") unless @remote
44
- files << root.join(".env.#{Jets.env}")
45
- files << root.join(".env.local") unless Jets.env.test? || @remote
46
- files << root.join(".env")
47
-
48
- files.compact.map(&:to_s)
49
- end
50
-
51
- def root
52
- Jets.root || Pathname.new(ENV["JETS_ROOT"] || Dir.pwd)
3
+ module Jets
4
+ class Dotenv
5
+ include Jets::AwsServices
6
+ include Jets::Util::Logging
7
+
8
+ def load!
9
+ return unless load?
10
+ variables = ::Dotenv.load(*dotenv_files)
11
+ Ssm.new(variables).interpolate!
12
+ end
13
+
14
+ def parse
15
+ return {} unless load?
16
+ variables = ::Dotenv.parse(*dotenv_files)
17
+ Ssm.new(variables).interpolate!
18
+ end
19
+
20
+ def load?
21
+ enabled = ENV["JETS_DOTENV"] != "0" # allow to disable with JETS_DOTENV=0
22
+ # Prevent ssm calls when on AWS Lambda but will call if on AWS CodeBuild
23
+ on_aws = (ENV["ON_AWS"] || ENV["_HANDLER"]) && !ENV["CODEBUILD_CI"]
24
+ enabled && !on_aws
25
+ end
26
+
27
+ # dotenv files with the following precedence:
28
+ #
29
+ # - config/jets/env/.env.dev.extra (highest)
30
+ # - config/jets/env/.env.dev
31
+ # - config/jets/env/.env - The original (lowest)
32
+ #
33
+ def dotenv_files
34
+ files = []
35
+
36
+ files << ".env.#{Jets.env}.#{Jets.extra}" if Jets.extra
37
+ files << ".env.#{Jets.env}"
38
+ files << ".env"
39
+
40
+ files.map! { |f| Jets.root.join("config/jets/env", f) }.compact
41
+ files.map(&:to_s)
42
+ end
43
+
44
+ class << self
45
+ extend Memoist
46
+ @@load = nil
47
+ def load!
48
+ @@load ||= new.load!
49
+ end
50
+ memoize :load!
51
+
52
+ @@parse = nil
53
+ def parse
54
+ @@parse ||= new.parse
55
+ end
56
+ memoize :parse
57
+ end
53
58
  end
54
59
  end