jets 3.1.0 → 5.0.10

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 (650) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +5 -1
  4. data/CHANGELOG.md +190 -1
  5. data/CONTRIBUTING.md +1 -1
  6. data/Gemfile +1 -5
  7. data/LICENSE.txt +1 -1
  8. data/README.md +28 -50
  9. data/Rakefile +3 -3
  10. data/backers.md +0 -5
  11. data/engines/internal/app/controllers/jets/application_controller.rb +28 -0
  12. data/engines/internal/app/controllers/jets/bare_controller.rb +6 -0
  13. data/engines/internal/app/controllers/jets/health_controller.rb +55 -0
  14. data/engines/internal/app/controllers/jets/info_controller.rb +45 -0
  15. data/{lib/jets → engines}/internal/app/controllers/jets/mailers_controller.rb +12 -14
  16. data/{lib/jets → engines}/internal/app/controllers/jets/mount_controller.rb +6 -10
  17. data/{lib/jets → engines}/internal/app/controllers/jets/public_controller.rb +6 -2
  18. data/engines/internal/app/controllers/jets/welcome_controller.rb +9 -0
  19. data/engines/internal/app/functions/jets/base_path.rb +109 -0
  20. data/engines/internal/app/functions/jets/base_path_mapping.rb +191 -0
  21. data/engines/internal/app/jobs/jets/preheat_job.rb +68 -0
  22. data/engines/internal/app/views/jets/info/properties.html.erb +1 -0
  23. data/engines/internal/app/views/jets/info/routes.html.erb +10 -0
  24. data/{lib/jets → engines}/internal/app/views/jets/mailers/email.html.erb +37 -17
  25. data/engines/internal/app/views/jets/mailers/index.html.erb +8 -0
  26. data/engines/internal/app/views/jets/mailers/mailer.html.erb +6 -0
  27. data/{lib/jets/commands/templates/skeleton/public/index.html.tt → engines/internal/app/views/jets/welcome/index.html.erb} +8 -4
  28. data/engines/internal/app/views/layouts/application.html.erb +51 -0
  29. data/engines/internal/lib/internal/actiondispatch.rb +39 -0
  30. data/engines/internal/lib/internal/actionmailer.rb +51 -0
  31. data/engines/internal/lib/internal/actionview.rb +152 -0
  32. data/engines/internal/lib/internal/activerecord.rb +37 -0
  33. data/engines/internal/lib/internal/activesupport.rb +47 -0
  34. data/engines/internal/lib/internal/engine.rb +13 -0
  35. data/engines/internal/lib/internal/i18n_engine.rb +19 -0
  36. data/engines/internal/lib/internal/jets_controller.rb +46 -0
  37. data/engines/internal/lib/internal/overrides/debug_exceptions.rb +40 -0
  38. data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +62 -0
  39. data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +9 -0
  40. data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +70 -0
  41. data/engines/internal/lib/internal/turbines/helpers.rb +18 -0
  42. data/engines/internal/lib/internal/turbines/routes_helpers.rb +42 -0
  43. data/exe/jets +1 -10
  44. data/jets.gemspec +17 -13
  45. data/lib/jets/app_loader.rb +77 -0
  46. data/lib/jets/application/bootstrap.rb +100 -0
  47. data/lib/jets/application/configuration/defaults.rb +256 -0
  48. data/lib/jets/application/configuration.rb +494 -0
  49. data/lib/jets/application/default_middleware_stack.rb +140 -0
  50. data/lib/jets/application/dummy_erb_compiler.rb +18 -0
  51. data/lib/jets/application/finisher.rb +266 -0
  52. data/lib/jets/application/routes_reloader.rb +80 -0
  53. data/lib/jets/application.rb +515 -199
  54. data/lib/jets/authorizer/base.rb +1 -0
  55. data/lib/jets/authorizer/dsl.rb +15 -11
  56. data/lib/jets/authorizer/helpers/iam_helper.rb +13 -11
  57. data/lib/jets/autoloaders/gem.rb +70 -0
  58. data/lib/jets/autoloaders/inflector.rb +21 -0
  59. data/lib/jets/autoloaders.rb +38 -101
  60. data/lib/jets/aws_info.rb +2 -2
  61. data/lib/jets/aws_services/stack_status.rb +2 -2
  62. data/lib/jets/aws_services.rb +8 -0
  63. data/lib/jets/backtrace_cleaner.rb +27 -0
  64. data/lib/jets/booter.rb +30 -118
  65. data/lib/jets/builders/code_builder.rb +67 -125
  66. data/lib/jets/builders/code_size.rb +1 -0
  67. data/lib/jets/builders/gem_replacer.rb +6 -12
  68. data/lib/jets/builders/handler_generator.rb +43 -15
  69. data/lib/jets/builders/lambda_layer.rb +2 -7
  70. data/lib/jets/builders/purger.rb +1 -1
  71. data/lib/jets/builders/rack_packager.rb +1 -1
  72. data/lib/jets/builders/ruby_packager.rb +54 -10
  73. data/lib/jets/builders/shim_vars/app.rb +10 -6
  74. data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +33 -0
  75. data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +20 -0
  76. data/lib/jets/builders/templates/{handler.rb → handlers/one_lambda_per_method.rb} +6 -0
  77. data/lib/jets/bundle.rb +2 -9
  78. data/lib/jets/cfn/base.rb +82 -0
  79. data/lib/jets/cfn/builder/api/base.rb +12 -0
  80. data/lib/jets/cfn/{builders/api_deployment_builder.rb → builder/api/deployment.rb} +11 -21
  81. data/lib/jets/cfn/builder/api/gateway.rb +104 -0
  82. data/lib/jets/cfn/builder/api/mapping.rb +54 -0
  83. data/lib/jets/cfn/builder/api/methods.rb +72 -0
  84. data/lib/jets/cfn/builder/api/paged.rb +30 -0
  85. data/lib/jets/cfn/builder/api/pages/base.rb +105 -0
  86. data/lib/jets/cfn/builder/api/pages/methods.rb +17 -0
  87. data/lib/jets/cfn/builder/api/pages/page.rb +19 -0
  88. data/lib/jets/cfn/builder/api/pages/resources.rb +21 -0
  89. data/lib/jets/cfn/builder/api/resources.rb +40 -0
  90. data/lib/jets/cfn/{builders/authorizer_builder.rb → builder/authorizer.rb} +16 -19
  91. data/lib/jets/cfn/builder/controller.rb +28 -0
  92. data/lib/jets/cfn/builder/function.rb +9 -0
  93. data/lib/jets/cfn/builder/interface.rb +146 -0
  94. data/lib/jets/cfn/builder/job.rb +10 -0
  95. data/lib/jets/cfn/builder/nested.rb +130 -0
  96. data/lib/jets/cfn/builder/one_controller.rb +53 -0
  97. data/lib/jets/cfn/{builders/parent_builder → builder/parent}/stagger.rb +1 -1
  98. data/lib/jets/cfn/builder/parent.rb +149 -0
  99. data/lib/jets/cfn/builder/post_process.rb +25 -0
  100. data/lib/jets/cfn/{builders/rule_builder.rb → builder/rule.rb} +4 -8
  101. data/lib/jets/cfn/{builders/shared_builder.rb → builder/shared.rb} +5 -4
  102. data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
  103. data/lib/jets/{commands/build.rb → cfn/builder.rb} +58 -80
  104. data/lib/jets/cfn/deployment.rb +85 -0
  105. data/lib/jets/cfn/download.rb +39 -0
  106. data/lib/jets/cfn/params/api/base.rb +39 -0
  107. data/lib/jets/cfn/params/api/cors.rb +10 -0
  108. data/lib/jets/cfn/params/api/methods.rb +69 -0
  109. data/lib/jets/cfn/params/api/resources.rb +28 -0
  110. data/lib/jets/{resource/child_stack/common_parameters.rb → cfn/params/common.rb} +4 -4
  111. data/lib/jets/{resource → cfn/resource}/api_gateway/authorizer.rb +21 -21
  112. data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +57 -0
  113. data/lib/jets/{resource → cfn/resource}/api_gateway/base_path/mapping.rb +13 -12
  114. data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +70 -0
  115. data/lib/jets/{resource → cfn/resource}/api_gateway/deployment.rb +13 -20
  116. data/lib/jets/{resource → cfn/resource}/api_gateway/domain_name.rb +11 -11
  117. data/lib/jets/{resource → cfn/resource}/api_gateway/method/authorization.rb +1 -1
  118. data/lib/jets/cfn/resource/api_gateway/method.rb +92 -0
  119. data/lib/jets/{resource → cfn/resource}/api_gateway/resource.rb +14 -10
  120. data/lib/jets/cfn/resource/api_gateway/resource_id.rb +25 -0
  121. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/change_detection.rb +1 -1
  122. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id/message.rb +14 -4
  123. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +4 -4
  124. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +15 -41
  125. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +3 -3
  126. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +6 -6
  127. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/to.rb +8 -3
  128. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/variable.rb +2 -2
  129. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +27 -0
  130. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
  131. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
  132. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
  133. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +22 -12
  134. data/lib/jets/{resource → cfn/resource}/associated.rb +1 -1
  135. data/lib/jets/{resource → cfn/resource}/config/config_rule.rb +18 -18
  136. data/lib/jets/{resource → cfn/resource}/config/managed_rule.rb +5 -5
  137. data/lib/jets/{resource → cfn/resource}/events/rule.rb +10 -10
  138. data/lib/jets/{resource → cfn/resource}/iam/application_role.rb +4 -4
  139. data/lib/jets/cfn/resource/iam/base_role_definition.rb +56 -0
  140. data/lib/jets/{resource → cfn/resource}/iam/class_role.rb +5 -5
  141. data/lib/jets/{resource → cfn/resource}/iam/function_role.rb +6 -6
  142. data/lib/jets/{resource → cfn/resource}/iam/managed_policy.rb +1 -1
  143. data/lib/jets/cfn/resource/iam/policy.rb +31 -0
  144. data/lib/jets/{resource → cfn/resource}/iam/policy_document.rb +10 -9
  145. data/lib/jets/{resource → cfn/resource}/iot/topic_rule.rb +10 -10
  146. data/lib/jets/{resource → cfn/resource}/lambda/event_source_mapping.rb +9 -9
  147. data/lib/jets/cfn/resource/lambda/function/controller.rb +21 -0
  148. data/lib/jets/{resource → cfn/resource}/lambda/function/environment.rb +9 -7
  149. data/lib/jets/cfn/resource/lambda/function.rb +266 -0
  150. data/lib/jets/{resource → cfn/resource}/lambda/gem_layer.rb +2 -2
  151. data/lib/jets/{resource → cfn/resource}/lambda/layer_version.rb +10 -10
  152. data/lib/jets/cfn/resource/lambda/permission.rb +51 -0
  153. data/lib/jets/cfn/resource/logs/subscription_filter.rb +31 -0
  154. data/lib/jets/cfn/resource/nested/api/base.rb +4 -0
  155. data/lib/jets/cfn/resource/nested/api/deployment.rb +53 -0
  156. data/lib/jets/cfn/resource/nested/api/gateway.rb +15 -0
  157. data/lib/jets/cfn/resource/nested/api/mapping.rb +33 -0
  158. data/lib/jets/cfn/resource/nested/api/methods.rb +30 -0
  159. data/lib/jets/cfn/resource/nested/api/page.rb +8 -0
  160. data/lib/jets/cfn/resource/nested/api/resources.rb +22 -0
  161. data/lib/jets/{resource/child_stack → cfn/resource/nested}/app_class.rb +15 -48
  162. data/lib/jets/{resource/child_stack → cfn/resource/nested}/authorizer.rb +8 -14
  163. data/lib/jets/cfn/resource/nested/base.rb +38 -0
  164. data/lib/jets/cfn/resource/nested/one_controller.rb +48 -0
  165. data/lib/jets/{resource/child_stack → cfn/resource/nested}/shared.rb +10 -16
  166. data/lib/jets/cfn/resource/one/function.rb +66 -0
  167. data/lib/jets/cfn/resource/one/permission.rb +17 -0
  168. data/lib/jets/{resource → cfn/resource}/replacer.rb +26 -27
  169. data/lib/jets/{resource → cfn/resource}/route53/record_set.rb +18 -18
  170. data/lib/jets/{resource → cfn/resource}/s3/bucket.rb +4 -4
  171. data/lib/jets/cfn/resource/s3/jets_bucket.rb +68 -0
  172. data/lib/jets/{resource → cfn/resource}/sns/subscription.rb +8 -8
  173. data/lib/jets/{resource → cfn/resource}/sns/topic.rb +10 -10
  174. data/lib/jets/{resource → cfn/resource}/sns/topic_policy.rb +13 -13
  175. data/lib/jets/{resource → cfn/resource}/sqs/queue.rb +5 -5
  176. data/lib/jets/{resource → cfn/resource}/standardizer.rb +8 -9
  177. data/lib/jets/cfn/resource.rb +8 -0
  178. data/lib/jets/cfn/ship.rb +33 -29
  179. data/lib/jets/cfn/status.rb +46 -3
  180. data/lib/jets/cfn/template.rb +89 -0
  181. data/lib/jets/cfn/upload.rb +29 -23
  182. data/lib/jets/cli.rb +28 -203
  183. data/lib/jets/command/actions.rb +49 -0
  184. data/lib/jets/command/api_helpers.rb +42 -0
  185. data/lib/jets/command/aws_helpers.rb +26 -0
  186. data/lib/jets/command/base.rb +209 -0
  187. data/lib/jets/command/behavior.rb +83 -0
  188. data/lib/jets/command/environment_argument.rb +42 -0
  189. data/lib/jets/command/help/call.md +48 -0
  190. data/lib/jets/{commands → command}/help/deploy.md +1 -1
  191. data/lib/jets/command/help/gems/check.md +1 -0
  192. data/lib/jets/command/help/logs.md +21 -0
  193. data/lib/jets/{commands → command}/help/new.md +3 -4
  194. data/lib/jets/command/help/projects.md +6 -0
  195. data/lib/jets/command/help/releases.md +19 -0
  196. data/lib/jets/command/help/rollback.md +5 -0
  197. data/lib/jets/command/help/routes.md +15 -0
  198. data/lib/jets/command/help/runner.md +40 -0
  199. data/lib/jets/command/help/stacks.md +6 -0
  200. data/lib/jets/command/help.rb +17 -0
  201. data/lib/jets/command/helpers/editor.rb +35 -0
  202. data/lib/jets/command/rake_decorate.rb +38 -0
  203. data/lib/jets/command.rb +142 -0
  204. data/lib/jets/commands/application/application_command.rb +46 -0
  205. data/lib/jets/commands/build/build_command.rb +33 -0
  206. data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
  207. data/lib/jets/commands/call/autoload_guesser.rb +2 -2
  208. data/lib/jets/commands/call/base_guesser.rb +5 -5
  209. data/lib/jets/commands/call/call_command.rb +27 -0
  210. data/lib/jets/commands/call/caller.rb +184 -0
  211. data/lib/jets/commands/call/guesser.rb +1 -1
  212. data/lib/jets/commands/clean/base.rb +1 -1
  213. data/lib/jets/commands/clean/build.rb +1 -1
  214. data/lib/jets/commands/clean/clean_command.rb +15 -0
  215. data/lib/jets/commands/clean/log.rb +4 -4
  216. data/lib/jets/commands/configure/configure_command.rb +9 -0
  217. data/lib/jets/commands/console/console_command.rb +38 -0
  218. data/lib/jets/commands/credentials/USAGE +103 -0
  219. data/lib/jets/commands/credentials/credentials_command/diffing.rb +51 -0
  220. data/lib/jets/commands/credentials/credentials_command.rb +139 -0
  221. data/lib/jets/commands/db/system/change/change_command.rb +24 -0
  222. data/lib/jets/commands/dbconsole/dbconsole_command.rb +184 -0
  223. data/lib/jets/commands/degenerate/degenerate_command.rb +21 -0
  224. data/lib/jets/commands/delete/delete_command.rb +154 -0
  225. data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +34 -53
  226. data/lib/jets/commands/dev/dev_command.rb +19 -0
  227. data/lib/jets/commands/{dotenv.rb → dotenv/dotenv_command.rb} +2 -2
  228. data/lib/jets/commands/encrypted/USAGE +46 -0
  229. data/lib/jets/commands/encrypted/encrypted_command.rb +87 -0
  230. data/lib/jets/commands/gems/gems_command.rb +14 -0
  231. data/lib/jets/commands/generate/generate_command.rb +95 -0
  232. data/lib/jets/commands/help/USAGE +20 -0
  233. data/lib/jets/commands/help/help_command.rb +15 -0
  234. data/lib/jets/commands/initializers/initializers_command.rb +19 -0
  235. data/lib/jets/commands/logs/logs_command.rb +45 -0
  236. data/lib/jets/commands/new/new_command.rb +19 -0
  237. data/lib/jets/commands/notes/notes_command.rb +30 -0
  238. data/lib/jets/commands/plugin/plugin_command.rb +45 -0
  239. data/lib/jets/commands/projects/projects_command.rb +30 -0
  240. data/lib/jets/commands/rake/rake_command.rb +59 -0
  241. data/lib/jets/commands/releases/releases_command.rb +124 -0
  242. data/lib/jets/commands/rollback/rollback_command.rb +33 -0
  243. data/lib/jets/commands/routes/routes_command.rb +19 -0
  244. data/lib/jets/commands/runner/runner_command.rb +60 -0
  245. data/lib/jets/commands/server/server_command.rb +291 -0
  246. data/lib/jets/commands/stacks/stacks_command.rb +39 -0
  247. data/lib/jets/commands/status/status_command.rb +16 -0
  248. data/lib/jets/commands/url/url_command.rb +92 -0
  249. data/lib/jets/commands/version/version_command.rb +11 -0
  250. data/lib/jets/commands.rb +17 -0
  251. data/lib/jets/configuration.rb +166 -0
  252. data/lib/jets/controller/base.rb +105 -183
  253. data/lib/jets/controller/compat/abstract_controller/base.rb +126 -0
  254. data/lib/jets/controller/compat/action_controller/metal.rb +99 -0
  255. data/lib/jets/controller/compat/caching.rb +13 -0
  256. data/lib/jets/controller/compat/future.rb +13 -0
  257. data/lib/jets/controller/compat/route_set.rb +47 -0
  258. data/lib/jets/controller/decorate/apigw_stage.rb +39 -0
  259. data/lib/jets/controller/{authorization.rb → decorate/authorization.rb} +1 -1
  260. data/lib/jets/controller/decorate/logging.rb +90 -0
  261. data/lib/jets/controller/decorate/redirecting.rb +16 -0
  262. data/lib/jets/controller/decorate/url_for.rb +10 -0
  263. data/lib/jets/controller/{rack/adapter.rb → handler/apigw.rb} +36 -37
  264. data/lib/jets/controller/handler.rb +41 -0
  265. data/lib/jets/controller/middleware/main.rb +16 -8
  266. data/lib/jets/controller/middleware/{local/api_gateway.rb → mimic/apigw.rb} +41 -4
  267. data/lib/jets/controller/middleware/mimic/lambda_context.rb +44 -0
  268. data/lib/jets/controller/middleware/{local.rb → mimic.rb} +36 -51
  269. data/lib/jets/controller/rack_adapter/action.rb +35 -0
  270. data/lib/jets/controller/{rack → rack_adapter}/env.rb +39 -18
  271. data/lib/jets/controller/request/compat/params.rb +144 -0
  272. data/lib/jets/controller/request/compat/request.rb +125 -0
  273. data/lib/jets/controller/request.rb +35 -18
  274. data/lib/jets/controller/response/compat/response.rb +67 -0
  275. data/lib/jets/controller/response.rb +91 -8
  276. data/lib/jets/core.rb +159 -52
  277. data/lib/jets/core_ext/file.rb +9 -0
  278. data/lib/jets/core_ext/kernel.rb +2 -2
  279. data/lib/jets/core_ext/symbol.rb +5 -0
  280. data/lib/jets/core_ext.rb +4 -0
  281. data/lib/jets/dev_caching.rb +44 -0
  282. data/lib/jets/dotenv/ssm.rb +6 -3
  283. data/lib/jets/dotenv.rb +4 -3
  284. data/lib/jets/engine/configuration.rb +96 -0
  285. data/lib/jets/engine/turbines.rb +23 -0
  286. data/lib/jets/engine.rb +380 -0
  287. data/lib/jets/erb.rb +1 -1
  288. data/lib/jets/exception_reporting.rb +43 -0
  289. data/lib/jets/generators/job/job_generator.rb +41 -0
  290. data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +8 -0
  291. data/lib/jets/generators/job/templates/event_types/iot.rb.tt +8 -0
  292. data/lib/jets/generators/job/templates/event_types/kinesis.rb.tt +9 -0
  293. data/lib/jets/generators/job/templates/event_types/log.rb.tt +9 -0
  294. data/lib/jets/generators/job/templates/event_types/rule.rb.tt +23 -0
  295. data/lib/jets/generators/job/templates/event_types/s3.rb.tt +11 -0
  296. data/lib/jets/generators/job/templates/event_types/scheduled.rb.tt +8 -0
  297. data/lib/jets/generators/job/templates/event_types/sns.rb.tt +11 -0
  298. data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +11 -0
  299. data/lib/jets/generators/overrides/app/USAGE +38 -0
  300. data/lib/jets/generators/overrides/app/app_generator.rb +148 -0
  301. data/lib/jets/generators/overrides/app/helpers.rb +139 -0
  302. data/lib/jets/generators/overrides/app/templates/.env +10 -0
  303. data/lib/jets/{commands/templates/skeleton/.gitignore → generators/overrides/app/templates/.gitignore.tt} +2 -1
  304. data/lib/jets/generators/overrides/app/templates/.jetsignore +6 -0
  305. data/lib/jets/generators/overrides/app/templates/Gemfile.tt +28 -0
  306. data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
  307. data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
  308. data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
  309. data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
  310. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
  311. data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
  312. data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
  313. data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
  314. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
  315. data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
  316. data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +21 -0
  317. data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
  318. data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
  319. data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
  320. data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
  321. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
  322. data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
  323. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
  324. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
  325. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
  326. data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
  327. data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
  328. data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
  329. data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
  330. data/lib/jets/generators.rb +112 -0
  331. data/lib/jets/inflections.rb +1 -1
  332. data/lib/jets/info.rb +116 -0
  333. data/lib/jets/initializable.rb +95 -0
  334. data/lib/jets/job/base.rb +11 -8
  335. data/lib/jets/job/dsl/dynamodb_event.rb +25 -14
  336. data/lib/jets/job/dsl/event_source_mapping.rb +1 -1
  337. data/lib/jets/job/dsl/iot_event.rb +6 -6
  338. data/lib/jets/job/dsl/kinesis_event.rb +10 -9
  339. data/lib/jets/job/dsl/log_event.rb +2 -2
  340. data/lib/jets/job/dsl/rule_event.rb +7 -4
  341. data/lib/jets/job/dsl/s3_event.rb +5 -5
  342. data/lib/jets/job/dsl/sns_event.rb +6 -6
  343. data/lib/jets/job/dsl/sqs_event.rb +15 -14
  344. data/lib/jets/job/helpers/{kinesis_event_helper.rb → kinesis_event.rb} +5 -1
  345. data/lib/jets/job/helpers/{log_event_helper.rb → log_event.rb} +5 -1
  346. data/lib/jets/job/helpers/s3_event.rb +50 -0
  347. data/lib/jets/job/helpers/sns_event.rb +26 -0
  348. data/lib/jets/job/helpers/sqs_event.rb +26 -0
  349. data/lib/jets/klass.rb +5 -6
  350. data/lib/jets/lambda/definition.rb +118 -0
  351. data/lib/jets/lambda/dsl/warnings.rb +57 -0
  352. data/lib/jets/lambda/dsl.rb +70 -53
  353. data/lib/jets/lambda/function.rb +3 -3
  354. data/lib/jets/lambda/function_constructor.rb +6 -6
  355. data/lib/jets/lambda/functions.rb +36 -1
  356. data/lib/jets/mega/hash_converter.rb +2 -2
  357. data/lib/jets/mega/request/source.rb +1 -2
  358. data/lib/jets/mega/request.rb +4 -4
  359. data/lib/jets/names.rb +79 -0
  360. data/lib/jets/overrides/dummy/rails.rb +11 -0
  361. data/lib/jets/overrides/lambda/marshaller.rb +10 -0
  362. data/lib/jets/overrides/puma.rb +10 -0
  363. data/lib/jets/paths.rb +243 -0
  364. data/lib/jets/{poly_fun → poly}/base_executor.rb +13 -13
  365. data/lib/jets/{poly_fun → poly}/lambda_executor.rb +2 -2
  366. data/lib/jets/{poly_fun → poly}/node_error.rb +1 -1
  367. data/lib/jets/{poly_fun → poly}/node_executor.rb +4 -4
  368. data/lib/jets/{poly_fun → poly}/python_error.rb +1 -1
  369. data/lib/jets/{poly_fun → poly}/python_executor.rb +2 -2
  370. data/lib/jets/{poly_fun.rb → poly.rb} +12 -12
  371. data/lib/jets/preheat.rb +26 -33
  372. data/lib/jets/processors/deducer.rb +2 -2
  373. data/lib/jets/processors/main_processor.rb +6 -13
  374. data/lib/jets/rack/logger.rb +77 -0
  375. data/lib/jets/router/compat/route_set.rb +177 -0
  376. data/lib/jets/router/dsl/mount.rb +40 -6
  377. data/lib/jets/router/dsl.rb +125 -105
  378. data/lib/jets/router/engine_mount.rb +36 -0
  379. data/lib/jets/router/help.rb +130 -0
  380. data/lib/jets/router/helpers/named_routes/add_full_url.rb +13 -0
  381. data/lib/jets/router/helpers/named_routes/generated.rb +197 -0
  382. data/lib/jets/router/helpers/named_routes/proxy.rb +66 -0
  383. data/lib/jets/router/matcher.rb +140 -17
  384. data/lib/jets/router/resources/options.rb +6 -4
  385. data/lib/jets/router/route/after_initialize.rb +64 -0
  386. data/lib/jets/router/route/as.rb +93 -0
  387. data/lib/jets/router/route/authorizer.rb +1 -0
  388. data/lib/jets/router/route/compat.rb +45 -0
  389. data/lib/jets/router/route/info.rb +74 -0
  390. data/lib/jets/router/route/node.rb +137 -0
  391. data/lib/jets/router/route/path.rb +93 -0
  392. data/lib/jets/router/route.rb +109 -90
  393. data/lib/jets/router/route_set.rb +214 -0
  394. data/lib/jets/router/scope.rb +204 -69
  395. data/lib/jets/router/state.rb +67 -0
  396. data/lib/jets/router/util.rb +1 -31
  397. data/lib/jets/router.rb +64 -150
  398. data/lib/jets/ruby_version_check.rb +15 -0
  399. data/lib/jets/rule/base.rb +1 -0
  400. data/lib/jets/rule/dsl.rb +7 -7
  401. data/lib/jets/secrets.rb +110 -0
  402. data/lib/jets/spec_helpers/controllers/request.rb +22 -16
  403. data/lib/jets/spec_helpers/controllers.rb +32 -24
  404. data/lib/jets/spec_helpers.rb +0 -6
  405. data/lib/jets/stack/builder.rb +3 -2
  406. data/lib/jets/stack/definition.rb +1 -4
  407. data/lib/jets/stack/function.rb +4 -2
  408. data/lib/jets/stack/main/dsl/cloudwatch.rb +4 -4
  409. data/lib/jets/stack/main/dsl/kinesis.rb +2 -2
  410. data/lib/jets/stack/main/dsl/lambda.rb +26 -19
  411. data/lib/jets/stack/main/dsl/sqs.rb +1 -1
  412. data/lib/jets/stack/output/lookup.rb +6 -2
  413. data/lib/jets/stack/output.rb +2 -2
  414. data/lib/jets/stack/parameter.rb +2 -2
  415. data/lib/jets/stack/resource.rb +3 -3
  416. data/lib/jets/stack/s3_event.rb +51 -37
  417. data/lib/jets/stack.rb +1 -1
  418. data/lib/jets/tasks/engine.rake +85 -0
  419. data/lib/jets/tasks/framework.rake +66 -0
  420. data/lib/jets/tasks/log.rake +41 -0
  421. data/lib/jets/tasks/middleware.rake +9 -0
  422. data/lib/jets/tasks/misc.rake +81 -0
  423. data/lib/jets/tasks/statistics.rake +37 -0
  424. data/lib/jets/tasks/tmp.rake +51 -0
  425. data/lib/jets/tasks/yarn.rake +29 -0
  426. data/lib/jets/tasks/zeitwerk.rake +61 -0
  427. data/lib/jets/tasks.rb +18 -0
  428. data/lib/jets/tmp_loader.rb +1 -1
  429. data/lib/jets/turbine/configurable.rb +36 -0
  430. data/lib/jets/turbine/configuration.rb +101 -0
  431. data/lib/jets/turbine.rb +164 -20
  432. data/lib/jets/util/camelize.rb +24 -0
  433. data/lib/jets/util/yamler.rb +18 -0
  434. data/lib/jets/version.rb +1 -1
  435. data/lib/jets.rb +9 -14
  436. metadata +462 -349
  437. data/.python-version +0 -1
  438. data/.ruby-version +0 -1
  439. data/bin/release +0 -9
  440. data/lib/jets/application/defaults.rb +0 -200
  441. data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +0 -16
  442. data/lib/jets/builders/reconfigure_rails.rb +0 -114
  443. data/lib/jets/cfn/builders/api_gateway_builder.rb +0 -123
  444. data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
  445. data/lib/jets/cfn/builders/base_child_builder.rb +0 -69
  446. data/lib/jets/cfn/builders/controller_builder.rb +0 -50
  447. data/lib/jets/cfn/builders/function_builder.rb +0 -14
  448. data/lib/jets/cfn/builders/interface.rb +0 -133
  449. data/lib/jets/cfn/builders/job_builder.rb +0 -14
  450. data/lib/jets/cfn/builders/parent_builder.rb +0 -130
  451. data/lib/jets/cfn/built_template.rb +0 -15
  452. data/lib/jets/cfn/template_source.rb +0 -61
  453. data/lib/jets/commands/base.rb +0 -145
  454. data/lib/jets/commands/call.rb +0 -182
  455. data/lib/jets/commands/clean.rb +0 -19
  456. data/lib/jets/commands/configure.rb +0 -51
  457. data/lib/jets/commands/console.rb +0 -12
  458. data/lib/jets/commands/db/environment-task.rake +0 -3
  459. data/lib/jets/commands/db/tasks/dummy/app.rb +0 -25
  460. data/lib/jets/commands/db/tasks/dummy/config.rb +0 -14
  461. data/lib/jets/commands/db/tasks.rb +0 -34
  462. data/lib/jets/commands/db.rb +0 -13
  463. data/lib/jets/commands/dbconsole.rb +0 -134
  464. data/lib/jets/commands/delete.rb +0 -136
  465. data/lib/jets/commands/dynamodb/migrate.rb +0 -9
  466. data/lib/jets/commands/dynamodb/migrator.rb +0 -36
  467. data/lib/jets/commands/dynamodb.rb +0 -19
  468. data/lib/jets/commands/gems.rb +0 -13
  469. data/lib/jets/commands/help/call.md +0 -69
  470. data/lib/jets/commands/help/dynamodb/generate.md +0 -52
  471. data/lib/jets/commands/help/dynamodb/migrate.md +0 -4
  472. data/lib/jets/commands/help/gems/check.md +0 -6
  473. data/lib/jets/commands/help/routes.md +0 -16
  474. data/lib/jets/commands/help/runner.md +0 -17
  475. data/lib/jets/commands/help.rb +0 -9
  476. data/lib/jets/commands/import/base.rb +0 -49
  477. data/lib/jets/commands/import/cheatsheet.rb +0 -35
  478. data/lib/jets/commands/import/rack.rb +0 -16
  479. data/lib/jets/commands/import/rails.rb +0 -74
  480. data/lib/jets/commands/import/sequence.rb +0 -90
  481. data/lib/jets/commands/import/templates/config/database.yml +0 -30
  482. data/lib/jets/commands/import/templates/submodules-cheatsheet.md +0 -89
  483. data/lib/jets/commands/import.rb +0 -12
  484. data/lib/jets/commands/main.rb +0 -166
  485. data/lib/jets/commands/markdown/creator.rb +0 -58
  486. data/lib/jets/commands/markdown/index.rb +0 -27
  487. data/lib/jets/commands/markdown/page.rb +0 -125
  488. data/lib/jets/commands/markdown/shell.rb +0 -11
  489. data/lib/jets/commands/new.rb +0 -173
  490. data/lib/jets/commands/rake_command.rb +0 -61
  491. data/lib/jets/commands/rake_tasks.rb +0 -50
  492. data/lib/jets/commands/runner.rb +0 -16
  493. data/lib/jets/commands/sequence.rb +0 -105
  494. data/lib/jets/commands/stack_info.rb +0 -30
  495. data/lib/jets/commands/templates/skeleton/.env.development.tt +0 -3
  496. data/lib/jets/commands/templates/skeleton/.env.test +0 -3
  497. data/lib/jets/commands/templates/skeleton/.env.tt +0 -3
  498. data/lib/jets/commands/templates/skeleton/.jetskeep +0 -1
  499. data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -40
  500. data/lib/jets/commands/templates/skeleton/Procfile +0 -7
  501. data/lib/jets/commands/templates/skeleton/Rakefile +0 -2
  502. data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +0 -2
  503. data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +0 -26
  504. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -71
  505. data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +0 -22
  506. data/lib/jets/commands/templates/skeleton/config/environments/development.rb +0 -7
  507. data/lib/jets/commands/templates/skeleton/config/environments/production.rb +0 -9
  508. data/lib/jets/commands/templates/skeleton/config/environments/test.rb +0 -7
  509. data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +0 -23
  510. data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +0 -24
  511. data/lib/jets/commands/upgrade/templates/bin/webpack +0 -19
  512. data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
  513. data/lib/jets/commands/upgrade/version1.rb +0 -136
  514. data/lib/jets/commands/upgrade.rb +0 -105
  515. data/lib/jets/commands/url.rb +0 -69
  516. data/lib/jets/commands/webpacker_template.rb +0 -18
  517. data/lib/jets/controller/callbacks.rb +0 -73
  518. data/lib/jets/controller/cookies/jar.rb +0 -269
  519. data/lib/jets/controller/cookies.rb +0 -38
  520. data/lib/jets/controller/error/invalid_authenticity_token.rb +0 -6
  521. data/lib/jets/controller/error.rb +0 -4
  522. data/lib/jets/controller/forgery_protection.rb +0 -43
  523. data/lib/jets/controller/layout.rb +0 -17
  524. data/lib/jets/controller/middleware/cors.rb +0 -60
  525. data/lib/jets/controller/middleware/local/mimic_aws_call.rb +0 -38
  526. data/lib/jets/controller/middleware/local/route_matcher.rb +0 -22
  527. data/lib/jets/controller/middleware/reloader.rb +0 -15
  528. data/lib/jets/controller/parameters_filter.rb +0 -29
  529. data/lib/jets/controller/params.rb +0 -117
  530. data/lib/jets/controller/redirection.rb +0 -61
  531. data/lib/jets/controller/rendering/rack_renderer.rb +0 -267
  532. data/lib/jets/controller/rendering.rb +0 -96
  533. data/lib/jets/controller/stage.rb +0 -34
  534. data/lib/jets/controller.rb +0 -3
  535. data/lib/jets/db.rb +0 -15
  536. data/lib/jets/generator/templates/active_job/job/templates/job.rb.tt +0 -8
  537. data/lib/jets/generator/templates/erb/controller/view.html.erb +0 -2
  538. data/lib/jets/generator/templates/erb/scaffold/index.html.erb +0 -29
  539. data/lib/jets/generator/templates/rails/controller/controller.rb +0 -13
  540. data/lib/jets/generator/templates/rails/helper/helper.rb +0 -4
  541. data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +0 -67
  542. data/lib/jets/generator.rb +0 -112
  543. data/lib/jets/internal/app/controllers/jets/bare_controller.rb +0 -16
  544. data/lib/jets/internal/app/controllers/jets/rack_controller.rb +0 -12
  545. data/lib/jets/internal/app/functions/jets/base_path.rb +0 -18
  546. data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +0 -100
  547. data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
  548. data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -70
  549. data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
  550. data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
  551. data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
  552. data/lib/jets/job/helpers/s3_event_helper.rb +0 -13
  553. data/lib/jets/lambda/task.rb +0 -111
  554. data/lib/jets/logger.rb +0 -21
  555. data/lib/jets/middleware/configurator.rb +0 -84
  556. data/lib/jets/middleware/default_stack.rb +0 -53
  557. data/lib/jets/middleware/layer.rb +0 -34
  558. data/lib/jets/middleware/stack.rb +0 -77
  559. data/lib/jets/middleware.rb +0 -33
  560. data/lib/jets/naming.rb +0 -63
  561. data/lib/jets/overrides/rails/action_controller.rb +0 -13
  562. data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
  563. data/lib/jets/overrides/rails/common_methods.rb +0 -13
  564. data/lib/jets/overrides/rails/migration_checker.rb +0 -34
  565. data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
  566. data/lib/jets/overrides/rails/url_helper.rb +0 -88
  567. data/lib/jets/overrides/rails.rb +0 -6
  568. data/lib/jets/rack_server.rb +0 -86
  569. data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
  570. data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
  571. data/lib/jets/resource/api_gateway/cors.rb +0 -61
  572. data/lib/jets/resource/api_gateway/method.rb +0 -102
  573. data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
  574. data/lib/jets/resource/base.rb +0 -28
  575. data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
  576. data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
  577. data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
  578. data/lib/jets/resource/child_stack/api_resource.rb +0 -54
  579. data/lib/jets/resource/child_stack/base.rb +0 -24
  580. data/lib/jets/resource/iam/base_role_definition.rb +0 -47
  581. data/lib/jets/resource/lambda/function.rb +0 -221
  582. data/lib/jets/resource/logs/subscription_filter.rb +0 -31
  583. data/lib/jets/resource/permission.rb +0 -45
  584. data/lib/jets/resource.rb +0 -71
  585. data/lib/jets/router/error.rb +0 -4
  586. data/lib/jets/router/finder.rb +0 -47
  587. data/lib/jets/router/helpers/core_helper.rb +0 -27
  588. data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
  589. data/lib/jets/router/helpers.rb +0 -4
  590. data/lib/jets/router/method_creator/code.rb +0 -99
  591. data/lib/jets/router/method_creator/edit.rb +0 -12
  592. data/lib/jets/router/method_creator/generic.rb +0 -11
  593. data/lib/jets/router/method_creator/index.rb +0 -48
  594. data/lib/jets/router/method_creator/new.rb +0 -12
  595. data/lib/jets/router/method_creator/root.rb +0 -15
  596. data/lib/jets/router/method_creator/show.rb +0 -12
  597. data/lib/jets/router/method_creator.rb +0 -50
  598. data/lib/jets/turbo/database_yaml.rb +0 -41
  599. data/lib/jets/turbo/project/.gitignore +0 -12
  600. data/lib/jets/turbo/project/.jetskeep +0 -1
  601. data/lib/jets/turbo/project/Gemfile +0 -16
  602. data/lib/jets/turbo/project/Rakefile +0 -2
  603. data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
  604. data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
  605. data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
  606. data/lib/jets/turbo/project/config/application.rb +0 -5
  607. data/lib/jets/turbo/project/config/routes.rb +0 -4
  608. data/lib/jets/turbo/project/config.ru +0 -5
  609. data/lib/jets/turbo/rails.rb +0 -127
  610. data/lib/jets/turbo/templates/config/database.yml +0 -30
  611. data/lib/jets/turbo.rb +0 -56
  612. data/readme/prerelease.md +0 -6
  613. data/readme/testing.md +0 -60
  614. /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
  615. /data/lib/jets/{commands → command}/help/build.md +0 -0
  616. /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
  617. /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
  618. /data/lib/jets/{commands → command}/help/console.md +0 -0
  619. /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
  620. /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
  621. /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
  622. /data/lib/jets/{commands → command}/help/delete.md +0 -0
  623. /data/lib/jets/{commands → command}/help/generate.md +0 -0
  624. /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
  625. /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
  626. /data/lib/jets/{commands → command}/help/server.md +0 -0
  627. /data/lib/jets/{commands → command}/help/status.md +0 -0
  628. /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
  629. /data/lib/jets/{commands → command}/help/url.md +0 -0
  630. /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
  631. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
  632. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
  633. /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
  634. /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
  635. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
  636. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
  637. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
  638. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
  639. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
  640. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
  641. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
  642. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
  643. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
  644. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
  645. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
  646. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
  647. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
  648. /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
  649. /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
  650. /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
@@ -0,0 +1,48 @@
1
+ ## Remote mode
2
+
3
+ Invoke the lambda function on AWS.
4
+
5
+ ## Examples
6
+
7
+ ### Controller Examples
8
+
9
+ jets call controller '{"path": "/up", "httpMethod": "GET"}' --show-logs | jq
10
+
11
+ You'll need to specify enough of the event payload so that the Jets shim handler can find the route and send it to the right controller action.
12
+
13
+ jets call controller '{"path":"/posts"}' --show-logs | jq .
14
+ jets call controller 'file://event.json' --show-logs | jq .
15
+
16
+ ## Job Examples
17
+
18
+ jets call hard_job-drive '{"test":1}'
19
+ jets call hard_job-drive '{"test":1}' | jq .
20
+ jets call hard_job-drive file://event.json | jq . # load event with a file
21
+
22
+
23
+ The equivalent AWS Lambda CLI command:
24
+
25
+ aws lambda invoke --function-name demo-dev-hard_job-dig --payload '{"path":"/posts","test":1}' outfile.txt
26
+ cat outfile.txt | jq '.'
27
+
28
+ Jets figures out what functions to call by evaluating the app code and finds if the class and method exists. If you want to turn guess mode off and want to always explicitly provide the method name use the `--no-guess` option. The function name will then have to match the lambda function without the namespace. Example:
29
+
30
+ jets call controller --no-guess
31
+
32
+ If you want to call a function which runs too long time, you can set `read_timeout`.
33
+
34
+ jets call some_long_job-index --read_timeout 900
35
+
36
+ And you can set `retry_limit`. If you don't want to retry you can set 0.
37
+
38
+ jets call some_long_job-index --retry_limit 0
39
+
40
+ ## Local mode
41
+
42
+ Instead of calling AWS lambda remote, you can also have `jets call` use the code directly on your machine. To enable this, use the `--local` flag. Example:
43
+
44
+ jets call hard_job-drive --local
45
+
46
+ ## Logs
47
+
48
+ The `jets call` command can also print out the last 4KB of the lambda logs with the `--show-logs` option. The logging output is directed to stderr and the response output from the lambda function itself is directed to stdout so you can safely pipe the results of the call command to other tools like `jq`.
@@ -5,7 +5,7 @@ This builds the project and deploys it AWS Lambda. The deployment is mainly hand
5
5
  ## Example
6
6
 
7
7
  $ jets deploy
8
- Deploying to Lambda demo-dev environment...
8
+ Deploying stack demo-dev ...
9
9
  => Compling assets in current project directory
10
10
  => Copying current project directory to temporary build area: /tmp/jets/demo/app_root
11
11
  => Tidying project: removing ignored files to reduce package size.
@@ -0,0 +1 @@
1
+ Check if precompiled gems are available from Jets Pro.
@@ -0,0 +1,21 @@
1
+ Show logs from Lambda function CloudWatch log group.
2
+
3
+ This defaults to the controller Lambda function in the `one_lambda_for_all_controllers` mode. Example:
4
+
5
+ ❯ jets logs
6
+ Showing logs for /aws/lambda/demo-dev-controller
7
+
8
+ If you want to follow the logs use the `-f` flag.
9
+
10
+ ❯ jets logs -f
11
+ Tailing logs for /aws/lambda/demo-dev-controller
12
+
13
+ If you want to see the production logs:
14
+
15
+ ❯ JETS_ENV=production jets logs -f
16
+ Tailing logs for /aws/lambda/demo-prod-controller
17
+
18
+ If you want to see logs for a job, specify the job and method.
19
+
20
+ ❯ jets logs -f -n hard_job-dig
21
+ Tailing logs for /aws/lambda/demo-dev-hard_job-dig
@@ -1,10 +1,9 @@
1
1
  ## Examples
2
2
 
3
3
  $ jets new demo
4
- Creating a new Jets project called demo.
5
- create demo/app/controllers/application_controller.rb
6
- create demo/app/helpers/application_helper.rb
7
- create demo/app/jobs/application_job.rb
4
+ create app/controllers/application_controller.rb
5
+ create app/helpers/application_helper.rb
6
+ create app/jobs/application_job.rb
8
7
  ...
9
8
  ================================================================
10
9
  Congrats You have successfully created a Jets project.
@@ -0,0 +1,6 @@
1
+ ## Examples
2
+
3
+ ❯ jets projects
4
+ api
5
+ backend
6
+ demo
@@ -0,0 +1,19 @@
1
+ ## Examples
2
+
3
+ $ jets releases
4
+ Releases for stack: demo-dev
5
+ +---------+-----------------+--------------+---------+
6
+ | Version | Status | Released At | Message |
7
+ +---------+-----------------+--------------+---------+
8
+ | 3 | UPDATE_COMPLETE | 10 hours ago | Deploy |
9
+ | 2 | UPDATE_COMPLETE | 18 hours ago | Deploy |
10
+ | 1 | UPDATE_COMPLETE | 22 hours ago | Deploy |
11
+ +---------+-----------------+--------------+---------+
12
+
13
+ The shown releases are paginated. If you need to see more releases you can use the `--page` option.
14
+
15
+ $ jets releases --page 2
16
+
17
+ ## Other Commands
18
+
19
+ releases:info View detailed information for a release
@@ -0,0 +1,5 @@
1
+ ## Examples
2
+
3
+ jets rollback 8
4
+
5
+ Use the [jets releases](/reference/jets-releases/) command to view release history.
@@ -0,0 +1,15 @@
1
+ ## Example
2
+
3
+ $ jets routes
4
+ +-------------------+--------+--------------------+--------------------+
5
+ | As (Prefix) | Verb | Path (URI Pattern) | Controller#action |
6
+ +-------------------+--------+--------------------+--------------------+
7
+ | posts | GET | /posts | posts#index |
8
+ | posts | POST | /posts | posts#create |
9
+ | new_post | GET | /posts/new | posts#new |
10
+ | edit_post | GET | /posts/:id/edit | posts#edit |
11
+ | post | GET | /posts/:id | posts#show |
12
+ | post | PUT | /posts/:id | posts#update |
13
+ | post | PATCH | /posts/:id | posts#update |
14
+ | post | DELETE | /posts/:id | posts#destroy |
15
+ +-------------------+--------+--------------------+--------------------+
@@ -0,0 +1,40 @@
1
+ ## Examples
2
+
3
+ $ jets runner 'puts "hi"'
4
+ hi
5
+ $ jets runner 'puts Jets.env'
6
+ development
7
+
8
+ Using a script in a file. Let's say you have a script:
9
+
10
+ script.rb:
11
+
12
+ ```ruby
13
+ puts "hello world: #{Jets.env}"
14
+ ```
15
+
16
+ $ jets runner file://script.rb
17
+ hello world: development
18
+
19
+
20
+ Optionally pass in an argument on the command line:
21
+
22
+ Usage: jets runner file|Ruby code [args]
23
+
24
+ The argument will be assigned to the `args` variable.
25
+
26
+ Example:
27
+
28
+ $ jets runner 'puts "hello world with args: #{args}"' 123
29
+ hello world with args: 123
30
+
31
+
32
+ Example with script.rb:
33
+
34
+ ```ruby
35
+ puts "hello world with args: #{args}"
36
+ ```
37
+
38
+ $ jets runner file://script.rb 123
39
+ hello world with args: 123
40
+
@@ -0,0 +1,6 @@
1
+ ## Examples
2
+
3
+ ❯ jets stacks
4
+ Stacks for project: demo
5
+ demo-dev
6
+ demo-prod
@@ -0,0 +1,17 @@
1
+ module Jets::Command
2
+ class Help
3
+ class << self
4
+ def text(namespaced_command)
5
+ file = namespaced_command.to_s.gsub(':','/')
6
+ path = File.expand_path("../help/#{file}.md", __FILE__)
7
+ return IO.read(path) if File.exist?(path)
8
+
9
+ # Also look up for a help folder within the current command folder
10
+ called_from = caller.first.split(':').first
11
+ unnamespaced_command = namespaced_command.to_s.split(':').last
12
+ path = File.expand_path("../help/#{unnamespaced_command}.md", called_from)
13
+ return IO.read(path) if File.exist?(path)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/encrypted_file"
4
+
5
+ module Jets
6
+ module Command
7
+ module Helpers
8
+ module Editor
9
+ private
10
+ def ensure_editor_available(command:)
11
+ if ENV["EDITOR"].to_s.empty?
12
+ say "No $EDITOR to open file in. Assign one like this:"
13
+ say ""
14
+ say %(EDITOR="mate --wait" #{command})
15
+ say ""
16
+ say "For editors that fork and exit immediately, it's important to pass a wait flag,"
17
+ say "otherwise the credentials will be saved immediately with no chance to edit."
18
+
19
+ false
20
+ else
21
+ true
22
+ end
23
+ end
24
+
25
+ def catch_editing_exceptions
26
+ yield
27
+ rescue Interrupt
28
+ say "Aborted changing file: nothing saved."
29
+ rescue ActiveSupport::EncryptedFile::MissingKeyError => error
30
+ say error.message
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,38 @@
1
+ module Jets::Command
2
+ module RakeDecorate
3
+ # Decorate this method because this does not get called until runtime.
4
+ # It's "lazy loaded" so we can avoid the Rails const being defined in general.
5
+ def [](task_name, scopes=nil)
6
+ super # => Rake::TaskManager#[]
7
+ rescue RuntimeError => e
8
+ # We require dummy/rails since this time because all the rake tasks have been loaded
9
+ # and we need to load dummy/rails to get the database configurations. Normally,
10
+ # we do not want to require dummy/rails because it defines the Rails.
11
+ # However, a "command not found" error, more accurately,
12
+ # a "rake task not found" error, has already been encountered.
13
+ # Also:
14
+ # require "dummy/rails" to prevent another error.
15
+ # from lib/active_record/railties/databases.rake
16
+ #
17
+ # NoMethodError: undefined method `env' for Rails:Module (NoMethodError)
18
+ # database_configs = ActiveRecord::DatabaseConfigurations.new(databases).configs_for(env_name: Rails.env)
19
+ #
20
+ require "jets/overrides/dummy/rails"
21
+
22
+ # Original error message from rake is something like this
23
+ #
24
+ # Don't know how to build task 'foo:bar' (See the list of available tasks with `jets --tasks`)
25
+ #
26
+ # With an ugly backtrace.
27
+ # We override the error message to be more user friendly.
28
+ #
29
+ # All of that in order for
30
+ # jets foo:bar
31
+ # to show a pretty error message.
32
+ $stderr.puts "ERROR: Could not find command: #{task_name.inspect}".color(:red)
33
+ require "jets/commands/help/help_command"
34
+ Jets::Command::HelpCommand.new.help
35
+ exit 1
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support"
4
+ require "active_support/core_ext/enumerable"
5
+ require "active_support/core_ext/object/blank"
6
+
7
+ require "thor"
8
+
9
+ module Jets
10
+ module Command
11
+ extend ActiveSupport::Autoload
12
+
13
+ autoload :Behavior
14
+ autoload :Base
15
+
16
+ include Behavior
17
+
18
+ HELP_MAPPINGS = %w(-h -? --help)
19
+
20
+ cattr_accessor :original_cli_command
21
+
22
+ class << self
23
+ def hidden_commands # :nodoc:
24
+ @hidden_commands ||= []
25
+ end
26
+
27
+ def environment # :nodoc:
28
+ ENV["JETS_ENV"].presence || ENV["RACK_ENV"].presence || "development"
29
+ end
30
+
31
+ # Receives a namespace, arguments, and the behavior to invoke the command.
32
+ def invoke(full_namespace, args = [], **config)
33
+ namespace = full_namespace = full_namespace.to_s
34
+ Jets::Command.original_cli_command = full_namespace
35
+
36
+ if char = namespace =~ /:(\w+)$/
37
+ command_name, namespace = $1, namespace.slice(0, char)
38
+ else
39
+ command_name = namespace
40
+ end
41
+
42
+ command_name, namespace = "help", "help" if command_name.blank? || HELP_MAPPINGS.include?(command_name)
43
+ command_name, namespace, args = "application", "application", ["--help"] if jets_new_with_no_path?(args)
44
+ command_name, namespace = "version", "version" if %w( -v --version ).include?(command_name)
45
+
46
+ original_argv = ARGV.dup
47
+ ARGV.replace(args)
48
+
49
+ command = find_by_namespace(namespace, command_name)
50
+ if command && command.all_commands[command_name]
51
+ command.perform(full_namespace, command_name, args, config)
52
+ else
53
+ # Decorate the rake [] method in order to rescue the error and print out
54
+ # a user friendly message. This works to catch rake errors but
55
+ # unsure why cannot just rescue RuntimeError here.
56
+ # More details in the RakeDecorate module.
57
+ require "rake/application"
58
+ Rake::Application.send(:include, RakeDecorate)
59
+ args = ["--describe", full_namespace] if HELP_MAPPINGS.include?(args[0])
60
+ find_by_namespace("rake").perform(full_namespace, args, config)
61
+ end
62
+ ensure
63
+ ARGV.replace(original_argv)
64
+ end
65
+
66
+ # Jets finds namespaces similar to Thor, it only adds one rule:
67
+ #
68
+ # Command names must end with "_command.rb". This is required because Jets
69
+ # looks in load paths and loads the command just before it's going to be used.
70
+ #
71
+ # find_by_namespace :webrat, :integration
72
+ #
73
+ # Will search for the following commands:
74
+ #
75
+ # "webrat", "webrat:integration", "jets:webrat", "jets:webrat:integration"
76
+ #
77
+ def find_by_namespace(namespace, command_name = nil) # :nodoc:
78
+ lookups = [ namespace ]
79
+ lookups << "#{namespace}:#{command_name}" if command_name
80
+ lookups.concat lookups.map { |lookup| "jets:#{lookup}" }
81
+
82
+ lookup(lookups)
83
+
84
+ namespaces = subclasses.index_by(&:namespace)
85
+ namespaces[(lookups & namespaces.keys).first]
86
+ end
87
+
88
+ # Returns the root of the Jets engine or app running the command.
89
+ def root
90
+ if defined?(ENGINE_ROOT)
91
+ Pathname.new(ENGINE_ROOT)
92
+ elsif defined?(APP_PATH)
93
+ Pathname.new(File.expand_path("../..", APP_PATH))
94
+ end
95
+ end
96
+
97
+ def print_commands # :nodoc:
98
+ commands.each { |command| puts(" #{command}") }
99
+ end
100
+
101
+ COMMANDS_IN_USAGE = %w(
102
+ generate
103
+ console
104
+ server
105
+ deploy
106
+ logs
107
+ new
108
+ )
109
+ private_constant :COMMANDS_IN_USAGE
110
+
111
+ PRO_COMMANDS = %w(
112
+ projects
113
+ stacks
114
+ releases
115
+ rollback
116
+ )
117
+
118
+ def jets_new_with_no_path?(args)
119
+ args == ["new"]
120
+ end
121
+
122
+ def commands
123
+ lookup!
124
+ visible_commands = (subclasses - hidden_commands).flat_map(&:printing_commands)
125
+ (visible_commands - COMMANDS_IN_USAGE - PRO_COMMANDS).sort
126
+ end
127
+
128
+ private
129
+ def command_type # :doc:
130
+ @command_type ||= "command"
131
+ end
132
+
133
+ def lookup_paths # :doc:
134
+ @lookup_paths ||= %w( jets/commands commands )
135
+ end
136
+
137
+ def file_lookup_paths # :doc:
138
+ @file_lookup_paths ||= [ "{#{lookup_paths.join(',')}}", "**", "*_command.rb" ]
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jets
4
+ module Command
5
+ class ApplicationCommand < Base # :nodoc:
6
+ hide_command!
7
+
8
+ self.bin = "jets" if respond_to?(:bin=) # Rails 7.1
9
+
10
+ def help
11
+ perform # Punt help output to the generator.
12
+ end
13
+
14
+ # This is:
15
+ #
16
+ # bundle exec jets application:help => jets new --help
17
+ # bundle exec jets application => jets new --help
18
+ #
19
+ def perform(*args)
20
+ version_flags = %w[-v --version] & args
21
+ unless version_flags.empty?
22
+ puts "Jets #{Jets::VERSION}"
23
+ return
24
+ end
25
+
26
+ # require lazily so that Rails constant is only defined within generators
27
+ require "jets/generators/overrides/app/app_generator"
28
+ override_exit_on_failure?
29
+ argv = Rails::Generators::ARGVScrubber.new(args).prepare!
30
+ Jets::Generators::AppGenerator.start argv
31
+ end
32
+
33
+ private
34
+ # We override this way because Jets require generators lazily
35
+ def override_exit_on_failure?
36
+ Jets::Generators::AppGenerator.class_eval do
37
+ # We want to exit on failure to be kind to other libraries
38
+ # This is only when accessing via CLI
39
+ def self.exit_on_failure?
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,33 @@
1
+ module Jets::Command
2
+ class BuildCommand < Base # :nodoc:
3
+ include EnvironmentArgument
4
+
5
+ option :templates, type: :boolean, desc: "Build CloudFormation templates only"
6
+
7
+ desc "build", "Builds and packages project for AWS Lambda"
8
+ long_desc Help.text(:build)
9
+ def perform
10
+ ENV['JETS_TEMPLATES'] = '1' if options[:templates]
11
+
12
+ extract_environment_option_from_argument
13
+ require_application_and_environment!
14
+
15
+ puts "Building project for Lambda..."
16
+ # run gets called from the CLI and does not have all the stack_options yet.
17
+ # We compute it and change the options early here.
18
+ @options.merge!(stack_type: stack_type, s3_bucket: Jets.s3_bucket)
19
+ do_build
20
+ end
21
+
22
+ private
23
+ # Note: build is picked up as a command so naming it do_build
24
+ def do_build
25
+ Jets::Builders::CodeBuilder.new.build unless ENV['JETS_TEMPLATES']
26
+ Jets::Cfn::Builder.new(@options).build
27
+ end
28
+
29
+ def stack_type
30
+ first_run? ? :minimal : :full
31
+ end
32
+ end
33
+ end
@@ -1,4 +1,4 @@
1
- class Jets::Commands::Call
1
+ module Jets::Commands::Call
2
2
  class AnonymousGuesser < BaseGuesser
3
3
  def detect_class_name
4
4
  found_path = function_paths.find do |path|
@@ -1,4 +1,4 @@
1
- class Jets::Commands::Call
1
+ module Jets::Commands::Call
2
2
  class AutoloadGuesser < BaseGuesser
3
3
  def detect_class_name
4
4
  # First guess the class name assuming simple
@@ -53,7 +53,7 @@ class Jets::Commands::Call
53
53
  meth = underscored_function_name.sub(underscored_class_name, '')
54
54
  meth = meth.sub(/^[-_]/,'') # remove leading _ or -
55
55
 
56
- if class_name.constantize.tasks.map(&:meth).include?(meth.to_sym)
56
+ if class_name.constantize.definitions.map(&:meth).include?(meth.to_sym)
57
57
  @method_name = meth
58
58
  else
59
59
  @method_name_error ="#{class_name} class found but #{meth} method not found"
@@ -3,7 +3,7 @@
3
3
  # method_name
4
4
  # error_message
5
5
  #
6
- class Jets::Commands::Call
6
+ module Jets::Commands::Call
7
7
  class BaseGuesser
8
8
  include Jets::AwsServices
9
9
 
@@ -26,15 +26,15 @@ class Jets::Commands::Call
26
26
  # Strip the project namespace if the user has accidentally added it
27
27
  # Since we're going to automatically add it no matter what at the end
28
28
  # and dont want the namespace to be included twice
29
- @provided_function_name = @provided_function_name.sub("#{Jets.config.project_namespace}-", "")
29
+ @provided_function_name = @provided_function_name.sub("#{Jets.project_namespace}-", "")
30
30
 
31
31
  code_path = class_name.underscore.gsub('/','-')
32
- function_name = [Jets.config.project_namespace, code_path, method_name].join('-')
32
+ function_name = [Jets.project_namespace, code_path, method_name].join('-')
33
33
  generated_function_name(function_name)
34
34
  end
35
35
 
36
36
  def generated_function_name(function_name)
37
- if function_name.size > Jets::MAX_FUNCTION_NAME_SIZE # name generated by CloudFormation
37
+ if function_name.size > Jets::Cfn::Resource::Lambda::Function::MAX_FUNCTION_NAME_SIZE # name generated by CloudFormation
38
38
  logical_id = @class_name.gsub('::','')
39
39
 
40
40
  parent_resources = stack_resources(parent_stack.stack_id)
@@ -56,7 +56,7 @@ class Jets::Commands::Call
56
56
 
57
57
  @@parent_stack = nil
58
58
  def parent_stack
59
- @@parent_stack ||= cfn.describe_stacks(stack_name: Jets::Naming.parent_stack_name).stacks.first
59
+ @@parent_stack ||= cfn.describe_stacks(stack_name: Jets::Names.parent_stack_name).stacks.first
60
60
  end
61
61
  end
62
62
  end
@@ -0,0 +1,27 @@
1
+ require "base64"
2
+ require "json"
3
+
4
+ module Jets::Command
5
+ class CallCommand < Base # :nodoc:
6
+ include Jets::AwsServices
7
+
8
+ desc "call [function] [event]", "Call a lambda function on AWS or locally"
9
+ long_desc Help.text(:call)
10
+ option :invocation_type, default: "RequestResponse", desc: "RequestResponse, Event, or DryRun"
11
+ option :log_type, default: "Tail", desc: "Works if invocation_type set to RequestResponse"
12
+ option :qualifier, desc: "Lambda function version or alias name"
13
+ option :show_log, type: :boolean, desc: "Shows last 4KB of log in the x-amz-log-result header"
14
+ option :show_logs, type: :boolean, desc: "Shows last 4KB of log in the x-amz-log-result header"
15
+ option :lambda_proxy, type: :boolean, default: true, desc: "Enables automatic Lambda proxy transformation of the event payload"
16
+ option :guess, type: :boolean, default: true, desc: "Enables guess mode. Uses inference to allows use of all dashes to specify functions. Guess mode verifies that the function exists in the code base."
17
+ option :local, type: :boolean, desc: "Enables local mode. Instead of invoke the AWS Lambda function, the method gets called locally with current app code. With local mode guess mode is always used."
18
+ option :retry_limit, type: :numeric, default: nil, desc: "Retry count of invoking function. It work with remote call"
19
+ option :read_timeout, type: :numeric, default: nil, desc: " The number of seconds to wait for response data. It work with remote call"
20
+ def perform(function_name, payload='')
21
+ $stdout.sync = true
22
+ $stderr.sync = true
23
+ $stdout = $stderr # jets call operation
24
+ Jets::Commands::Call::Caller.new(function_name, payload, options).run
25
+ end
26
+ end
27
+ end