jets.benforeva 3.0.17.pre.mount.pre.fix

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 (459) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +92 -0
  3. data/.cody/README.md +13 -0
  4. data/.cody/docs/bin/build.sh +7 -0
  5. data/.cody/docs/bin/bundler_setup.sh +8 -0
  6. data/.cody/docs/bin/cli_docs.sh +6 -0
  7. data/.cody/docs/bin/git_commit.sh +27 -0
  8. data/.cody/docs/bin/git_setup.sh +12 -0
  9. data/.cody/docs/bin/subnav.sh +14 -0
  10. data/.cody/docs/buildspec.yml +10 -0
  11. data/.cody/docs/project.rb +10 -0
  12. data/.github/ISSUE_TEMPLATE/bug_report.md +84 -0
  13. data/.github/ISSUE_TEMPLATE/documentation.md +27 -0
  14. data/.github/ISSUE_TEMPLATE/feature_request.md +64 -0
  15. data/.github/ISSUE_TEMPLATE/question.md +14 -0
  16. data/.github/ISSUE_TEMPLATE.md +7 -0
  17. data/.github/PULL_REQUEST_TEMPLATE.md +50 -0
  18. data/.gitignore +24 -0
  19. data/.gitmodules +0 -0
  20. data/.python-version +1 -0
  21. data/.rspec +4 -0
  22. data/.ruby-gemset +1 -0
  23. data/.ruby-version +1 -0
  24. data/CHANGELOG.md +1035 -0
  25. data/CONDUCT.md +1 -0
  26. data/CONTRIBUTING.md +1 -0
  27. data/Dockerfile +16 -0
  28. data/Dockerfile.base +53 -0
  29. data/Gemfile +14 -0
  30. data/Guardfile +22 -0
  31. data/LICENSE.txt +22 -0
  32. data/Procfile +2 -0
  33. data/README.md +212 -0
  34. data/Rakefile +24 -0
  35. data/backers.md +20 -0
  36. data/bin/release +9 -0
  37. data/exe/jets.benforeva +14 -0
  38. data/jets.benforeva.gemspec +71 -0
  39. data/lib/jets/application/defaults.rb +200 -0
  40. data/lib/jets/application.rb +240 -0
  41. data/lib/jets/authorizer/base.rb +36 -0
  42. data/lib/jets/authorizer/dsl.rb +69 -0
  43. data/lib/jets/authorizer/helpers/iam_helper.rb +47 -0
  44. data/lib/jets/autoloaders.rb +112 -0
  45. data/lib/jets/aws_info.rb +111 -0
  46. data/lib/jets/aws_services/global_memoist.rb +57 -0
  47. data/lib/jets/aws_services/s3_bucket.rb +34 -0
  48. data/lib/jets/aws_services/stack_status.rb +64 -0
  49. data/lib/jets/aws_services.rb +95 -0
  50. data/lib/jets/booter.rb +167 -0
  51. data/lib/jets/builders/code_builder.rb +410 -0
  52. data/lib/jets/builders/code_size.rb +57 -0
  53. data/lib/jets/builders/gem_replacer.rb +89 -0
  54. data/lib/jets/builders/handler_generator.rb +186 -0
  55. data/lib/jets/builders/lambda_layer.rb +68 -0
  56. data/lib/jets/builders/md5.rb +60 -0
  57. data/lib/jets/builders/md5_zip.rb +61 -0
  58. data/lib/jets/builders/purger.rb +35 -0
  59. data/lib/jets/builders/rack_packager.rb +51 -0
  60. data/lib/jets/builders/rackup_wrappers/rackup +19 -0
  61. data/lib/jets/builders/rackup_wrappers/rackup.rb +7 -0
  62. data/lib/jets/builders/reconfigure_rails/config/initializers/jets.rb +16 -0
  63. data/lib/jets/builders/reconfigure_rails.rb +114 -0
  64. data/lib/jets/builders/ruby_packager.rb +235 -0
  65. data/lib/jets/builders/shim_vars/app.rb +78 -0
  66. data/lib/jets/builders/shim_vars/base.rb +25 -0
  67. data/lib/jets/builders/shim_vars/shared.rb +37 -0
  68. data/lib/jets/builders/templates/handler.rb +12 -0
  69. data/lib/jets/builders/tidy.rb +107 -0
  70. data/lib/jets/builders/util.rb +31 -0
  71. data/lib/jets/bundle.rb +88 -0
  72. data/lib/jets/camelizer.rb +4 -0
  73. data/lib/jets/cfn/builders/api_deployment_builder.rb +56 -0
  74. data/lib/jets/cfn/builders/api_gateway_builder.rb +123 -0
  75. data/lib/jets/cfn/builders/api_resources_builder.rb +44 -0
  76. data/lib/jets/cfn/builders/authorizer_builder.rb +67 -0
  77. data/lib/jets/cfn/builders/base_child_builder.rb +69 -0
  78. data/lib/jets/cfn/builders/controller_builder.rb +50 -0
  79. data/lib/jets/cfn/builders/function_builder.rb +14 -0
  80. data/lib/jets/cfn/builders/interface.rb +133 -0
  81. data/lib/jets/cfn/builders/job_builder.rb +14 -0
  82. data/lib/jets/cfn/builders/parent_builder/stagger.rb +34 -0
  83. data/lib/jets/cfn/builders/parent_builder.rb +130 -0
  84. data/lib/jets/cfn/builders/rule_builder.rb +24 -0
  85. data/lib/jets/cfn/builders/shared_builder.rb +14 -0
  86. data/lib/jets/cfn/builders/util/source.rb +21 -0
  87. data/lib/jets/cfn/built_template.rb +15 -0
  88. data/lib/jets/cfn/ship.rb +188 -0
  89. data/lib/jets/cfn/status.rb +10 -0
  90. data/lib/jets/cfn/template_source.rb +61 -0
  91. data/lib/jets/cfn/upload.rb +157 -0
  92. data/lib/jets/cli.rb +208 -0
  93. data/lib/jets/commands/base.rb +145 -0
  94. data/lib/jets/commands/build.rb +252 -0
  95. data/lib/jets/commands/call/anonymous_guesser.rb +96 -0
  96. data/lib/jets/commands/call/autoload_guesser.rb +136 -0
  97. data/lib/jets/commands/call/base_guesser.rb +62 -0
  98. data/lib/jets/commands/call/guesser.rb +48 -0
  99. data/lib/jets/commands/call.rb +182 -0
  100. data/lib/jets/commands/clean/base.rb +24 -0
  101. data/lib/jets/commands/clean/build.rb +13 -0
  102. data/lib/jets/commands/clean/log.rb +111 -0
  103. data/lib/jets/commands/clean.rb +19 -0
  104. data/lib/jets/commands/configure.rb +51 -0
  105. data/lib/jets/commands/console.rb +12 -0
  106. data/lib/jets/commands/db/environment-task.rake +3 -0
  107. data/lib/jets/commands/db/tasks/dummy/app.rb +25 -0
  108. data/lib/jets/commands/db/tasks/dummy/config.rb +14 -0
  109. data/lib/jets/commands/db/tasks.rb +34 -0
  110. data/lib/jets/commands/db.rb +13 -0
  111. data/lib/jets/commands/dbconsole.rb +134 -0
  112. data/lib/jets/commands/delete.rb +136 -0
  113. data/lib/jets/commands/deploy.rb +137 -0
  114. data/lib/jets/commands/dotenv.rb +9 -0
  115. data/lib/jets/commands/dynamodb/migrate.rb +9 -0
  116. data/lib/jets/commands/dynamodb/migrator.rb +36 -0
  117. data/lib/jets/commands/dynamodb.rb +19 -0
  118. data/lib/jets/commands/gems.rb +13 -0
  119. data/lib/jets/commands/help/build.md +6 -0
  120. data/lib/jets/commands/help/call.md +69 -0
  121. data/lib/jets/commands/help/clean/build.md +5 -0
  122. data/lib/jets/commands/help/clean/log.md +5 -0
  123. data/lib/jets/commands/help/console.md +18 -0
  124. data/lib/jets/commands/help/db/generate.md +8 -0
  125. data/lib/jets/commands/help/dbconsole.md +9 -0
  126. data/lib/jets/commands/help/degenerate.md +16 -0
  127. data/lib/jets/commands/help/delete.md +22 -0
  128. data/lib/jets/commands/help/deploy.md +32 -0
  129. data/lib/jets/commands/help/dynamodb/generate.md +52 -0
  130. data/lib/jets/commands/help/dynamodb/migrate.md +4 -0
  131. data/lib/jets/commands/help/gems/check.md +6 -0
  132. data/lib/jets/commands/help/generate.md +28 -0
  133. data/lib/jets/commands/help/import/rack.md +13 -0
  134. data/lib/jets/commands/help/import/rails.md +11 -0
  135. data/lib/jets/commands/help/new.md +42 -0
  136. data/lib/jets/commands/help/routes.md +16 -0
  137. data/lib/jets/commands/help/runner.md +17 -0
  138. data/lib/jets/commands/help/server.md +15 -0
  139. data/lib/jets/commands/help/status.md +14 -0
  140. data/lib/jets/commands/help/upgrade.md +7 -0
  141. data/lib/jets/commands/help/url.md +6 -0
  142. data/lib/jets/commands/help.rb +9 -0
  143. data/lib/jets/commands/import/base.rb +49 -0
  144. data/lib/jets/commands/import/cheatsheet.rb +35 -0
  145. data/lib/jets/commands/import/rack.rb +16 -0
  146. data/lib/jets/commands/import/rails.rb +74 -0
  147. data/lib/jets/commands/import/sequence.rb +90 -0
  148. data/lib/jets/commands/import/templates/config/database.yml +30 -0
  149. data/lib/jets/commands/import/templates/submodules-cheatsheet.md +89 -0
  150. data/lib/jets/commands/import.rb +12 -0
  151. data/lib/jets/commands/main.rb +166 -0
  152. data/lib/jets/commands/markdown/creator.rb +58 -0
  153. data/lib/jets/commands/markdown/index.rb +27 -0
  154. data/lib/jets/commands/markdown/page.rb +125 -0
  155. data/lib/jets/commands/markdown/shell.rb +11 -0
  156. data/lib/jets/commands/new.rb +173 -0
  157. data/lib/jets/commands/rake_command.rb +61 -0
  158. data/lib/jets/commands/rake_tasks.rb +50 -0
  159. data/lib/jets/commands/runner.rb +16 -0
  160. data/lib/jets/commands/sequence.rb +105 -0
  161. data/lib/jets/commands/stack_info.rb +30 -0
  162. data/lib/jets/commands/templates/skeleton/.env.development.tt +3 -0
  163. data/lib/jets/commands/templates/skeleton/.env.test +3 -0
  164. data/lib/jets/commands/templates/skeleton/.env.tt +3 -0
  165. data/lib/jets/commands/templates/skeleton/.gitignore +12 -0
  166. data/lib/jets/commands/templates/skeleton/.jetskeep +1 -0
  167. data/lib/jets/commands/templates/skeleton/.rspec +3 -0
  168. data/lib/jets/commands/templates/skeleton/Gemfile.tt +39 -0
  169. data/lib/jets/commands/templates/skeleton/Procfile +7 -0
  170. data/lib/jets/commands/templates/skeleton/README.md +11 -0
  171. data/lib/jets/commands/templates/skeleton/Rakefile +2 -0
  172. data/lib/jets/commands/templates/skeleton/app/controllers/application_controller.rb +2 -0
  173. data/lib/jets/commands/templates/skeleton/app/helpers/application_helper.rb +2 -0
  174. data/lib/jets/commands/templates/skeleton/app/jobs/application_job.rb +4 -0
  175. data/lib/jets/commands/templates/skeleton/app/models/application_item.rb +2 -0
  176. data/lib/jets/commands/templates/skeleton/app/models/application_record.rb +3 -0
  177. data/lib/jets/commands/templates/skeleton/app/views/layouts/application.html.erb.tt +26 -0
  178. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +71 -0
  179. data/lib/jets/commands/templates/skeleton/config/database.yml.tt +27 -0
  180. data/lib/jets/commands/templates/skeleton/config/dynamodb.yml +22 -0
  181. data/lib/jets/commands/templates/skeleton/config/environments/development.rb +7 -0
  182. data/lib/jets/commands/templates/skeleton/config/environments/production.rb +9 -0
  183. data/lib/jets/commands/templates/skeleton/config/environments/test.rb +7 -0
  184. data/lib/jets/commands/templates/skeleton/config/routes.rb +9 -0
  185. data/lib/jets/commands/templates/skeleton/config.ru +5 -0
  186. data/lib/jets/commands/templates/skeleton/db/.gitkeep +0 -0
  187. data/lib/jets/commands/templates/skeleton/public/404.html +67 -0
  188. data/lib/jets/commands/templates/skeleton/public/422.html +67 -0
  189. data/lib/jets/commands/templates/skeleton/public/500.html +66 -0
  190. data/lib/jets/commands/templates/skeleton/public/favicon.ico +0 -0
  191. data/lib/jets/commands/templates/skeleton/public/index.html.tt +91 -0
  192. data/lib/jets/commands/templates/skeleton/spec/controllers/posts_controller_spec.rb +15 -0
  193. data/lib/jets/commands/templates/skeleton/spec/fixtures/payloads/posts-index.json +51 -0
  194. data/lib/jets/commands/templates/skeleton/spec/fixtures/payloads/posts-show.json +53 -0
  195. data/lib/jets/commands/templates/skeleton/spec/spec_helper.rb.tt +30 -0
  196. data/lib/jets/commands/templates/webpacker/app/javascript/packs/application.js.tt +23 -0
  197. data/lib/jets/commands/templates/webpacker/app/javascript/packs/theme.scss.tt +24 -0
  198. data/lib/jets/commands/upgrade/templates/bin/webpack +19 -0
  199. data/lib/jets/commands/upgrade/templates/bin/webpack-dev-server +19 -0
  200. data/lib/jets/commands/upgrade/version1.rb +136 -0
  201. data/lib/jets/commands/upgrade.rb +105 -0
  202. data/lib/jets/commands/url.rb +69 -0
  203. data/lib/jets/commands/webpacker_template.rb +18 -0
  204. data/lib/jets/controller/authorization.rb +91 -0
  205. data/lib/jets/controller/base.rb +175 -0
  206. data/lib/jets/controller/callbacks.rb +73 -0
  207. data/lib/jets/controller/cookies/jar.rb +269 -0
  208. data/lib/jets/controller/cookies.rb +38 -0
  209. data/lib/jets/controller/error/invalid_authenticity_token.rb +6 -0
  210. data/lib/jets/controller/error.rb +4 -0
  211. data/lib/jets/controller/forgery_protection.rb +43 -0
  212. data/lib/jets/controller/layout.rb +17 -0
  213. data/lib/jets/controller/middleware/cors.rb +60 -0
  214. data/lib/jets/controller/middleware/local/api_gateway.rb +93 -0
  215. data/lib/jets/controller/middleware/local/mimic_aws_call.rb +38 -0
  216. data/lib/jets/controller/middleware/local/route_matcher.rb +22 -0
  217. data/lib/jets/controller/middleware/local.rb +120 -0
  218. data/lib/jets/controller/middleware/main.rb +53 -0
  219. data/lib/jets/controller/middleware/reloader.rb +15 -0
  220. data/lib/jets/controller/middleware/webpacker_setup.rb +6 -0
  221. data/lib/jets/controller/parameters_filter.rb +29 -0
  222. data/lib/jets/controller/params.rb +117 -0
  223. data/lib/jets/controller/rack/adapter.rb +94 -0
  224. data/lib/jets/controller/rack/env.rb +122 -0
  225. data/lib/jets/controller/redirection.rb +51 -0
  226. data/lib/jets/controller/rendering/rack_renderer.rb +267 -0
  227. data/lib/jets/controller/rendering.rb +96 -0
  228. data/lib/jets/controller/request.rb +29 -0
  229. data/lib/jets/controller/response.rb +61 -0
  230. data/lib/jets/controller/stage.rb +34 -0
  231. data/lib/jets/controller.rb +3 -0
  232. data/lib/jets/core.rb +157 -0
  233. data/lib/jets/core_ext/bundler.rb +7 -0
  234. data/lib/jets/core_ext/kernel.rb +13 -0
  235. data/lib/jets/db.rb +15 -0
  236. data/lib/jets/dotenv/show.rb +11 -0
  237. data/lib/jets/dotenv/ssm.rb +64 -0
  238. data/lib/jets/dotenv.rb +48 -0
  239. data/lib/jets/erb.rb +51 -0
  240. data/lib/jets/generator/templates/active_job/job/templates/application_job.rb.tt +6 -0
  241. data/lib/jets/generator/templates/active_job/job/templates/job.rb.tt +8 -0
  242. data/lib/jets/generator/templates/erb/controller/view.html.erb +2 -0
  243. data/lib/jets/generator/templates/erb/scaffold/_form.html.erb +34 -0
  244. data/lib/jets/generator/templates/erb/scaffold/edit.html.erb +6 -0
  245. data/lib/jets/generator/templates/erb/scaffold/index.html.erb +29 -0
  246. data/lib/jets/generator/templates/erb/scaffold/new.html.erb +5 -0
  247. data/lib/jets/generator/templates/erb/scaffold/show.html.erb +9 -0
  248. data/lib/jets/generator/templates/rails/assets/javascript.js +2 -0
  249. data/lib/jets/generator/templates/rails/assets/stylesheet.css +4 -0
  250. data/lib/jets/generator/templates/rails/controller/controller.rb +13 -0
  251. data/lib/jets/generator/templates/rails/helper/helper.rb +4 -0
  252. data/lib/jets/generator/templates/rails/scaffold/scaffold.css +80 -0
  253. data/lib/jets/generator/templates/rails/scaffold_controller/api_controller.rb +62 -0
  254. data/lib/jets/generator/templates/rails/scaffold_controller/controller.rb +79 -0
  255. data/lib/jets/generator.rb +112 -0
  256. data/lib/jets/inflections.rb +32 -0
  257. data/lib/jets/internal/app/controllers/jets/bare_controller.rb +16 -0
  258. data/lib/jets/internal/app/controllers/jets/mailers_controller.rb +97 -0
  259. data/lib/jets/internal/app/controllers/jets/mount_controller.rb +63 -0
  260. data/lib/jets/internal/app/controllers/jets/public_controller.rb +31 -0
  261. data/lib/jets/internal/app/controllers/jets/rack_controller.rb +12 -0
  262. data/lib/jets/internal/app/functions/jets/base_path.rb +18 -0
  263. data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +100 -0
  264. data/lib/jets/internal/app/helpers/jets/mailers_helper.rb +9 -0
  265. data/lib/jets/internal/app/jobs/jets/preheat_job.rb +70 -0
  266. data/lib/jets/internal/app/shared/functions/jets/s3_bucket_config.rb +33 -0
  267. data/lib/jets/internal/app/views/jets/mailers/email.html.erb +145 -0
  268. data/lib/jets/internal/app/views/jets/mailers/index.html.erb +8 -0
  269. data/lib/jets/internal/app/views/jets/mailers/mailer.html.erb +6 -0
  270. data/lib/jets/internal/turbines/jets/mailer.rb +52 -0
  271. data/lib/jets/job/base.rb +49 -0
  272. data/lib/jets/job/dsl/dynamodb_event.rb +67 -0
  273. data/lib/jets/job/dsl/event_source_mapping.rb +11 -0
  274. data/lib/jets/job/dsl/iot_event.rb +24 -0
  275. data/lib/jets/job/dsl/kinesis_event.rb +46 -0
  276. data/lib/jets/job/dsl/log_event.rb +15 -0
  277. data/lib/jets/job/dsl/rule_event.rb +75 -0
  278. data/lib/jets/job/dsl/s3_event.rb +36 -0
  279. data/lib/jets/job/dsl/sns_event.rb +54 -0
  280. data/lib/jets/job/dsl/sqs_event.rb +96 -0
  281. data/lib/jets/job/dsl.rb +40 -0
  282. data/lib/jets/job/helpers/kinesis_event_helper.rb +13 -0
  283. data/lib/jets/job/helpers/log_event_helper.rb +17 -0
  284. data/lib/jets/job/helpers/s3_event_helper.rb +13 -0
  285. data/lib/jets/klass.rb +109 -0
  286. data/lib/jets/lambda/dsl.rb +404 -0
  287. data/lib/jets/lambda/function.rb +29 -0
  288. data/lib/jets/lambda/function_constructor.rb +55 -0
  289. data/lib/jets/lambda/functions.rb +39 -0
  290. data/lib/jets/lambda/task.rb +111 -0
  291. data/lib/jets/logger.rb +21 -0
  292. data/lib/jets/mega/hash_converter.rb +25 -0
  293. data/lib/jets/mega/request/source.rb +21 -0
  294. data/lib/jets/mega/request.rb +163 -0
  295. data/lib/jets/middleware/configurator.rb +84 -0
  296. data/lib/jets/middleware/default_stack.rb +53 -0
  297. data/lib/jets/middleware/layer.rb +34 -0
  298. data/lib/jets/middleware/stack.rb +77 -0
  299. data/lib/jets/middleware.rb +33 -0
  300. data/lib/jets/naming.rb +63 -0
  301. data/lib/jets/overrides/lambda/marshaller.rb +31 -0
  302. data/lib/jets/overrides/lambda.rb +1 -0
  303. data/lib/jets/overrides/rails/action_controller.rb +13 -0
  304. data/lib/jets/overrides/rails/asset_tag_helper.rb +114 -0
  305. data/lib/jets/overrides/rails/common_methods.rb +13 -0
  306. data/lib/jets/overrides/rails/migration_checker.rb +34 -0
  307. data/lib/jets/overrides/rails/rendering_helper.rb +27 -0
  308. data/lib/jets/overrides/rails/url_helper.rb +88 -0
  309. data/lib/jets/overrides/rails.rb +6 -0
  310. data/lib/jets/poly_fun/base_executor.rb +125 -0
  311. data/lib/jets/poly_fun/lambda_executor.rb +16 -0
  312. data/lib/jets/poly_fun/node_error.rb +8 -0
  313. data/lib/jets/poly_fun/node_executor.rb +54 -0
  314. data/lib/jets/poly_fun/python_error.rb +8 -0
  315. data/lib/jets/poly_fun/python_executor.rb +23 -0
  316. data/lib/jets/poly_fun.rb +73 -0
  317. data/lib/jets/preheat.rb +117 -0
  318. data/lib/jets/processors/deducer.rb +65 -0
  319. data/lib/jets/processors/main_processor.rb +61 -0
  320. data/lib/jets/rack_server.rb +86 -0
  321. data/lib/jets/rdoc.rb +30 -0
  322. data/lib/jets/resource/api_gateway/authorizer.rb +82 -0
  323. data/lib/jets/resource/api_gateway/base_path/function.rb +49 -0
  324. data/lib/jets/resource/api_gateway/base_path/mapping.rb +44 -0
  325. data/lib/jets/resource/api_gateway/base_path/role.rb +76 -0
  326. data/lib/jets/resource/api_gateway/cors.rb +61 -0
  327. data/lib/jets/resource/api_gateway/deployment.rb +80 -0
  328. data/lib/jets/resource/api_gateway/domain_name.rb +65 -0
  329. data/lib/jets/resource/api_gateway/method/authorization.rb +41 -0
  330. data/lib/jets/resource/api_gateway/method.rb +102 -0
  331. data/lib/jets/resource/api_gateway/resource.rb +82 -0
  332. data/lib/jets/resource/api_gateway/rest_api/change_detection.rb +10 -0
  333. data/lib/jets/resource/api_gateway/rest_api/logical_id/message.rb +49 -0
  334. data/lib/jets/resource/api_gateway/rest_api/logical_id.rb +98 -0
  335. data/lib/jets/resource/api_gateway/rest_api/routes/change/base.rb +136 -0
  336. data/lib/jets/resource/api_gateway/rest_api/routes/change/media_types.rb +36 -0
  337. data/lib/jets/resource/api_gateway/rest_api/routes/change/page.rb +93 -0
  338. data/lib/jets/resource/api_gateway/rest_api/routes/change/to.rb +25 -0
  339. data/lib/jets/resource/api_gateway/rest_api/routes/change/variable.rb +35 -0
  340. data/lib/jets/resource/api_gateway/rest_api/routes/change.rb +16 -0
  341. data/lib/jets/resource/api_gateway/rest_api/routes/collision/variable_exception.rb +7 -0
  342. data/lib/jets/resource/api_gateway/rest_api/routes/collision.rb +121 -0
  343. data/lib/jets/resource/api_gateway/rest_api/routes.rb +7 -0
  344. data/lib/jets/resource/api_gateway/rest_api.rb +64 -0
  345. data/lib/jets/resource/associated.rb +37 -0
  346. data/lib/jets/resource/base.rb +28 -0
  347. data/lib/jets/resource/child_stack/api_deployment.rb +58 -0
  348. data/lib/jets/resource/child_stack/api_gateway.rb +23 -0
  349. data/lib/jets/resource/child_stack/api_resource/page.rb +20 -0
  350. data/lib/jets/resource/child_stack/api_resource.rb +54 -0
  351. data/lib/jets/resource/child_stack/app_class.rb +149 -0
  352. data/lib/jets/resource/child_stack/authorizer.rb +40 -0
  353. data/lib/jets/resource/child_stack/base.rb +24 -0
  354. data/lib/jets/resource/child_stack/common_parameters.rb +14 -0
  355. data/lib/jets/resource/child_stack/shared.rb +85 -0
  356. data/lib/jets/resource/config/config_rule.rb +74 -0
  357. data/lib/jets/resource/config/managed_rule.rb +15 -0
  358. data/lib/jets/resource/events/rule.rb +31 -0
  359. data/lib/jets/resource/iam/application_role.rb +27 -0
  360. data/lib/jets/resource/iam/base_role_definition.rb +47 -0
  361. data/lib/jets/resource/iam/class_role.rb +74 -0
  362. data/lib/jets/resource/iam/function_role.rb +54 -0
  363. data/lib/jets/resource/iam/managed_policy.rb +22 -0
  364. data/lib/jets/resource/iam/policy_document.rb +41 -0
  365. data/lib/jets/resource/iot/topic_rule.rb +34 -0
  366. data/lib/jets/resource/lambda/event_source_mapping.rb +31 -0
  367. data/lib/jets/resource/lambda/function/environment.rb +62 -0
  368. data/lib/jets/resource/lambda/function.rb +221 -0
  369. data/lib/jets/resource/lambda/gem_layer.rb +17 -0
  370. data/lib/jets/resource/lambda/layer_version.rb +44 -0
  371. data/lib/jets/resource/logs/subscription_filter.rb +31 -0
  372. data/lib/jets/resource/permission.rb +45 -0
  373. data/lib/jets/resource/replacer.rb +85 -0
  374. data/lib/jets/resource/route53/record_set.rb +98 -0
  375. data/lib/jets/resource/s3/bucket.rb +24 -0
  376. data/lib/jets/resource/sns/subscription.rb +29 -0
  377. data/lib/jets/resource/sns/topic.rb +35 -0
  378. data/lib/jets/resource/sns/topic_policy.rb +40 -0
  379. data/lib/jets/resource/sqs/queue.rb +21 -0
  380. data/lib/jets/resource/standardizer.rb +42 -0
  381. data/lib/jets/resource.rb +71 -0
  382. data/lib/jets/router/dsl/mount.rb +13 -0
  383. data/lib/jets/router/dsl.rb +144 -0
  384. data/lib/jets/router/error.rb +4 -0
  385. data/lib/jets/router/finder.rb +47 -0
  386. data/lib/jets/router/helpers/core_helper.rb +27 -0
  387. data/lib/jets/router/helpers/named_routes_helper.rb +8 -0
  388. data/lib/jets/router/helpers.rb +4 -0
  389. data/lib/jets/router/matcher.rb +81 -0
  390. data/lib/jets/router/method_creator/code.rb +99 -0
  391. data/lib/jets/router/method_creator/edit.rb +12 -0
  392. data/lib/jets/router/method_creator/generic.rb +11 -0
  393. data/lib/jets/router/method_creator/index.rb +48 -0
  394. data/lib/jets/router/method_creator/new.rb +12 -0
  395. data/lib/jets/router/method_creator/root.rb +15 -0
  396. data/lib/jets/router/method_creator/show.rb +12 -0
  397. data/lib/jets/router/method_creator.rb +50 -0
  398. data/lib/jets/router/resources/base.rb +7 -0
  399. data/lib/jets/router/resources/filter.rb +15 -0
  400. data/lib/jets/router/resources/options.rb +13 -0
  401. data/lib/jets/router/route/authorizer.rb +57 -0
  402. data/lib/jets/router/route.rb +230 -0
  403. data/lib/jets/router/scope.rb +95 -0
  404. data/lib/jets/router/util.rb +38 -0
  405. data/lib/jets/router.rb +180 -0
  406. data/lib/jets/rule/base.rb +19 -0
  407. data/lib/jets/rule/dsl.rb +109 -0
  408. data/lib/jets/spec_helpers/controllers/params.rb +8 -0
  409. data/lib/jets/spec_helpers/controllers/request.rb +101 -0
  410. data/lib/jets/spec_helpers/controllers/response.rb +10 -0
  411. data/lib/jets/spec_helpers/controllers.rb +47 -0
  412. data/lib/jets/spec_helpers/fixtures.rb +11 -0
  413. data/lib/jets/spec_helpers.rb +21 -0
  414. data/lib/jets/stack/builder.rb +43 -0
  415. data/lib/jets/stack/definition.rb +50 -0
  416. data/lib/jets/stack/depends/item.rb +26 -0
  417. data/lib/jets/stack/depends.rb +34 -0
  418. data/lib/jets/stack/function.rb +69 -0
  419. data/lib/jets/stack/main/dsl/base.rb +63 -0
  420. data/lib/jets/stack/main/dsl/cloudwatch.rb +19 -0
  421. data/lib/jets/stack/main/dsl/iam.rb +8 -0
  422. data/lib/jets/stack/main/dsl/kinesis.rb +15 -0
  423. data/lib/jets/stack/main/dsl/lambda.rb +83 -0
  424. data/lib/jets/stack/main/dsl/s3.rb +12 -0
  425. data/lib/jets/stack/main/dsl/sns.rb +16 -0
  426. data/lib/jets/stack/main/dsl/sqs.rb +10 -0
  427. data/lib/jets/stack/main/dsl.rb +17 -0
  428. data/lib/jets/stack/main.rb +4 -0
  429. data/lib/jets/stack/output/dsl.rb +19 -0
  430. data/lib/jets/stack/output/lookup.rb +36 -0
  431. data/lib/jets/stack/output.rb +35 -0
  432. data/lib/jets/stack/parameter/dsl.rb +42 -0
  433. data/lib/jets/stack/parameter.rb +37 -0
  434. data/lib/jets/stack/resource/dsl.rb +19 -0
  435. data/lib/jets/stack/resource.rb +31 -0
  436. data/lib/jets/stack/s3_event.rb +87 -0
  437. data/lib/jets/stack.rb +88 -0
  438. data/lib/jets/tmp_loader.rb +53 -0
  439. data/lib/jets/turbine.rb +41 -0
  440. data/lib/jets/turbo/database_yaml.rb +41 -0
  441. data/lib/jets/turbo/project/.gitignore +12 -0
  442. data/lib/jets/turbo/project/.jetskeep +1 -0
  443. data/lib/jets/turbo/project/Gemfile +16 -0
  444. data/lib/jets/turbo/project/Rakefile +2 -0
  445. data/lib/jets/turbo/project/app/controllers/application_controller.rb +2 -0
  446. data/lib/jets/turbo/project/app/helpers/application_helper.rb +2 -0
  447. data/lib/jets/turbo/project/app/jobs/application_job.rb +4 -0
  448. data/lib/jets/turbo/project/config/application.rb +5 -0
  449. data/lib/jets/turbo/project/config/routes.rb +4 -0
  450. data/lib/jets/turbo/project/config.ru +5 -0
  451. data/lib/jets/turbo/rails.rb +127 -0
  452. data/lib/jets/turbo/templates/config/database.yml +30 -0
  453. data/lib/jets/turbo.rb +56 -0
  454. data/lib/jets/util.rb +40 -0
  455. data/lib/jets/version.rb +3 -0
  456. data/lib/jets.rb +31 -0
  457. data/readme/prerelease.md +6 -0
  458. data/readme/testing.md +60 -0
  459. metadata +1105 -0
@@ -0,0 +1,61 @@
1
+ class Jets::Commands::RakeCommand
2
+ class << self
3
+ # Same signature as Jets::Commands::Base.perform.
4
+ def perform(namespaced_command, thor_args)
5
+ if thor_args.first == "help"
6
+ puts help_message(namespaced_command)
7
+ return
8
+ end
9
+
10
+ require_rake
11
+
12
+ ARGV.unshift(namespaced_command) # Prepend the task, so Rake knows how to run it.
13
+
14
+ rake.standard_exception_handling do
15
+ rake.init("jets")
16
+ rake.load_rakefile
17
+ rake.top_level
18
+ end
19
+ end
20
+
21
+ # Useful for CLI.lookup.
22
+ def namespaced_commands
23
+ formatted_rake_tasks(true).map(&:first)
24
+ end
25
+
26
+ def formatted_rake_tasks(all=false)
27
+ rake_tasks(all).map do |t|
28
+ comment = "# #{t.comment}" if t.comment
29
+ [ t.name_with_args, comment ]
30
+ end
31
+ end
32
+
33
+ def rake_tasks(all=false)
34
+ require_rake
35
+
36
+ Rake::TaskManager.record_task_metadata = true
37
+ rake.instance_variable_set(:@name, "jets")
38
+ Jets::Commands::RakeTasks.load!
39
+ tasks = rake.tasks
40
+ tasks = tasks.select(&:comment) unless all
41
+ tasks
42
+ end
43
+
44
+ def help_message(namespaced_command)
45
+ task = rake_tasks(true).find { |t| t.name == namespaced_command }
46
+ message = "Help provided by rake task:\n\n"
47
+ message << "jets #{task.name_with_args.dup}\n"
48
+ message << " #{task.full_comment}"
49
+ message
50
+ end
51
+
52
+ private
53
+ def rake
54
+ Rake.application
55
+ end
56
+
57
+ def require_rake
58
+ require "rake" # Defer booting Rake until we know it's needed.
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,50 @@
1
+ require 'rake'
2
+
3
+ class Jets::Commands::RakeTasks
4
+ class << self
5
+ # Will only load the tasks once. Just in case the user has already loaded
6
+ # Jets rake tasks in their Rakefile. Example Rakefile that does this:
7
+ #
8
+ # require 'jets'
9
+ # Jets.load_tasks
10
+ #
11
+ @@loaded = false
12
+ def load!
13
+ return if @@loaded # prevent loading twice
14
+ # Run Bundler.setup so all project rake tasks also show up in `jets help`
15
+ Jets::Bundle.setup
16
+
17
+ Jets::Commands::Db::Tasks.load!
18
+ load_webpacker_tasks
19
+
20
+ # custom project rake tasks
21
+ Dir.glob("#{Jets.root}/lib/tasks/*.rake").each { |r| load r }
22
+
23
+ @@loaded = true
24
+ end
25
+
26
+ # Handles load errors gracefuly per Booter.required_bundle_gems comments.
27
+ def load_webpacker_tasks
28
+ begin
29
+ require "webpacker"
30
+ require "webpacker/rake_tasks"
31
+ rescue LoadError
32
+ # puts "WARN: unable to load gem. #{$!}. Running with 'bundle exec' might fix this warning."
33
+ # Happens whne user calls jets help outside the jets project folder.
34
+ return
35
+ end
36
+
37
+ Webpacker::RakeTasks.load!
38
+ # Thanks: https://coderwall.com/p/qhdhgw/adding-a-post-execution-hook-to-the-rails-db-migrate-task
39
+ # Enchancing in case the user runs webpacker:install afterwards
40
+ # instead of jets new.
41
+ Rake::Task['webpacker:install'].enhance do
42
+ # FORCE from rake webpacker:install FORCE=1
43
+ # using ENV because rake webpacker:install is a rake task
44
+ args ||= []
45
+ args += ["--force"] if ENV['FORCE']
46
+ Jets::Commands::WebpackerTemplate.start(args)
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,16 @@
1
+ class Jets::Commands::Runner
2
+ def self.run(code)
3
+ if code =~ %r{^file://}
4
+ path = code.sub('file://', '')
5
+ full_path = "#{Jets.root}/#{path}"
6
+ if File.exist?(full_path)
7
+ code = IO.read(full_path)
8
+ else
9
+ puts "ERROR: file not found at #{full_path}".color(:red)
10
+ exit 1
11
+ end
12
+ end
13
+
14
+ eval(code) # inline script
15
+ end
16
+ end
@@ -0,0 +1,105 @@
1
+ require 'fileutils'
2
+ require 'thor'
3
+ require 'bundler'
4
+
5
+ class Jets::Commands::Sequence < Thor::Group
6
+ include Thor::Actions
7
+
8
+ def self.source_root
9
+ File.expand_path("templates/skeleton", File.dirname(__FILE__))
10
+ end
11
+
12
+ private
13
+ def jets_minor_version
14
+ md = Jets::VERSION.match(/(\d+)\.(\d+)\.\d+/)
15
+ major, minor = md[1], md[2]
16
+ [major, minor, '0'].join('.')
17
+ end
18
+
19
+ def clone_project
20
+ unless git_installed?
21
+ abort "Unable to detect git installation on your system. Git needs to be installed in order to use the --repo option."
22
+ end
23
+
24
+ if File.exist?(project_folder)
25
+ abort "The folder #{project_folder} already exists."
26
+ else
27
+ run "git clone https://github.com/#{options[:repo]} #{project_folder}"
28
+ end
29
+ confirm_jets_project
30
+ end
31
+
32
+ def confirm_jets_project
33
+ jets_project = File.exist?("#{project_folder}/config/application.rb")
34
+ unless jets_project
35
+ puts "#{options[:repo]} does not look like a Jets project. Double check your repo!".color(:red)
36
+ exit 1
37
+ end
38
+ end
39
+
40
+ def copy_project
41
+ puts "Creating a new Jets project called #{@project_name}."
42
+ directory ".", project_folder, copy_options
43
+ end
44
+
45
+ def copy_options
46
+ excludes = case @options[:mode]
47
+ when 'job'
48
+ # For job mode: list of words to include in the exclude pattern and will not be generated.
49
+ %w[
50
+ Procfile
51
+ controllers
52
+ helpers
53
+ javascript
54
+ models/application_
55
+ views
56
+ config.ru
57
+ database.yml
58
+ dynamodb.yml
59
+ routes
60
+ db/
61
+ spec
62
+ yarn
63
+ public
64
+ ]
65
+ when 'api'
66
+ %w[
67
+ views
68
+ ]
69
+ else # html
70
+ []
71
+ end
72
+
73
+ unless @database
74
+ # Do not even generate the config/database.yml because
75
+ # Jets webpacker:install bombs and tries to load the db since it sees a
76
+ # config/database.yml but there's no database pg gem configured.
77
+ excludes += %w[
78
+ database.yml
79
+ models/application_record
80
+ ]
81
+ end
82
+
83
+ if excludes.empty?
84
+ {}
85
+ else
86
+ pattern = Regexp.new(excludes.join('|'))
87
+ {exclude_pattern: pattern }
88
+ end
89
+ end
90
+
91
+ def git_installed?
92
+ system("type git > /dev/null 2>&1")
93
+ end
94
+
95
+ # In order to automatically create first commit
96
+ # the user needs to have their credentials set
97
+ def git_credentials_set?
98
+ configs = `git config --list`.split("\n")
99
+ configs.any? { |c| c.start_with? 'user.name=' } && configs.any? { |c| c.start_with? 'user.email=' }
100
+ end
101
+
102
+ def yarn_installed?
103
+ system("type yarn > /dev/null 2>&1")
104
+ end
105
+ end
@@ -0,0 +1,30 @@
1
+ # The important methods in this class are stack_type, s3_bucket and first_run?
2
+ # We use stack_type and s3_bucket to get info for both the build and deploy CLI
3
+ # commands.
4
+ # first_run? will always make an API call.
5
+ module Jets::Commands::StackInfo
6
+ include Jets::AwsServices
7
+
8
+ def stack_type
9
+ first_run? ? :minimal : :full
10
+ end
11
+
12
+ def s3_bucket
13
+ return @s3_bucket if @s3_bucket
14
+ return nil if first_run?
15
+ return "fake-bucket" if ENV['JETS_BUILD_NO_INTERNET']
16
+
17
+ resp = cfn.describe_stacks(stack_name: parent_stack_name)
18
+ output = resp.stacks[0].outputs.find {|o| o.output_key == 'S3Bucket'}
19
+ @s3_bucket = output.output_value # once an s3 bucket is found, cache it
20
+ end
21
+
22
+ # Always call API
23
+ def first_run?
24
+ !stack_exists?(parent_stack_name)
25
+ end
26
+
27
+ def parent_stack_name
28
+ Jets::Naming.parent_stack_name
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ # Example .env.development, meant to be updated.
2
+ ENV_DEVELOPMENT_KEY=example1
3
+ # DATABASE_URL=<%= @database == 'mysql' ? 'mysql2' : 'postgres' %>://dbuser:dbpass@dbhost/<%= @project_name %>_development?pool=5
@@ -0,0 +1,3 @@
1
+ # Example .env.test, meant to be updated.
2
+ env_key1=env_value1
3
+ env_key2=env_value2
@@ -0,0 +1,3 @@
1
+ # Example .env, meant to be updated.
2
+ # Variables in here are available and shared across all environments: development, production, etc.
3
+ SECRET_KEY_BASE=<%= SecureRandom.hex(64) %>
@@ -0,0 +1,12 @@
1
+ *.gem
2
+ .bundle
3
+ .byebug_history
4
+ .DS_Store
5
+ .env*
6
+ /node_modules
7
+ /public/packs
8
+ /public/packs-test
9
+ bundled
10
+ coverage
11
+ pkg
12
+ tmp
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
@@ -0,0 +1,39 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "jets", "~> <%= jets_minor_version %>"
4
+
5
+ <% if @webpacker -%>
6
+ # Include jetpacker if you are building html pages
7
+ gem "jetpacker"
8
+ <% end -%>
9
+ <% if @database == 'postgresql' %>
10
+ # Include pg gem if you are using ActiveRecord, remove next line
11
+ # and config/database.yml file if you are not
12
+ gem "pg", "~> 1.2.3"
13
+ <% elsif @database == 'mysql' %>
14
+ # Include mysql2 gem if you are using ActiveRecord, remove next line
15
+ # and config/database.yml file if you are not
16
+ gem "mysql2", "~> 0.5.3"
17
+ <% end %>
18
+ <% unless options[:mode] == 'job' -%>
19
+ gem "dynomite"
20
+ <% end -%>
21
+
22
+ # development and test groups are not bundled as part of the deployment
23
+ group :development, :test do
24
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
25
+ gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
26
+ <% unless options[:mode] == 'job' -%>
27
+ gem 'shotgun'
28
+ gem 'rack'
29
+ gem 'puma'
30
+ <% end -%>
31
+ end
32
+
33
+ group :test do
34
+ gem 'rspec' # rspec test group only or we get the "irb: warn: can't alias context from irb_context warning" when starting jets console
35
+ <% unless options[:mode] == 'job' -%>
36
+ gem 'launchy'
37
+ gem 'capybara'
38
+ <% end -%>
39
+ end
@@ -0,0 +1,7 @@
1
+ local: dynamodb-local # port 8000
2
+ admin: env AWS_ACCESS_KEY_ID=$DYNAMODB_ADMIN_AWS_ACCESS_KEY_ID PORT=8001 dynamodb-admin # port 8001
3
+ # web: jets server # port 8888
4
+
5
+ # Using Procfile to just start local dynamodb services for now.
6
+ # To start jets server for now use:
7
+ # jets server
@@ -0,0 +1,11 @@
1
+ # Jets Project
2
+
3
+ This README would normally document whatever steps are necessary to get the application up and running.
4
+
5
+ Things you might want to cover:
6
+
7
+ * Dependencies
8
+ * Configuration
9
+ * Database setup
10
+ * How to run the test suite
11
+ * Deployment instructions
@@ -0,0 +1,2 @@
1
+ require 'jets'
2
+ Jets.load_tasks
@@ -0,0 +1,2 @@
1
+ class ApplicationController < Jets::Controller::Base
2
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,4 @@
1
+ class ApplicationJob < Jets::Job::Base
2
+ # Adjust to increase the default timeout for all Job classes
3
+ class_timeout 60
4
+ end
@@ -0,0 +1,2 @@
1
+ class ApplicationItem < Dynomite::Item
2
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6
+ <meta name="theme-color" content="#000000">
7
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+ <%%= csrf_meta_tags %>
9
+ <title>Jets App</title>
10
+ <%%= javascript_pack_tag "application" %>
11
+ <%%= stylesheet_pack_tag "theme" %>
12
+ <link rel="shortcut icon" href="<%%= favicon_path %>">
13
+ </head>
14
+ <body>
15
+ <section class="starter">
16
+ <div class="container">
17
+ <div class="row">
18
+ <div class="col-md-9 content-body">
19
+ <%% if @title %><h1><%%= @title %></h1><%% end %>
20
+ <%%= yield %>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </section>
25
+ </body>
26
+ </html>
@@ -0,0 +1,71 @@
1
+ Jets.application.configure do
2
+ config.project_name = "<%= @project_name %>"
3
+ config.mode = "<%= @options[:mode] %>"
4
+
5
+ <% if @options[:mode] == 'job' -%>
6
+ config.prewarm.enable = false
7
+ <% else -%>
8
+ config.prewarm.enable = true # default is true
9
+ # config.prewarm.rate = '30 minutes' # default is '30 minutes'
10
+ # config.prewarm.concurrency = 2 # default is 2
11
+ # config.prewarm.public_ratio = 3 # default is 3
12
+ <% end -%>
13
+
14
+ # config.env_extra = 2 # can also set this with JETS_ENV_EXTRA
15
+ # config.autoload_paths = []
16
+
17
+ # config.asset_base_url = 'https://cloudfront.domain.com/assets' # example
18
+
19
+ # config.cors = true # for '*'' # defaults to false
20
+ # config.cors = '*.mydomain.com' # for specific domain
21
+
22
+ # config.function.timeout = 30 # defaults to 30
23
+ # config.function.role = "arn:aws:iam::#{Jets.aws.account}:role/service-role/pre-created"
24
+ # config.function.memory_size = 1536
25
+
26
+ # config.api.endpoint_type = 'PRIVATE' # Default is 'EDGE' (https://docs.aws.amazon.com/apigateway/api-reference/link-relation/restapi-create/#endpointConfiguration)
27
+
28
+ # config.function.environment = {
29
+ # global_app_key1: "global_app_value1",
30
+ # global_app_key2: "global_app_value2",
31
+ # }
32
+ # More examples:
33
+ # config.function.dead_letter_config = { target_arn: "arn" }
34
+ # config.function.vpc_config = {
35
+ # security_group_ids: %w[sg-1 sg-2],
36
+ # subnet_ids: %w[subnet-1 subnet-2],
37
+ # }
38
+ # The config.function settings to the CloudFormation Lambda Function properties.
39
+ # http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
40
+ # Underscored format can be used for keys to make it look more ruby-ish.
41
+
42
+ # Assets settings
43
+ # The config.assets.folders are folders within the public folder that will be set
44
+ # to public-read on s3 and served directly. IE: public/assets public/images public/packs
45
+ # config.assets.folders = %w[assets images packs]
46
+ # config.assets.max_age = 3600 # when to expire assets
47
+ # config.assets.cache_control = nil # IE: "public, max-age=3600" # override max_age for more fine-grain control.
48
+ # config.assets.base_url = nil # IE: https://cloudfront.com/my/base/path, defaults to the s3 bucket url
49
+ # IE: https://s3-us-west-2.amazonaws.com/demo-dev-s3bucket-1inlzkvujq8zb
50
+
51
+ # config.api.endpoint_type = 'PRIVATE' # Default is 'EDGE' https://amzn.to/2r0Iu2L
52
+ # config.api.authorization_type = "AWS_IAM" # default is 'NONE' https://amzn.to/2qZ7zLh
53
+
54
+
55
+ # More info: http://rubyonjets.com/docs/routing/custom-domain/
56
+ # config.domain.hosted_zone_name = "example.com"
57
+ # us-west-2 REGIONAL endpoint - takes 2 minutes
58
+ # config.domain.cert_arn = "arn:aws:acm:us-west-2:112233445566:certificate/8d8919ce-a710-4050-976b-b33da991e123"
59
+ # us-east-1 EDGE endpoint - takes 10-15 minutes
60
+ # config.domain.cert_arn = "arn:aws:acm:us-east-1:112233445566:certificate/d68472ba-04f8-45ba-b9db-14f839d57123"
61
+ # config.domain.endpoint_type = "EDGE"
62
+
63
+ # By default logger needs to log to $stderr for CloudWatch to receive Lambda messages, but for
64
+ # local testing environment you may want to log these messages to 'test.log' file to keep your
65
+ # testing suite output readable.
66
+ # config.logger = Jets::Logger.new($stderr)
67
+
68
+ <% if @options[:mode] == 'api' -%>
69
+ config.controllers.default_protect_from_forgery = false
70
+ <% end -%>
71
+ end
@@ -0,0 +1,27 @@
1
+ default: &default
2
+ adapter: <%= @database == 'mysql' ? 'mysql2' : 'postgresql' %>
3
+ encoding: <%= @database == 'mysql' ? 'utf8mb4' : 'unicode' %>
4
+ pool: <%%= ENV["DB_POOL"] || 5 %>
5
+ database: <%%= ENV['DB_NAME'] || '<%= @database_name %>_development' %>
6
+ <% if @database == 'mysql' -%>
7
+ username: <%%= ENV['DB_USER'] || 'root' %>
8
+ <% else -%>
9
+ username: <%%= ENV['DB_USER'] || ENV['USER'] %>
10
+ <% end -%>
11
+ password: <%%= ENV['DB_PASS'] %>
12
+ host: <%%= ENV["DB_HOST"] %>
13
+ url: <%%= ENV['DATABASE_URL'] %> # takes higher precedence than other settings
14
+ reconnect: true
15
+
16
+ development:
17
+ <<: *default
18
+ database: <%%= ENV['DB_NAME'] || '<%= @database_name %>_development' %>
19
+
20
+ test:
21
+ <<: *default
22
+ database: <%= @database_name %>_test
23
+
24
+ production:
25
+ <<: *default
26
+ database: <%= @database_name %>_production
27
+ url: <%%= ENV['DATABASE_URL'] %>
@@ -0,0 +1,22 @@
1
+ # Jets::Config.project_namespace is special value results in using the project namespace. Example :
2
+ # table_namespace: <%= Jets.config.project_namespace %>
3
+ # This is the default value.
4
+
5
+ development:
6
+ table_namespace: <%= Jets.config.table_namespace %>
7
+ # More examples:
8
+ # table_namespace: demo-dev
9
+
10
+ endpoint: http://localhost:8000 # comment out if want to test with real dynamodb
11
+ # on AWS. You can also set the DYNAMODB_ENDPOINT environment variable.
12
+ # You can also are actually deploying a development environment is to
13
+ # change bin/server and export DYNAMODB_ENDPOINT=http://localhost:8000 at the top
14
+ # there.
15
+
16
+ test:
17
+ # table_namespace: proj # do not include the env
18
+ endpoint: http://localhost:8000
19
+ table_namespace: <%= Jets.config.table_namespace %>
20
+
21
+ production:
22
+ table_namespace: <%= Jets.config.table_namespace %>
@@ -0,0 +1,7 @@
1
+ Jets.application.configure do
2
+ # Example:
3
+ # config.function.memory_size = 1536
4
+
5
+ # config.action_mailer.raise_delivery_errors = false
6
+ # Docs: http://rubyonjets.com/docs/email-sending/
7
+ end
@@ -0,0 +1,9 @@
1
+ Jets.application.configure do
2
+ # Example:
3
+ # config.function.memory_size = 2048
4
+
5
+ # Ignore bad email addresses and do not raise email delivery errors.
6
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
7
+ # Docs: http://rubyonjets.com/docs/email-sending/
8
+ # config.action_mailer.raise_delivery_errors = false
9
+ end
@@ -0,0 +1,7 @@
1
+ Jets.application.configure do
2
+ # Tell Action Mailer not to deliver emails to the real world.
3
+ # The :test delivery method accumulates sent emails in the
4
+ # ActionMailer::Base.deliveries array.
5
+ # Docs: http://rubyonjets.com/docs/email-sending/
6
+ config.action_mailer.delivery_method = :test
7
+ end
@@ -0,0 +1,9 @@
1
+ Jets.application.routes.draw do
2
+ root "jets/public#show"
3
+
4
+ # The jets/public#show controller can serve static utf8 content out of the public folder.
5
+ # Note, as part of the deploy process Jets uploads files in the public folder to s3
6
+ # and serves them out of s3 directly. S3 is well suited to serve static assets.
7
+ # More info here: https://rubyonjets.com/docs/extras/assets-serving/
8
+ any "*catchall", to: "jets/public#show"
9
+ end
@@ -0,0 +1,5 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require "jets"
4
+ Jets.boot
5
+ run Jets.application
File without changes
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>