@voltro/cli 0.1.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 (626) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/LICENSE +57 -0
  3. package/README.md +26 -0
  4. package/SECURITY.md +56 -0
  5. package/THIRD-PARTY-NOTICES.md +20236 -0
  6. package/bin/voltro.mjs +43 -0
  7. package/dist/bin.d.ts +1 -0
  8. package/dist/bin.js +9 -0
  9. package/dist/commands-CfPH2Wf4.js +18061 -0
  10. package/dist/frameworkInspectState-CX2250XB.js +86 -0
  11. package/dist/index.d.ts +48 -0
  12. package/dist/index.js +5 -0
  13. package/dist/inspectState.d.ts +116 -0
  14. package/dist/inspectState.js +2 -0
  15. package/dist/startup.d.ts +26 -0
  16. package/dist/startup.js +2 -0
  17. package/dist/startupRunner-CRhuUl91.js +71 -0
  18. package/package.json +88 -0
  19. package/templates/AGENTS.core.md +258 -0
  20. package/templates/AGENTS.md +351 -0
  21. package/templates/agent-docs/_index.md +93 -0
  22. package/templates/agent-docs/_manifest.json +655 -0
  23. package/templates/agent-docs/ai.md +1845 -0
  24. package/templates/agent-docs/authentication.md +1788 -0
  25. package/templates/agent-docs/caching.md +624 -0
  26. package/templates/agent-docs/cli.md +1650 -0
  27. package/templates/agent-docs/configuration.md +295 -0
  28. package/templates/agent-docs/data.md +2172 -0
  29. package/templates/agent-docs/database/advancedqueries.md +1583 -0
  30. package/templates/agent-docs/database/columntypes.md +1200 -0
  31. package/templates/agent-docs/database/hosting.md +881 -0
  32. package/templates/agent-docs/database/migrations.md +2938 -0
  33. package/templates/agent-docs/database/misc.md +270 -0
  34. package/templates/agent-docs/database/overview.md +108 -0
  35. package/templates/agent-docs/database/querying.md +1622 -0
  36. package/templates/agent-docs/database/scaling.md +331 -0
  37. package/templates/agent-docs/database/schema.md +1458 -0
  38. package/templates/agent-docs/database/seedsdialects.md +1235 -0
  39. package/templates/agent-docs/database/transactions.md +285 -0
  40. package/templates/agent-docs/deployment.md +999 -0
  41. package/templates/agent-docs/internationalization.md +359 -0
  42. package/templates/agent-docs/introduction.md +438 -0
  43. package/templates/agent-docs/multi-tenancy.md +610 -0
  44. package/templates/agent-docs/observability.md +350 -0
  45. package/templates/agent-docs/plugins.md +1273 -0
  46. package/templates/agent-docs/reference.md +978 -0
  47. package/templates/agent-docs/routing.md +1553 -0
  48. package/templates/agent-docs/scheduling.md +666 -0
  49. package/templates/agent-docs/schema-driven-ui.md +607 -0
  50. package/templates/agent-docs/security.md +42 -0
  51. package/templates/agent-docs/templates/apibackends.md +3214 -0
  52. package/templates/agent-docs/templates/appshells.md +2062 -0
  53. package/templates/agent-docs/templates/custom.md +128 -0
  54. package/templates/agent-docs/templates/overview.md +122 -0
  55. package/templates/agent-docs/templates/serverless.md +315 -0
  56. package/templates/agent-docs/testing.md +376 -0
  57. package/templates/agent-docs/workflows.md +1351 -0
  58. package/templates/apps/api-ai/README.md +105 -0
  59. package/templates/apps/api-ai/actions/summarize.action.server.tsx +32 -0
  60. package/templates/apps/api-ai/actions/summarize.action.ts +33 -0
  61. package/templates/apps/api-ai/agents/support.agent.server.tsx +31 -0
  62. package/templates/apps/api-ai/agents/support.agent.tsx +27 -0
  63. package/templates/apps/api-ai/app.config.ts +57 -0
  64. package/templates/apps/api-ai/database/schema.ts +67 -0
  65. package/templates/apps/api-ai/package.json +27 -0
  66. package/templates/apps/api-ai/seeds/docs.seed.ts +67 -0
  67. package/templates/apps/api-ai/template.json +6 -0
  68. package/templates/apps/api-ai/tests/summarize.test.ts +50 -0
  69. package/templates/apps/api-ai/tools/searchDocs.tool.tsx +60 -0
  70. package/templates/apps/api-ai/tsconfig.json +5 -0
  71. package/templates/apps/api-auth/.env +17 -0
  72. package/templates/apps/api-auth/README.md +109 -0
  73. package/templates/apps/api-auth/actions/me.action.server.ts +20 -0
  74. package/templates/apps/api-auth/actions/me.action.ts +19 -0
  75. package/templates/apps/api-auth/app.config.ts +59 -0
  76. package/templates/apps/api-auth/database/schema.ts +26 -0
  77. package/templates/apps/api-auth/package.json +28 -0
  78. package/templates/apps/api-auth/template.json +6 -0
  79. package/templates/apps/api-auth/tests/me.test.ts +37 -0
  80. package/templates/apps/api-auth/tsconfig.json +5 -0
  81. package/templates/apps/api-backend/README.md +25 -0
  82. package/templates/apps/api-backend/app.config.ts +39 -0
  83. package/templates/apps/api-backend/database/schema.ts +57 -0
  84. package/templates/apps/api-backend/mutations/notes.create.mutation.server.ts +19 -0
  85. package/templates/apps/api-backend/mutations/notes.create.mutation.ts +37 -0
  86. package/templates/apps/api-backend/package.json +28 -0
  87. package/templates/apps/api-backend/queries/notes.query.server.ts +14 -0
  88. package/templates/apps/api-backend/queries/notes.query.ts +20 -0
  89. package/templates/apps/api-backend/template.json +6 -0
  90. package/templates/apps/api-backend/tests/notes.create.test.ts +50 -0
  91. package/templates/apps/api-backend/tsconfig.json +5 -0
  92. package/templates/apps/api-backend-deactivation/README.md +49 -0
  93. package/templates/apps/api-backend-deactivation/actions/users.get.action.server.ts +17 -0
  94. package/templates/apps/api-backend-deactivation/actions/users.get.action.ts +18 -0
  95. package/templates/apps/api-backend-deactivation/app.config.ts +20 -0
  96. package/templates/apps/api-backend-deactivation/database/schema.ts +41 -0
  97. package/templates/apps/api-backend-deactivation/mutations/users.create.mutation.server.ts +6 -0
  98. package/templates/apps/api-backend-deactivation/mutations/users.create.mutation.ts +16 -0
  99. package/templates/apps/api-backend-deactivation/mutations/users.deactivate.mutation.server.ts +10 -0
  100. package/templates/apps/api-backend-deactivation/mutations/users.deactivate.mutation.ts +19 -0
  101. package/templates/apps/api-backend-deactivation/package.json +28 -0
  102. package/templates/apps/api-backend-deactivation/template.json +6 -0
  103. package/templates/apps/api-backend-deactivation/tests/users.deactivate.test.ts +47 -0
  104. package/templates/apps/api-backend-deactivation/tsconfig.json +5 -0
  105. package/templates/apps/api-backend-mail/README.md +39 -0
  106. package/templates/apps/api-backend-mail/actions/sendWelcome.action.server.ts +15 -0
  107. package/templates/apps/api-backend-mail/actions/sendWelcome.action.ts +21 -0
  108. package/templates/apps/api-backend-mail/app.config.ts +34 -0
  109. package/templates/apps/api-backend-mail/database/schema.ts +57 -0
  110. package/templates/apps/api-backend-mail/emails/welcome.email.tsx +106 -0
  111. package/templates/apps/api-backend-mail/mutations/notes.create.mutation.server.ts +19 -0
  112. package/templates/apps/api-backend-mail/mutations/notes.create.mutation.ts +37 -0
  113. package/templates/apps/api-backend-mail/package.json +30 -0
  114. package/templates/apps/api-backend-mail/queries/notes.query.server.ts +14 -0
  115. package/templates/apps/api-backend-mail/queries/notes.query.ts +20 -0
  116. package/templates/apps/api-backend-mail/template.json +6 -0
  117. package/templates/apps/api-backend-mail/tests/notes.create.test.ts +50 -0
  118. package/templates/apps/api-backend-mail/tsconfig.json +5 -0
  119. package/templates/apps/api-backend-mariadb/.env.example +35 -0
  120. package/templates/apps/api-backend-mariadb/README.md +31 -0
  121. package/templates/apps/api-backend-mariadb/app.config.ts +68 -0
  122. package/templates/apps/api-backend-mariadb/database/schema.ts +57 -0
  123. package/templates/apps/api-backend-mariadb/mutations/notes.create.mutation.server.ts +19 -0
  124. package/templates/apps/api-backend-mariadb/mutations/notes.create.mutation.ts +37 -0
  125. package/templates/apps/api-backend-mariadb/package.json +30 -0
  126. package/templates/apps/api-backend-mariadb/queries/notes.query.server.ts +14 -0
  127. package/templates/apps/api-backend-mariadb/queries/notes.query.ts +20 -0
  128. package/templates/apps/api-backend-mariadb/template.json +6 -0
  129. package/templates/apps/api-backend-mariadb/tests/notes.create.test.ts +50 -0
  130. package/templates/apps/api-backend-mariadb/tsconfig.json +5 -0
  131. package/templates/apps/api-backend-storage/README.md +86 -0
  132. package/templates/apps/api-backend-storage/actions/uploadAvatar.action.server.ts +21 -0
  133. package/templates/apps/api-backend-storage/actions/uploadAvatar.action.ts +21 -0
  134. package/templates/apps/api-backend-storage/actions/uploadDocument.action.server.ts +21 -0
  135. package/templates/apps/api-backend-storage/actions/uploadDocument.action.ts +20 -0
  136. package/templates/apps/api-backend-storage/app.config.ts +38 -0
  137. package/templates/apps/api-backend-storage/database/schema.ts +57 -0
  138. package/templates/apps/api-backend-storage/mutations/notes.create.mutation.server.ts +19 -0
  139. package/templates/apps/api-backend-storage/mutations/notes.create.mutation.ts +37 -0
  140. package/templates/apps/api-backend-storage/package.json +27 -0
  141. package/templates/apps/api-backend-storage/queries/notes.query.server.ts +14 -0
  142. package/templates/apps/api-backend-storage/queries/notes.query.ts +20 -0
  143. package/templates/apps/api-backend-storage/template.json +6 -0
  144. package/templates/apps/api-backend-storage/tests/notes.create.test.ts +50 -0
  145. package/templates/apps/api-backend-storage/tsconfig.json +5 -0
  146. package/templates/apps/api-data-advanced/.env +17 -0
  147. package/templates/apps/api-data-advanced/README.md +88 -0
  148. package/templates/apps/api-data-advanced/app.config.ts +56 -0
  149. package/templates/apps/api-data-advanced/database/actors.entity.ts +14 -0
  150. package/templates/apps/api-data-advanced/database/authors.entity.ts +30 -0
  151. package/templates/apps/api-data-advanced/database/authors.relations.ts +15 -0
  152. package/templates/apps/api-data-advanced/database/books.entity.ts +59 -0
  153. package/templates/apps/api-data-advanced/database/books.relations.ts +10 -0
  154. package/templates/apps/api-data-advanced/database/index.ts +23 -0
  155. package/templates/apps/api-data-advanced/database/tenants.entity.ts +11 -0
  156. package/templates/apps/api-data-advanced/package.json +28 -0
  157. package/templates/apps/api-data-advanced/queries/authors.withBooks.query.server.ts +18 -0
  158. package/templates/apps/api-data-advanced/queries/authors.withBooks.query.ts +40 -0
  159. package/templates/apps/api-data-advanced/queries/books.search.query.server.ts +17 -0
  160. package/templates/apps/api-data-advanced/queries/books.search.query.ts +39 -0
  161. package/templates/apps/api-data-advanced/seeds/catalog.seed.ts +101 -0
  162. package/templates/apps/api-data-advanced/template.json +6 -0
  163. package/templates/apps/api-data-advanced/tests/queries.test.ts +124 -0
  164. package/templates/apps/api-data-advanced/tsconfig.json +5 -0
  165. package/templates/apps/api-durable/README.md +81 -0
  166. package/templates/apps/api-durable/aggregates/orderStats.aggregate.ts +49 -0
  167. package/templates/apps/api-durable/app.config.ts +41 -0
  168. package/templates/apps/api-durable/database/schema.ts +65 -0
  169. package/templates/apps/api-durable/mutations/orders.approve.mutation.server.ts +43 -0
  170. package/templates/apps/api-durable/mutations/orders.approve.mutation.ts +23 -0
  171. package/templates/apps/api-durable/mutations/orders.place.mutation.server.ts +45 -0
  172. package/templates/apps/api-durable/mutations/orders.place.mutation.ts +40 -0
  173. package/templates/apps/api-durable/package.json +28 -0
  174. package/templates/apps/api-durable/schedules/nightlyReport.cron.tsx +37 -0
  175. package/templates/apps/api-durable/startup/warm.startup.tsx +33 -0
  176. package/templates/apps/api-durable/subscribers/orderChanges.subscribe.ts +27 -0
  177. package/templates/apps/api-durable/template.json +6 -0
  178. package/templates/apps/api-durable/tests/orders.place.test.ts +91 -0
  179. package/templates/apps/api-durable/triggers/order.placed.trigger.tsx +21 -0
  180. package/templates/apps/api-durable/tsconfig.json +5 -0
  181. package/templates/apps/api-durable/workflows/order.fulfill.workflow.server.tsx +103 -0
  182. package/templates/apps/api-durable/workflows/order.fulfill.workflow.tsx +25 -0
  183. package/templates/apps/api-feature-flags/README.md +63 -0
  184. package/templates/apps/api-feature-flags/actions/notes.export.action.server.ts +11 -0
  185. package/templates/apps/api-feature-flags/actions/notes.export.action.ts +18 -0
  186. package/templates/apps/api-feature-flags/app.config.ts +41 -0
  187. package/templates/apps/api-feature-flags/database/schema.ts +37 -0
  188. package/templates/apps/api-feature-flags/mutations/notes.create.mutation.server.ts +29 -0
  189. package/templates/apps/api-feature-flags/mutations/notes.create.mutation.ts +28 -0
  190. package/templates/apps/api-feature-flags/package.json +29 -0
  191. package/templates/apps/api-feature-flags/template.json +6 -0
  192. package/templates/apps/api-feature-flags/tests/notes.create.test.ts +67 -0
  193. package/templates/apps/api-feature-flags/tsconfig.json +5 -0
  194. package/templates/apps/api-governance/.env +4 -0
  195. package/templates/apps/api-governance/README.md +61 -0
  196. package/templates/apps/api-governance/actions/profiles.get.action.server.ts +17 -0
  197. package/templates/apps/api-governance/actions/profiles.get.action.ts +17 -0
  198. package/templates/apps/api-governance/app.config.ts +35 -0
  199. package/templates/apps/api-governance/database/schema.ts +41 -0
  200. package/templates/apps/api-governance/mutations/profiles.create.mutation.server.ts +17 -0
  201. package/templates/apps/api-governance/mutations/profiles.create.mutation.ts +21 -0
  202. package/templates/apps/api-governance/package.json +29 -0
  203. package/templates/apps/api-governance/template.json +6 -0
  204. package/templates/apps/api-governance/tests/profiles.create.test.ts +59 -0
  205. package/templates/apps/api-governance/tsconfig.json +5 -0
  206. package/templates/apps/api-kv/README.md +100 -0
  207. package/templates/apps/api-kv/actions/sync.pull.action.server.ts +75 -0
  208. package/templates/apps/api-kv/actions/sync.pull.action.ts +25 -0
  209. package/templates/apps/api-kv/actions/sync.reset.action.server.ts +25 -0
  210. package/templates/apps/api-kv/actions/sync.reset.action.ts +22 -0
  211. package/templates/apps/api-kv/actions/sync.status.action.server.ts +28 -0
  212. package/templates/apps/api-kv/actions/sync.status.action.ts +17 -0
  213. package/templates/apps/api-kv/app.config.ts +48 -0
  214. package/templates/apps/api-kv/database/schema.ts +62 -0
  215. package/templates/apps/api-kv/package.json +28 -0
  216. package/templates/apps/api-kv/queries/events.list.query.server.ts +14 -0
  217. package/templates/apps/api-kv/queries/events.list.query.ts +23 -0
  218. package/templates/apps/api-kv/template.json +6 -0
  219. package/templates/apps/api-kv/tests/sync.test.ts +103 -0
  220. package/templates/apps/api-kv/tsconfig.json +5 -0
  221. package/templates/apps/api-moderation/README.md +46 -0
  222. package/templates/apps/api-moderation/app.config.ts +33 -0
  223. package/templates/apps/api-moderation/database/schema.ts +45 -0
  224. package/templates/apps/api-moderation/mutations/comments.create.mutation.server.ts +8 -0
  225. package/templates/apps/api-moderation/mutations/comments.create.mutation.ts +20 -0
  226. package/templates/apps/api-moderation/mutations/posts.create.mutation.server.ts +9 -0
  227. package/templates/apps/api-moderation/mutations/posts.create.mutation.ts +25 -0
  228. package/templates/apps/api-moderation/package.json +29 -0
  229. package/templates/apps/api-moderation/template.json +6 -0
  230. package/templates/apps/api-moderation/tests/posts.create.test.ts +79 -0
  231. package/templates/apps/api-moderation/tsconfig.json +5 -0
  232. package/templates/apps/api-observability/README.md +106 -0
  233. package/templates/apps/api-observability/app.config.ts +32 -0
  234. package/templates/apps/api-observability/database/schema.ts +38 -0
  235. package/templates/apps/api-observability/mutations/notes.create.mutation.server.ts +33 -0
  236. package/templates/apps/api-observability/mutations/notes.create.mutation.ts +15 -0
  237. package/templates/apps/api-observability/package.json +29 -0
  238. package/templates/apps/api-observability/queries/notes.list.query.server.ts +7 -0
  239. package/templates/apps/api-observability/queries/notes.list.query.ts +14 -0
  240. package/templates/apps/api-observability/template.json +6 -0
  241. package/templates/apps/api-observability/tests/notes.create.test.ts +36 -0
  242. package/templates/apps/api-observability/tsconfig.json +5 -0
  243. package/templates/apps/api-ratelimit/README.md +49 -0
  244. package/templates/apps/api-ratelimit/app.config.ts +42 -0
  245. package/templates/apps/api-ratelimit/database/schema.ts +37 -0
  246. package/templates/apps/api-ratelimit/mutations/notes.create.mutation.server.ts +16 -0
  247. package/templates/apps/api-ratelimit/mutations/notes.create.mutation.ts +34 -0
  248. package/templates/apps/api-ratelimit/package.json +29 -0
  249. package/templates/apps/api-ratelimit/template.json +6 -0
  250. package/templates/apps/api-ratelimit/tests/notes.create.test.ts +69 -0
  251. package/templates/apps/api-ratelimit/tsconfig.json +5 -0
  252. package/templates/apps/api-rbac/README.md +59 -0
  253. package/templates/apps/api-rbac/app.config.ts +48 -0
  254. package/templates/apps/api-rbac/database/schema.ts +37 -0
  255. package/templates/apps/api-rbac/mutations/notes.create.mutation.server.ts +22 -0
  256. package/templates/apps/api-rbac/mutations/notes.create.mutation.ts +26 -0
  257. package/templates/apps/api-rbac/package.json +29 -0
  258. package/templates/apps/api-rbac/template.json +6 -0
  259. package/templates/apps/api-rbac/tests/notes.create.test.ts +80 -0
  260. package/templates/apps/api-rbac/tsconfig.json +5 -0
  261. package/templates/apps/api-rest/README.md +85 -0
  262. package/templates/apps/api-rest/app.config.ts +70 -0
  263. package/templates/apps/api-rest/database/schema.ts +52 -0
  264. package/templates/apps/api-rest/lib/product.ts +30 -0
  265. package/templates/apps/api-rest/package.json +27 -0
  266. package/templates/apps/api-rest/routes/v1/products.create.route.tsx +45 -0
  267. package/templates/apps/api-rest/routes/v1/products.delete.route.tsx +25 -0
  268. package/templates/apps/api-rest/routes/v1/products.get.route.tsx +29 -0
  269. package/templates/apps/api-rest/routes/v1/products.list.route.tsx +43 -0
  270. package/templates/apps/api-rest/template.json +6 -0
  271. package/templates/apps/api-rest/tests/products.create.test.ts +53 -0
  272. package/templates/apps/api-rest/tsconfig.json +5 -0
  273. package/templates/apps/api-saas/README.md +106 -0
  274. package/templates/apps/api-saas/app.config.ts +51 -0
  275. package/templates/apps/api-saas/database/schema.ts +50 -0
  276. package/templates/apps/api-saas/mutations/projects.create.mutation.server.ts +52 -0
  277. package/templates/apps/api-saas/mutations/projects.create.mutation.ts +18 -0
  278. package/templates/apps/api-saas/package.json +31 -0
  279. package/templates/apps/api-saas/queries/projects.list.query.server.ts +7 -0
  280. package/templates/apps/api-saas/queries/projects.list.query.ts +18 -0
  281. package/templates/apps/api-saas/template.json +6 -0
  282. package/templates/apps/api-saas/tests/projects.create.test.ts +47 -0
  283. package/templates/apps/api-saas/tsconfig.json +5 -0
  284. package/templates/apps/api-search/README.md +68 -0
  285. package/templates/apps/api-search/app.config.ts +31 -0
  286. package/templates/apps/api-search/database/schema.ts +47 -0
  287. package/templates/apps/api-search/lib/search.ts +27 -0
  288. package/templates/apps/api-search/mutations/articles.create.mutation.server.ts +19 -0
  289. package/templates/apps/api-search/mutations/articles.create.mutation.ts +35 -0
  290. package/templates/apps/api-search/package.json +29 -0
  291. package/templates/apps/api-search/queries/articles.list.query.server.ts +14 -0
  292. package/templates/apps/api-search/queries/articles.list.query.ts +19 -0
  293. package/templates/apps/api-search/seeds/articles.seed.ts +41 -0
  294. package/templates/apps/api-search/startup/searchBackfill.startup.tsx +24 -0
  295. package/templates/apps/api-search/template.json +6 -0
  296. package/templates/apps/api-search/tests/articles.create.test.ts +69 -0
  297. package/templates/apps/api-search/tsconfig.json +5 -0
  298. package/templates/apps/api-versioning/README.md +51 -0
  299. package/templates/apps/api-versioning/actions/documents.asOf.action.server.ts +13 -0
  300. package/templates/apps/api-versioning/actions/documents.asOf.action.ts +14 -0
  301. package/templates/apps/api-versioning/actions/documents.history.action.server.ts +15 -0
  302. package/templates/apps/api-versioning/actions/documents.history.action.ts +17 -0
  303. package/templates/apps/api-versioning/app.config.ts +24 -0
  304. package/templates/apps/api-versioning/database/schema.ts +38 -0
  305. package/templates/apps/api-versioning/mutations/documents.create.mutation.server.ts +8 -0
  306. package/templates/apps/api-versioning/mutations/documents.create.mutation.ts +21 -0
  307. package/templates/apps/api-versioning/mutations/documents.update.mutation.server.ts +9 -0
  308. package/templates/apps/api-versioning/mutations/documents.update.mutation.ts +21 -0
  309. package/templates/apps/api-versioning/package.json +29 -0
  310. package/templates/apps/api-versioning/template.json +6 -0
  311. package/templates/apps/api-versioning/tests/documents.create.test.ts +37 -0
  312. package/templates/apps/api-versioning/tsconfig.json +5 -0
  313. package/templates/apps/api-webhooks/.env +6 -0
  314. package/templates/apps/api-webhooks/README.md +106 -0
  315. package/templates/apps/api-webhooks/app.config.ts +16 -0
  316. package/templates/apps/api-webhooks/database/schema.ts +49 -0
  317. package/templates/apps/api-webhooks/events/order.completed.webhook.tsx +22 -0
  318. package/templates/apps/api-webhooks/mutations/orders.fulfill.mutation.server.ts +37 -0
  319. package/templates/apps/api-webhooks/mutations/orders.fulfill.mutation.ts +15 -0
  320. package/templates/apps/api-webhooks/package.json +28 -0
  321. package/templates/apps/api-webhooks/queries/orders.list.query.server.ts +7 -0
  322. package/templates/apps/api-webhooks/queries/orders.list.query.ts +15 -0
  323. package/templates/apps/api-webhooks/template.json +6 -0
  324. package/templates/apps/api-webhooks/tests/orders.fulfill.test.ts +51 -0
  325. package/templates/apps/api-webhooks/tsconfig.json +5 -0
  326. package/templates/apps/api-webhooks/webhooks/orders.webhook.tsx +35 -0
  327. package/templates/apps/changelog/README.md +77 -0
  328. package/templates/apps/changelog/app.config.ts +27 -0
  329. package/templates/apps/changelog/content/releases/0.1.0.mdx +19 -0
  330. package/templates/apps/changelog/content/releases/0.2.0.mdx +28 -0
  331. package/templates/apps/changelog/package.json +30 -0
  332. package/templates/apps/changelog/scripts/generate-rss.mjs +38 -0
  333. package/templates/apps/changelog/src/globals.css +66 -0
  334. package/templates/apps/changelog/src/globals.d.ts +16 -0
  335. package/templates/apps/changelog/src/lib/locale.test.ts +72 -0
  336. package/templates/apps/changelog/src/lib/locale.ts +55 -0
  337. package/templates/apps/changelog/src/lib/releases.ts +21 -0
  338. package/templates/apps/changelog/src/locales/de.ts +22 -0
  339. package/templates/apps/changelog/src/locales/en.ts +30 -0
  340. package/templates/apps/changelog/src/pages/[locale]/[slug].tsx +24 -0
  341. package/templates/apps/changelog/src/pages/[locale]/index.tsx +13 -0
  342. package/templates/apps/changelog/src/pages/[locale]/mirrors.test.tsx +95 -0
  343. package/templates/apps/changelog/src/pages/[slug].test.tsx +127 -0
  344. package/templates/apps/changelog/src/pages/[slug].tsx +52 -0
  345. package/templates/apps/changelog/src/pages/index.test.tsx +112 -0
  346. package/templates/apps/changelog/src/pages/index.tsx +55 -0
  347. package/templates/apps/changelog/src/pages/layout.tsx +84 -0
  348. package/templates/apps/changelog/template.json +6 -0
  349. package/templates/apps/changelog/tsconfig.json +11 -0
  350. package/templates/apps/edge-functions/README.md +55 -0
  351. package/templates/apps/edge-functions/functions/aiComplete.serverless.ts +58 -0
  352. package/templates/apps/edge-functions/functions/currencyConvert.serverless.ts +47 -0
  353. package/templates/apps/edge-functions/functions/geoGreeting.serverless.ts +44 -0
  354. package/templates/apps/edge-functions/functions/health.serverless.ts +29 -0
  355. package/templates/apps/edge-functions/functions/resolveLink.serverless.ts +32 -0
  356. package/templates/apps/edge-functions/functions/shareLink.serverless.ts +30 -0
  357. package/templates/apps/edge-functions/functions/slackNotify.serverless.ts +40 -0
  358. package/templates/apps/edge-functions/functions/verifySignature.serverless.ts +52 -0
  359. package/templates/apps/edge-functions/package.json +21 -0
  360. package/templates/apps/edge-functions/template.json +6 -0
  361. package/templates/apps/edge-functions/tsconfig.json +10 -0
  362. package/templates/apps/frontend-admin/README.md +40 -0
  363. package/templates/apps/frontend-admin/app.config.ts +37 -0
  364. package/templates/apps/frontend-admin/package.json +30 -0
  365. package/templates/apps/frontend-admin/src/config.ts +8 -0
  366. package/templates/apps/frontend-admin/src/globals.css +76 -0
  367. package/templates/apps/frontend-admin/src/globals.d.ts +6 -0
  368. package/templates/apps/frontend-admin/src/lib/admin.ts +16 -0
  369. package/templates/apps/frontend-admin/src/lib/auth.ts +24 -0
  370. package/templates/apps/frontend-admin/src/locales/de.ts +67 -0
  371. package/templates/apps/frontend-admin/src/locales/en.ts +79 -0
  372. package/templates/apps/frontend-admin/src/locales/index.ts +15 -0
  373. package/templates/apps/frontend-admin/src/pages/(marketing)/index.test.tsx +55 -0
  374. package/templates/apps/frontend-admin/src/pages/(marketing)/index.tsx +32 -0
  375. package/templates/apps/frontend-admin/src/pages/(marketing)/layout.tsx +29 -0
  376. package/templates/apps/frontend-admin/src/pages/(marketing)/login.test.tsx +73 -0
  377. package/templates/apps/frontend-admin/src/pages/(marketing)/login.tsx +35 -0
  378. package/templates/apps/frontend-admin/src/pages/admin/[entity].tsx +121 -0
  379. package/templates/apps/frontend-admin/src/pages/admin/entity.test.tsx +119 -0
  380. package/templates/apps/frontend-admin/src/pages/admin/error.tsx +20 -0
  381. package/templates/apps/frontend-admin/src/pages/admin/fallbacks.test.tsx +68 -0
  382. package/templates/apps/frontend-admin/src/pages/admin/index.test.tsx +88 -0
  383. package/templates/apps/frontend-admin/src/pages/admin/index.tsx +65 -0
  384. package/templates/apps/frontend-admin/src/pages/admin/layout.test.tsx +114 -0
  385. package/templates/apps/frontend-admin/src/pages/admin/layout.tsx +97 -0
  386. package/templates/apps/frontend-admin/src/pages/admin/loading.tsx +15 -0
  387. package/templates/apps/frontend-admin/src/pages/admin/not-found.tsx +15 -0
  388. package/templates/apps/frontend-admin/src/pages/layout.tsx +12 -0
  389. package/templates/apps/frontend-admin/src/pages/layouts.test.tsx +54 -0
  390. package/templates/apps/frontend-admin/template.json +6 -0
  391. package/templates/apps/frontend-admin/tsconfig.json +11 -0
  392. package/templates/apps/frontend-app/README.md +98 -0
  393. package/templates/apps/frontend-app/app.config.ts +43 -0
  394. package/templates/apps/frontend-app/package.json +30 -0
  395. package/templates/apps/frontend-app/src/locales/de.ts +36 -0
  396. package/templates/apps/frontend-app/src/locales/en.ts +43 -0
  397. package/templates/apps/frontend-app/src/locales/index.ts +15 -0
  398. package/templates/apps/frontend-app/src/pages/index.test.tsx +167 -0
  399. package/templates/apps/frontend-app/src/pages/index.tsx +136 -0
  400. package/templates/apps/frontend-app/src/pages/layout.tsx +41 -0
  401. package/templates/apps/frontend-app/src/pages/schema-ui.test.tsx +99 -0
  402. package/templates/apps/frontend-app/src/pages/schema-ui.tsx +74 -0
  403. package/templates/apps/frontend-app/template.json +6 -0
  404. package/templates/apps/frontend-app/tsconfig.json +11 -0
  405. package/templates/apps/frontend-blank/README.md +18 -0
  406. package/templates/apps/frontend-blank/app.config.ts +29 -0
  407. package/templates/apps/frontend-blank/package.json +29 -0
  408. package/templates/apps/frontend-blank/src/locales/de.ts +15 -0
  409. package/templates/apps/frontend-blank/src/locales/en.ts +22 -0
  410. package/templates/apps/frontend-blank/src/locales/index.ts +15 -0
  411. package/templates/apps/frontend-blank/src/pages/index.test.tsx +55 -0
  412. package/templates/apps/frontend-blank/src/pages/index.tsx +27 -0
  413. package/templates/apps/frontend-blank/src/pages/layout.test.tsx +54 -0
  414. package/templates/apps/frontend-blank/src/pages/layout.tsx +35 -0
  415. package/templates/apps/frontend-blank/template.json +6 -0
  416. package/templates/apps/frontend-blank/tsconfig.json +11 -0
  417. package/templates/apps/frontend-contact/README.md +65 -0
  418. package/templates/apps/frontend-contact/app.config.ts +25 -0
  419. package/templates/apps/frontend-contact/functions/sendMessage.serverless.ts +69 -0
  420. package/templates/apps/frontend-contact/package.json +33 -0
  421. package/templates/apps/frontend-contact/src/components/ContactForm.island.test.tsx +142 -0
  422. package/templates/apps/frontend-contact/src/components/ContactForm.island.tsx +104 -0
  423. package/templates/apps/frontend-contact/src/config.ts +12 -0
  424. package/templates/apps/frontend-contact/src/globals.css +84 -0
  425. package/templates/apps/frontend-contact/src/lib/locale.ts +55 -0
  426. package/templates/apps/frontend-contact/src/locales/de.ts +26 -0
  427. package/templates/apps/frontend-contact/src/locales/en.ts +29 -0
  428. package/templates/apps/frontend-contact/src/pages/[locale]/index.tsx +14 -0
  429. package/templates/apps/frontend-contact/src/pages/index.test.tsx +70 -0
  430. package/templates/apps/frontend-contact/src/pages/index.tsx +63 -0
  431. package/templates/apps/frontend-contact/src/pages/layout.tsx +65 -0
  432. package/templates/apps/frontend-contact/template.json +6 -0
  433. package/templates/apps/frontend-contact/tsconfig.json +11 -0
  434. package/templates/apps/frontend-dashboard/README.md +54 -0
  435. package/templates/apps/frontend-dashboard/app.config.ts +39 -0
  436. package/templates/apps/frontend-dashboard/package.json +29 -0
  437. package/templates/apps/frontend-dashboard/src/config.ts +8 -0
  438. package/templates/apps/frontend-dashboard/src/globals.css +72 -0
  439. package/templates/apps/frontend-dashboard/src/globals.d.ts +6 -0
  440. package/templates/apps/frontend-dashboard/src/lib/auth.ts +27 -0
  441. package/templates/apps/frontend-dashboard/src/locales/de.ts +49 -0
  442. package/templates/apps/frontend-dashboard/src/locales/en.ts +60 -0
  443. package/templates/apps/frontend-dashboard/src/locales/index.ts +15 -0
  444. package/templates/apps/frontend-dashboard/src/pages/(marketing)/index.test.tsx +55 -0
  445. package/templates/apps/frontend-dashboard/src/pages/(marketing)/index.tsx +34 -0
  446. package/templates/apps/frontend-dashboard/src/pages/(marketing)/layout.tsx +32 -0
  447. package/templates/apps/frontend-dashboard/src/pages/(marketing)/login.test.tsx +74 -0
  448. package/templates/apps/frontend-dashboard/src/pages/(marketing)/login.tsx +40 -0
  449. package/templates/apps/frontend-dashboard/src/pages/dashboard/error.tsx +21 -0
  450. package/templates/apps/frontend-dashboard/src/pages/dashboard/fallbacks.test.tsx +68 -0
  451. package/templates/apps/frontend-dashboard/src/pages/dashboard/index.test.tsx +55 -0
  452. package/templates/apps/frontend-dashboard/src/pages/dashboard/index.tsx +38 -0
  453. package/templates/apps/frontend-dashboard/src/pages/dashboard/layout.test.tsx +88 -0
  454. package/templates/apps/frontend-dashboard/src/pages/dashboard/layout.tsx +69 -0
  455. package/templates/apps/frontend-dashboard/src/pages/dashboard/loading.tsx +21 -0
  456. package/templates/apps/frontend-dashboard/src/pages/dashboard/not-found.tsx +19 -0
  457. package/templates/apps/frontend-dashboard/src/pages/dashboard/settings.test.tsx +69 -0
  458. package/templates/apps/frontend-dashboard/src/pages/dashboard/settings.tsx +35 -0
  459. package/templates/apps/frontend-dashboard/src/pages/layout.tsx +12 -0
  460. package/templates/apps/frontend-dashboard/src/pages/layouts.test.tsx +54 -0
  461. package/templates/apps/frontend-dashboard/template.json +6 -0
  462. package/templates/apps/frontend-dashboard/tsconfig.json +11 -0
  463. package/templates/apps/frontend-docs/README.md +19 -0
  464. package/templates/apps/frontend-docs/app.config.ts +25 -0
  465. package/templates/apps/frontend-docs/package.json +29 -0
  466. package/templates/apps/frontend-docs/src/globals.css +32 -0
  467. package/templates/apps/frontend-docs/src/lib/locale.test.ts +72 -0
  468. package/templates/apps/frontend-docs/src/lib/locale.ts +56 -0
  469. package/templates/apps/frontend-docs/src/locales/de.ts +24 -0
  470. package/templates/apps/frontend-docs/src/locales/en.ts +28 -0
  471. package/templates/apps/frontend-docs/src/pages/[locale]/docs/[...slug].tsx +18 -0
  472. package/templates/apps/frontend-docs/src/pages/[locale]/index.tsx +13 -0
  473. package/templates/apps/frontend-docs/src/pages/[locale]/mirrors.test.tsx +67 -0
  474. package/templates/apps/frontend-docs/src/pages/docs/[...slug].test.tsx +115 -0
  475. package/templates/apps/frontend-docs/src/pages/docs/[...slug].tsx +82 -0
  476. package/templates/apps/frontend-docs/src/pages/index.test.tsx +90 -0
  477. package/templates/apps/frontend-docs/src/pages/index.tsx +45 -0
  478. package/templates/apps/frontend-docs/src/pages/layout.test.tsx +84 -0
  479. package/templates/apps/frontend-docs/src/pages/layout.tsx +66 -0
  480. package/templates/apps/frontend-docs/template.json +6 -0
  481. package/templates/apps/frontend-docs/tsconfig.json +11 -0
  482. package/templates/apps/frontend-i18n/README.md +61 -0
  483. package/templates/apps/frontend-i18n/app.config.ts +33 -0
  484. package/templates/apps/frontend-i18n/package.json +28 -0
  485. package/templates/apps/frontend-i18n/src/globals.css +46 -0
  486. package/templates/apps/frontend-i18n/src/globals.d.ts +6 -0
  487. package/templates/apps/frontend-i18n/src/lib/locale.test.ts +72 -0
  488. package/templates/apps/frontend-i18n/src/lib/locale.ts +55 -0
  489. package/templates/apps/frontend-i18n/src/locales/de.ts +24 -0
  490. package/templates/apps/frontend-i18n/src/locales/en.ts +25 -0
  491. package/templates/apps/frontend-i18n/src/pages/[locale]/about.tsx +11 -0
  492. package/templates/apps/frontend-i18n/src/pages/[locale]/index.tsx +13 -0
  493. package/templates/apps/frontend-i18n/src/pages/[locale]/mirrors.test.tsx +50 -0
  494. package/templates/apps/frontend-i18n/src/pages/about.test.tsx +75 -0
  495. package/templates/apps/frontend-i18n/src/pages/about.tsx +31 -0
  496. package/templates/apps/frontend-i18n/src/pages/index.test.tsx +102 -0
  497. package/templates/apps/frontend-i18n/src/pages/index.tsx +43 -0
  498. package/templates/apps/frontend-i18n/src/pages/layout.test.tsx +86 -0
  499. package/templates/apps/frontend-i18n/src/pages/layout.tsx +70 -0
  500. package/templates/apps/frontend-i18n/template.json +6 -0
  501. package/templates/apps/frontend-i18n/tsconfig.json +11 -0
  502. package/templates/apps/frontend-landing/README.md +17 -0
  503. package/templates/apps/frontend-landing/app.config.ts +25 -0
  504. package/templates/apps/frontend-landing/package.json +29 -0
  505. package/templates/apps/frontend-landing/src/globals.css +23 -0
  506. package/templates/apps/frontend-landing/src/lib/locale.test.ts +72 -0
  507. package/templates/apps/frontend-landing/src/lib/locale.ts +55 -0
  508. package/templates/apps/frontend-landing/src/locales/de.ts +24 -0
  509. package/templates/apps/frontend-landing/src/locales/en.ts +26 -0
  510. package/templates/apps/frontend-landing/src/pages/[locale]/index.tsx +13 -0
  511. package/templates/apps/frontend-landing/src/pages/[locale]/mirrors.test.tsx +37 -0
  512. package/templates/apps/frontend-landing/src/pages/index.test.tsx +110 -0
  513. package/templates/apps/frontend-landing/src/pages/index.tsx +75 -0
  514. package/templates/apps/frontend-landing/src/pages/layout.test.tsx +84 -0
  515. package/templates/apps/frontend-landing/src/pages/layout.tsx +66 -0
  516. package/templates/apps/frontend-landing/template.json +6 -0
  517. package/templates/apps/frontend-landing/tsconfig.json +11 -0
  518. package/templates/apps/frontend-spa/README.md +45 -0
  519. package/templates/apps/frontend-spa/app.config.ts +27 -0
  520. package/templates/apps/frontend-spa/package.json +29 -0
  521. package/templates/apps/frontend-spa/src/globals.css +84 -0
  522. package/templates/apps/frontend-spa/src/locales/de.ts +22 -0
  523. package/templates/apps/frontend-spa/src/locales/en.ts +29 -0
  524. package/templates/apps/frontend-spa/src/locales/index.ts +15 -0
  525. package/templates/apps/frontend-spa/src/pages/index.test.tsx +137 -0
  526. package/templates/apps/frontend-spa/src/pages/index.tsx +123 -0
  527. package/templates/apps/frontend-spa/src/pages/layout.tsx +27 -0
  528. package/templates/apps/frontend-spa/template.json +6 -0
  529. package/templates/apps/frontend-spa/tsconfig.json +11 -0
  530. package/templates/apps/frontend-ssr/README.md +68 -0
  531. package/templates/apps/frontend-ssr/app.config.ts +32 -0
  532. package/templates/apps/frontend-ssr/package.json +29 -0
  533. package/templates/apps/frontend-ssr/src/globals.css +67 -0
  534. package/templates/apps/frontend-ssr/src/locales/de.ts +41 -0
  535. package/templates/apps/frontend-ssr/src/locales/en.ts +54 -0
  536. package/templates/apps/frontend-ssr/src/locales/index.ts +16 -0
  537. package/templates/apps/frontend-ssr/src/pages/feed-swr.test.tsx +69 -0
  538. package/templates/apps/frontend-ssr/src/pages/feed-swr.tsx +54 -0
  539. package/templates/apps/frontend-ssr/src/pages/feed.test.tsx +73 -0
  540. package/templates/apps/frontend-ssr/src/pages/feed.tsx +64 -0
  541. package/templates/apps/frontend-ssr/src/pages/index.test.tsx +89 -0
  542. package/templates/apps/frontend-ssr/src/pages/index.tsx +72 -0
  543. package/templates/apps/frontend-ssr/src/pages/layout.tsx +37 -0
  544. package/templates/apps/frontend-ssr/template.json +6 -0
  545. package/templates/apps/frontend-ssr/tsconfig.json +11 -0
  546. package/templates/apps/frontend-ssr-api/README.md +50 -0
  547. package/templates/apps/frontend-ssr-api/app.config.ts +43 -0
  548. package/templates/apps/frontend-ssr-api/package.json +30 -0
  549. package/templates/apps/frontend-ssr-api/src/globals.css +38 -0
  550. package/templates/apps/frontend-ssr-api/src/globals.d.ts +6 -0
  551. package/templates/apps/frontend-ssr-api/src/locales/de.ts +20 -0
  552. package/templates/apps/frontend-ssr-api/src/locales/en.ts +31 -0
  553. package/templates/apps/frontend-ssr-api/src/locales/index.ts +16 -0
  554. package/templates/apps/frontend-ssr-api/src/pages/index.test.tsx +105 -0
  555. package/templates/apps/frontend-ssr-api/src/pages/index.tsx +83 -0
  556. package/templates/apps/frontend-ssr-api/src/pages/layout.tsx +28 -0
  557. package/templates/apps/frontend-ssr-api/template.json +6 -0
  558. package/templates/apps/frontend-ssr-api/tsconfig.json +11 -0
  559. package/templates/apps/frontend-static-blog/README.md +49 -0
  560. package/templates/apps/frontend-static-blog/app.config.ts +34 -0
  561. package/templates/apps/frontend-static-blog/package.json +28 -0
  562. package/templates/apps/frontend-static-blog/src/components/ReadingProgress.island.test.tsx +65 -0
  563. package/templates/apps/frontend-static-blog/src/components/ReadingProgress.island.tsx +35 -0
  564. package/templates/apps/frontend-static-blog/src/content/posts.ts +64 -0
  565. package/templates/apps/frontend-static-blog/src/globals.css +75 -0
  566. package/templates/apps/frontend-static-blog/src/lib/locale.test.ts +72 -0
  567. package/templates/apps/frontend-static-blog/src/lib/locale.ts +55 -0
  568. package/templates/apps/frontend-static-blog/src/locales/de.ts +19 -0
  569. package/templates/apps/frontend-static-blog/src/locales/en.ts +26 -0
  570. package/templates/apps/frontend-static-blog/src/pages/[locale]/blog/[slug].tsx +20 -0
  571. package/templates/apps/frontend-static-blog/src/pages/[locale]/index.tsx +13 -0
  572. package/templates/apps/frontend-static-blog/src/pages/[locale]/mirrors.test.tsx +62 -0
  573. package/templates/apps/frontend-static-blog/src/pages/blog/[slug].test.tsx +116 -0
  574. package/templates/apps/frontend-static-blog/src/pages/blog/[slug].tsx +69 -0
  575. package/templates/apps/frontend-static-blog/src/pages/index.test.tsx +100 -0
  576. package/templates/apps/frontend-static-blog/src/pages/index.tsx +58 -0
  577. package/templates/apps/frontend-static-blog/src/pages/layout.tsx +63 -0
  578. package/templates/apps/frontend-static-blog/template.json +6 -0
  579. package/templates/apps/frontend-static-blog/tsconfig.json +11 -0
  580. package/templates/baselines/bare/.env.example +37 -0
  581. package/templates/baselines/bare/README.md +47 -0
  582. package/templates/baselines/bare/baseline.json +31 -0
  583. package/templates/baselines/bare/deploy/README.md +43 -0
  584. package/templates/baselines/bare/deploy/voltro.service.example +36 -0
  585. package/templates/baselines/compose/.env.example +46 -0
  586. package/templates/baselines/compose/README.md +69 -0
  587. package/templates/baselines/compose/baseline.json +51 -0
  588. package/templates/baselines/compose/docker/.dockerignore +38 -0
  589. package/templates/baselines/compose/docker/api.Dockerfile +57 -0
  590. package/templates/baselines/compose/docker/dev.Dockerfile +35 -0
  591. package/templates/baselines/compose/docker/web.Dockerfile +59 -0
  592. package/templates/baselines/compose/docker-compose.dev.yml +89 -0
  593. package/templates/baselines/compose/docker-compose.prod.yml +87 -0
  594. package/templates/baselines/compose/docker-compose.yml +41 -0
  595. package/templates/baselines/compose-mariadb/.env.example +57 -0
  596. package/templates/baselines/compose-mariadb/README.md +78 -0
  597. package/templates/baselines/compose-mariadb/baseline.json +51 -0
  598. package/templates/baselines/compose-mariadb/docker/.dockerignore +38 -0
  599. package/templates/baselines/compose-mariadb/docker/api.Dockerfile +57 -0
  600. package/templates/baselines/compose-mariadb/docker/dev.Dockerfile +35 -0
  601. package/templates/baselines/compose-mariadb/docker/mariadb-init.sql +6 -0
  602. package/templates/baselines/compose-mariadb/docker/web.Dockerfile +59 -0
  603. package/templates/baselines/compose-mariadb/docker-compose.dev.yml +117 -0
  604. package/templates/baselines/compose-mariadb/docker-compose.prod.yml +114 -0
  605. package/templates/baselines/compose-mariadb/docker-compose.yml +79 -0
  606. package/templates/baselines/helm/.env.example +39 -0
  607. package/templates/baselines/helm/README.md +98 -0
  608. package/templates/baselines/helm/baseline.json +53 -0
  609. package/templates/baselines/helm/charts/voltro-app/.helmignore +10 -0
  610. package/templates/baselines/helm/charts/voltro-app/Chart.yaml +10 -0
  611. package/templates/baselines/helm/charts/voltro-app/templates/_helpers.tpl +36 -0
  612. package/templates/baselines/helm/charts/voltro-app/templates/configmap.yaml +13 -0
  613. package/templates/baselines/helm/charts/voltro-app/templates/deployment-api.yaml +120 -0
  614. package/templates/baselines/helm/charts/voltro-app/templates/deployment-web.yaml +45 -0
  615. package/templates/baselines/helm/charts/voltro-app/templates/ingress.yaml +37 -0
  616. package/templates/baselines/helm/charts/voltro-app/templates/postgres-service.yaml +19 -0
  617. package/templates/baselines/helm/charts/voltro-app/templates/postgres-statefulset.yaml +73 -0
  618. package/templates/baselines/helm/charts/voltro-app/templates/secret.yaml +33 -0
  619. package/templates/baselines/helm/charts/voltro-app/templates/service-api.yaml +19 -0
  620. package/templates/baselines/helm/charts/voltro-app/templates/service-web.yaml +19 -0
  621. package/templates/baselines/helm/charts/voltro-app/values-dev.yaml +21 -0
  622. package/templates/baselines/helm/charts/voltro-app/values-prod.yaml +58 -0
  623. package/templates/baselines/helm/charts/voltro-app/values-staging.yaml +25 -0
  624. package/templates/baselines/helm/charts/voltro-app/values.yaml +109 -0
  625. package/templates/baselines/helm/deploy/README.md +94 -0
  626. package/templates/patches/@effect__cluster@0.59.0.patch +262 -0
@@ -0,0 +1,117 @@
1
+ # {{projectName}} full-stack DEV docker compose.
2
+ #
3
+ # Boots Postgres + apps with hot-reload. Each app container runs as
4
+ # the HOST user (via `user: ${HOST_UID}:${HOST_GID}`) so files written
5
+ # into the bind-mounted workspace land owned by you, not root. Without
6
+ # this, switching between docker dev and native pnpm dev leaves
7
+ # permission-denied errors on the cached vite deps.
8
+ #
9
+ # The pnpm-prebaked dev image (docker/dev.Dockerfile) is built once
10
+ # on first `up`; subsequent `up` calls reuse the cached layer.
11
+ #
12
+ # Prereqs on the host BEFORE running this:
13
+ # 1. pnpm install in the project root (deps need to exist on host
14
+ # because they're mounted in)
15
+ # 2. .env in place — see .env.example
16
+ #
17
+ # Run:
18
+ # pnpm dev:docker # wraps `HOST_UID=... HOST_GID=... docker compose up`
19
+ #
20
+ # Native-pnpm-dev alternative (faster HMR, no container overhead):
21
+ # pnpm dev:hybrid
22
+ #
23
+ # As you add apps to apps/, copy a service block and bump the port.
24
+
25
+ x-node-defaults: &node-defaults
26
+ build:
27
+ context: ./
28
+ dockerfile: docker/dev.Dockerfile
29
+ image: {{projectName}}-dev:latest
30
+ user: "${HOST_UID:-1000}:${HOST_GID:-1000}"
31
+ volumes:
32
+ - ./:/workspace:cached
33
+ depends_on:
34
+ mariadb:
35
+ condition: service_healthy
36
+
37
+ services:
38
+ mariadb:
39
+ image: mariadb:11
40
+ container_name: {{projectName}}-mariadb
41
+ restart: unless-stopped
42
+ environment:
43
+ MARIADB_ROOT_PASSWORD: root
44
+ MARIADB_DATABASE: {{projectNameSnake}}
45
+ MARIADB_USER: app
46
+ MARIADB_PASSWORD: app
47
+ ports:
48
+ - "3307:3306"
49
+ command:
50
+ - "--log-bin=mysql-bin"
51
+ - "--binlog-format=ROW"
52
+ - "--binlog-row-image=FULL"
53
+ - "--server-id=1"
54
+ - "--binlog-expire-logs-seconds=86400"
55
+ volumes:
56
+ - {{projectName}}-mariadbdata:/var/lib/mysql
57
+ - ./docker/mariadb-init.sql:/docker-entrypoint-initdb.d/10-replication.sql:ro
58
+ healthcheck:
59
+ test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
60
+ interval: 2s
61
+ timeout: 2s
62
+ retries: 15
63
+
64
+ minio:
65
+ image: minio/minio
66
+ container_name: {{projectName}}-minio
67
+ restart: unless-stopped
68
+ environment:
69
+ MINIO_ROOT_USER: minioadmin
70
+ MINIO_ROOT_PASSWORD: minioadmin
71
+ ports:
72
+ - "9000:9000"
73
+ - "9001:9001"
74
+ command: server /data --console-address ":9001"
75
+ volumes:
76
+ - {{projectName}}-miniodata:/data
77
+ healthcheck:
78
+ test: ["CMD", "mc", "ready", "local"]
79
+ interval: 3s
80
+ timeout: 2s
81
+ retries: 15
82
+
83
+ api:
84
+ <<: *node-defaults
85
+ container_name: {{projectName}}-api-dev
86
+ working_dir: /workspace/apps/{{projectName}}/api
87
+ command: pnpm voltro dev .
88
+ environment:
89
+ NODE_ENV: development
90
+ HOME: /tmp
91
+ DB_DIALECT: mariadb
92
+ DB_URL: mysql://app:app@mariadb:3306/{{projectNameSnake}}
93
+ CDC: "1"
94
+ STORAGE_PROVIDER: minio
95
+ S3_ENDPOINT: http://minio:9000
96
+ S3_BUCKET: {{projectNameSnake}}
97
+ S3_ACCESS_KEY_ID: minioadmin
98
+ S3_SECRET_ACCESS_KEY: minioadmin
99
+ S3_FORCE_PATH_STYLE: "1"
100
+ VOLTRO_SESSION_SECRET: ${VOLTRO_SESSION_SECRET:-dev-only-secret-please-rotate-in-prod}
101
+ ports:
102
+ - "4000:4000"
103
+
104
+ web:
105
+ <<: *node-defaults
106
+ container_name: {{projectName}}-web-dev
107
+ working_dir: /workspace/apps/{{projectName}}/web
108
+ command: pnpm voltro dev .
109
+ environment:
110
+ NODE_ENV: development
111
+ HOME: /tmp
112
+ ports:
113
+ - "5173:5173"
114
+
115
+ volumes:
116
+ {{projectName}}-mariadbdata:
117
+ {{projectName}}-miniodata:
@@ -0,0 +1,114 @@
1
+ # {{projectName}} full-stack PROD docker compose.
2
+ #
3
+ # Builds locked images per app via docker/{api,web}.Dockerfile and
4
+ # runs them behind Postgres. No source volumes — each app's code is
5
+ # baked in at image-build time. Use this to smoke-test prod config
6
+ # locally before deploying.
7
+ #
8
+ # This is NOT the production deploy target itself — that's helm or
9
+ # your cloud provider's container runtime. This file gives parity
10
+ # checking on localhost.
11
+ #
12
+ # Run:
13
+ # pnpm prod:build # build all images (slow, ~5 min)
14
+ # pnpm prod:up # boot the stack
15
+ # pnpm prod:down # tear down
16
+ #
17
+ # Different DB user from dev so accidental `pnpm db:reset` against
18
+ # the dev compose doesn't wipe a prod-shape dataset you wanted to
19
+ # poke at.
20
+
21
+ services:
22
+ mariadb:
23
+ image: mariadb:11
24
+ container_name: {{projectName}}-mariadb-prod
25
+ restart: unless-stopped
26
+ environment:
27
+ MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-change-me-in-prod}
28
+ MARIADB_DATABASE: {{projectNameSnake}}
29
+ MARIADB_USER: app
30
+ MARIADB_PASSWORD: ${MARIADB_PASSWORD:-app}
31
+ ports:
32
+ - "3308:3306"
33
+ command:
34
+ - "--log-bin=mysql-bin"
35
+ - "--binlog-format=ROW"
36
+ - "--binlog-row-image=FULL"
37
+ - "--server-id=1"
38
+ - "--binlog-expire-logs-seconds=86400"
39
+ volumes:
40
+ - {{projectName}}-prod-mariadbdata:/var/lib/mysql
41
+ - ./docker/mariadb-init.sql:/docker-entrypoint-initdb.d/10-replication.sql:ro
42
+ healthcheck:
43
+ test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
44
+ interval: 5s
45
+ timeout: 3s
46
+ retries: 20
47
+
48
+ minio:
49
+ image: minio/minio
50
+ container_name: {{projectName}}-minio-prod
51
+ restart: unless-stopped
52
+ environment:
53
+ MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID:-minioadmin}
54
+ MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY:-minioadmin}
55
+ command: server /data --console-address ":9001"
56
+ volumes:
57
+ - {{projectName}}-prod-miniodata:/data
58
+ healthcheck:
59
+ test: ["CMD", "mc", "ready", "local"]
60
+ interval: 5s
61
+ timeout: 3s
62
+ retries: 20
63
+
64
+ api:
65
+ build:
66
+ context: ./
67
+ dockerfile: docker/api.Dockerfile
68
+ target: prod
69
+ args:
70
+ APP_PATH: apps/{{projectName}}/api
71
+ image: {{projectName}}-api:latest
72
+ container_name: {{projectName}}-api
73
+ restart: unless-stopped
74
+ environment:
75
+ NODE_ENV: production
76
+ DB_DIALECT: mariadb
77
+ DB_URL: mysql://app:${MARIADB_PASSWORD:-app}@mariadb:3306/{{projectNameSnake}}
78
+ CDC: "1"
79
+ STORAGE_PROVIDER: minio
80
+ S3_ENDPOINT: http://minio:9000
81
+ S3_BUCKET: {{projectNameSnake}}
82
+ S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-minioadmin}
83
+ S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-minioadmin}
84
+ S3_FORCE_PATH_STYLE: "1"
85
+ VOLTRO_SESSION_SECRET: ${VOLTRO_SESSION_SECRET:?must be set for prod compose}
86
+ ports:
87
+ - "4000:4000"
88
+ depends_on:
89
+ mariadb:
90
+ condition: service_healthy
91
+ minio:
92
+ condition: service_healthy
93
+
94
+ web:
95
+ build:
96
+ context: ./
97
+ dockerfile: docker/web.Dockerfile
98
+ target: prod
99
+ args:
100
+ APP_PATH: apps/{{projectName}}/web
101
+ APP_PORT: "5173"
102
+ image: {{projectName}}-web:latest
103
+ container_name: {{projectName}}-web
104
+ restart: unless-stopped
105
+ environment:
106
+ NODE_ENV: production
107
+ ports:
108
+ - "5173:5173"
109
+ depends_on:
110
+ - api
111
+
112
+ volumes:
113
+ {{projectName}}-prod-mariadbdata:
114
+ {{projectName}}-prod-miniodata:
@@ -0,0 +1,79 @@
1
+ # {{projectName}} infra docker compose — MariaDB (binlog CDC) + MinIO.
2
+ #
3
+ # Brought up by `pnpm db:up`. Apps run natively via `pnpm dev` against
4
+ # this. For full-docker dev use `pnpm dev:docker`.
5
+ #
6
+ # MariaDB on 3307 (NOT default 3306) so it never clashes with a host
7
+ # MySQL/MariaDB. The binlog flags are MANDATORY for Voltro's CDC reader:
8
+ # real-time subscriptions fan out across replicas by tailing the binary
9
+ # log (the binlog IS the message bus — no Redis/NATS).
10
+
11
+ services:
12
+ mariadb:
13
+ image: mariadb:11
14
+ container_name: {{projectName}}-mariadb
15
+ restart: unless-stopped
16
+ environment:
17
+ MARIADB_ROOT_PASSWORD: root
18
+ MARIADB_DATABASE: {{projectNameSnake}}
19
+ MARIADB_USER: app
20
+ MARIADB_PASSWORD: app
21
+ ports:
22
+ - "3307:3306"
23
+ command:
24
+ # CDC requirements — ROW format + FULL row image so the reader sees
25
+ # complete before/after images; a server_id (unique per replica in
26
+ # prod — see the Helm baseline); generous binlog retention.
27
+ - "--log-bin=mysql-bin"
28
+ - "--binlog-format=ROW"
29
+ - "--binlog-row-image=FULL"
30
+ - "--server-id=1"
31
+ - "--binlog-expire-logs-seconds=86400"
32
+ volumes:
33
+ - {{projectName}}-mariadbdata:/var/lib/mysql
34
+ # Grants the app user REPLICATION SLAVE/CLIENT (the binlog reader needs it).
35
+ - ./docker/mariadb-init.sql:/docker-entrypoint-initdb.d/10-replication.sql:ro
36
+ healthcheck:
37
+ test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
38
+ interval: 2s
39
+ timeout: 2s
40
+ retries: 15
41
+
42
+ # Object storage for the file-storage primitive (@voltro/plugin-storage).
43
+ minio:
44
+ image: minio/minio
45
+ container_name: {{projectName}}-minio
46
+ restart: unless-stopped
47
+ environment:
48
+ MINIO_ROOT_USER: minioadmin
49
+ MINIO_ROOT_PASSWORD: minioadmin
50
+ ports:
51
+ - "9000:9000" # S3 API
52
+ - "9001:9001" # console
53
+ command: server /data --console-address ":9001"
54
+ volumes:
55
+ - {{projectName}}-miniodata:/data
56
+ healthcheck:
57
+ test: ["CMD", "mc", "ready", "local"]
58
+ interval: 3s
59
+ timeout: 2s
60
+ retries: 15
61
+
62
+ # One-shot: create the app bucket + make it publicly readable (avatars
63
+ # are served via the public /_voltro/storage/:id route).
64
+ createbuckets:
65
+ image: minio/mc
66
+ depends_on:
67
+ minio:
68
+ condition: service_healthy
69
+ entrypoint: >
70
+ /bin/sh -c "
71
+ mc alias set local http://minio:9000 minioadmin minioadmin &&
72
+ mc mb -p local/{{projectNameSnake}} &&
73
+ mc anonymous set download local/{{projectNameSnake}};
74
+ exit 0;
75
+ "
76
+
77
+ volumes:
78
+ {{projectName}}-mariadbdata:
79
+ {{projectName}}-miniodata:
@@ -0,0 +1,39 @@
1
+ # Voltro local env — helm baseline.
2
+ #
3
+ # Helm is your DEPLOY target, not your dev loop. This .env governs
4
+ # local dev (run via `pnpm dev` against a local Postgres).
5
+ #
6
+ # In-cluster env values come from the Helm chart's ConfigMap +
7
+ # Secret, NOT from this file. See charts/voltro-app/templates/.
8
+
9
+ # Local Postgres (your install — or a docker run sidecar — or any
10
+ # managed instance you can reach from your laptop).
11
+ DB_URL=postgres://app:app@localhost:5432/{{projectName}}
12
+
13
+ # Local session signing secret. The chart's Secret is the source of
14
+ # truth in the cluster.
15
+ VOLTRO_SESSION_SECRET=dev-only-secret-please-rotate-in-prod
16
+
17
+ # ─── Optional backends — ALL OFF by default; uncomment to activate ───────────
18
+ # The cache and the durable KV each run on a zero-infra default (in-process
19
+ # memory / your SQL store). Point either at a RESP server (Redis / Valkey /
20
+ # KeyDB / Dragonfly / Upstash) ONLY when you want cross-instance sharing.
21
+ # In-cluster these come from the chart's ConfigMap/Secret; this file governs
22
+ # local dev. Enablement is per concern — a bare REDIS_URL is NOT a master
23
+ # switch; each reads its own <NAME>_REDIS_URL first, then a shared REDIS_URL.
24
+
25
+ # @voltro/cache → Redis: a distributed query/result cache. `voltro add redis`
26
+ # wires this for you (flips app.config `cache: 'redis'` + adds the infra).
27
+ # CACHE_BACKEND=redis
28
+ # CACHE_REDIS_URL=redis://localhost:6379
29
+
30
+ # @voltro/kv → Redis: durable `ctx.kv`. Default backend is `database`
31
+ # (durable, shared across replicas, survives restarts) — leave it unless you
32
+ # specifically want KV on Redis. If you do, use a PERSISTENT redis (AOF/RDB),
33
+ # NOT an ephemeral cache-only one: an eviction/restart is data loss for
34
+ # durable KV. See docs → Caching → Key-value backends.
35
+ # KV_BACKEND=redis
36
+ # KV_REDIS_URL=redis://localhost:6379
37
+
38
+ # One server for everything, instead of the per-concern URLs above:
39
+ # REDIS_URL=redis://localhost:6379
@@ -0,0 +1,98 @@
1
+ # Helm baseline
2
+
3
+ Kubernetes-first deploy via a Helm chart at `charts/voltro-app/`.
4
+ Per-env overlay values for dev / staging / prod. Local dev still uses
5
+ native pnpm or docker-compose — Helm is for deploy, not the dev loop.
6
+
7
+ ## Layout
8
+
9
+ ```
10
+ .
11
+ ├── charts/
12
+ │ └── voltro-app/
13
+ │ ├── Chart.yaml
14
+ │ ├── values.yaml # defaults
15
+ │ ├── values-dev.yaml # dev cluster overrides
16
+ │ ├── values-staging.yaml # staging overrides
17
+ │ ├── values-prod.yaml # prod overrides
18
+ │ ├── .helmignore
19
+ │ └── templates/
20
+ │ ├── _helpers.tpl
21
+ │ ├── deployment-api.yaml
22
+ │ ├── deployment-web.yaml
23
+ │ ├── service-api.yaml
24
+ │ ├── service-web.yaml
25
+ │ ├── ingress.yaml
26
+ │ ├── configmap.yaml
27
+ │ ├── secret.yaml
28
+ │ ├── postgres-statefulset.yaml
29
+ │ └── postgres-service.yaml
30
+ └── deploy/README.md
31
+ ```
32
+
33
+ ## Common flows
34
+
35
+ ### Local dev
36
+
37
+ You don't run Helm for local dev. Either:
38
+ - `pnpm dev` (native, fastest) + your own local Postgres, OR
39
+ - Add the **compose** baseline back temporarily for full-docker dev:
40
+ `voltro baseline set compose` (you can then add helm back; baselines
41
+ aren't mutually exclusive at the file level, only one is "active"
42
+ for tracking purposes).
43
+
44
+ ### Cluster dev (kind / minikube / k3d)
45
+
46
+ ```sh
47
+ kind create cluster --name {{projectName}}-dev
48
+ pnpm helm:lint
49
+ pnpm helm:install:dev
50
+ kubectl -n {{projectName}}-dev get pods
51
+ kubectl -n {{projectName}}-dev port-forward svc/{{projectName}}-web 5173:5173
52
+ ```
53
+
54
+ ### Staging / prod deploy
55
+
56
+ ```sh
57
+ # Set kubeconfig to your prod cluster first
58
+ pnpm helm:install:prod
59
+ ```
60
+
61
+ GitOps-style (recommended): commit the chart + values, let ArgoCD or
62
+ Flux watch the repo and sync changes. The `pnpm helm:install:*` scripts
63
+ are CLI escape hatches, not the primary deploy path.
64
+
65
+ ## Secrets
66
+
67
+ `templates/secret.yaml` ships an EXAMPLE secret with `change-me`
68
+ placeholders. **Never commit real secrets**. Production options:
69
+
70
+ - **Sealed Secrets** (Bitnami) — encrypted-in-git
71
+ - **External Secrets Operator** — pulls from AWS Secrets Manager / Vault
72
+ - **SOPS** + helm-secrets plugin — encrypted YAML
73
+
74
+ Pick one for your cluster + replace the placeholder secret accordingly.
75
+
76
+ ## Postgres in the chart vs external
77
+
78
+ `values.yaml` defaults to `postgres.embedded: true` which provisions a
79
+ single-replica StatefulSet inside the cluster. Fine for dev, **not fine
80
+ for prod** — you want a managed Postgres (RDS / Cloud SQL / Crunchy
81
+ Operator). Switch by setting:
82
+
83
+ ```yaml
84
+ # values-prod.yaml
85
+ postgres:
86
+ embedded: false
87
+ externalUrl: postgres://... # from a Secret, not literal
88
+ ```
89
+
90
+ ## Switching baselines
91
+
92
+ `voltro baseline set compose` → restores docker-compose, keeps the
93
+ Helm chart on disk (you may want both: compose for local, helm for
94
+ deploy). `voltro baseline set bare` → strips everything containerized.
95
+
96
+ The "active" baseline is tracked in `.voltro/baseline.json` — it
97
+ controls what `voltro baseline status` reports and what `voltro
98
+ baseline sync` (future) regenerates.
@@ -0,0 +1,53 @@
1
+ {
2
+ "id": "helm",
3
+ "displayName": "Helm Chart",
4
+ "summary": "Kubernetes-first deploy via Helm chart. Per-env overlays (dev/staging/prod). Postgres (embedded StatefulSet) OR MariaDB (external, binlog CDC) via a db.dialect switch. Per-pod POD_NAME/POD_IP downward-API for CDC server_id + workflow-runner host; 4-replica prod; S3/MinIO storage.",
5
+ "tags": ["kubernetes", "helm", "k8s", "prod", "mariadb", "cdc", "storage"],
6
+ "recommendedFor": "k8s shops; GitOps setups (ArgoCD / Flux); multi-cluster prod deploys.",
7
+ "tradeoffs": {
8
+ "pros": [
9
+ "Standard k8s manifests — fits any CNCF cluster",
10
+ "Per-env overlays via values-{dev,staging,prod}.yaml",
11
+ "GitOps-friendly: tools like ArgoCD watch the chart and sync",
12
+ "Horizontal autoscaling, rolling updates, health probes built in"
13
+ ],
14
+ "cons": [
15
+ "Requires a running k8s cluster to test (kind/minikube/k3d for local)",
16
+ "Helm + k8s YAML is more verbose than docker-compose",
17
+ "Local dev STILL uses native pnpm / docker-compose — Helm is a deploy target, not a dev loop",
18
+ "Operator must know k8s (ingress, cert-manager, secrets management)"
19
+ ]
20
+ },
21
+ "files": [
22
+ ".env.example",
23
+ "charts/voltro-app/Chart.yaml",
24
+ "charts/voltro-app/values.yaml",
25
+ "charts/voltro-app/values-dev.yaml",
26
+ "charts/voltro-app/values-staging.yaml",
27
+ "charts/voltro-app/values-prod.yaml",
28
+ "charts/voltro-app/.helmignore",
29
+ "charts/voltro-app/templates/_helpers.tpl",
30
+ "charts/voltro-app/templates/deployment-api.yaml",
31
+ "charts/voltro-app/templates/deployment-web.yaml",
32
+ "charts/voltro-app/templates/service-api.yaml",
33
+ "charts/voltro-app/templates/service-web.yaml",
34
+ "charts/voltro-app/templates/ingress.yaml",
35
+ "charts/voltro-app/templates/configmap.yaml",
36
+ "charts/voltro-app/templates/secret.yaml",
37
+ "charts/voltro-app/templates/postgres-statefulset.yaml",
38
+ "charts/voltro-app/templates/postgres-service.yaml",
39
+ "deploy/README.md"
40
+ ],
41
+ "packageJsonScripts": {
42
+ "dev": "turbo run dev",
43
+ "build": "turbo run build",
44
+ "test": "turbo run test",
45
+ "typecheck": "turbo run typecheck",
46
+ "helm:lint": "helm lint charts/voltro-app",
47
+ "helm:template:dev": "helm template {{projectName}}-dev charts/voltro-app -f charts/voltro-app/values-dev.yaml",
48
+ "helm:install:dev": "helm upgrade --install {{projectName}}-dev charts/voltro-app -f charts/voltro-app/values-dev.yaml --namespace {{projectName}}-dev --create-namespace",
49
+ "helm:install:staging":"helm upgrade --install {{projectName}}-staging charts/voltro-app -f charts/voltro-app/values-staging.yaml --namespace {{projectName}}-staging --create-namespace",
50
+ "helm:install:prod": "helm upgrade --install {{projectName}}-prod charts/voltro-app -f charts/voltro-app/values-prod.yaml --namespace {{projectName}}-prod --create-namespace",
51
+ "helm:uninstall:dev": "helm uninstall {{projectName}}-dev --namespace {{projectName}}-dev"
52
+ }
53
+ }
@@ -0,0 +1,10 @@
1
+ # Helm ignore — files not packaged into the chart tarball.
2
+ .DS_Store
3
+ .git/
4
+ .gitignore
5
+ .idea/
6
+ .vscode/
7
+ *.swp
8
+ *.swo
9
+ *.tmpl.local
10
+ node_modules/
@@ -0,0 +1,10 @@
1
+ apiVersion: v2
2
+ name: {{projectName}}
3
+ description: Helm chart for {{projectName}} — a Voltro framework project.
4
+ type: application
5
+ version: 0.1.0
6
+ appVersion: "0.0.0"
7
+
8
+ # Maintainers — replace with your team contact.
9
+ maintainers:
10
+ - name: {{projectName}} team
@@ -0,0 +1,36 @@
1
+ {{/*
2
+ Helm chart helpers for the {{projectName}} chart.
3
+
4
+ Helm uses {{ ... }} syntax; the Voltro scaffolder only substitutes a
5
+ whitelisted set of tokens ({{projectName}} etc.) so other {{ ... }}
6
+ fragments pass through untouched into the installed chart.
7
+ */}}
8
+
9
+ {{- define "voltro-app.name" -}}
10
+ {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
11
+ {{- end -}}
12
+
13
+ {{- define "voltro-app.fullname" -}}
14
+ {{- if .Values.fullnameOverride -}}
15
+ {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
16
+ {{- else -}}
17
+ {{- $name := default .Chart.Name .Values.nameOverride -}}
18
+ {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
19
+ {{- end -}}
20
+ {{- end -}}
21
+
22
+ {{- define "voltro-app.labels" -}}
23
+ app.kubernetes.io/name: {{ include "voltro-app.name" . }}
24
+ app.kubernetes.io/instance: {{ .Release.Name }}
25
+ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
26
+ app.kubernetes.io/managed-by: {{ .Release.Service }}
27
+ helm.sh/chart: {{ printf "%s-%s" .Chart.Name .Chart.Version }}
28
+ {{- end -}}
29
+
30
+ {{- define "voltro-app.serviceAccountName" -}}
31
+ {{- if .Values.serviceAccount.create -}}
32
+ {{- default (include "voltro-app.fullname" .) .Values.serviceAccount.name -}}
33
+ {{- else -}}
34
+ {{- default "default" .Values.serviceAccount.name -}}
35
+ {{- end -}}
36
+ {{- end -}}
@@ -0,0 +1,13 @@
1
+ {{- if .Values.api.enabled -}}
2
+ apiVersion: v1
3
+ kind: ConfigMap
4
+ metadata:
5
+ name: {{ include "voltro-app.fullname" . }}-config
6
+ labels:
7
+ {{- include "voltro-app.labels" . | nindent 4 }}
8
+ data:
9
+ NODE_ENV: production
10
+ {{- range $key, $value := .Values.api.env }}
11
+ {{ $key }}: {{ $value | quote }}
12
+ {{- end }}
13
+ {{- end }}