jets 5.0.14 → 6.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (769) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -1
  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 -19
  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 -6
  313. metadata +340 -563
  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 -352
  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 -104
  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 -89
  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 -130
  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.load(*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