jets 3.1.0 → 5.0.0

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 (641) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +5 -1
  4. data/CHANGELOG.md +141 -0
  5. data/Gemfile +1 -5
  6. data/LICENSE.txt +1 -1
  7. data/README.md +21 -43
  8. data/Rakefile +3 -3
  9. data/backers.md +0 -5
  10. data/engines/internal/app/controllers/jets/application_controller.rb +28 -0
  11. data/engines/internal/app/controllers/jets/bare_controller.rb +6 -0
  12. data/engines/internal/app/controllers/jets/health_controller.rb +55 -0
  13. data/engines/internal/app/controllers/jets/info_controller.rb +45 -0
  14. data/{lib/jets → engines}/internal/app/controllers/jets/mailers_controller.rb +12 -14
  15. data/{lib/jets → engines}/internal/app/controllers/jets/mount_controller.rb +6 -10
  16. data/{lib/jets → engines}/internal/app/controllers/jets/public_controller.rb +6 -2
  17. data/engines/internal/app/controllers/jets/welcome_controller.rb +9 -0
  18. data/engines/internal/app/functions/jets/base_path.rb +109 -0
  19. data/engines/internal/app/functions/jets/base_path_mapping.rb +191 -0
  20. data/engines/internal/app/jobs/jets/preheat_job.rb +67 -0
  21. data/engines/internal/app/views/jets/info/properties.html.erb +1 -0
  22. data/engines/internal/app/views/jets/info/routes.html.erb +10 -0
  23. data/{lib/jets → engines}/internal/app/views/jets/mailers/email.html.erb +37 -17
  24. data/engines/internal/app/views/jets/mailers/index.html.erb +8 -0
  25. data/engines/internal/app/views/jets/mailers/mailer.html.erb +6 -0
  26. data/{lib/jets/commands/templates/skeleton/public/index.html.tt → engines/internal/app/views/jets/welcome/index.html.erb} +8 -4
  27. data/engines/internal/app/views/layouts/application.html.erb +51 -0
  28. data/engines/internal/lib/internal/actiondispatch.rb +39 -0
  29. data/engines/internal/lib/internal/actionmailer.rb +51 -0
  30. data/engines/internal/lib/internal/actionview.rb +152 -0
  31. data/engines/internal/lib/internal/activerecord.rb +37 -0
  32. data/engines/internal/lib/internal/activesupport.rb +47 -0
  33. data/engines/internal/lib/internal/engine.rb +13 -0
  34. data/engines/internal/lib/internal/i18n_engine.rb +19 -0
  35. data/engines/internal/lib/internal/jets_controller.rb +46 -0
  36. data/engines/internal/lib/internal/overrides/debug_exceptions.rb +40 -0
  37. data/engines/internal/lib/internal/templates/rescues/_trace.html.erb +62 -0
  38. data/engines/internal/lib/internal/templates/rescues/_trace.text.erb +9 -0
  39. data/engines/internal/lib/internal/turbines/asset_tag_helper.rb +70 -0
  40. data/engines/internal/lib/internal/turbines/helpers.rb +18 -0
  41. data/engines/internal/lib/internal/turbines/routes_helpers.rb +42 -0
  42. data/exe/jets +1 -10
  43. data/jets.gemspec +16 -13
  44. data/lib/jets/app_loader.rb +77 -0
  45. data/lib/jets/application/bootstrap.rb +100 -0
  46. data/lib/jets/application/configuration/defaults.rb +256 -0
  47. data/lib/jets/application/configuration.rb +494 -0
  48. data/lib/jets/application/default_middleware_stack.rb +140 -0
  49. data/lib/jets/application/dummy_erb_compiler.rb +18 -0
  50. data/lib/jets/application/finisher.rb +266 -0
  51. data/lib/jets/application/routes_reloader.rb +80 -0
  52. data/lib/jets/application.rb +515 -199
  53. data/lib/jets/authorizer/base.rb +1 -0
  54. data/lib/jets/authorizer/dsl.rb +15 -11
  55. data/lib/jets/authorizer/helpers/iam_helper.rb +13 -11
  56. data/lib/jets/autoloaders/gem.rb +70 -0
  57. data/lib/jets/autoloaders/inflector.rb +21 -0
  58. data/lib/jets/autoloaders.rb +38 -101
  59. data/lib/jets/aws_info.rb +2 -2
  60. data/lib/jets/aws_services/stack_status.rb +1 -1
  61. data/lib/jets/aws_services.rb +8 -0
  62. data/lib/jets/backtrace_cleaner.rb +27 -0
  63. data/lib/jets/booter.rb +30 -118
  64. data/lib/jets/builders/code_builder.rb +64 -122
  65. data/lib/jets/builders/code_size.rb +1 -0
  66. data/lib/jets/builders/gem_replacer.rb +6 -12
  67. data/lib/jets/builders/handler_generator.rb +34 -14
  68. data/lib/jets/builders/lambda_layer.rb +2 -7
  69. data/lib/jets/builders/purger.rb +1 -1
  70. data/lib/jets/builders/rack_packager.rb +1 -1
  71. data/lib/jets/builders/ruby_packager.rb +54 -10
  72. data/lib/jets/builders/shim_vars/app.rb +10 -6
  73. data/lib/jets/builders/templates/handlers/one_lambda_for_all_controllers.rb +33 -0
  74. data/lib/jets/builders/templates/handlers/one_lambda_per_controller.rb +20 -0
  75. data/lib/jets/builders/templates/{handler.rb → handlers/one_lambda_per_method.rb} +6 -0
  76. data/lib/jets/bundle.rb +2 -9
  77. data/lib/jets/cfn/base.rb +82 -0
  78. data/lib/jets/cfn/builder/api/base.rb +12 -0
  79. data/lib/jets/cfn/{builders/api_deployment_builder.rb → builder/api/deployment.rb} +11 -21
  80. data/lib/jets/cfn/builder/api/gateway.rb +104 -0
  81. data/lib/jets/cfn/builder/api/mapping.rb +54 -0
  82. data/lib/jets/cfn/builder/api/methods.rb +72 -0
  83. data/lib/jets/cfn/builder/api/paged.rb +30 -0
  84. data/lib/jets/cfn/builder/api/pages/base.rb +105 -0
  85. data/lib/jets/cfn/builder/api/pages/methods.rb +17 -0
  86. data/lib/jets/cfn/builder/api/pages/page.rb +19 -0
  87. data/lib/jets/cfn/builder/api/pages/resources.rb +21 -0
  88. data/lib/jets/cfn/builder/api/resources.rb +40 -0
  89. data/lib/jets/cfn/{builders/authorizer_builder.rb → builder/authorizer.rb} +16 -19
  90. data/lib/jets/cfn/builder/controller.rb +28 -0
  91. data/lib/jets/cfn/builder/function.rb +9 -0
  92. data/lib/jets/cfn/builder/interface.rb +146 -0
  93. data/lib/jets/cfn/builder/job.rb +10 -0
  94. data/lib/jets/cfn/builder/nested.rb +130 -0
  95. data/lib/jets/cfn/builder/one_controller.rb +53 -0
  96. data/lib/jets/cfn/{builders/parent_builder → builder/parent}/stagger.rb +1 -1
  97. data/lib/jets/cfn/builder/parent.rb +149 -0
  98. data/lib/jets/cfn/builder/post_process.rb +25 -0
  99. data/lib/jets/cfn/{builders/rule_builder.rb → builder/rule.rb} +4 -8
  100. data/lib/jets/cfn/{builders/shared_builder.rb → builder/shared.rb} +5 -4
  101. data/lib/jets/cfn/{builders → builder}/util/source.rb +1 -1
  102. data/lib/jets/{commands/build.rb → cfn/builder.rb} +50 -78
  103. data/lib/jets/cfn/deployment.rb +45 -0
  104. data/lib/jets/cfn/download.rb +39 -0
  105. data/lib/jets/cfn/params/api/base.rb +39 -0
  106. data/lib/jets/cfn/params/api/cors.rb +10 -0
  107. data/lib/jets/cfn/params/api/methods.rb +69 -0
  108. data/lib/jets/cfn/params/api/resources.rb +28 -0
  109. data/lib/jets/{resource/child_stack/common_parameters.rb → cfn/params/common.rb} +3 -3
  110. data/lib/jets/{resource → cfn/resource}/api_gateway/authorizer.rb +21 -21
  111. data/lib/jets/cfn/resource/api_gateway/base_path/function.rb +57 -0
  112. data/lib/jets/{resource → cfn/resource}/api_gateway/base_path/mapping.rb +13 -12
  113. data/lib/jets/cfn/resource/api_gateway/base_path/role.rb +70 -0
  114. data/lib/jets/{resource → cfn/resource}/api_gateway/deployment.rb +13 -20
  115. data/lib/jets/{resource → cfn/resource}/api_gateway/domain_name.rb +11 -11
  116. data/lib/jets/{resource → cfn/resource}/api_gateway/method/authorization.rb +1 -1
  117. data/lib/jets/cfn/resource/api_gateway/method.rb +92 -0
  118. data/lib/jets/{resource → cfn/resource}/api_gateway/resource.rb +14 -10
  119. data/lib/jets/cfn/resource/api_gateway/resource_id.rb +25 -0
  120. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/change_detection.rb +1 -1
  121. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id/message.rb +14 -4
  122. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/logical_id.rb +2 -2
  123. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/base.rb +15 -41
  124. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/media_types.rb +3 -3
  125. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/page.rb +6 -6
  126. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/to.rb +8 -3
  127. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/change/variable.rb +2 -2
  128. data/lib/jets/cfn/resource/api_gateway/rest_api/routes/change.rb +27 -0
  129. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision/variable_exception.rb +1 -1
  130. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes/collision.rb +1 -1
  131. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api/routes.rb +1 -1
  132. data/lib/jets/{resource → cfn/resource}/api_gateway/rest_api.rb +22 -12
  133. data/lib/jets/{resource → cfn/resource}/associated.rb +1 -1
  134. data/lib/jets/{resource → cfn/resource}/config/config_rule.rb +18 -18
  135. data/lib/jets/{resource → cfn/resource}/config/managed_rule.rb +5 -5
  136. data/lib/jets/{resource → cfn/resource}/events/rule.rb +10 -10
  137. data/lib/jets/{resource → cfn/resource}/iam/application_role.rb +4 -4
  138. data/lib/jets/cfn/resource/iam/base_role_definition.rb +56 -0
  139. data/lib/jets/{resource → cfn/resource}/iam/class_role.rb +5 -5
  140. data/lib/jets/{resource → cfn/resource}/iam/function_role.rb +6 -6
  141. data/lib/jets/{resource → cfn/resource}/iam/managed_policy.rb +1 -1
  142. data/lib/jets/cfn/resource/iam/policy.rb +31 -0
  143. data/lib/jets/{resource → cfn/resource}/iam/policy_document.rb +10 -9
  144. data/lib/jets/{resource → cfn/resource}/iot/topic_rule.rb +10 -10
  145. data/lib/jets/{resource → cfn/resource}/lambda/event_source_mapping.rb +9 -9
  146. data/lib/jets/cfn/resource/lambda/function/controller.rb +21 -0
  147. data/lib/jets/{resource → cfn/resource}/lambda/function/environment.rb +9 -7
  148. data/lib/jets/cfn/resource/lambda/function.rb +266 -0
  149. data/lib/jets/{resource → cfn/resource}/lambda/gem_layer.rb +2 -2
  150. data/lib/jets/{resource → cfn/resource}/lambda/layer_version.rb +10 -10
  151. data/lib/jets/cfn/resource/lambda/permission.rb +51 -0
  152. data/lib/jets/cfn/resource/logs/subscription_filter.rb +31 -0
  153. data/lib/jets/cfn/resource/nested/api/base.rb +4 -0
  154. data/lib/jets/cfn/resource/nested/api/deployment.rb +53 -0
  155. data/lib/jets/cfn/resource/nested/api/gateway.rb +15 -0
  156. data/lib/jets/cfn/resource/nested/api/mapping.rb +33 -0
  157. data/lib/jets/cfn/resource/nested/api/methods.rb +30 -0
  158. data/lib/jets/cfn/resource/nested/api/page.rb +8 -0
  159. data/lib/jets/cfn/resource/nested/api/resources.rb +22 -0
  160. data/lib/jets/{resource/child_stack → cfn/resource/nested}/app_class.rb +15 -48
  161. data/lib/jets/{resource/child_stack → cfn/resource/nested}/authorizer.rb +8 -14
  162. data/lib/jets/cfn/resource/nested/base.rb +38 -0
  163. data/lib/jets/cfn/resource/nested/one_controller.rb +48 -0
  164. data/lib/jets/{resource/child_stack → cfn/resource/nested}/shared.rb +10 -16
  165. data/lib/jets/cfn/resource/one/function.rb +66 -0
  166. data/lib/jets/cfn/resource/one/permission.rb +17 -0
  167. data/lib/jets/{resource → cfn/resource}/replacer.rb +26 -27
  168. data/lib/jets/{resource → cfn/resource}/route53/record_set.rb +18 -18
  169. data/lib/jets/{resource → cfn/resource}/s3/bucket.rb +4 -4
  170. data/lib/jets/cfn/resource/s3/jets_bucket.rb +68 -0
  171. data/lib/jets/{resource → cfn/resource}/sns/subscription.rb +8 -8
  172. data/lib/jets/{resource → cfn/resource}/sns/topic.rb +10 -10
  173. data/lib/jets/{resource → cfn/resource}/sns/topic_policy.rb +13 -13
  174. data/lib/jets/{resource → cfn/resource}/sqs/queue.rb +5 -5
  175. data/lib/jets/{resource → cfn/resource}/standardizer.rb +8 -9
  176. data/lib/jets/cfn/resource.rb +8 -0
  177. data/lib/jets/cfn/ship.rb +30 -16
  178. data/lib/jets/cfn/status.rb +1 -1
  179. data/lib/jets/cfn/template.rb +89 -0
  180. data/lib/jets/cfn/upload.rb +26 -23
  181. data/lib/jets/cli.rb +28 -203
  182. data/lib/jets/command/actions.rb +49 -0
  183. data/lib/jets/command/api_helpers.rb +41 -0
  184. data/lib/jets/command/aws_helpers.rb +26 -0
  185. data/lib/jets/command/base.rb +204 -0
  186. data/lib/jets/command/behavior.rb +83 -0
  187. data/lib/jets/command/environment_argument.rb +42 -0
  188. data/lib/jets/command/help/call.md +48 -0
  189. data/lib/jets/{commands → command}/help/deploy.md +1 -1
  190. data/lib/jets/command/help/logs.md +21 -0
  191. data/lib/jets/{commands → command}/help/new.md +3 -4
  192. data/lib/jets/command/help/projects.md +6 -0
  193. data/lib/jets/command/help/releases.md +37 -0
  194. data/lib/jets/command/help/rollback.md +5 -0
  195. data/lib/jets/command/help/routes.md +15 -0
  196. data/lib/jets/command/help/runner.md +40 -0
  197. data/lib/jets/command/help/stacks.md +6 -0
  198. data/lib/jets/command/help.rb +17 -0
  199. data/lib/jets/command/helpers/editor.rb +35 -0
  200. data/lib/jets/command.rb +133 -0
  201. data/lib/jets/commands/application/application_command.rb +40 -0
  202. data/lib/jets/commands/build/build_command.rb +33 -0
  203. data/lib/jets/commands/call/anonymous_guesser.rb +1 -1
  204. data/lib/jets/commands/call/autoload_guesser.rb +2 -2
  205. data/lib/jets/commands/call/base_guesser.rb +5 -5
  206. data/lib/jets/commands/call/call_command.rb +27 -0
  207. data/lib/jets/commands/call/caller.rb +184 -0
  208. data/lib/jets/commands/call/guesser.rb +1 -1
  209. data/lib/jets/commands/clean/base.rb +1 -1
  210. data/lib/jets/commands/clean/build.rb +1 -1
  211. data/lib/jets/commands/clean/clean_command.rb +15 -0
  212. data/lib/jets/commands/clean/log.rb +4 -4
  213. data/lib/jets/commands/configure/configure_command.rb +9 -0
  214. data/lib/jets/commands/console/console_command.rb +38 -0
  215. data/lib/jets/commands/credentials/USAGE +103 -0
  216. data/lib/jets/commands/credentials/credentials_command/diffing.rb +51 -0
  217. data/lib/jets/commands/credentials/credentials_command.rb +139 -0
  218. data/lib/jets/commands/db/system/change/change_command.rb +24 -0
  219. data/lib/jets/commands/dbconsole/dbconsole_command.rb +184 -0
  220. data/lib/jets/commands/degenerate/degenerate_command.rb +21 -0
  221. data/lib/jets/commands/delete/delete_command.rb +155 -0
  222. data/lib/jets/commands/{deploy.rb → deploy/deploy_command.rb} +30 -49
  223. data/lib/jets/commands/dev/dev_command.rb +19 -0
  224. data/lib/jets/commands/{dotenv.rb → dotenv/dotenv_command.rb} +2 -2
  225. data/lib/jets/commands/encrypted/USAGE +46 -0
  226. data/lib/jets/commands/encrypted/encrypted_command.rb +87 -0
  227. data/lib/jets/commands/gems/gems_command.rb +14 -0
  228. data/lib/jets/commands/generate/generate_command.rb +95 -0
  229. data/lib/jets/commands/help/USAGE +20 -0
  230. data/lib/jets/commands/help/help_command.rb +15 -0
  231. data/lib/jets/commands/initializers/initializers_command.rb +19 -0
  232. data/lib/jets/commands/logs/logs_command.rb +45 -0
  233. data/lib/jets/commands/new/new_command.rb +19 -0
  234. data/lib/jets/commands/notes/notes_command.rb +30 -0
  235. data/lib/jets/commands/plugin/plugin_command.rb +45 -0
  236. data/lib/jets/commands/projects/projects_command.rb +30 -0
  237. data/lib/jets/commands/rake/rake_command.rb +59 -0
  238. data/lib/jets/commands/releases/releases_command.rb +72 -0
  239. data/lib/jets/commands/rollback/rollback_command.rb +41 -0
  240. data/lib/jets/commands/routes/routes_command.rb +19 -0
  241. data/lib/jets/commands/runner/runner_command.rb +60 -0
  242. data/lib/jets/commands/server/server_command.rb +291 -0
  243. data/lib/jets/commands/stacks/stacks_command.rb +39 -0
  244. data/lib/jets/commands/status/status_command.rb +9 -0
  245. data/lib/jets/commands/url/url_command.rb +92 -0
  246. data/lib/jets/commands/version/version_command.rb +11 -0
  247. data/lib/jets/commands.rb +17 -0
  248. data/lib/jets/configuration.rb +166 -0
  249. data/lib/jets/controller/base.rb +105 -183
  250. data/lib/jets/controller/compat/abstract_controller/base.rb +126 -0
  251. data/lib/jets/controller/compat/action_controller/metal.rb +99 -0
  252. data/lib/jets/controller/compat/caching.rb +13 -0
  253. data/lib/jets/controller/compat/future.rb +13 -0
  254. data/lib/jets/controller/compat/route_set.rb +47 -0
  255. data/lib/jets/controller/decorate/apigw_stage.rb +39 -0
  256. data/lib/jets/controller/{authorization.rb → decorate/authorization.rb} +1 -1
  257. data/lib/jets/controller/decorate/logging.rb +90 -0
  258. data/lib/jets/controller/decorate/redirecting.rb +16 -0
  259. data/lib/jets/controller/decorate/url_for.rb +10 -0
  260. data/lib/jets/controller/{rack/adapter.rb → handler/apigw.rb} +36 -37
  261. data/lib/jets/controller/handler.rb +41 -0
  262. data/lib/jets/controller/middleware/main.rb +16 -8
  263. data/lib/jets/controller/middleware/{local/api_gateway.rb → mimic/apigw.rb} +41 -4
  264. data/lib/jets/controller/middleware/mimic/lambda_context.rb +44 -0
  265. data/lib/jets/controller/middleware/{local.rb → mimic.rb} +36 -51
  266. data/lib/jets/controller/rack_adapter/action.rb +35 -0
  267. data/lib/jets/controller/{rack → rack_adapter}/env.rb +39 -18
  268. data/lib/jets/controller/request/compat/params.rb +144 -0
  269. data/lib/jets/controller/request/compat/request.rb +125 -0
  270. data/lib/jets/controller/request.rb +35 -18
  271. data/lib/jets/controller/response/compat/response.rb +67 -0
  272. data/lib/jets/controller/response.rb +91 -8
  273. data/lib/jets/core.rb +153 -50
  274. data/lib/jets/core_ext/file.rb +9 -0
  275. data/lib/jets/core_ext/kernel.rb +2 -2
  276. data/lib/jets/core_ext/symbol.rb +5 -0
  277. data/lib/jets/core_ext.rb +4 -0
  278. data/lib/jets/dev_caching.rb +44 -0
  279. data/lib/jets/dotenv/ssm.rb +5 -2
  280. data/lib/jets/dotenv.rb +4 -3
  281. data/lib/jets/engine/configuration.rb +96 -0
  282. data/lib/jets/engine/turbines.rb +23 -0
  283. data/lib/jets/engine.rb +380 -0
  284. data/lib/jets/erb.rb +1 -1
  285. data/lib/jets/exception_reporting.rb +43 -0
  286. data/lib/jets/generators/job/job_generator.rb +41 -0
  287. data/lib/jets/generators/job/templates/event_types/dynamodb.rb.tt +8 -0
  288. data/lib/jets/generators/job/templates/event_types/iot.rb.tt +8 -0
  289. data/lib/jets/generators/job/templates/event_types/kinesis.rb.tt +9 -0
  290. data/lib/jets/generators/job/templates/event_types/log.rb.tt +9 -0
  291. data/lib/jets/generators/job/templates/event_types/rule.rb.tt +23 -0
  292. data/lib/jets/generators/job/templates/event_types/s3.rb.tt +11 -0
  293. data/lib/jets/{generator/templates/active_job/job/templates/job.rb.tt → generators/job/templates/event_types/scheduled.rb.tt} +3 -3
  294. data/lib/jets/generators/job/templates/event_types/sns.rb.tt +9 -0
  295. data/lib/jets/generators/job/templates/event_types/sqs.rb.tt +9 -0
  296. data/lib/jets/generators/overrides/app/USAGE +38 -0
  297. data/lib/jets/generators/overrides/app/app_generator.rb +148 -0
  298. data/lib/jets/generators/overrides/app/helpers.rb +139 -0
  299. data/lib/jets/generators/overrides/app/templates/.env +10 -0
  300. data/lib/jets/{commands/templates/skeleton/.gitignore → generators/overrides/app/templates/.gitignore.tt} +2 -1
  301. data/lib/jets/generators/overrides/app/templates/Gemfile.tt +25 -0
  302. data/lib/jets/generators/overrides/app/templates/Rakefile +2 -0
  303. data/lib/jets/generators/overrides/app/templates/app/assets/config/manifest.js +3 -0
  304. data/lib/jets/generators/overrides/app/templates/app/assets/stylesheets/application.css +15 -0
  305. data/lib/jets/generators/overrides/app/templates/app/javascript/application.js +5 -0
  306. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/models/application_record.rb +1 -1
  307. data/lib/jets/generators/overrides/app/templates/app/views/layouts/application.html.erb.tt +30 -0
  308. data/lib/jets/generators/overrides/app/templates/bin/jets +3 -0
  309. data/lib/jets/generators/overrides/app/templates/config/application.rb.tt +15 -0
  310. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/database.yml.tt +1 -1
  311. data/lib/jets/generators/overrides/app/templates/config/environments/development.rb.tt +29 -0
  312. data/lib/jets/generators/overrides/app/templates/config/environments/production.rb.tt +19 -0
  313. data/lib/jets/generators/overrides/app/templates/config/environments/test.rb.tt +23 -0
  314. data/lib/jets/generators/overrides/app/templates/config/initializers/content_security_policy.rb +31 -0
  315. data/lib/jets/generators/overrides/app/templates/config/initializers/filter_parameter_logging.rb +8 -0
  316. data/lib/jets/generators/overrides/app/templates/config/initializers/permissions_policy.rb +11 -0
  317. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config/routes.rb +5 -1
  318. data/lib/jets/generators/overrides/app/templates/db/.gitkeep +0 -0
  319. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/404.html +6 -6
  320. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/422.html +6 -6
  321. data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/500.html +6 -6
  322. data/lib/jets/generators/overrides/templates/erb/scaffold/index.html.erb +22 -0
  323. data/lib/jets/generators/overrides/templates/erb/scaffold/partial.html.erb +8 -0
  324. data/lib/jets/{generator/templates/rails/scaffold_controller/api_controller.rb → generators/overrides/templates/rails/scaffold_controller/api_controller.rb.tt} +5 -9
  325. data/lib/jets/generators/overrides/templates/rails/scaffold_controller/controller.rb.tt +67 -0
  326. data/lib/jets/generators.rb +112 -0
  327. data/lib/jets/inflections.rb +1 -1
  328. data/lib/jets/info.rb +116 -0
  329. data/lib/jets/initializable.rb +95 -0
  330. data/lib/jets/job/base.rb +5 -2
  331. data/lib/jets/job/dsl/dynamodb_event.rb +19 -9
  332. data/lib/jets/job/dsl/event_source_mapping.rb +1 -1
  333. data/lib/jets/job/dsl/iot_event.rb +6 -6
  334. data/lib/jets/job/dsl/kinesis_event.rb +5 -5
  335. data/lib/jets/job/dsl/log_event.rb +2 -2
  336. data/lib/jets/job/dsl/rule_event.rb +7 -4
  337. data/lib/jets/job/dsl/s3_event.rb +1 -1
  338. data/lib/jets/job/dsl/sns_event.rb +6 -6
  339. data/lib/jets/job/dsl/sqs_event.rb +11 -11
  340. data/lib/jets/job/helpers/sns_event_helper.rb +8 -0
  341. data/lib/jets/job/helpers/sqs_event_helper.rb +8 -0
  342. data/lib/jets/klass.rb +5 -6
  343. data/lib/jets/lambda/definition.rb +118 -0
  344. data/lib/jets/lambda/dsl/warnings.rb +57 -0
  345. data/lib/jets/lambda/dsl.rb +73 -54
  346. data/lib/jets/lambda/function.rb +3 -3
  347. data/lib/jets/lambda/function_constructor.rb +6 -6
  348. data/lib/jets/lambda/functions.rb +36 -1
  349. data/lib/jets/mega/hash_converter.rb +2 -2
  350. data/lib/jets/mega/request/source.rb +1 -2
  351. data/lib/jets/mega/request.rb +4 -4
  352. data/lib/jets/names.rb +79 -0
  353. data/lib/jets/overrides/dummy/rails.rb +11 -0
  354. data/lib/jets/overrides/lambda/marshaller.rb +10 -0
  355. data/lib/jets/overrides/puma.rb +10 -0
  356. data/lib/jets/paths.rb +243 -0
  357. data/lib/jets/{poly_fun → poly}/base_executor.rb +13 -13
  358. data/lib/jets/{poly_fun → poly}/lambda_executor.rb +2 -2
  359. data/lib/jets/{poly_fun → poly}/node_error.rb +1 -1
  360. data/lib/jets/{poly_fun → poly}/node_executor.rb +4 -4
  361. data/lib/jets/{poly_fun → poly}/python_error.rb +1 -1
  362. data/lib/jets/{poly_fun → poly}/python_executor.rb +2 -2
  363. data/lib/jets/{poly_fun.rb → poly.rb} +12 -12
  364. data/lib/jets/preheat.rb +26 -33
  365. data/lib/jets/processors/deducer.rb +2 -2
  366. data/lib/jets/processors/main_processor.rb +6 -13
  367. data/lib/jets/rack/logger.rb +77 -0
  368. data/lib/jets/router/compat/route_set.rb +177 -0
  369. data/lib/jets/router/dsl/mount.rb +40 -6
  370. data/lib/jets/router/dsl.rb +125 -105
  371. data/lib/jets/router/engine_mount.rb +36 -0
  372. data/lib/jets/router/help.rb +130 -0
  373. data/lib/jets/router/helpers/named_routes/add_full_url.rb +13 -0
  374. data/lib/jets/router/helpers/named_routes/generated.rb +197 -0
  375. data/lib/jets/router/helpers/named_routes/proxy.rb +66 -0
  376. data/lib/jets/router/matcher.rb +140 -17
  377. data/lib/jets/router/resources/options.rb +6 -4
  378. data/lib/jets/router/route/after_initialize.rb +64 -0
  379. data/lib/jets/router/route/as.rb +93 -0
  380. data/lib/jets/router/route/authorizer.rb +1 -0
  381. data/lib/jets/router/route/compat.rb +45 -0
  382. data/lib/jets/router/route/info.rb +74 -0
  383. data/lib/jets/router/route/node.rb +137 -0
  384. data/lib/jets/router/route/path.rb +93 -0
  385. data/lib/jets/router/route.rb +109 -90
  386. data/lib/jets/router/route_set.rb +214 -0
  387. data/lib/jets/router/scope.rb +204 -69
  388. data/lib/jets/router/state.rb +67 -0
  389. data/lib/jets/router/util.rb +1 -31
  390. data/lib/jets/router.rb +64 -150
  391. data/lib/jets/ruby_version_check.rb +15 -0
  392. data/lib/jets/rule/base.rb +1 -0
  393. data/lib/jets/rule/dsl.rb +7 -7
  394. data/lib/jets/secrets.rb +110 -0
  395. data/lib/jets/spec_helpers/controllers/request.rb +22 -16
  396. data/lib/jets/spec_helpers/controllers.rb +32 -24
  397. data/lib/jets/spec_helpers.rb +0 -6
  398. data/lib/jets/stack/builder.rb +3 -2
  399. data/lib/jets/stack/definition.rb +1 -4
  400. data/lib/jets/stack/function.rb +2 -2
  401. data/lib/jets/stack/main/dsl/cloudwatch.rb +4 -4
  402. data/lib/jets/stack/main/dsl/kinesis.rb +2 -2
  403. data/lib/jets/stack/main/dsl/lambda.rb +26 -19
  404. data/lib/jets/stack/main/dsl/sqs.rb +2 -2
  405. data/lib/jets/stack/output/lookup.rb +1 -1
  406. data/lib/jets/stack/output.rb +2 -2
  407. data/lib/jets/stack/parameter.rb +2 -2
  408. data/lib/jets/stack/resource.rb +3 -3
  409. data/lib/jets/stack/s3_event.rb +51 -37
  410. data/lib/jets/stack.rb +1 -1
  411. data/lib/jets/tasks/engine.rake +85 -0
  412. data/lib/jets/tasks/framework.rake +66 -0
  413. data/lib/jets/tasks/log.rake +41 -0
  414. data/lib/jets/tasks/middleware.rake +9 -0
  415. data/lib/jets/tasks/misc.rake +81 -0
  416. data/lib/jets/tasks/statistics.rake +37 -0
  417. data/lib/jets/tasks/tmp.rake +51 -0
  418. data/lib/jets/tasks/yarn.rake +29 -0
  419. data/lib/jets/tasks/zeitwerk.rake +61 -0
  420. data/lib/jets/tasks.rb +18 -0
  421. data/lib/jets/tmp_loader.rb +1 -1
  422. data/lib/jets/turbine/configurable.rb +36 -0
  423. data/lib/jets/turbine/configuration.rb +101 -0
  424. data/lib/jets/turbine.rb +164 -20
  425. data/lib/jets/util/camelize.rb +24 -0
  426. data/lib/jets/util/yamler.rb +16 -0
  427. data/lib/jets/version.rb +1 -1
  428. data/lib/jets.rb +8 -14
  429. metadata +444 -347
  430. data/.python-version +0 -1
  431. data/.ruby-version +0 -1
  432. data/bin/release +0 -9
  433. data/lib/jets/application/defaults.rb +0 -200
  434. data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +0 -16
  435. data/lib/jets/builders/reconfigure_rails.rb +0 -114
  436. data/lib/jets/cfn/builders/api_gateway_builder.rb +0 -123
  437. data/lib/jets/cfn/builders/api_resources_builder.rb +0 -44
  438. data/lib/jets/cfn/builders/base_child_builder.rb +0 -69
  439. data/lib/jets/cfn/builders/controller_builder.rb +0 -50
  440. data/lib/jets/cfn/builders/function_builder.rb +0 -14
  441. data/lib/jets/cfn/builders/interface.rb +0 -133
  442. data/lib/jets/cfn/builders/job_builder.rb +0 -14
  443. data/lib/jets/cfn/builders/parent_builder.rb +0 -130
  444. data/lib/jets/cfn/built_template.rb +0 -15
  445. data/lib/jets/cfn/template_source.rb +0 -61
  446. data/lib/jets/commands/base.rb +0 -145
  447. data/lib/jets/commands/call.rb +0 -182
  448. data/lib/jets/commands/clean.rb +0 -19
  449. data/lib/jets/commands/configure.rb +0 -51
  450. data/lib/jets/commands/console.rb +0 -12
  451. data/lib/jets/commands/db/environment-task.rake +0 -3
  452. data/lib/jets/commands/db/tasks/dummy/app.rb +0 -25
  453. data/lib/jets/commands/db/tasks/dummy/config.rb +0 -14
  454. data/lib/jets/commands/db/tasks.rb +0 -34
  455. data/lib/jets/commands/db.rb +0 -13
  456. data/lib/jets/commands/dbconsole.rb +0 -134
  457. data/lib/jets/commands/delete.rb +0 -136
  458. data/lib/jets/commands/dynamodb/migrate.rb +0 -9
  459. data/lib/jets/commands/dynamodb/migrator.rb +0 -36
  460. data/lib/jets/commands/dynamodb.rb +0 -19
  461. data/lib/jets/commands/gems.rb +0 -13
  462. data/lib/jets/commands/help/call.md +0 -69
  463. data/lib/jets/commands/help/dynamodb/generate.md +0 -52
  464. data/lib/jets/commands/help/dynamodb/migrate.md +0 -4
  465. data/lib/jets/commands/help/routes.md +0 -16
  466. data/lib/jets/commands/help/runner.md +0 -17
  467. data/lib/jets/commands/help.rb +0 -9
  468. data/lib/jets/commands/import/base.rb +0 -49
  469. data/lib/jets/commands/import/cheatsheet.rb +0 -35
  470. data/lib/jets/commands/import/rack.rb +0 -16
  471. data/lib/jets/commands/import/rails.rb +0 -74
  472. data/lib/jets/commands/import/sequence.rb +0 -90
  473. data/lib/jets/commands/import/templates/config/database.yml +0 -30
  474. data/lib/jets/commands/import/templates/submodules-cheatsheet.md +0 -89
  475. data/lib/jets/commands/import.rb +0 -12
  476. data/lib/jets/commands/main.rb +0 -166
  477. data/lib/jets/commands/markdown/creator.rb +0 -58
  478. data/lib/jets/commands/markdown/index.rb +0 -27
  479. data/lib/jets/commands/markdown/page.rb +0 -125
  480. data/lib/jets/commands/markdown/shell.rb +0 -11
  481. data/lib/jets/commands/new.rb +0 -173
  482. data/lib/jets/commands/rake_command.rb +0 -61
  483. data/lib/jets/commands/rake_tasks.rb +0 -50
  484. data/lib/jets/commands/runner.rb +0 -16
  485. data/lib/jets/commands/sequence.rb +0 -105
  486. data/lib/jets/commands/stack_info.rb +0 -30
  487. data/lib/jets/commands/templates/skeleton/.env.development.tt +0 -3
  488. data/lib/jets/commands/templates/skeleton/.env.test +0 -3
  489. data/lib/jets/commands/templates/skeleton/.env.tt +0 -3
  490. data/lib/jets/commands/templates/skeleton/.jetskeep +0 -1
  491. data/lib/jets/commands/templates/skeleton/Gemfile.tt +0 -40
  492. data/lib/jets/commands/templates/skeleton/Procfile +0 -7
  493. data/lib/jets/commands/templates/skeleton/Rakefile +0 -2
  494. data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +0 -2
  495. data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +0 -26
  496. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +0 -71
  497. data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +0 -22
  498. data/lib/jets/commands/templates/skeleton/config/environments/development.rb +0 -7
  499. data/lib/jets/commands/templates/skeleton/config/environments/production.rb +0 -9
  500. data/lib/jets/commands/templates/skeleton/config/environments/test.rb +0 -7
  501. data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +0 -23
  502. data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +0 -24
  503. data/lib/jets/commands/upgrade/templates/bin/webpack +0 -19
  504. data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +0 -19
  505. data/lib/jets/commands/upgrade/version1.rb +0 -136
  506. data/lib/jets/commands/upgrade.rb +0 -105
  507. data/lib/jets/commands/url.rb +0 -69
  508. data/lib/jets/commands/webpacker_template.rb +0 -18
  509. data/lib/jets/controller/callbacks.rb +0 -73
  510. data/lib/jets/controller/cookies/jar.rb +0 -269
  511. data/lib/jets/controller/cookies.rb +0 -38
  512. data/lib/jets/controller/error/invalid_authenticity_token.rb +0 -6
  513. data/lib/jets/controller/error.rb +0 -4
  514. data/lib/jets/controller/forgery_protection.rb +0 -43
  515. data/lib/jets/controller/layout.rb +0 -17
  516. data/lib/jets/controller/middleware/cors.rb +0 -60
  517. data/lib/jets/controller/middleware/local/mimic_aws_call.rb +0 -38
  518. data/lib/jets/controller/middleware/local/route_matcher.rb +0 -22
  519. data/lib/jets/controller/middleware/reloader.rb +0 -15
  520. data/lib/jets/controller/parameters_filter.rb +0 -29
  521. data/lib/jets/controller/params.rb +0 -117
  522. data/lib/jets/controller/redirection.rb +0 -61
  523. data/lib/jets/controller/rendering/rack_renderer.rb +0 -267
  524. data/lib/jets/controller/rendering.rb +0 -96
  525. data/lib/jets/controller/stage.rb +0 -34
  526. data/lib/jets/controller.rb +0 -3
  527. data/lib/jets/db.rb +0 -15
  528. data/lib/jets/generator/templates/erb/controller/view.html.erb +0 -2
  529. data/lib/jets/generator/templates/erb/scaffold/index.html.erb +0 -29
  530. data/lib/jets/generator/templates/rails/controller/controller.rb +0 -13
  531. data/lib/jets/generator/templates/rails/helper/helper.rb +0 -4
  532. data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +0 -67
  533. data/lib/jets/generator.rb +0 -112
  534. data/lib/jets/internal/app/controllers/jets/bare_controller.rb +0 -16
  535. data/lib/jets/internal/app/controllers/jets/rack_controller.rb +0 -12
  536. data/lib/jets/internal/app/functions/jets/base_path.rb +0 -18
  537. data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +0 -100
  538. data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +0 -9
  539. data/lib/jets/internal/app/jobs/jets/preheat_job.rb +0 -70
  540. data/lib/jets/internal/app/views/jets/mailers/index.html.erb +0 -8
  541. data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +0 -6
  542. data/lib/jets/internal/turbines/jets/mailer.rb +0 -52
  543. data/lib/jets/lambda/task.rb +0 -111
  544. data/lib/jets/logger.rb +0 -21
  545. data/lib/jets/middleware/configurator.rb +0 -84
  546. data/lib/jets/middleware/default_stack.rb +0 -53
  547. data/lib/jets/middleware/layer.rb +0 -34
  548. data/lib/jets/middleware/stack.rb +0 -77
  549. data/lib/jets/middleware.rb +0 -33
  550. data/lib/jets/naming.rb +0 -63
  551. data/lib/jets/overrides/rails/action_controller.rb +0 -13
  552. data/lib/jets/overrides/rails/asset_tag_helper.rb +0 -114
  553. data/lib/jets/overrides/rails/common_methods.rb +0 -13
  554. data/lib/jets/overrides/rails/migration_checker.rb +0 -34
  555. data/lib/jets/overrides/rails/rendering_helper.rb +0 -27
  556. data/lib/jets/overrides/rails/url_helper.rb +0 -88
  557. data/lib/jets/overrides/rails.rb +0 -6
  558. data/lib/jets/rack_server.rb +0 -86
  559. data/lib/jets/resource/api_gateway/base_path/function.rb +0 -49
  560. data/lib/jets/resource/api_gateway/base_path/role.rb +0 -76
  561. data/lib/jets/resource/api_gateway/cors.rb +0 -61
  562. data/lib/jets/resource/api_gateway/method.rb +0 -102
  563. data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +0 -16
  564. data/lib/jets/resource/base.rb +0 -28
  565. data/lib/jets/resource/child_stack/api_deployment.rb +0 -58
  566. data/lib/jets/resource/child_stack/api_gateway.rb +0 -23
  567. data/lib/jets/resource/child_stack/api_resource/page.rb +0 -20
  568. data/lib/jets/resource/child_stack/api_resource.rb +0 -54
  569. data/lib/jets/resource/child_stack/base.rb +0 -24
  570. data/lib/jets/resource/iam/base_role_definition.rb +0 -47
  571. data/lib/jets/resource/lambda/function.rb +0 -221
  572. data/lib/jets/resource/logs/subscription_filter.rb +0 -31
  573. data/lib/jets/resource/permission.rb +0 -45
  574. data/lib/jets/resource.rb +0 -71
  575. data/lib/jets/router/error.rb +0 -4
  576. data/lib/jets/router/finder.rb +0 -47
  577. data/lib/jets/router/helpers/core_helper.rb +0 -27
  578. data/lib/jets/router/helpers/named_routes_helper.rb +0 -8
  579. data/lib/jets/router/helpers.rb +0 -4
  580. data/lib/jets/router/method_creator/code.rb +0 -99
  581. data/lib/jets/router/method_creator/edit.rb +0 -12
  582. data/lib/jets/router/method_creator/generic.rb +0 -11
  583. data/lib/jets/router/method_creator/index.rb +0 -48
  584. data/lib/jets/router/method_creator/new.rb +0 -12
  585. data/lib/jets/router/method_creator/root.rb +0 -15
  586. data/lib/jets/router/method_creator/show.rb +0 -12
  587. data/lib/jets/router/method_creator.rb +0 -50
  588. data/lib/jets/turbo/database_yaml.rb +0 -41
  589. data/lib/jets/turbo/project/.gitignore +0 -12
  590. data/lib/jets/turbo/project/.jetskeep +0 -1
  591. data/lib/jets/turbo/project/Gemfile +0 -16
  592. data/lib/jets/turbo/project/Rakefile +0 -2
  593. data/lib/jets/turbo/project/app/controllers/application_controller.rb +0 -2
  594. data/lib/jets/turbo/project/app/helpers/application_helper.rb +0 -2
  595. data/lib/jets/turbo/project/app/jobs/application_job.rb +0 -4
  596. data/lib/jets/turbo/project/config/application.rb +0 -5
  597. data/lib/jets/turbo/project/config/routes.rb +0 -4
  598. data/lib/jets/turbo/project/config.ru +0 -5
  599. data/lib/jets/turbo/rails.rb +0 -127
  600. data/lib/jets/turbo/templates/config/database.yml +0 -30
  601. data/lib/jets/turbo.rb +0 -56
  602. data/readme/prerelease.md +0 -6
  603. data/readme/testing.md +0 -60
  604. /data/{lib/jets → engines}/internal/app/shared/functions/jets/s3_bucket_config.rb +0 -0
  605. /data/lib/jets/{commands → command}/help/build.md +0 -0
  606. /data/lib/jets/{commands → command}/help/clean/build.md +0 -0
  607. /data/lib/jets/{commands → command}/help/clean/log.md +0 -0
  608. /data/lib/jets/{commands → command}/help/console.md +0 -0
  609. /data/lib/jets/{commands → command}/help/db/generate.md +0 -0
  610. /data/lib/jets/{commands → command}/help/dbconsole.md +0 -0
  611. /data/lib/jets/{commands → command}/help/degenerate.md +0 -0
  612. /data/lib/jets/{commands → command}/help/delete.md +0 -0
  613. /data/lib/jets/{commands → command}/help/gems/check.md +0 -0
  614. /data/lib/jets/{commands → command}/help/generate.md +0 -0
  615. /data/lib/jets/{commands → command}/help/import/rack.md +0 -0
  616. /data/lib/jets/{commands → command}/help/import/rails.md +0 -0
  617. /data/lib/jets/{commands → command}/help/server.md +0 -0
  618. /data/lib/jets/{commands → command}/help/status.md +0 -0
  619. /data/lib/jets/{commands → command}/help/upgrade.md +0 -0
  620. /data/lib/jets/{commands → command}/help/url.md +0 -0
  621. /data/lib/jets/{generator/templates/active_job → generators}/job/templates/application_job.rb.tt +0 -0
  622. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/.rspec +0 -0
  623. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/README.md +0 -0
  624. /data/{.gitmodules → lib/jets/generators/overrides/app/templates/app/assets/images/.keep} +0 -0
  625. /data/lib/jets/{commands/templates/skeleton/db/.gitkeep → generators/overrides/app/templates/app/assets/javascripts/.keep} +0 -0
  626. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/controllers/application_controller.rb +0 -0
  627. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/helpers/application_helper.rb +0 -0
  628. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/app/jobs/application_job.rb +0 -0
  629. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/config.ru +0 -0
  630. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/public/favicon.ico +0 -0
  631. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/controllers/posts_controller_spec.rb +0 -0
  632. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-index.json +0 -0
  633. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/fixtures/payloads/posts-show.json +0 -0
  634. /data/lib/jets/{commands/templates/skeleton → generators/overrides/app/templates}/spec/spec_helper.rb.tt +0 -0
  635. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/_form.html.erb +0 -0
  636. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/edit.html.erb +0 -0
  637. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/new.html.erb +0 -0
  638. /data/lib/jets/{generator → generators/overrides}/templates/erb/scaffold/show.html.erb +0 -0
  639. /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/javascript.js +0 -0
  640. /data/lib/jets/{generator → generators/overrides}/templates/rails/assets/stylesheet.css +0 -0
  641. /data/lib/jets/{generator → generators/overrides}/templates/rails/scaffold/scaffold.css +0 -0
@@ -2,6 +2,8 @@
2
2
  #
3
3
  # default_associated_resource_definition
4
4
  #
5
+ require "dsl_evaluator" # for DslEvaluator.print_code only
6
+
5
7
  module Jets::Lambda::Dsl
6
8
  extend ActiveSupport::Concern
7
9
 
@@ -12,6 +14,7 @@ module Jets::Lambda::Dsl
12
14
  included do
13
15
  class << self
14
16
  extend Memoist
17
+ include Warnings
15
18
 
16
19
  def class_properties(options=nil)
17
20
  if options
@@ -31,23 +34,23 @@ module Jets::Lambda::Dsl
31
34
 
32
35
  def class_environment(hash)
33
36
  environment = standardize_env(hash)
34
- class_properties(environment: environment)
37
+ class_properties(Environment: environment)
35
38
  end
36
39
  alias_method :class_env, :class_environment
37
40
 
38
41
  def environment(hash)
39
42
  environment = standardize_env(hash)
40
- properties(environment: environment)
43
+ properties(Environment: environment)
41
44
  end
42
45
  alias_method :env, :environment
43
46
 
44
47
  # Allows user to pass in hash with or without the :variables key.
45
48
  def standardize_env(hash)
46
- return hash if hash.key?(:variables)
49
+ return hash if hash.key?(:Variables)
47
50
 
48
51
  environment = {}
49
- environment[:variables] ||= {}
50
- environment[:variables].merge!(hash)
52
+ environment[:Variables] ||= {}
53
+ environment[:Variables].merge!(hash)
51
54
  environment
52
55
  end
53
56
 
@@ -57,6 +60,7 @@ module Jets::Lambda::Dsl
57
60
  PROPERTIES = %W[
58
61
  dead_letter_config
59
62
  description
63
+ ephemeral_storage
60
64
  handler
61
65
  kms_key_arn
62
66
  memory_size
@@ -98,7 +102,9 @@ module Jets::Lambda::Dsl
98
102
  if definitions.empty?
99
103
  @iam_policy
100
104
  else
101
- @iam_policy = definitions.flatten
105
+ iam_policy_unused_warning(managed=false)
106
+ @iam_policy ||= []
107
+ @iam_policy += definitions.flatten
102
108
  end
103
109
  end
104
110
 
@@ -107,7 +113,9 @@ module Jets::Lambda::Dsl
107
113
  if definitions.empty?
108
114
  @class_iam_policy
109
115
  else
110
- @class_iam_policy = definitions.flatten
116
+ class_iam_policy_unused_warning(managed=false)
117
+ @class_iam_policy ||= []
118
+ @class_iam_policy += definitions.flatten
111
119
  end
112
120
  end
113
121
 
@@ -116,7 +124,9 @@ module Jets::Lambda::Dsl
116
124
  if definitions.empty?
117
125
  @managed_iam_policy
118
126
  else
119
- @managed_iam_policy = definitions.flatten
127
+ iam_policy_unused_warning(managed=true)
128
+ @managed_iam_policy ||= []
129
+ @managed_iam_policy += definitions.flatten
120
130
  end
121
131
  end
122
132
 
@@ -125,7 +135,9 @@ module Jets::Lambda::Dsl
125
135
  if definitions.empty?
126
136
  @class_managed_iam_policy
127
137
  else
128
- @class_managed_iam_policy = definitions.flatten
138
+ class_iam_policy_unused_warning(managed=true)
139
+ @class_managed_iam_policy ||= []
140
+ @class_managed_iam_policy += definitions.flatten
129
141
  end
130
142
  end
131
143
 
@@ -141,7 +153,7 @@ module Jets::Lambda::Dsl
141
153
  @associated_resources || []
142
154
  else
143
155
  @associated_resources ||= []
144
- associated_resource = Jets::Resource::Associated.new(definitions)
156
+ associated_resource = Jets::Cfn::Resource::Associated.new(definitions)
145
157
  associated_resource.multiple_resources = @multiple_resources
146
158
  @associated_resources << associated_resource
147
159
  @associated_resources.flatten!
@@ -207,7 +219,7 @@ module Jets::Lambda::Dsl
207
219
 
208
220
  logical_id = logical_id.to_s.sub(/\d+$/,'')
209
221
  new_definition = { "#{logical_id}#{n}" => attributes }
210
- numbered_resources << Jets::Resource::Associated.new(new_definition)
222
+ numbered_resources << Jets::Cfn::Resource::Associated.new(new_definition)
211
223
  n += 1
212
224
  end
213
225
  @associated_resources = numbered_resources
@@ -233,7 +245,13 @@ module Jets::Lambda::Dsl
233
245
  end
234
246
 
235
247
  def ref(name)
236
- "!Ref #{name.to_s.camelize}"
248
+ name = name.is_a?(Symbol) ? name.to_s.camelize : name
249
+ "!Ref #{name}"
250
+ end
251
+
252
+ def sub(value)
253
+ value = value.is_a?(Symbol) ? value.to_s.camelize : value
254
+ "!Sub #{value}"
237
255
  end
238
256
 
239
257
  # meth is a Symbol
@@ -241,13 +259,13 @@ module Jets::Lambda::Dsl
241
259
  return if %w[initialize method_missing].include?(meth.to_s)
242
260
  return unless public_method_defined?(meth)
243
261
 
244
- register_task(meth)
262
+ register_definition(meth)
245
263
  end
246
264
 
247
- def register_task(meth, lang=:ruby)
265
+ def register_definition(meth, lang=:ruby)
248
266
  # Note: for anonymous classes like for app/functions self.name is ""
249
267
  # We adjust the class name when we build the functions later in
250
- # FunctionContstructor#adjust_tasks.
268
+ # FunctionContstructor#adjust_definitions.
251
269
 
252
270
  # At this point we can use the current associated_properties and defined the
253
271
  # associated resource with the Lambda function.
@@ -261,7 +279,7 @@ module Jets::Lambda::Dsl
261
279
  add_logical_id_counter
262
280
  end
263
281
 
264
- all_tasks[meth] = Jets::Lambda::Task.new(self.name, meth,
282
+ all_definitions[meth] = Jets::Lambda::Definition.new(self.name, meth,
265
283
  properties: @properties, # lambda function properties
266
284
  iam_policy: @iam_policy,
267
285
  managed_iam_policy: @managed_iam_policy,
@@ -272,7 +290,7 @@ module Jets::Lambda::Dsl
272
290
  # Done storing options, clear out for the next added method.
273
291
  clear_properties
274
292
  # Important to clear @properties at the end of registering outside of
275
- # register_task because register_task is overridden in Jets::Job::Dsl
293
+ # register_definition because register_definition is overridden in Jets::Job::Dsl
276
294
  #
277
295
  # Jets::Job::Base < Jets::Lambda::Functions
278
296
  #
@@ -295,81 +313,82 @@ module Jets::Lambda::Dsl
295
313
  @associated_properties = nil
296
314
  end
297
315
 
298
- # Returns the all tasks for this class with their method names as keys.
316
+ # Returns the all definitions for this class with their method names as keys.
299
317
  #
300
318
  # ==== Returns
301
- # OrderedHash:: An ordered hash with tasks names as keys and Task
319
+ # OrderedHash:: An ordered hash with definitions names as keys and definition
302
320
  # objects as values.
303
321
  #
304
- def all_tasks
305
- @all_tasks ||= ActiveSupport::OrderedHash.new
322
+ def all_definitions
323
+ @all_definitions ||= ActiveSupport::OrderedHash.new
306
324
  end
307
- # Do not call all tasks outside this class, instead use: tasks or lambda functions
308
- private :all_tasks
325
+ # Do not call all definitions outside this class, instead use: definitions or lambda functions
326
+ private :all_definitions
309
327
 
310
- # Goes up the class inheritance chain to build the tasks.
328
+ # Goes up the class inheritance chain to build the definitions.
311
329
  #
312
330
  # Example heirarchy:
313
331
  #
314
332
  # Jets::Lambda::Functions > Jets::Controller::Base > ApplicationController ...
315
333
  # > PostsController > ChildPostsController
316
334
  #
317
- # Do not include tasks from the direct subclasses of Jets::Lambda::Functions
335
+ # Do not include definitions from the direct subclasses of Jets::Lambda::Functions
318
336
  # because those classes are abstract. Dont want those methods to be included.
319
- def find_all_tasks(public: true)
337
+ def find_all_definitions(options={})
338
+ public = options[:public].nil? ? true : options[:public]
320
339
  klass = self
321
340
  direct_subclasses = Jets::Lambda::Functions.subclasses
322
341
  lookup = []
323
342
 
324
343
  # Go up class inheritance and builds lookup structure in memory
325
344
  until direct_subclasses.include?(klass)
326
- lookup << klass.send(:all_tasks) # one place we want to call private all_tasks method
345
+ lookup << klass.send(:all_definitions) # one place we want to call private all_definitions method
327
346
  klass = klass.superclass
328
347
  end
329
- merged_tasks = ActiveSupport::OrderedHash.new
330
- # Go back down the class inheritance chain in reverse order and merge the tasks
331
- lookup.reverse.each do |tasks_hash|
332
- # tasks_hash is a result of all_tasks. Example: PostsController.all_tasks
333
- merged_tasks.merge!(tasks_hash)
348
+ merged_definitions = ActiveSupport::OrderedHash.new
349
+ # Go back down the class inheritance chain in reverse order and merge the definitions
350
+ lookup.reverse.each do |definitions_hash|
351
+ # definitions_hash is a result of all_definitions. Example: PostsController.all_definitions
352
+ merged_definitions.merge!(definitions_hash)
334
353
  end
335
354
 
336
355
  # The cfn builders required the right final child class to build the lambda functions correctly.
337
- merged_tasks.each do |meth, task|
356
+ merged_definitions.each do |meth, definition|
338
357
  # Override the class name for the cfn builders
339
- task = task.clone # do not stomp over current tasks since things are usually looked by reference
340
- task.instance_variable_set(:@class_name, self.name)
341
- merged_tasks[meth] = task
358
+ definition = definition.clone # do not stomp over current definitions since things are usually looked by reference
359
+ definition.instance_variable_set(:@class_name, self.name)
360
+ merged_definitions[meth] = definition
342
361
  end
343
362
 
344
363
  # Methods can be made private with the :private keyword after the method has been defined.
345
364
  # To account for this, loop back thorugh all the methods and check if the method is indeed public.
346
- tasks = ActiveSupport::OrderedHash.new
347
- merged_tasks.each do |meth, task|
365
+ definitions = ActiveSupport::OrderedHash.new
366
+ merged_definitions.each do |meth, definition|
348
367
  if public
349
- tasks[meth] = task if task.public_meth?
368
+ definitions[meth] = definition if definition.public_meth?
350
369
  else
351
- tasks[meth] = task unless task.public_meth?
370
+ definitions[meth] = definition unless definition.public_meth?
352
371
  end
353
372
  end
354
- tasks
373
+ definitions
355
374
  end
356
- memoize :find_all_tasks
375
+ memoize :find_all_definitions
357
376
 
358
- def all_public_tasks
359
- find_all_tasks(public: true)
377
+ def all_public_definitions
378
+ find_all_definitions(public: true)
360
379
  end
361
380
 
362
- def all_private_tasks
363
- find_all_tasks(public: false)
381
+ def all_private_definitions
382
+ find_all_definitions(public: false)
364
383
  end
365
384
 
366
- # Returns the tasks for this class in Array form.
385
+ # Returns the definitions for this class in Array form.
367
386
  #
368
387
  # ==== Returns
369
- # Array of task objects
388
+ # Array of definition objects
370
389
  #
371
- def tasks
372
- all_public_tasks.values
390
+ def definitions
391
+ all_public_definitions.values
373
392
  end
374
393
 
375
394
  # The public methods defined in the project app class ulimately become
@@ -378,18 +397,18 @@ module Jets::Lambda::Dsl
378
397
  # Example return value:
379
398
  # [:index, :new, :create, :show]
380
399
  def lambda_functions
381
- all_public_tasks.keys
400
+ all_public_definitions.keys
382
401
  end
383
402
 
384
- # Used in Jets::Cfn::Builders::Interface#build
403
+ # Used in Jets::Cfn::Builder::Interface#build
385
404
  # Overridden in rule/dsl.rb
386
405
  def build?
387
- !tasks.empty?
406
+ !definitions.empty?
388
407
  end
389
408
 
390
409
  # Polymorphic support
391
410
  def defpoly(lang, meth)
392
- register_task(meth, lang)
411
+ register_definition(meth, lang)
393
412
  end
394
413
 
395
414
  def python(meth)
@@ -13,11 +13,11 @@ module Jets::Lambda
13
13
  end
14
14
 
15
15
  def self.handler
16
- handler_task.meth
16
+ handler_definition.meth
17
17
  end
18
18
 
19
- def self.handler_task
20
- tasks.first
19
+ def self.handler_definition
20
+ definitions.first
21
21
  end
22
22
 
23
23
  # Used by main_processor.rb. Same interface as controllers and jobs.
@@ -36,18 +36,18 @@ module Jets::Lambda
36
36
  code = IO.read(@code_path)
37
37
  function_klass = Class.new(Jets::Lambda::Function)
38
38
  function_klass.module_eval(code, @code_path)
39
- adjust_tasks(function_klass)
39
+ adjust_definitions(function_klass)
40
40
  function_klass # assign this to a Constant for a pretty class name
41
41
  end
42
42
 
43
- # For anonymous classes method_added during task registration contains ""
43
+ # For anonymous classes method_added during definition registration contains ""
44
44
  # for the class name. We adjust it here.
45
- def adjust_tasks(klass)
45
+ def adjust_definitions(klass)
46
46
  class_name = @code_path.to_s.sub(/.*\/functions\//,'').sub(/\.rb$/, '')
47
47
  class_name = class_name.camelize
48
- klass.tasks.each do |task|
49
- task.class_name = class_name
50
- task.type = "function"
48
+ klass.definitions.each do |definition|
49
+ definition.class_name = class_name
50
+ definition.type = "function"
51
51
  end
52
52
  end
53
53
  end
@@ -7,6 +7,8 @@ require 'json'
7
7
  # Jets::Job::Base
8
8
  module Jets::Lambda
9
9
  class Functions
10
+ include Jets::ExceptionReporting
11
+
10
12
  attr_reader :event, :context, :meth
11
13
  def initialize(event, context, meth)
12
14
  @event = HashWithIndifferentAccess.new(event) # Hash, JSON.parse(event) ran BaseProcessor
@@ -16,11 +18,44 @@ module Jets::Lambda
16
18
  # to use later.
17
19
  end
18
20
 
21
+ def logger
22
+ Jets.logger
23
+ end
24
+
19
25
  include Dsl # At the end so methods like event, context and method
20
26
  # do not trigger method_added
21
27
 
28
+ # Pretty hacky since action_view/rendering.rb _normalize_options calls super
29
+ def _normalize_options(options) # :doc:
30
+ options
31
+ end
32
+
22
33
  class << self
23
- # Tracking subclasses because it helps with Lambda::Dsl#find_all_tasks
34
+ attr_reader :abstract
35
+ alias_method :abstract?, :abstract
36
+ @abstract = true
37
+
38
+ class << self
39
+ def inherited(klass) # :nodoc:
40
+ # Define the abstract ivar on subclasses so that we don't get
41
+ # uninitialized ivar warnings
42
+ unless klass.instance_variable_defined?(:@abstract)
43
+ klass.instance_variable_set(:@abstract, false)
44
+ end
45
+ super
46
+ end
47
+ end
48
+
49
+ # Define a controller as abstract. See internal_methods for more details.
50
+ def abstract!
51
+ @abstract = true
52
+ end
53
+
54
+ def _prefixes
55
+ []
56
+ end
57
+
58
+ # Tracking subclasses because it helps with Lambda::Dsl#find_all_definitions
24
59
  def subclasses
25
60
  @subclasses ||= []
26
61
  end
@@ -7,7 +7,7 @@ module Jets::Mega
7
7
  value.each { |k,v| encode(v, append_key(key,k), out_hash) }
8
8
  out_hash
9
9
  when Array then
10
- value.each { |v| encode(v, "#{key}[]", out_hash) }
10
+ value.each { |v| encode(v, "#{key}", out_hash) }
11
11
  out_hash
12
12
  when nil then ''
13
13
  else
@@ -22,4 +22,4 @@ module Jets::Mega
22
22
  root_key.nil? ? :"#{key}" : :"#{root_key}[#{key.to_s}]"
23
23
  end
24
24
  end
25
- end
25
+ end
@@ -2,8 +2,7 @@ class Jets::Mega::Request
2
2
  class Source
3
3
  def initialize(event)
4
4
  @event = event
5
- env = Jets::Controller::Rack::Env.new(@event, {}).convert # convert to Rack env
6
- @source_request = Rack::Request.new(env)
5
+ @source_request = Rack::Request.new(event: event)
7
6
  end
8
7
 
9
8
  def body
@@ -14,14 +14,14 @@ module Jets::Mega
14
14
 
15
15
  def proxy
16
16
  http_method = @event['httpMethod'] # GET, POST, PUT, DELETE, etc
17
- params = @controller.params(raw: true, path_parameters: false)
17
+ params = @controller.params(include_path_params: false)
18
18
 
19
19
  uri = get_uri
20
20
 
21
21
  http = Net::HTTP.new(uri.host, uri.port)
22
22
  http.open_timeout = http.read_timeout = 60
23
23
 
24
- # Rails sets _method=patch or _method=put as workaround
24
+ # Jets sets _method=patch or _method=put as workaround
25
25
  # Falls back to GET when testing in lambda console
26
26
  http_class = params['_method'] || http_method || 'GET'
27
27
  http_class.capitalize!
@@ -115,7 +115,7 @@ module Jets::Mega
115
115
  end
116
116
  memoize :source
117
117
 
118
- # Rails sets _method=patch or _method=put as workaround
118
+ # Jets sets _method=patch or _method=put as workaround
119
119
  # Falls back to GET when testing in lambda console
120
120
  # @event['httpMethod'] is GET, POST, PUT, DELETE, etc
121
121
  def http_class
@@ -125,7 +125,7 @@ module Jets::Mega
125
125
  end
126
126
 
127
127
  def params
128
- @controller.params(raw: true, path_parameters: false, body_parameters: true)
128
+ @controller.params(include_path_params: false, include_body_params: true)
129
129
  end
130
130
  memoize :params
131
131
 
data/lib/jets/names.rb ADDED
@@ -0,0 +1,79 @@
1
+ # This class groups the names in one place.
2
+ # Some names are for CloudFormation
3
+ # Some are for the Build process
4
+ class Jets::Names
5
+ # Mainly used by build.rb
6
+ class << self
7
+ extend Memoist
8
+
9
+ def templates_folder
10
+ "#{Jets.build_root}/templates"
11
+ end
12
+
13
+ def one_controller_template_path
14
+ "#{templates_folder}/jets-controller.yml"
15
+ end
16
+
17
+ def app_template_path(app_class)
18
+ underscored = underscore(app_class)
19
+ "#{templates_folder}/app-#{underscored}.yml"
20
+ end
21
+
22
+ def shared_template_path(shared_class)
23
+ underscored = underscore(shared_class)
24
+ "#{templates_folder}/shared-#{underscored}.yml"
25
+ end
26
+
27
+ # consider moving these methods into cfn/builder/helpers.rb or that area.
28
+ def parent_template_path
29
+ "#{templates_folder}/parent.yml"
30
+ end
31
+
32
+ # consider moving these methods into cfn/builder/helpers.rb or that area.
33
+ def api_gateway_template_path
34
+ "#{templates_folder}/api-gateway.yml"
35
+ end
36
+
37
+ def api_resources_template_path(page_number)
38
+ "#{templates_folder}/api-resources-#{page_number}.yml"
39
+ end
40
+
41
+ def api_cors_template_path(page_number)
42
+ "#{templates_folder}/api-cors-#{page_number}.yml"
43
+ end
44
+
45
+ def api_methods_template_path(page_number)
46
+ "#{templates_folder}/api-methods-#{page_number}.yml"
47
+ end
48
+
49
+ def api_deployment_template_path
50
+ "#{templates_folder}/api-deployment.yml"
51
+ end
52
+
53
+ def api_mapping_template_path
54
+ "#{templates_folder}/api-mapping.yml"
55
+ end
56
+
57
+ def shared_resources_template_path
58
+ "#{templates_folder}/shared-resources.yml"
59
+ end
60
+
61
+ def parent_stack_name
62
+ Jets.project_namespace
63
+ end
64
+
65
+ def gateway_api_name
66
+ Jets.project_namespace
67
+ end
68
+
69
+ def authorizer_template_path(path)
70
+ underscored = underscore(path)
71
+ underscored.sub!(/^app-/, '')
72
+ "#{templates_folder}/#{underscored}.yml"
73
+ end
74
+
75
+ def underscore(s)
76
+ s.to_s.underscore.sub(/\.rb$/,'').gsub('/','-')
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,11 @@
1
+ # This is a dummy Rails class that delegates to Jets.
2
+ # It's only used for jets generate and jets db:migrate.
3
+ # It's easier to mock out the Rails module then to get them working.
4
+
5
+ module Rails
6
+ cattr_accessor :application
7
+ self.application = Jets.application
8
+ class << self
9
+ delegate :env, :root, to: Jets
10
+ end
11
+ end
@@ -22,6 +22,16 @@ module AwsLambda
22
22
  else
23
23
  # Orignal method calls .to_json but this collides with ActiveSupport's to_json
24
24
  # method_response.to_json # application/json is assumed
25
+ # https://stackoverflow.com/questions/18067203/ruby-to-json-issue-with-error-illegal-malformed-utf-8
26
+ if method_response.is_a?(Hash)
27
+ method_response.deep_transform_values! do |v|
28
+ if v.respond_to?(:force_encoding) && !v.frozen?
29
+ v.force_encoding("ISO-8859-1").encode("UTF-8")
30
+ else
31
+ v # IE: Integer
32
+ end
33
+ end
34
+ end
25
35
  JSON.dump(method_response)
26
36
  end
27
37
  end
@@ -0,0 +1,10 @@
1
+ require "puma/error_logger"
2
+ class Puma::ErrorLogger
3
+ alias_method :original_title, :title
4
+ def title(options={})
5
+ string = original_title(options)
6
+ error = options[:error]
7
+ string << "\n#{error.backtrace.join("\n")}" if error
8
+ string
9
+ end
10
+ end