create-qpq-app 0.1.5

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 (836) hide show
  1. package/README.md +33 -0
  2. package/lib/commonjs/bin/createQpqApp.d.ts +2 -0
  3. package/lib/commonjs/bin/createQpqApp.js +9 -0
  4. package/lib/commonjs/bin/createQpqApp.js.map +1 -0
  5. package/lib/commonjs/cli/runCreateQpqApp.d.ts +1 -0
  6. package/lib/commonjs/cli/runCreateQpqApp.js +75 -0
  7. package/lib/commonjs/cli/runCreateQpqApp.js.map +1 -0
  8. package/lib/commonjs/index.d.ts +3 -0
  9. package/lib/commonjs/index.js +20 -0
  10. package/lib/commonjs/index.js.map +1 -0
  11. package/lib/commonjs/lib/args.d.ts +2 -0
  12. package/lib/commonjs/lib/args.js +21 -0
  13. package/lib/commonjs/lib/args.js.map +1 -0
  14. package/lib/commonjs/lib/files.d.ts +5 -0
  15. package/lib/commonjs/lib/files.js +65 -0
  16. package/lib/commonjs/lib/files.js.map +1 -0
  17. package/lib/commonjs/lib/packageRoot.d.ts +2 -0
  18. package/lib/commonjs/lib/packageRoot.js +26 -0
  19. package/lib/commonjs/lib/packageRoot.js.map +1 -0
  20. package/lib/commonjs/lib/prompts.d.ts +1 -0
  21. package/lib/commonjs/lib/prompts.js +53 -0
  22. package/lib/commonjs/lib/prompts.js.map +1 -0
  23. package/lib/commonjs/lib/runCommand.d.ts +4 -0
  24. package/lib/commonjs/lib/runCommand.js +24 -0
  25. package/lib/commonjs/lib/runCommand.js.map +1 -0
  26. package/lib/commonjs/steps/001_preflight.d.ts +2 -0
  27. package/lib/commonjs/steps/001_preflight.js +36 -0
  28. package/lib/commonjs/steps/001_preflight.js.map +1 -0
  29. package/lib/commonjs/steps/002_copyTemplate.d.ts +2 -0
  30. package/lib/commonjs/steps/002_copyTemplate.js +29 -0
  31. package/lib/commonjs/steps/002_copyTemplate.js.map +1 -0
  32. package/lib/commonjs/steps/003_deleteDocusaurus.d.ts +2 -0
  33. package/lib/commonjs/steps/003_deleteDocusaurus.js +32 -0
  34. package/lib/commonjs/steps/003_deleteDocusaurus.js.map +1 -0
  35. package/lib/commonjs/steps/004_deleteQpqjsApp.d.ts +2 -0
  36. package/lib/commonjs/steps/004_deleteQpqjsApp.js +26 -0
  37. package/lib/commonjs/steps/004_deleteQpqjsApp.js.map +1 -0
  38. package/lib/commonjs/steps/005_applyAppIdentity.d.ts +2 -0
  39. package/lib/commonjs/steps/005_applyAppIdentity.js +51 -0
  40. package/lib/commonjs/steps/005_applyAppIdentity.js.map +1 -0
  41. package/lib/commonjs/steps/006_applyDomain.d.ts +2 -0
  42. package/lib/commonjs/steps/006_applyDomain.js +31 -0
  43. package/lib/commonjs/steps/006_applyDomain.js.map +1 -0
  44. package/lib/commonjs/steps/007_pinRegistryVersions.d.ts +2 -0
  45. package/lib/commonjs/steps/007_pinRegistryVersions.js +37 -0
  46. package/lib/commonjs/steps/007_pinRegistryVersions.js.map +1 -0
  47. package/lib/commonjs/steps/008_transpileToJavaScript.d.ts +2 -0
  48. package/lib/commonjs/steps/008_transpileToJavaScript.js +24 -0
  49. package/lib/commonjs/steps/008_transpileToJavaScript.js.map +1 -0
  50. package/lib/commonjs/steps/009_restoreGitignore.d.ts +2 -0
  51. package/lib/commonjs/steps/009_restoreGitignore.js +31 -0
  52. package/lib/commonjs/steps/009_restoreGitignore.js.map +1 -0
  53. package/lib/commonjs/steps/010_gitInit.d.ts +2 -0
  54. package/lib/commonjs/steps/010_gitInit.js +30 -0
  55. package/lib/commonjs/steps/010_gitInit.js.map +1 -0
  56. package/lib/commonjs/steps/011_npmInstall.d.ts +2 -0
  57. package/lib/commonjs/steps/011_npmInstall.js +21 -0
  58. package/lib/commonjs/steps/011_npmInstall.js.map +1 -0
  59. package/lib/commonjs/steps/012_buildWorkspaces.d.ts +2 -0
  60. package/lib/commonjs/steps/012_buildWorkspaces.js +24 -0
  61. package/lib/commonjs/steps/012_buildWorkspaces.js.map +1 -0
  62. package/lib/commonjs/steps/013_printNextSteps.d.ts +2 -0
  63. package/lib/commonjs/steps/013_printNextSteps.js +33 -0
  64. package/lib/commonjs/steps/013_printNextSteps.js.map +1 -0
  65. package/lib/commonjs/steps/index.d.ts +16 -0
  66. package/lib/commonjs/steps/index.js +48 -0
  67. package/lib/commonjs/steps/index.js.map +1 -0
  68. package/lib/commonjs/types.d.ts +22 -0
  69. package/lib/commonjs/types.js +9 -0
  70. package/lib/commonjs/types.js.map +1 -0
  71. package/lib/esm/bin/createQpqApp.d.ts +2 -0
  72. package/lib/esm/bin/createQpqApp.js +7 -0
  73. package/lib/esm/bin/createQpqApp.js.map +1 -0
  74. package/lib/esm/cli/runCreateQpqApp.d.ts +1 -0
  75. package/lib/esm/cli/runCreateQpqApp.js +57 -0
  76. package/lib/esm/cli/runCreateQpqApp.js.map +1 -0
  77. package/lib/esm/index.d.ts +3 -0
  78. package/lib/esm/index.js +4 -0
  79. package/lib/esm/index.js.map +1 -0
  80. package/lib/esm/lib/args.d.ts +2 -0
  81. package/lib/esm/lib/args.js +16 -0
  82. package/lib/esm/lib/args.js.map +1 -0
  83. package/lib/esm/lib/files.d.ts +5 -0
  84. package/lib/esm/lib/files.js +54 -0
  85. package/lib/esm/lib/files.js.map +1 -0
  86. package/lib/esm/lib/packageRoot.d.ts +2 -0
  87. package/lib/esm/lib/packageRoot.js +18 -0
  88. package/lib/esm/lib/packageRoot.js.map +1 -0
  89. package/lib/esm/lib/prompts.d.ts +1 -0
  90. package/lib/esm/lib/prompts.js +7 -0
  91. package/lib/esm/lib/prompts.js.map +1 -0
  92. package/lib/esm/lib/runCommand.d.ts +4 -0
  93. package/lib/esm/lib/runCommand.js +19 -0
  94. package/lib/esm/lib/runCommand.js.map +1 -0
  95. package/lib/esm/steps/001_preflight.d.ts +2 -0
  96. package/lib/esm/steps/001_preflight.js +21 -0
  97. package/lib/esm/steps/001_preflight.js.map +1 -0
  98. package/lib/esm/steps/002_copyTemplate.d.ts +2 -0
  99. package/lib/esm/steps/002_copyTemplate.js +14 -0
  100. package/lib/esm/steps/002_copyTemplate.js.map +1 -0
  101. package/lib/esm/steps/003_deleteDocusaurus.d.ts +2 -0
  102. package/lib/esm/steps/003_deleteDocusaurus.js +16 -0
  103. package/lib/esm/steps/003_deleteDocusaurus.js.map +1 -0
  104. package/lib/esm/steps/004_deleteQpqjsApp.d.ts +2 -0
  105. package/lib/esm/steps/004_deleteQpqjsApp.js +11 -0
  106. package/lib/esm/steps/004_deleteQpqjsApp.js.map +1 -0
  107. package/lib/esm/steps/005_applyAppIdentity.d.ts +2 -0
  108. package/lib/esm/steps/005_applyAppIdentity.js +36 -0
  109. package/lib/esm/steps/005_applyAppIdentity.js.map +1 -0
  110. package/lib/esm/steps/006_applyDomain.d.ts +2 -0
  111. package/lib/esm/steps/006_applyDomain.js +16 -0
  112. package/lib/esm/steps/006_applyDomain.js.map +1 -0
  113. package/lib/esm/steps/007_pinRegistryVersions.d.ts +2 -0
  114. package/lib/esm/steps/007_pinRegistryVersions.js +22 -0
  115. package/lib/esm/steps/007_pinRegistryVersions.js.map +1 -0
  116. package/lib/esm/steps/008_transpileToJavaScript.d.ts +2 -0
  117. package/lib/esm/steps/008_transpileToJavaScript.js +12 -0
  118. package/lib/esm/steps/008_transpileToJavaScript.js.map +1 -0
  119. package/lib/esm/steps/009_restoreGitignore.d.ts +2 -0
  120. package/lib/esm/steps/009_restoreGitignore.js +16 -0
  121. package/lib/esm/steps/009_restoreGitignore.js.map +1 -0
  122. package/lib/esm/steps/010_gitInit.d.ts +2 -0
  123. package/lib/esm/steps/010_gitInit.js +18 -0
  124. package/lib/esm/steps/010_gitInit.js.map +1 -0
  125. package/lib/esm/steps/011_npmInstall.d.ts +2 -0
  126. package/lib/esm/steps/011_npmInstall.js +9 -0
  127. package/lib/esm/steps/011_npmInstall.js.map +1 -0
  128. package/lib/esm/steps/012_buildWorkspaces.d.ts +2 -0
  129. package/lib/esm/steps/012_buildWorkspaces.js +12 -0
  130. package/lib/esm/steps/012_buildWorkspaces.js.map +1 -0
  131. package/lib/esm/steps/013_printNextSteps.d.ts +2 -0
  132. package/lib/esm/steps/013_printNextSteps.js +21 -0
  133. package/lib/esm/steps/013_printNextSteps.js.map +1 -0
  134. package/lib/esm/steps/index.d.ts +16 -0
  135. package/lib/esm/steps/index.js +33 -0
  136. package/lib/esm/steps/index.js.map +1 -0
  137. package/lib/esm/types.d.ts +22 -0
  138. package/lib/esm/types.js +6 -0
  139. package/lib/esm/types.js.map +1 -0
  140. package/package.json +57 -0
  141. package/template/.nvmrc +1 -0
  142. package/template/.prettierignore +4 -0
  143. package/template/.prettierrc +4 -0
  144. package/template/.vscode/extensions.json +3 -0
  145. package/template/.vscode/settings.json +14 -0
  146. package/template/README.md +150 -0
  147. package/template/apps/qpqjs/account.qpq.ts +39 -0
  148. package/template/apps/qpqjs/bootstrap.qpq.ts +36 -0
  149. package/template/apps/qpqjs/deploy.config.json +24 -0
  150. package/template/apps/qpqjs/packages/config/package.json +22 -0
  151. package/template/apps/qpqjs/packages/config/src/index.ts +2 -0
  152. package/template/apps/qpqjs/packages/config/tsconfig.json +18 -0
  153. package/template/apps/qpqjs/packages/config/tsconfig.lib.json +19 -0
  154. package/template/apps/qpqjs/packages/constants/package.json +22 -0
  155. package/template/apps/qpqjs/packages/constants/src/QpqjsServiceEnum.ts +11 -0
  156. package/template/apps/qpqjs/packages/constants/src/domain.ts +1 -0
  157. package/template/apps/qpqjs/packages/constants/src/index.ts +3 -0
  158. package/template/apps/qpqjs/packages/constants/src/userDirectory.ts +3 -0
  159. package/template/apps/qpqjs/packages/constants/tsconfig.json +18 -0
  160. package/template/apps/qpqjs/packages/constants/tsconfig.lib.json +19 -0
  161. package/template/apps/qpqjs/packages/service-utils/package.json +24 -0
  162. package/template/apps/qpqjs/packages/service-utils/src/defineQpqjsService.ts +148 -0
  163. package/template/apps/qpqjs/packages/service-utils/src/index.ts +1 -0
  164. package/template/apps/qpqjs/packages/service-utils/tsconfig.json +18 -0
  165. package/template/apps/qpqjs/packages/service-utils/tsconfig.lib.json +19 -0
  166. package/template/apps/qpqjs/services/admin/config/package.json +22 -0
  167. package/template/apps/qpqjs/services/admin/config/src/index.ts +2 -0
  168. package/template/apps/qpqjs/services/admin/config/tsconfig.json +18 -0
  169. package/template/apps/qpqjs/services/admin/config/tsconfig.lib.json +19 -0
  170. package/template/apps/qpqjs/services/admin/models/package.json +22 -0
  171. package/template/apps/qpqjs/services/admin/models/src/index.ts +2 -0
  172. package/template/apps/qpqjs/services/admin/models/tsconfig.json +18 -0
  173. package/template/apps/qpqjs/services/admin/models/tsconfig.lib.json +19 -0
  174. package/template/apps/qpqjs/services/admin/service/package.json +9 -0
  175. package/template/apps/qpqjs/services/admin/service/src/infrastructure.ts +15 -0
  176. package/template/apps/qpqjs/services/admin/service/tsconfig.app.json +17 -0
  177. package/template/apps/qpqjs/services/admin/service/tsconfig.json +8 -0
  178. package/template/apps/qpqjs/services/admin/service-utils/package.json +22 -0
  179. package/template/apps/qpqjs/services/admin/service-utils/src/index.ts +2 -0
  180. package/template/apps/qpqjs/services/admin/service-utils/tsconfig.json +18 -0
  181. package/template/apps/qpqjs/services/admin/service-utils/tsconfig.lib.json +19 -0
  182. package/template/apps/qpqjs/services/admin/shared-logic/package.json +22 -0
  183. package/template/apps/qpqjs/services/admin/shared-logic/src/index.ts +2 -0
  184. package/template/apps/qpqjs/services/admin/shared-logic/tsconfig.json +18 -0
  185. package/template/apps/qpqjs/services/admin/shared-logic/tsconfig.lib.json +19 -0
  186. package/template/apps/qpqjs/services/admin/views/package.json +8 -0
  187. package/template/apps/qpqjs/services/admin/views/src/app/app.tsx +39 -0
  188. package/template/apps/qpqjs/services/admin/views/src/assets/.gitkeep +0 -0
  189. package/template/apps/qpqjs/services/admin/views/src/bootstrap.tsx +14 -0
  190. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/AdminGrid.tsx +80 -0
  191. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/index.ts +1 -0
  192. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/styles.ts +41 -0
  193. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/types/AdminGridProps.ts +6 -0
  194. package/template/apps/qpqjs/services/admin/views/src/components/index.ts +1 -0
  195. package/template/apps/qpqjs/services/admin/views/src/favicon.ico +0 -0
  196. package/template/apps/qpqjs/services/admin/views/src/hooks/index.ts +1 -0
  197. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/index.ts +1 -0
  198. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/logic/getBaseUrlFromAdminWebHost.ts +7 -0
  199. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/types/AdminNetworkRequestPayload.ts +10 -0
  200. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/useAdminNetworkRequest.ts +18 -0
  201. package/template/apps/qpqjs/services/admin/views/src/index.html +23 -0
  202. package/template/apps/qpqjs/services/admin/views/src/index.ts +2 -0
  203. package/template/apps/qpqjs/services/admin/views/src/main.ts +1 -0
  204. package/template/apps/qpqjs/services/admin/views/tsconfig.app.json +20 -0
  205. package/template/apps/qpqjs/services/admin/views/tsconfig.json +18 -0
  206. package/template/apps/qpqjs/services/admin/x-logic/package.json +22 -0
  207. package/template/apps/qpqjs/services/admin/x-logic/src/index.ts +2 -0
  208. package/template/apps/qpqjs/services/admin/x-logic/tsconfig.json +18 -0
  209. package/template/apps/qpqjs/services/admin/x-logic/tsconfig.lib.json +19 -0
  210. package/template/apps/qpqjs/services/admin/x-models/package.json +22 -0
  211. package/template/apps/qpqjs/services/admin/x-models/src/index.ts +2 -0
  212. package/template/apps/qpqjs/services/admin/x-models/tsconfig.json +18 -0
  213. package/template/apps/qpqjs/services/admin/x-models/tsconfig.lib.json +19 -0
  214. package/template/apps/qpqjs/services/design/config/package.json +22 -0
  215. package/template/apps/qpqjs/services/design/config/src/index.ts +2 -0
  216. package/template/apps/qpqjs/services/design/config/tsconfig.json +18 -0
  217. package/template/apps/qpqjs/services/design/config/tsconfig.lib.json +19 -0
  218. package/template/apps/qpqjs/services/design/models/package.json +22 -0
  219. package/template/apps/qpqjs/services/design/models/src/index.ts +2 -0
  220. package/template/apps/qpqjs/services/design/models/tsconfig.json +18 -0
  221. package/template/apps/qpqjs/services/design/models/tsconfig.lib.json +19 -0
  222. package/template/apps/qpqjs/services/design/service/package.json +9 -0
  223. package/template/apps/qpqjs/services/design/service/src/infrastructure.ts +15 -0
  224. package/template/apps/qpqjs/services/design/service/tsconfig.app.json +17 -0
  225. package/template/apps/qpqjs/services/design/service/tsconfig.json +8 -0
  226. package/template/apps/qpqjs/services/design/service-utils/package.json +22 -0
  227. package/template/apps/qpqjs/services/design/service-utils/src/index.ts +2 -0
  228. package/template/apps/qpqjs/services/design/service-utils/tsconfig.json +18 -0
  229. package/template/apps/qpqjs/services/design/service-utils/tsconfig.lib.json +19 -0
  230. package/template/apps/qpqjs/services/design/shared-logic/package.json +22 -0
  231. package/template/apps/qpqjs/services/design/shared-logic/src/index.ts +2 -0
  232. package/template/apps/qpqjs/services/design/shared-logic/tsconfig.json +18 -0
  233. package/template/apps/qpqjs/services/design/shared-logic/tsconfig.lib.json +19 -0
  234. package/template/apps/qpqjs/services/design/views/package.json +8 -0
  235. package/template/apps/qpqjs/services/design/views/src/app.tsx +7 -0
  236. package/template/apps/qpqjs/services/design/views/src/bootstrap.tsx +14 -0
  237. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/LandingPage.tsx +20 -0
  238. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/CodeWindow.tsx +77 -0
  239. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Features.tsx +83 -0
  240. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Footer.tsx +45 -0
  241. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Hero.tsx +60 -0
  242. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/InstallChip.tsx +27 -0
  243. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/NavBar.tsx +72 -0
  244. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Packages.tsx +63 -0
  245. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Pipeline.tsx +58 -0
  246. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/TronGrid.tsx +587 -0
  247. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/YieldLoop.tsx +361 -0
  248. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/landing.css +1170 -0
  249. package/template/apps/qpqjs/services/design/views/src/components/WelcomeScreen/WelcomeScreen.tsx +85 -0
  250. package/template/apps/qpqjs/services/design/views/src/index.html +12 -0
  251. package/template/apps/qpqjs/services/design/views/src/index.ts +1 -0
  252. package/template/apps/qpqjs/services/design/views/src/main.ts +1 -0
  253. package/template/apps/qpqjs/services/design/views/tsconfig.app.json +20 -0
  254. package/template/apps/qpqjs/services/design/views/tsconfig.json +18 -0
  255. package/template/apps/qpqjs/services/design/x-logic/package.json +22 -0
  256. package/template/apps/qpqjs/services/design/x-logic/src/index.ts +2 -0
  257. package/template/apps/qpqjs/services/design/x-logic/tsconfig.json +18 -0
  258. package/template/apps/qpqjs/services/design/x-logic/tsconfig.lib.json +19 -0
  259. package/template/apps/qpqjs/services/design/x-models/package.json +22 -0
  260. package/template/apps/qpqjs/services/design/x-models/src/index.ts +2 -0
  261. package/template/apps/qpqjs/services/design/x-models/tsconfig.json +18 -0
  262. package/template/apps/qpqjs/services/design/x-models/tsconfig.lib.json +19 -0
  263. package/template/apps/qpqjs/services/shell/config/package.json +22 -0
  264. package/template/apps/qpqjs/services/shell/config/src/index.ts +2 -0
  265. package/template/apps/qpqjs/services/shell/config/tsconfig.json +18 -0
  266. package/template/apps/qpqjs/services/shell/config/tsconfig.lib.json +19 -0
  267. package/template/apps/qpqjs/services/shell/models/package.json +22 -0
  268. package/template/apps/qpqjs/services/shell/models/src/index.ts +2 -0
  269. package/template/apps/qpqjs/services/shell/models/tsconfig.json +18 -0
  270. package/template/apps/qpqjs/services/shell/models/tsconfig.lib.json +19 -0
  271. package/template/apps/qpqjs/services/shell/service/package.json +9 -0
  272. package/template/apps/qpqjs/services/shell/service/src/entry/controller/health/health.ts +21 -0
  273. package/template/apps/qpqjs/services/shell/service/src/entry/controller/health/index.ts +1 -0
  274. package/template/apps/qpqjs/services/shell/service/src/entry/controller/index.ts +1 -0
  275. package/template/apps/qpqjs/services/shell/service/src/infrastructure.ts +91 -0
  276. package/template/apps/qpqjs/services/shell/service/tsconfig.app.json +17 -0
  277. package/template/apps/qpqjs/services/shell/service/tsconfig.json +8 -0
  278. package/template/apps/qpqjs/services/shell/service-utils/package.json +22 -0
  279. package/template/apps/qpqjs/services/shell/service-utils/src/index.ts +2 -0
  280. package/template/apps/qpqjs/services/shell/service-utils/tsconfig.json +18 -0
  281. package/template/apps/qpqjs/services/shell/service-utils/tsconfig.lib.json +19 -0
  282. package/template/apps/qpqjs/services/shell/shared-logic/package.json +22 -0
  283. package/template/apps/qpqjs/services/shell/shared-logic/src/index.ts +2 -0
  284. package/template/apps/qpqjs/services/shell/shared-logic/tsconfig.json +18 -0
  285. package/template/apps/qpqjs/services/shell/shared-logic/tsconfig.lib.json +19 -0
  286. package/template/apps/qpqjs/services/shell/views/package.json +8 -0
  287. package/template/apps/qpqjs/services/shell/views/src/app.tsx +6 -0
  288. package/template/apps/qpqjs/services/shell/views/src/bootstrap.tsx +14 -0
  289. package/template/apps/qpqjs/services/shell/views/src/index.html +25 -0
  290. package/template/apps/qpqjs/services/shell/views/src/index.ts +1 -0
  291. package/template/apps/qpqjs/services/shell/views/src/main.ts +1 -0
  292. package/template/apps/qpqjs/services/shell/views/tsconfig.app.json +20 -0
  293. package/template/apps/qpqjs/services/shell/views/tsconfig.json +18 -0
  294. package/template/apps/qpqjs/services/shell/x-logic/package.json +22 -0
  295. package/template/apps/qpqjs/services/shell/x-logic/src/index.ts +2 -0
  296. package/template/apps/qpqjs/services/shell/x-logic/tsconfig.json +18 -0
  297. package/template/apps/qpqjs/services/shell/x-logic/tsconfig.lib.json +19 -0
  298. package/template/apps/qpqjs/services/shell/x-models/package.json +22 -0
  299. package/template/apps/qpqjs/services/shell/x-models/src/index.ts +2 -0
  300. package/template/apps/qpqjs/services/shell/x-models/tsconfig.json +18 -0
  301. package/template/apps/qpqjs/services/shell/x-models/tsconfig.lib.json +19 -0
  302. package/template/apps/qpqjs/tsconfig.federated.json +13 -0
  303. package/template/apps/todo/deploy.config.json +12 -0
  304. package/template/apps/todo/packages/config/package.json +22 -0
  305. package/template/apps/todo/packages/config/src/index.ts +2 -0
  306. package/template/apps/todo/packages/config/tsconfig.json +18 -0
  307. package/template/apps/todo/packages/config/tsconfig.lib.json +19 -0
  308. package/template/apps/todo/packages/constants/package.json +22 -0
  309. package/template/apps/todo/packages/constants/src/TodoServiceEnum.ts +12 -0
  310. package/template/apps/todo/packages/constants/src/domain.ts +1 -0
  311. package/template/apps/todo/packages/constants/src/index.ts +3 -0
  312. package/template/apps/todo/packages/constants/src/userDirectory.ts +3 -0
  313. package/template/apps/todo/packages/constants/tsconfig.json +18 -0
  314. package/template/apps/todo/packages/constants/tsconfig.lib.json +19 -0
  315. package/template/apps/todo/packages/service-utils/package.json +24 -0
  316. package/template/apps/todo/packages/service-utils/src/defineTodoService.ts +128 -0
  317. package/template/apps/todo/packages/service-utils/src/index.ts +1 -0
  318. package/template/apps/todo/packages/service-utils/tsconfig.json +18 -0
  319. package/template/apps/todo/packages/service-utils/tsconfig.lib.json +19 -0
  320. package/template/apps/todo/services/admin/config/package.json +22 -0
  321. package/template/apps/todo/services/admin/config/src/index.ts +2 -0
  322. package/template/apps/todo/services/admin/config/tsconfig.json +18 -0
  323. package/template/apps/todo/services/admin/config/tsconfig.lib.json +19 -0
  324. package/template/apps/todo/services/admin/models/package.json +22 -0
  325. package/template/apps/todo/services/admin/models/src/index.ts +2 -0
  326. package/template/apps/todo/services/admin/models/tsconfig.json +18 -0
  327. package/template/apps/todo/services/admin/models/tsconfig.lib.json +19 -0
  328. package/template/apps/todo/services/admin/service/package.json +9 -0
  329. package/template/apps/todo/services/admin/service/src/infrastructure.ts +15 -0
  330. package/template/apps/todo/services/admin/service/tsconfig.app.json +17 -0
  331. package/template/apps/todo/services/admin/service/tsconfig.json +8 -0
  332. package/template/apps/todo/services/admin/service-utils/package.json +22 -0
  333. package/template/apps/todo/services/admin/service-utils/src/index.ts +2 -0
  334. package/template/apps/todo/services/admin/service-utils/tsconfig.json +18 -0
  335. package/template/apps/todo/services/admin/service-utils/tsconfig.lib.json +19 -0
  336. package/template/apps/todo/services/admin/shared-logic/package.json +22 -0
  337. package/template/apps/todo/services/admin/shared-logic/src/index.ts +2 -0
  338. package/template/apps/todo/services/admin/shared-logic/tsconfig.json +18 -0
  339. package/template/apps/todo/services/admin/shared-logic/tsconfig.lib.json +19 -0
  340. package/template/apps/todo/services/admin/views/package.json +8 -0
  341. package/template/apps/todo/services/admin/views/src/app/app.tsx +39 -0
  342. package/template/apps/todo/services/admin/views/src/assets/.gitkeep +0 -0
  343. package/template/apps/todo/services/admin/views/src/bootstrap.tsx +14 -0
  344. package/template/apps/todo/services/admin/views/src/components/AdminGrid/AdminGrid.tsx +80 -0
  345. package/template/apps/todo/services/admin/views/src/components/AdminGrid/index.ts +1 -0
  346. package/template/apps/todo/services/admin/views/src/components/AdminGrid/styles.ts +41 -0
  347. package/template/apps/todo/services/admin/views/src/components/AdminGrid/types/AdminGridProps.ts +6 -0
  348. package/template/apps/todo/services/admin/views/src/components/index.ts +1 -0
  349. package/template/apps/todo/services/admin/views/src/favicon.ico +0 -0
  350. package/template/apps/todo/services/admin/views/src/hooks/index.ts +1 -0
  351. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/index.ts +1 -0
  352. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/logic/getBaseUrlFromAdminWebHost.ts +7 -0
  353. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/types/AdminNetworkRequestPayload.ts +10 -0
  354. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/useAdminNetworkRequest.ts +18 -0
  355. package/template/apps/todo/services/admin/views/src/index.html +23 -0
  356. package/template/apps/todo/services/admin/views/src/index.ts +2 -0
  357. package/template/apps/todo/services/admin/views/src/main.ts +1 -0
  358. package/template/apps/todo/services/admin/views/tsconfig.app.json +20 -0
  359. package/template/apps/todo/services/admin/views/tsconfig.json +18 -0
  360. package/template/apps/todo/services/admin/x-logic/package.json +22 -0
  361. package/template/apps/todo/services/admin/x-logic/src/index.ts +2 -0
  362. package/template/apps/todo/services/admin/x-logic/tsconfig.json +18 -0
  363. package/template/apps/todo/services/admin/x-logic/tsconfig.lib.json +19 -0
  364. package/template/apps/todo/services/admin/x-models/package.json +22 -0
  365. package/template/apps/todo/services/admin/x-models/src/index.ts +2 -0
  366. package/template/apps/todo/services/admin/x-models/tsconfig.json +18 -0
  367. package/template/apps/todo/services/admin/x-models/tsconfig.lib.json +19 -0
  368. package/template/apps/todo/services/auth/config/package.json +22 -0
  369. package/template/apps/todo/services/auth/config/src/index.ts +2 -0
  370. package/template/apps/todo/services/auth/config/tsconfig.json +18 -0
  371. package/template/apps/todo/services/auth/config/tsconfig.lib.json +19 -0
  372. package/template/apps/todo/services/auth/models/package.json +22 -0
  373. package/template/apps/todo/services/auth/models/src/index.ts +2 -0
  374. package/template/apps/todo/services/auth/models/tsconfig.json +18 -0
  375. package/template/apps/todo/services/auth/models/tsconfig.lib.json +19 -0
  376. package/template/apps/todo/services/auth/service/package.json +9 -0
  377. package/template/apps/todo/services/auth/service/src/infrastructure.ts +15 -0
  378. package/template/apps/todo/services/auth/service/tsconfig.app.json +17 -0
  379. package/template/apps/todo/services/auth/service/tsconfig.json +8 -0
  380. package/template/apps/todo/services/auth/service-utils/package.json +22 -0
  381. package/template/apps/todo/services/auth/service-utils/src/index.ts +2 -0
  382. package/template/apps/todo/services/auth/service-utils/tsconfig.json +18 -0
  383. package/template/apps/todo/services/auth/service-utils/tsconfig.lib.json +19 -0
  384. package/template/apps/todo/services/auth/shared-logic/package.json +22 -0
  385. package/template/apps/todo/services/auth/shared-logic/src/index.ts +2 -0
  386. package/template/apps/todo/services/auth/shared-logic/tsconfig.json +18 -0
  387. package/template/apps/todo/services/auth/shared-logic/tsconfig.lib.json +19 -0
  388. package/template/apps/todo/services/auth/x-logic/package.json +22 -0
  389. package/template/apps/todo/services/auth/x-logic/src/index.ts +2 -0
  390. package/template/apps/todo/services/auth/x-logic/tsconfig.json +18 -0
  391. package/template/apps/todo/services/auth/x-logic/tsconfig.lib.json +19 -0
  392. package/template/apps/todo/services/auth/x-models/package.json +22 -0
  393. package/template/apps/todo/services/auth/x-models/src/index.ts +2 -0
  394. package/template/apps/todo/services/auth/x-models/tsconfig.json +18 -0
  395. package/template/apps/todo/services/auth/x-models/tsconfig.lib.json +19 -0
  396. package/template/apps/todo/services/design/config/package.json +22 -0
  397. package/template/apps/todo/services/design/config/src/index.ts +2 -0
  398. package/template/apps/todo/services/design/config/tsconfig.json +18 -0
  399. package/template/apps/todo/services/design/config/tsconfig.lib.json +19 -0
  400. package/template/apps/todo/services/design/models/package.json +22 -0
  401. package/template/apps/todo/services/design/models/src/index.ts +2 -0
  402. package/template/apps/todo/services/design/models/tsconfig.json +18 -0
  403. package/template/apps/todo/services/design/models/tsconfig.lib.json +19 -0
  404. package/template/apps/todo/services/design/service/package.json +9 -0
  405. package/template/apps/todo/services/design/service/src/infrastructure.ts +15 -0
  406. package/template/apps/todo/services/design/service/tsconfig.app.json +17 -0
  407. package/template/apps/todo/services/design/service/tsconfig.json +8 -0
  408. package/template/apps/todo/services/design/service-utils/package.json +22 -0
  409. package/template/apps/todo/services/design/service-utils/src/index.ts +2 -0
  410. package/template/apps/todo/services/design/service-utils/tsconfig.json +18 -0
  411. package/template/apps/todo/services/design/service-utils/tsconfig.lib.json +19 -0
  412. package/template/apps/todo/services/design/shared-logic/package.json +22 -0
  413. package/template/apps/todo/services/design/shared-logic/src/index.ts +2 -0
  414. package/template/apps/todo/services/design/shared-logic/tsconfig.json +18 -0
  415. package/template/apps/todo/services/design/shared-logic/tsconfig.lib.json +19 -0
  416. package/template/apps/todo/services/design/views/package.json +8 -0
  417. package/template/apps/todo/services/design/views/src/app.tsx +7 -0
  418. package/template/apps/todo/services/design/views/src/bootstrap.tsx +14 -0
  419. package/template/apps/todo/services/design/views/src/components/WelcomeScreen/WelcomeScreen.tsx +85 -0
  420. package/template/apps/todo/services/design/views/src/index.html +12 -0
  421. package/template/apps/todo/services/design/views/src/index.ts +1 -0
  422. package/template/apps/todo/services/design/views/src/main.ts +1 -0
  423. package/template/apps/todo/services/design/views/tsconfig.app.json +20 -0
  424. package/template/apps/todo/services/design/views/tsconfig.json +18 -0
  425. package/template/apps/todo/services/design/x-logic/package.json +22 -0
  426. package/template/apps/todo/services/design/x-logic/src/index.ts +2 -0
  427. package/template/apps/todo/services/design/x-logic/tsconfig.json +18 -0
  428. package/template/apps/todo/services/design/x-logic/tsconfig.lib.json +19 -0
  429. package/template/apps/todo/services/design/x-models/package.json +22 -0
  430. package/template/apps/todo/services/design/x-models/src/index.ts +2 -0
  431. package/template/apps/todo/services/design/x-models/tsconfig.json +18 -0
  432. package/template/apps/todo/services/design/x-models/tsconfig.lib.json +19 -0
  433. package/template/apps/todo/services/shell/config/package.json +22 -0
  434. package/template/apps/todo/services/shell/config/src/index.ts +2 -0
  435. package/template/apps/todo/services/shell/config/tsconfig.json +18 -0
  436. package/template/apps/todo/services/shell/config/tsconfig.lib.json +19 -0
  437. package/template/apps/todo/services/shell/models/package.json +22 -0
  438. package/template/apps/todo/services/shell/models/src/index.ts +2 -0
  439. package/template/apps/todo/services/shell/models/tsconfig.json +18 -0
  440. package/template/apps/todo/services/shell/models/tsconfig.lib.json +19 -0
  441. package/template/apps/todo/services/shell/service/package.json +9 -0
  442. package/template/apps/todo/services/shell/service/src/entry/controller/health/health.ts +21 -0
  443. package/template/apps/todo/services/shell/service/src/entry/controller/health/index.ts +1 -0
  444. package/template/apps/todo/services/shell/service/src/entry/controller/index.ts +1 -0
  445. package/template/apps/todo/services/shell/service/src/infrastructure.ts +75 -0
  446. package/template/apps/todo/services/shell/service/tsconfig.app.json +17 -0
  447. package/template/apps/todo/services/shell/service/tsconfig.json +8 -0
  448. package/template/apps/todo/services/shell/service-utils/package.json +22 -0
  449. package/template/apps/todo/services/shell/service-utils/src/index.ts +2 -0
  450. package/template/apps/todo/services/shell/service-utils/tsconfig.json +18 -0
  451. package/template/apps/todo/services/shell/service-utils/tsconfig.lib.json +19 -0
  452. package/template/apps/todo/services/shell/shared-logic/package.json +22 -0
  453. package/template/apps/todo/services/shell/shared-logic/src/index.ts +2 -0
  454. package/template/apps/todo/services/shell/shared-logic/tsconfig.json +18 -0
  455. package/template/apps/todo/services/shell/shared-logic/tsconfig.lib.json +19 -0
  456. package/template/apps/todo/services/shell/views/package.json +8 -0
  457. package/template/apps/todo/services/shell/views/src/app.tsx +6 -0
  458. package/template/apps/todo/services/shell/views/src/bootstrap.tsx +14 -0
  459. package/template/apps/todo/services/shell/views/src/index.html +19 -0
  460. package/template/apps/todo/services/shell/views/src/index.ts +1 -0
  461. package/template/apps/todo/services/shell/views/src/main.ts +1 -0
  462. package/template/apps/todo/services/shell/views/tsconfig.app.json +20 -0
  463. package/template/apps/todo/services/shell/views/tsconfig.json +18 -0
  464. package/template/apps/todo/services/shell/x-logic/package.json +22 -0
  465. package/template/apps/todo/services/shell/x-logic/src/index.ts +2 -0
  466. package/template/apps/todo/services/shell/x-logic/tsconfig.json +18 -0
  467. package/template/apps/todo/services/shell/x-logic/tsconfig.lib.json +19 -0
  468. package/template/apps/todo/services/shell/x-models/package.json +22 -0
  469. package/template/apps/todo/services/shell/x-models/src/index.ts +2 -0
  470. package/template/apps/todo/services/shell/x-models/tsconfig.json +18 -0
  471. package/template/apps/todo/services/shell/x-models/tsconfig.lib.json +19 -0
  472. package/template/apps/todo/services/todo/config/package.json +22 -0
  473. package/template/apps/todo/services/todo/config/src/index.ts +2 -0
  474. package/template/apps/todo/services/todo/config/tsconfig.json +18 -0
  475. package/template/apps/todo/services/todo/config/tsconfig.lib.json +19 -0
  476. package/template/apps/todo/services/todo/models/package.json +22 -0
  477. package/template/apps/todo/services/todo/models/src/index.ts +2 -0
  478. package/template/apps/todo/services/todo/models/tsconfig.json +18 -0
  479. package/template/apps/todo/services/todo/models/tsconfig.lib.json +19 -0
  480. package/template/apps/todo/services/todo/service/package.json +9 -0
  481. package/template/apps/todo/services/todo/service/src/infrastructure.ts +15 -0
  482. package/template/apps/todo/services/todo/service/tsconfig.app.json +17 -0
  483. package/template/apps/todo/services/todo/service/tsconfig.json +8 -0
  484. package/template/apps/todo/services/todo/service-utils/package.json +22 -0
  485. package/template/apps/todo/services/todo/service-utils/src/index.ts +2 -0
  486. package/template/apps/todo/services/todo/service-utils/tsconfig.json +18 -0
  487. package/template/apps/todo/services/todo/service-utils/tsconfig.lib.json +19 -0
  488. package/template/apps/todo/services/todo/shared-logic/package.json +22 -0
  489. package/template/apps/todo/services/todo/shared-logic/src/index.ts +2 -0
  490. package/template/apps/todo/services/todo/shared-logic/tsconfig.json +18 -0
  491. package/template/apps/todo/services/todo/shared-logic/tsconfig.lib.json +19 -0
  492. package/template/apps/todo/services/todo/views/package.json +8 -0
  493. package/template/apps/todo/services/todo/views/src/app.tsx +7 -0
  494. package/template/apps/todo/services/todo/views/src/bootstrap.tsx +14 -0
  495. package/template/apps/todo/services/todo/views/src/components/TodoList/TodoList.tsx +132 -0
  496. package/template/apps/todo/services/todo/views/src/index.html +11 -0
  497. package/template/apps/todo/services/todo/views/src/index.ts +1 -0
  498. package/template/apps/todo/services/todo/views/src/main.ts +1 -0
  499. package/template/apps/todo/services/todo/views/tsconfig.app.json +20 -0
  500. package/template/apps/todo/services/todo/views/tsconfig.json +18 -0
  501. package/template/apps/todo/services/todo/x-logic/package.json +22 -0
  502. package/template/apps/todo/services/todo/x-logic/src/index.ts +2 -0
  503. package/template/apps/todo/services/todo/x-logic/tsconfig.json +18 -0
  504. package/template/apps/todo/services/todo/x-logic/tsconfig.lib.json +19 -0
  505. package/template/apps/todo/services/todo/x-models/package.json +22 -0
  506. package/template/apps/todo/services/todo/x-models/src/index.ts +2 -0
  507. package/template/apps/todo/services/todo/x-models/tsconfig.json +18 -0
  508. package/template/apps/todo/services/todo/x-models/tsconfig.lib.json +19 -0
  509. package/template/apps/todo/tsconfig.federated.json +13 -0
  510. package/template/docusaurus/DOCUMENTATION_CHECKLIST.md +499 -0
  511. package/template/docusaurus/README.md +41 -0
  512. package/template/docusaurus/blog/2019-05-28-first-blog-post.md +12 -0
  513. package/template/docusaurus/blog/2019-05-29-long-blog-post.md +44 -0
  514. package/template/docusaurus/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  515. package/template/docusaurus/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  516. package/template/docusaurus/blog/2021-08-26-welcome/index.md +29 -0
  517. package/template/docusaurus/blog/authors.yml +25 -0
  518. package/template/docusaurus/blog/tags.yml +19 -0
  519. package/template/docusaurus/docs/actions/core/_category_.json +8 -0
  520. package/template/docusaurus/docs/actions/core/ai/_category_.json +7 -0
  521. package/template/docusaurus/docs/actions/core/ai/ask-ai-prompt-stream.md +96 -0
  522. package/template/docusaurus/docs/actions/core/ai/ask-ai-prompt.md +121 -0
  523. package/template/docusaurus/docs/actions/core/array/_category_.json +7 -0
  524. package/template/docusaurus/docs/actions/core/array/ask-array-some.md +54 -0
  525. package/template/docusaurus/docs/actions/core/array/ask-filter.md +54 -0
  526. package/template/docusaurus/docs/actions/core/array/ask-flat-map-parallel-batch.md +68 -0
  527. package/template/docusaurus/docs/actions/core/array/ask-flat-map.md +56 -0
  528. package/template/docusaurus/docs/actions/core/array/ask-map-parallel-batch.md +67 -0
  529. package/template/docusaurus/docs/actions/core/array/ask-map-parallel.md +57 -0
  530. package/template/docusaurus/docs/actions/core/array/ask-map.md +58 -0
  531. package/template/docusaurus/docs/actions/core/array/ask-reduce.md +57 -0
  532. package/template/docusaurus/docs/actions/core/binary-data/_category_.json +7 -0
  533. package/template/docusaurus/docs/actions/core/binary-data/ask-create-text-qpq-binary-data.md +86 -0
  534. package/template/docusaurus/docs/actions/core/claude-ai/_category_.json +7 -0
  535. package/template/docusaurus/docs/actions/core/claude-ai/ask-claude-ai-messages-api.md +70 -0
  536. package/template/docusaurus/docs/actions/core/config/_category_.json +7 -0
  537. package/template/docusaurus/docs/actions/core/config/ask-config-get-application-info.md +42 -0
  538. package/template/docusaurus/docs/actions/core/config/ask-config-get-global.md +52 -0
  539. package/template/docusaurus/docs/actions/core/config/ask-config-get-parameter.md +52 -0
  540. package/template/docusaurus/docs/actions/core/config/ask-config-get-parameters.md +49 -0
  541. package/template/docusaurus/docs/actions/core/config/ask-config-get-secret.md +54 -0
  542. package/template/docusaurus/docs/actions/core/config/ask-config-list-parameters.md +46 -0
  543. package/template/docusaurus/docs/actions/core/config/ask-config-set-parameter.md +51 -0
  544. package/template/docusaurus/docs/actions/core/config/ask-get-application-version.md +39 -0
  545. package/template/docusaurus/docs/actions/core/context/_category_.json +7 -0
  546. package/template/docusaurus/docs/actions/core/context/ask-context-provide-value.md +78 -0
  547. package/template/docusaurus/docs/actions/core/context/ask-context-read.md +96 -0
  548. package/template/docusaurus/docs/actions/core/date/_category_.json +7 -0
  549. package/template/docusaurus/docs/actions/core/date/ask-date-now.md +50 -0
  550. package/template/docusaurus/docs/actions/core/date/ask-get-current-epoch-ms.md +45 -0
  551. package/template/docusaurus/docs/actions/core/date/ask-get-current-epoch.md +45 -0
  552. package/template/docusaurus/docs/actions/core/date/ask-get-epoch-start-time.md +40 -0
  553. package/template/docusaurus/docs/actions/core/date/ask-seconds-elapsed-from.md +52 -0
  554. package/template/docusaurus/docs/actions/core/date/date-time-math.md +112 -0
  555. package/template/docusaurus/docs/actions/core/error/_category_.json +7 -0
  556. package/template/docusaurus/docs/actions/core/error/ask-throw-error.md +115 -0
  557. package/template/docusaurus/docs/actions/core/event/_category_.json +7 -0
  558. package/template/docusaurus/docs/actions/core/event/ask-process-event.md +77 -0
  559. package/template/docusaurus/docs/actions/core/event-bus/_category_.json +1 -0
  560. package/template/docusaurus/docs/actions/core/event-bus/ask-event-bus-send-messages.md +104 -0
  561. package/template/docusaurus/docs/actions/core/file/_category_.json +7 -0
  562. package/template/docusaurus/docs/actions/core/file/ask-file-delete.md +69 -0
  563. package/template/docusaurus/docs/actions/core/file/ask-file-exists.md +68 -0
  564. package/template/docusaurus/docs/actions/core/file/ask-file-generate-temporary-secure-url.md +75 -0
  565. package/template/docusaurus/docs/actions/core/file/ask-file-generate-temporary-upload-secure-url.md +91 -0
  566. package/template/docusaurus/docs/actions/core/file/ask-file-is-cold-storage.md +72 -0
  567. package/template/docusaurus/docs/actions/core/file/ask-file-list-directory.md +97 -0
  568. package/template/docusaurus/docs/actions/core/file/ask-file-read-binary-contents.md +78 -0
  569. package/template/docusaurus/docs/actions/core/file/ask-file-read-object-json.md +72 -0
  570. package/template/docusaurus/docs/actions/core/file/ask-file-read-text-contents.md +69 -0
  571. package/template/docusaurus/docs/actions/core/file/ask-file-stream-open.md +102 -0
  572. package/template/docusaurus/docs/actions/core/file/ask-file-write-binary-contents.md +98 -0
  573. package/template/docusaurus/docs/actions/core/file/ask-file-write-object-json.md +83 -0
  574. package/template/docusaurus/docs/actions/core/file/ask-file-write-text-contents.md +69 -0
  575. package/template/docusaurus/docs/actions/core/graph-database/_category_.json +7 -0
  576. package/template/docusaurus/docs/actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md +164 -0
  577. package/template/docusaurus/docs/actions/core/graph-database/ask-graph-database-internal-field-names.md +64 -0
  578. package/template/docusaurus/docs/actions/core/guid/_category_.json +7 -0
  579. package/template/docusaurus/docs/actions/core/guid/ask-new-guid.md +45 -0
  580. package/template/docusaurus/docs/actions/core/guid/ask-new-sortable-guid.md +49 -0
  581. package/template/docusaurus/docs/actions/core/inline-function/_category_.json +1 -0
  582. package/template/docusaurus/docs/actions/core/inline-function/ask-inline-function-execute.md +66 -0
  583. package/template/docusaurus/docs/actions/core/json/_category_.json +7 -0
  584. package/template/docusaurus/docs/actions/core/json/ask-decode-json.md +76 -0
  585. package/template/docusaurus/docs/actions/core/key-value-store/_category_.json +1 -0
  586. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-delete.md +57 -0
  587. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-get-all.md +60 -0
  588. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-get.md +73 -0
  589. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-query-all.md +58 -0
  590. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-query-single.md +62 -0
  591. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-query.md +129 -0
  592. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-scan-all.md +56 -0
  593. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-scan.md +71 -0
  594. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-update-partial-properties.md +75 -0
  595. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-update.md +106 -0
  596. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-upsert-with-retry.md +65 -0
  597. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-upsert.md +71 -0
  598. package/template/docusaurus/docs/actions/core/log/_category_.json +7 -0
  599. package/template/docusaurus/docs/actions/core/log/ask-log-create.md +64 -0
  600. package/template/docusaurus/docs/actions/core/log/ask-log-disable-event-history.md +53 -0
  601. package/template/docusaurus/docs/actions/core/log/ask-log-template-literal.md +55 -0
  602. package/template/docusaurus/docs/actions/core/math/_category_.json +7 -0
  603. package/template/docusaurus/docs/actions/core/math/ask-random-number.md +46 -0
  604. package/template/docusaurus/docs/actions/core/metric/_category_.json +7 -0
  605. package/template/docusaurus/docs/actions/core/metric/ask-metric-put.md +67 -0
  606. package/template/docusaurus/docs/actions/core/network/_category_.json +7 -0
  607. package/template/docusaurus/docs/actions/core/network/ask-network-request.md +95 -0
  608. package/template/docusaurus/docs/actions/core/platform/_category_.json +7 -0
  609. package/template/docusaurus/docs/actions/core/platform/ask-delay.md +48 -0
  610. package/template/docusaurus/docs/actions/core/queue/_category_.json +1 -0
  611. package/template/docusaurus/docs/actions/core/queue/ask-queue-send-messages.md +89 -0
  612. package/template/docusaurus/docs/actions/core/state/_category_.json +7 -0
  613. package/template/docusaurus/docs/actions/core/state/ask-reduce-state.md +160 -0
  614. package/template/docusaurus/docs/actions/core/state/ask-state-dispatch.md +87 -0
  615. package/template/docusaurus/docs/actions/core/state/ask-state-read.md +45 -0
  616. package/template/docusaurus/docs/actions/core/stream/_category_.json +7 -0
  617. package/template/docusaurus/docs/actions/core/stream/ask-stream-close.md +56 -0
  618. package/template/docusaurus/docs/actions/core/stream/ask-stream-map.md +73 -0
  619. package/template/docusaurus/docs/actions/core/stream/ask-stream-process.md +57 -0
  620. package/template/docusaurus/docs/actions/core/stream/ask-stream-read.md +140 -0
  621. package/template/docusaurus/docs/actions/core/system/_category_.json +7 -0
  622. package/template/docusaurus/docs/actions/core/system/ask-batch.md +55 -0
  623. package/template/docusaurus/docs/actions/core/system/ask-catch.md +85 -0
  624. package/template/docusaurus/docs/actions/core/system/ask-execute-if.md +51 -0
  625. package/template/docusaurus/docs/actions/core/system/ask-execute-story.md +56 -0
  626. package/template/docusaurus/docs/actions/core/system/ask-get-runtime-correlation.md +46 -0
  627. package/template/docusaurus/docs/actions/core/system/ask-override-actions.md +76 -0
  628. package/template/docusaurus/docs/actions/core/system/ask-parallel-deprecated.md +55 -0
  629. package/template/docusaurus/docs/actions/core/system/ask-retry.md +72 -0
  630. package/template/docusaurus/docs/actions/core/system/ask-run-parallel.md +62 -0
  631. package/template/docusaurus/docs/actions/core/user-directory/_category_.json +1 -0
  632. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-associate-software-token.md +73 -0
  633. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-authenticate-user.md +124 -0
  634. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-change-password.md +55 -0
  635. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-confirm-email-verification.md +52 -0
  636. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-confirm-forgot-password.md +58 -0
  637. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-create-user.md +72 -0
  638. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-decode-access-token.md +73 -0
  639. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-forgot-password.md +66 -0
  640. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-user-attributes-by-user-id.md +53 -0
  641. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-user-attributes.md +78 -0
  642. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-users-by-attribute.md +59 -0
  643. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-users.md +71 -0
  644. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-read-access-token.md +52 -0
  645. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-refresh-token.md +53 -0
  646. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-request-email-verification.md +53 -0
  647. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-respond-to-auth-challenge.md +124 -0
  648. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-set-access-token.md +52 -0
  649. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-set-password.md +55 -0
  650. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-set-user-attributes.md +60 -0
  651. package/template/docusaurus/docs/actions/features/_category_.json +1 -0
  652. package/template/docusaurus/docs/actions/features/event-doc/_category_.json +1 -0
  653. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-append-server-event.md +65 -0
  654. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-create.md +112 -0
  655. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-event-append.md +97 -0
  656. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-event-list.md +116 -0
  657. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-event-write.md +50 -0
  658. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-generate-asset-upload-url.md +127 -0
  659. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-get-by-code.md +97 -0
  660. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-get-by-id.md +121 -0
  661. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-get-draft.md +109 -0
  662. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-list.md +53 -0
  663. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-provide-store.md +160 -0
  664. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-resolve-actor.md +107 -0
  665. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-soft-delete.md +69 -0
  666. package/template/docusaurus/docs/actions/features/event-doc-ai/_category_.json +1 -0
  667. package/template/docusaurus/docs/actions/features/event-doc-ai/active-chat-state.md +153 -0
  668. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-attachments-validate.md +63 -0
  669. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-chat-history-load.md +95 -0
  670. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-chat-list.md +91 -0
  671. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-chat-requests.md +93 -0
  672. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-context-read.md +84 -0
  673. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-load-chats.md +37 -0
  674. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-new-chat.md +43 -0
  675. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-process-send.md +70 -0
  676. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-select-chat.md +42 -0
  677. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-send-message.md +52 -0
  678. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-service-request.md +53 -0
  679. package/template/docusaurus/docs/actions/features/event-doc-ai/chat-list-state.md +179 -0
  680. package/template/docusaurus/docs/actions/features/event-doc-ai/streaming-and-status-state.md +168 -0
  681. package/template/docusaurus/docs/actions/features/validation/_category_.json +1 -0
  682. package/template/docusaurus/docs/actions/features/validation/ask-validate-model-or-throw-error.md +73 -0
  683. package/template/docusaurus/docs/actions/webserver/_category_.json +8 -0
  684. package/template/docusaurus/docs/actions/webserver/admin/_category_.json +1 -0
  685. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-log-metadata-children.md +62 -0
  686. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-log-metadata.md +67 -0
  687. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-log.md +84 -0
  688. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-logs.md +96 -0
  689. package/template/docusaurus/docs/actions/webserver/api-key-validation/_category_.json +1 -0
  690. package/template/docusaurus/docs/actions/webserver/api-key-validation/ask-api-key-validation-validate.md +63 -0
  691. package/template/docusaurus/docs/actions/webserver/dns/_category_.json +1 -0
  692. package/template/docusaurus/docs/actions/webserver/dns/ask-dns-list.md +37 -0
  693. package/template/docusaurus/docs/actions/webserver/generic-data-resource/_category_.json +1 -0
  694. package/template/docusaurus/docs/actions/webserver/generic-data-resource/ask-put-generic-data-resource.md +48 -0
  695. package/template/docusaurus/docs/actions/webserver/generic-data-resource/ask-scan-generic-data-resource.md +49 -0
  696. package/template/docusaurus/docs/actions/webserver/open-api-spec/_category_.json +1 -0
  697. package/template/docusaurus/docs/actions/webserver/open-api-spec/ask-get-open-api-spec.md +43 -0
  698. package/template/docusaurus/docs/actions/webserver/route-auth-validation/_category_.json +1 -0
  699. package/template/docusaurus/docs/actions/webserver/route-auth-validation/ask-route-auth-validation-decode.md +65 -0
  700. package/template/docusaurus/docs/actions/webserver/service/_category_.json +1 -0
  701. package/template/docusaurus/docs/actions/webserver/service/ask-service-request.md +69 -0
  702. package/template/docusaurus/docs/actions/webserver/service-function/_category_.json +1 -0
  703. package/template/docusaurus/docs/actions/webserver/service-function/ask-service-function-execute.md +58 -0
  704. package/template/docusaurus/docs/actions/webserver/web-entry/_category_.json +1 -0
  705. package/template/docusaurus/docs/actions/webserver/web-entry/ask-web-entry-invalidate-cache.md +53 -0
  706. package/template/docusaurus/docs/actions/webserver/websocket/_category_.json +1 -0
  707. package/template/docusaurus/docs/actions/webserver/websocket/ask-websocket-send-message.md +71 -0
  708. package/template/docusaurus/docs/actions/xstate/_category_.json +1 -0
  709. package/template/docusaurus/docs/actions/xstate/ask-state-machine-create.md +60 -0
  710. package/template/docusaurus/docs/actions/xstate/ask-state-machine-get-state.md +65 -0
  711. package/template/docusaurus/docs/actions/xstate/ask-state-machine-get.md +57 -0
  712. package/template/docusaurus/docs/actions/xstate/ask-state-machine-send-event.md +69 -0
  713. package/template/docusaurus/docs/api/index.md +17 -0
  714. package/template/docusaurus/docs/architecture-overview.md +690 -0
  715. package/template/docusaurus/docs/config/config-aws/_category_.json +1 -0
  716. package/template/docusaurus/docs/config/config-aws/account-budget.md +117 -0
  717. package/template/docusaurus/docs/config/config-aws/account-cloud-trail.md +75 -0
  718. package/template/docusaurus/docs/config/config-aws/account-security-services.md +91 -0
  719. package/template/docusaurus/docs/config/config-aws/aws-alarm.md +142 -0
  720. package/template/docusaurus/docs/config/config-aws/aws-data-store-removal-policy.md +68 -0
  721. package/template/docusaurus/docs/config/config-aws/aws-dyanmo-override-for-kvs.md +70 -0
  722. package/template/docusaurus/docs/config/config-aws/aws-kms-key.md +100 -0
  723. package/template/docusaurus/docs/config/config-aws/aws-service-account-info.md +114 -0
  724. package/template/docusaurus/docs/config/config-aws/aws-service-dashboard.md +61 -0
  725. package/template/docusaurus/docs/config/config-aws/aws-virtual-network-settings.md +88 -0
  726. package/template/docusaurus/docs/config/config-aws/bootstrap-aws-organization.md +80 -0
  727. package/template/docusaurus/docs/config/config-aws/bootstrap-waf.md +106 -0
  728. package/template/docusaurus/docs/config/config-aws/domain-certificate.md +69 -0
  729. package/template/docusaurus/docs/config/config-aws/event-bus-quick-subscription.md +84 -0
  730. package/template/docusaurus/docs/config/config-aws/waf-protection.md +45 -0
  731. package/template/docusaurus/docs/config/core/_category_.json +8 -0
  732. package/template/docusaurus/docs/config/core/action-processors.md +65 -0
  733. package/template/docusaurus/docs/config/core/ai.md +80 -0
  734. package/template/docusaurus/docs/config/core/api-build-path.md +40 -0
  735. package/template/docusaurus/docs/config/core/application-module.md +58 -0
  736. package/template/docusaurus/docs/config/core/application-name.md +66 -0
  737. package/template/docusaurus/docs/config/core/application-version.md +58 -0
  738. package/template/docusaurus/docs/config/core/claude-ai.md +52 -0
  739. package/template/docusaurus/docs/config/core/config-value.md +38 -0
  740. package/template/docusaurus/docs/config/core/deploy-event.md +94 -0
  741. package/template/docusaurus/docs/config/core/environment-settings.md +67 -0
  742. package/template/docusaurus/docs/config/core/event-bus.md +88 -0
  743. package/template/docusaurus/docs/config/core/federated-module-store.md +61 -0
  744. package/template/docusaurus/docs/config/core/global.md +43 -0
  745. package/template/docusaurus/docs/config/core/graph-database.md +72 -0
  746. package/template/docusaurus/docs/config/core/inline-function.md +61 -0
  747. package/template/docusaurus/docs/config/core/javascript-runtime.md +79 -0
  748. package/template/docusaurus/docs/config/core/key-value-store.md +135 -0
  749. package/template/docusaurus/docs/config/core/module-name.md +46 -0
  750. package/template/docusaurus/docs/config/core/notify-error.md +97 -0
  751. package/template/docusaurus/docs/config/core/parameter.md +53 -0
  752. package/template/docusaurus/docs/config/core/promise-mode.md +39 -0
  753. package/template/docusaurus/docs/config/core/queue.md +112 -0
  754. package/template/docusaurus/docs/config/core/recurring-schedule.md +117 -0
  755. package/template/docusaurus/docs/config/core/secret.md +51 -0
  756. package/template/docusaurus/docs/config/core/service-settings.md +49 -0
  757. package/template/docusaurus/docs/config/core/storage-drive.md +142 -0
  758. package/template/docusaurus/docs/config/core/user-directory.md +189 -0
  759. package/template/docusaurus/docs/config/core/virtual-network.md +60 -0
  760. package/template/docusaurus/docs/config/features/_category_.json +1 -0
  761. package/template/docusaurus/docs/config/features/admin-session-event-doc.md +47 -0
  762. package/template/docusaurus/docs/config/features/admin-settings.md +106 -0
  763. package/template/docusaurus/docs/config/features/admin-user-directory.md +57 -0
  764. package/template/docusaurus/docs/config/features/event-doc-ai.md +104 -0
  765. package/template/docusaurus/docs/config/features/event-doc-routes.md +100 -0
  766. package/template/docusaurus/docs/config/features/event-doc-summary.md +59 -0
  767. package/template/docusaurus/docs/config/features/event-doc.md +75 -0
  768. package/template/docusaurus/docs/config/features/versioned-route.md +85 -0
  769. package/template/docusaurus/docs/config/neo4j/_category_.json +1 -0
  770. package/template/docusaurus/docs/config/neo4j/graph-database-neo4j.md +122 -0
  771. package/template/docusaurus/docs/config/webserver/_category_.json +8 -0
  772. package/template/docusaurus/docs/config/webserver/api-key.md +87 -0
  773. package/template/docusaurus/docs/config/webserver/api.md +75 -0
  774. package/template/docusaurus/docs/config/webserver/auth-system.md +110 -0
  775. package/template/docusaurus/docs/config/webserver/cache.md +94 -0
  776. package/template/docusaurus/docs/config/webserver/certificate.md +64 -0
  777. package/template/docusaurus/docs/config/webserver/default-route-options.md +77 -0
  778. package/template/docusaurus/docs/config/webserver/dns.md +57 -0
  779. package/template/docusaurus/docs/config/webserver/domain-proxy.md +109 -0
  780. package/template/docusaurus/docs/config/webserver/file-upload-settings.md +63 -0
  781. package/template/docusaurus/docs/config/webserver/migration.md +83 -0
  782. package/template/docusaurus/docs/config/webserver/open-api.md +36 -0
  783. package/template/docusaurus/docs/config/webserver/route.md +109 -0
  784. package/template/docusaurus/docs/config/webserver/seed.md +61 -0
  785. package/template/docusaurus/docs/config/webserver/seo.md +72 -0
  786. package/template/docusaurus/docs/config/webserver/service-function.md +69 -0
  787. package/template/docusaurus/docs/config/webserver/state-dispatch-over-websockets.md +42 -0
  788. package/template/docusaurus/docs/config/webserver/storage-drive-cors-settings.md +73 -0
  789. package/template/docusaurus/docs/config/webserver/subdomain-redirect.md +80 -0
  790. package/template/docusaurus/docs/config/webserver/web-entry.md +150 -0
  791. package/template/docusaurus/docs/config/webserver/web-socket-queue.md +88 -0
  792. package/template/docusaurus/docs/config/webserver/websocket.md +110 -0
  793. package/template/docusaurus/docs/config/xstate/_category_.json +1 -0
  794. package/template/docusaurus/docs/config/xstate/state-machine.md +201 -0
  795. package/template/docusaurus/docs/core-concepts.md +23 -0
  796. package/template/docusaurus/docs/getting-started.md +806 -0
  797. package/template/docusaurus/docs/index.md +211 -0
  798. package/template/docusaurus/docs/intro.md +47 -0
  799. package/template/docusaurus/docs/tutorial-basics/_category_.json +8 -0
  800. package/template/docusaurus/docs/tutorial-basics/congratulations.md +23 -0
  801. package/template/docusaurus/docs/tutorial-basics/create-a-blog-post.md +34 -0
  802. package/template/docusaurus/docs/tutorial-basics/create-a-document.md +57 -0
  803. package/template/docusaurus/docs/tutorial-basics/create-a-page.md +43 -0
  804. package/template/docusaurus/docs/tutorial-basics/deploy-your-site.md +31 -0
  805. package/template/docusaurus/docs/tutorial-basics/markdown-features.mdx +152 -0
  806. package/template/docusaurus/docs/tutorial-extras/_category_.json +7 -0
  807. package/template/docusaurus/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
  808. package/template/docusaurus/docs/tutorial-extras/img/localeDropdown.png +0 -0
  809. package/template/docusaurus/docs/tutorial-extras/manage-docs-versions.md +55 -0
  810. package/template/docusaurus/docs/tutorial-extras/translate-your-site.md +88 -0
  811. package/template/docusaurus/docs/use-cases.md +455 -0
  812. package/template/docusaurus/docusaurus.config.ts +181 -0
  813. package/template/docusaurus/gitignore +20 -0
  814. package/template/docusaurus/package.json +49 -0
  815. package/template/docusaurus/sidebars.ts +27 -0
  816. package/template/docusaurus/src/components/HomepageFeatures/index.tsx +72 -0
  817. package/template/docusaurus/src/components/HomepageFeatures/styles.module.css +11 -0
  818. package/template/docusaurus/src/css/custom.css +423 -0
  819. package/template/docusaurus/src/pages/index.module.css +23 -0
  820. package/template/docusaurus/static/.nojekyll +0 -0
  821. package/template/docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  822. package/template/docusaurus/static/img/docusaurus.png +0 -0
  823. package/template/docusaurus/static/img/favicon.ico +0 -0
  824. package/template/docusaurus/static/img/favicon.svg +4 -0
  825. package/template/docusaurus/static/img/logo.svg +1 -0
  826. package/template/docusaurus/static/img/qpq-logo.svg +4 -0
  827. package/template/docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
  828. package/template/docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
  829. package/template/docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
  830. package/template/docusaurus/tsconfig.json +8 -0
  831. package/template/eslint.config.mjs +3 -0
  832. package/template/gitignore +116 -0
  833. package/template/package.json +126 -0
  834. package/template/tsconfig.base.json +23 -0
  835. package/template/tsconfig.json +16 -0
  836. package/template/types/assets.d.ts +3 -0
@@ -0,0 +1,117 @@
1
+ ---
2
+ title: defineAccountBudget
3
+ description: Define an AWS Budgets monthly cost budget with email threshold alerts plus Cost Anomaly Detection for an AWS account.
4
+ ---
5
+
6
+ # defineAccountBudget
7
+
8
+ Defines an **account-level monthly cost budget** with email alerts at configurable spend thresholds, plus AWS Cost Anomaly Detection for spend that deviates from the account's baseline (the slow cost creep that fixed percentage thresholds miss).
9
+
10
+ This is an **account/organization bootstrap setting**: it does not configure a deployed service — it configures the AWS account itself. It is declared in a dedicated *account config* (an application config with no module, alongside the other `defineAccount*` settings) and deployed by the account stack, once per account.
11
+
12
+ - **On AWS:** deploys an AWS Budgets `CfnBudget` (a `COST`, `MONTHLY` budget) with one email notification per threshold, and — unless anomaly detection is disabled — an `aws_ce` `CfnAnomalyMonitor` (`DIMENSIONAL` / `SERVICE`) plus a `CfnAnomalySubscription` that emails subscribers daily. Deployed by `QpqAccountBudgetConstruct` in the account stack (`AccountQpqStack`). AWS allows only **one** service-dimension anomaly monitor per account, so if several environments share one account, enable anomaly detection in only one of them (or set `anomalyDetection.disabled` on the extras).
13
+
14
+ ```typescript
15
+ import { defineAccountBudget } from 'quidproquo-config-aws';
16
+
17
+ export default [
18
+ defineAccountBudget('primary', 500, ['billing@example.com']),
19
+ ];
20
+ ```
21
+
22
+ ## Signature
23
+
24
+ ```typescript
25
+ function defineAccountBudget(
26
+ name: string,
27
+ monthlyLimitUsd: number,
28
+ subscriberEmails: string[],
29
+ options?: {
30
+ thresholds?: BudgetThreshold[];
31
+ anomalyDetection?: AccountBudgetAnomalyDetection;
32
+ },
33
+ ): AccountBudgetQPQConfigSetting;
34
+ ```
35
+
36
+ ## Parameters
37
+
38
+ ### `name` — `string` (required)
39
+
40
+ The budget's name. Used as the setting's `uniqueKey` and baked into the physical resource names (e.g. the budget is named `qpq-budget-<accountId>-<name>`, the anomaly monitor `qpq-anomaly-monitor-<accountId>-<name>`).
41
+
42
+ ### `monthlyLimitUsd` — `number` (required)
43
+
44
+ The monthly cost budget in USD. Threshold alerts are calculated as a percentage of this amount.
45
+
46
+ ### `subscriberEmails` — `string[]` (required)
47
+
48
+ Email addresses that receive both the budget threshold notifications and the cost anomaly alerts.
49
+
50
+ ### `options` — (optional)
51
+
52
+ | Property | Type | Default | Description |
53
+ | --- | --- | --- | --- |
54
+ | `thresholds` | `BudgetThreshold[]` | `80%` actual, `100%` forecasted, `100%` actual, `150%` actual | Alert thresholds. Each becomes one budget notification (`GREATER_THAN`, `PERCENTAGE`) emailing all subscribers. See [`BudgetThreshold`](#budgetthreshold). |
55
+ | `anomalyDetection` | `AccountBudgetAnomalyDetection` | anomaly detection enabled, `minimumImpactUsd` `10` | Controls the Cost Anomaly Detection monitor/subscription created alongside the budget. See [`AccountBudgetAnomalyDetection`](#accountbudgetanomalydetection). |
56
+
57
+ ### `BudgetThreshold`
58
+
59
+ ```typescript
60
+ export enum BudgetThresholdType {
61
+ actual = 'actual',
62
+ forecasted = 'forecasted',
63
+ }
64
+
65
+ export interface BudgetThreshold {
66
+ thresholdPercent: number;
67
+ type: BudgetThresholdType;
68
+ }
69
+ ```
70
+
71
+ | Property | Type | Description |
72
+ | --- | --- | --- |
73
+ | `thresholdPercent` | `number` | Percentage of `monthlyLimitUsd` at which to alert (e.g. `80` fires at 80% of the budget). |
74
+ | `type` | `BudgetThresholdType` | `actual` alerts on cost already incurred; `forecasted` alerts when the projected month-end cost is expected to cross the threshold. |
75
+
76
+ ### `AccountBudgetAnomalyDetection`
77
+
78
+ ```typescript
79
+ export interface AccountBudgetAnomalyDetection {
80
+ disabled?: boolean;
81
+ minimumImpactUsd?: number;
82
+ }
83
+ ```
84
+
85
+ | Property | Type | Default | Description |
86
+ | --- | --- | --- | --- |
87
+ | `disabled` | `boolean` | `false` | Anomaly detection is created alongside the budget by default; set `true` to opt out (e.g. on the extra environments sharing an account, since AWS permits only one service-dimension monitor per account). |
88
+ | `minimumImpactUsd` | `number` | `10` | Minimum total cost impact (USD) before an anomaly alert is sent. Maps to the subscription's `ANOMALY_TOTAL_IMPACT_ABSOLUTE` threshold. |
89
+
90
+ ## Examples
91
+
92
+ ```typescript
93
+ import { defineAccountBudget, BudgetThresholdType } from 'quidproquo-config-aws';
94
+
95
+ export default [
96
+ // Custom thresholds, anomaly detection kept on with a higher impact floor
97
+ defineAccountBudget('primary', 2000, ['billing@example.com', 'cto@example.com'], {
98
+ thresholds: [
99
+ { thresholdPercent: 50, type: BudgetThresholdType.actual },
100
+ { thresholdPercent: 90, type: BudgetThresholdType.forecasted },
101
+ { thresholdPercent: 100, type: BudgetThresholdType.actual },
102
+ ],
103
+ anomalyDetection: { minimumImpactUsd: 50 },
104
+ }),
105
+
106
+ // A second environment sharing the same account: budget only, no anomaly monitor
107
+ defineAccountBudget('staging', 300, ['billing@example.com'], {
108
+ anomalyDetection: { disabled: true },
109
+ }),
110
+ ];
111
+ ```
112
+
113
+ ## Related
114
+
115
+ - [defineAccountCloudTrail](./account-cloud-trail.md) — account audit logging, another `defineAccount*` bootstrap setting deployed by the same account stack.
116
+ - [defineAccountSecurityServices](./account-security-services.md) — account threat-detection services deployed by the same account stack.
117
+ - **AWS implementation:** `QpqAccountBudgetConstruct` (AWS Budgets + Cost Explorer anomaly detection) in `quidproquo-deploy-awscdk`.
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: defineAccountCloudTrail
3
+ description: Define an account-level AWS CloudTrail audit trail, with an S3 log bucket and optional CloudWatch Logs delivery.
4
+ ---
5
+
6
+ # defineAccountCloudTrail
7
+
8
+ Defines an **account-level CloudTrail audit trail** that records AWS API activity for the account into a dedicated, private S3 bucket, with optional delivery to a CloudWatch Logs group.
9
+
10
+ This is an **account/organization bootstrap setting**: it configures the AWS account, not a deployed service. It is declared in a dedicated *account config* alongside the other `defineAccount*` settings and deployed by the account stack, once per account. One trail per account is the expected usage — additional trails bill a second copy of every management event.
11
+
12
+ - **On AWS:** deploys an `aws_cloudtrail.Trail` writing to a private, SSE-S3-encrypted, SSL-enforced S3 bucket (`qpq-cloudtrail-<accountId>-<region>-<name>`, retained on teardown, with a lifecycle expiration equal to `retentionDays`). When `cloudWatchLogs` is set, it also creates a CloudWatch Logs group (`/qpq/cloudtrail/<name>`, destroyed on teardown) and sends trail events to it. Deployed by `QpqAccountCloudTrailConstruct` in the account stack (`AccountQpqStack`).
13
+
14
+ ```typescript
15
+ import { defineAccountCloudTrail } from 'quidproquo-config-aws';
16
+
17
+ export default [
18
+ defineAccountCloudTrail('audit'),
19
+ ];
20
+ ```
21
+
22
+ ## Signature
23
+
24
+ ```typescript
25
+ function defineAccountCloudTrail(
26
+ name: string,
27
+ options?: {
28
+ retentionDays?: number;
29
+ enableLogFileValidation?: boolean;
30
+ multiRegion?: boolean;
31
+ includeGlobalServiceEvents?: boolean;
32
+ cloudWatchLogs?: { retentionDays?: number };
33
+ },
34
+ ): AccountCloudTrailQPQConfigSetting;
35
+ ```
36
+
37
+ ## Parameters
38
+
39
+ ### `name` — `string` (required)
40
+
41
+ The trail's name. Used as the setting's `uniqueKey` and baked into the physical resource names — the trail is named `<name>-trail`, the S3 bucket `qpq-cloudtrail-<accountId>-<region>-<name>`, and (if enabled) the log group `/qpq/cloudtrail/<name>`.
42
+
43
+ ### `options` — (optional)
44
+
45
+ | Property | Type | Default | Description |
46
+ | --- | --- | --- | --- |
47
+ | `retentionDays` | `number` | `365` | Number of days log objects are retained in the S3 bucket before an S3 lifecycle rule expires them. |
48
+ | `enableLogFileValidation` | `boolean` | `true` | Enables CloudTrail log file integrity validation (digest files that let you detect tampering). |
49
+ | `multiRegion` | `boolean` | `true` | Makes the trail a multi-region trail, capturing events from every AWS Region. |
50
+ | `includeGlobalServiceEvents` | `boolean` | `true` | Includes events from global services (e.g. IAM, CloudFront) in the trail. |
51
+ | `cloudWatchLogs` | `{ retentionDays?: number }` | – (not delivered to CloudWatch) | When set, delivers trail events to a CloudWatch Logs group. `retentionDays` sets the log group's retention (resolved to the nearest supported CloudWatch retention period; omit for the construct default). This log group is what [defineAccountSecurityServices](./account-security-services.md)'s `cognitoAuthFailureAlert` runs its metric filter against. |
52
+
53
+ ## Examples
54
+
55
+ ```typescript
56
+ import { defineAccountCloudTrail } from 'quidproquo-config-aws';
57
+
58
+ export default [
59
+ // Audit trail with CloudWatch delivery, so the Cognito auth-failure alarm can attach
60
+ defineAccountCloudTrail('audit', {
61
+ retentionDays: 730,
62
+ cloudWatchLogs: { retentionDays: 90 },
63
+ }),
64
+ ];
65
+ ```
66
+
67
+ ## Notes
68
+
69
+ - The `cloudWatchLogs` option is a prerequisite for the `cognitoAuthFailureAlert` in [defineAccountSecurityServices](./account-security-services.md): that alert's metric filter reads this trail's CloudWatch log group, and the deploy throws if the alert is requested without a trail that publishes to CloudWatch.
70
+
71
+ ## Related
72
+
73
+ - [defineAccountSecurityServices](./account-security-services.md) — consumes this trail's CloudWatch log group for its Cognito auth-failure alarm.
74
+ - [defineAccountBudget](./account-budget.md) — cost budget & anomaly alerts, another `defineAccount*` bootstrap setting on the same account stack.
75
+ - **AWS implementation:** `QpqAccountCloudTrailConstruct` (CloudTrail trail, S3 log bucket, optional CloudWatch Logs group) in `quidproquo-deploy-awscdk`.
@@ -0,0 +1,91 @@
1
+ ---
2
+ title: defineAccountSecurityServices
3
+ description: Define account-level AWS security services — GuardDuty, Security Hub, and a Cognito auth-failure alarm — for an AWS account.
4
+ ---
5
+
6
+ # defineAccountSecurityServices
7
+
8
+ Defines **account-level AWS security services**: optionally a GuardDuty threat-detection detector, a Security Hub hub, and an email alarm that fires when Cognito sign-in failures spike (credential stuffing hitting Cognito directly, bypassing your APIs).
9
+
10
+ This is an **account/organization bootstrap setting**: it configures the AWS account, not a deployed service. It is declared in a dedicated *account config* alongside the other `defineAccount*` settings and deployed by the account stack. Everything here is **opt-in** — creating account singletons should be a deliberate act. GuardDuty detectors and Security Hub hubs are one-per-account+region, so if several environments share one AWS account, enable them in only one environment's account config. There is a single `defineAccountSecurityServices` per account config (its `uniqueKey` is the constant `'accountSecurityServices'`).
11
+
12
+ - **On AWS:** deployed by `QpqAccountSecurityServicesConstruct` in the account stack (`AccountQpqStack`). When enabled it creates a GuardDuty `CfnDetector` and/or a Security Hub `CfnHub`. When `cognitoAuthFailureAlert` is set it creates a CloudWatch Logs `MetricFilter` (on the account CloudTrail's log group, matching `cognito-idp` `NotAuthorizedException` events), a `qpq/security` metric, an SNS topic (`qpq-account-security-alerts`) with an email subscription per address, and a CloudWatch `Alarm` that notifies the topic.
13
+
14
+ ```typescript
15
+ import { defineAccountSecurityServices } from 'quidproquo-config-aws';
16
+
17
+ export default [
18
+ defineAccountSecurityServices({
19
+ enableGuardDuty: true,
20
+ }),
21
+ ];
22
+ ```
23
+
24
+ ## Signature
25
+
26
+ ```typescript
27
+ function defineAccountSecurityServices(
28
+ options?: {
29
+ enableGuardDuty?: boolean;
30
+ enableSecurityHub?: boolean;
31
+ cognitoAuthFailureAlert?: AccountAuthFailureAlert;
32
+ },
33
+ ): AccountSecurityServicesQPQConfigSetting;
34
+ ```
35
+
36
+ ## Parameters
37
+
38
+ ### `options` — (optional)
39
+
40
+ | Property | Type | Default | Description |
41
+ | --- | --- | --- | --- |
42
+ | `enableGuardDuty` | `boolean` | `false` | Creates a GuardDuty detector (`CfnDetector`, `enable: true`). Opt-in: detectors are one-per-account+region and are often managed outside the stack (e.g. an AWS Organizations delegated admin auto-enables them, and a CloudFormation create would collide with that detector). |
43
+ | `enableSecurityHub` | `boolean` | `false` | Creates a Security Hub hub (`CfnHub`). Opt-in: its compliance standards require AWS Config recording, which bills per configuration item and often outweighs everything else — enable knowingly. |
44
+ | `cognitoAuthFailureAlert` | `AccountAuthFailureAlert` | – | Emails an alert when Cognito sign-in failures spike. **Requires** a [defineAccountCloudTrail](./account-cloud-trail.md) with `cloudWatchLogs` enabled — the deploy throws otherwise. See [`AccountAuthFailureAlert`](#accountauthfailurealert). |
45
+
46
+ ### `AccountAuthFailureAlert`
47
+
48
+ ```typescript
49
+ export interface AccountAuthFailureAlert {
50
+ emails: string[];
51
+ thresholdPer5Minutes?: number;
52
+ }
53
+ ```
54
+
55
+ | Property | Type | Default | Description |
56
+ | --- | --- | --- | --- |
57
+ | `emails` | `string[]` | (required) | Addresses subscribed to the SNS alert topic that the alarm notifies. |
58
+ | `thresholdPer5Minutes` | `number` | `10` | Number of failed Cognito sign-ins per 5-minute window before the alarm fires. Missing data is treated as not-breaching (no sign-in attempts is not an alarm state). |
59
+
60
+ ## Notes
61
+
62
+ - The `cognitoAuthFailureAlert` detects credential stuffing that hits Cognito directly, bypassing your APIs — these show up as `cognito-idp` `NotAuthorizedException` events in CloudTrail. Failed logins through quidproquo routes are covered separately by the per-API 401-rate alarms.
63
+ - Because both GuardDuty and Security Hub are account singletons, they live in the account stack rather than any app's bootstrap — an app teardown must not take the account's threat detection with it.
64
+
65
+ ## Examples
66
+
67
+ ```typescript
68
+ import { defineAccountSecurityServices, defineAccountCloudTrail } from 'quidproquo-config-aws';
69
+
70
+ export default [
71
+ // CloudTrail with CloudWatch delivery is required for the auth-failure alarm
72
+ defineAccountCloudTrail('audit', {
73
+ cloudWatchLogs: { retentionDays: 90 },
74
+ }),
75
+
76
+ defineAccountSecurityServices({
77
+ enableGuardDuty: true,
78
+ enableSecurityHub: true,
79
+ cognitoAuthFailureAlert: {
80
+ emails: ['security@example.com'],
81
+ thresholdPer5Minutes: 25,
82
+ },
83
+ }),
84
+ ];
85
+ ```
86
+
87
+ ## Related
88
+
89
+ - [defineAccountCloudTrail](./account-cloud-trail.md) — required (with `cloudWatchLogs`) for the Cognito auth-failure alarm's metric filter.
90
+ - [defineAccountBudget](./account-budget.md) — cost budget & anomaly alerts, another `defineAccount*` bootstrap setting on the same account stack.
91
+ - **AWS implementation:** `QpqAccountSecurityServicesConstruct` (GuardDuty detector, Security Hub hub, CloudWatch metric filter/alarm, SNS topic) in `quidproquo-deploy-awscdk`.
@@ -0,0 +1,142 @@
1
+ ---
2
+ title: defineAwsAlarm
3
+ description: Declare a CloudWatch metric alarm on a Lambda, API Gateway, DynamoDB, or SQS metric, optionally routed to an event bus.
4
+ ---
5
+
6
+ # defineAwsAlarm
7
+
8
+ Declares a **CloudWatch metric alarm** for this service. You pick a namespace + metric (Lambda, API Gateway, DynamoDB, or SQS), a statistic and period, and the threshold/comparison that trips the alarm, and optionally route the alarm state to one or more [event buses](../core/event-bus.md) so it reaches a human. Use it to watch a specific resource metric that the default per-resource alarms and the service dashboard don't already cover.
9
+
10
+ - **On AWS:** each declared alarm becomes an `aws_cloudwatch.Alarm` (`QpqConfigAwsAlarmConstruct` in `quidproquo-deploy-awscdk`), built entirely from the shared alarm fields, so it is namespace-agnostic. The metric is a plain `aws_cloudwatch.Metric` (namespace, metric name, statistic, period); the comparison operator maps to the matching CloudWatch `ComparisonOperator`. Each event-bus name in `onAlarm.publishToEventBus` resolves to that bus's SNS topic, and the alarm gets an `SnsAction` publishing state changes to it.
11
+
12
+ ```typescript
13
+ import {
14
+ defineAwsAlarm,
15
+ AwsAlarmNamespace,
16
+ AwsAlarmSqsMetricName,
17
+ AwsAlarmStatistic,
18
+ AwsAlarmPeriod,
19
+ AwsAlarmOperator,
20
+ } from 'quidproquo-config-aws';
21
+
22
+ export default [
23
+ // Alert when a queue's oldest message gets too old (a stuck consumer)
24
+ defineAwsAlarm('orders-queue-backlog', {
25
+ namespace: AwsAlarmNamespace.Sqs,
26
+ metricName: AwsAlarmSqsMetricName.ApproximateAgeOfOldestMessage,
27
+ statistic: AwsAlarmStatistic.Maximum,
28
+ period: AwsAlarmPeriod.FiveMinutes,
29
+ operator: AwsAlarmOperator.GreaterThanThreshold,
30
+ threshold: 300,
31
+ datapointsToAlarm: 2,
32
+ evaluationPeriodsToAlarm: 3,
33
+ onAlarm: {
34
+ publishToEventBus: ['ops-alerts'],
35
+ },
36
+ }),
37
+ ];
38
+ ```
39
+
40
+ ## Signature
41
+
42
+ ```typescript
43
+ function defineAwsAlarm(
44
+ name: string,
45
+ alarmSettings: AwsAlarmNamespaceSpecificSettings,
46
+ options?: QPQConfigAdvancedAwsAlarmSettings,
47
+ ): AwsAlarmQPQConfigSetting;
48
+ ```
49
+
50
+ ## Parameters
51
+
52
+ ### `name` — `string` (required)
53
+
54
+ A unique name for the alarm (its `uniqueKey`). It is prefixed with application/module/environment to form the physical CloudWatch alarm name.
55
+
56
+ ### `alarmSettings` — namespace-specific settings (required)
57
+
58
+ The alarm definition. It is a discriminated union on `namespace`: the allowed `metricName` values depend on the chosen namespace (see below). All namespaces share these base fields:
59
+
60
+ | Property | Type | Description |
61
+ | --- | --- | --- |
62
+ | `namespace` | `AwsAlarmNamespace` | The AWS service namespace being watched. Also selects which `metricName` enum is valid. |
63
+ | `metricName` | namespace-specific enum | The metric to alarm on (see the per-namespace tables below). |
64
+ | `statistic` | `AwsAlarmStatistic` | The statistic applied to the metric over each period. |
65
+ | `period` | `AwsAlarmPeriod` | The aggregation period (in seconds). |
66
+ | `operator` | `AwsAlarmOperator` | How `threshold` is compared to the metric value. |
67
+ | `threshold` | `number` | The value the comparison is made against. |
68
+ | `datapointsToAlarm` | `number` | How many datapoints within the evaluation window must breach for the alarm to fire. |
69
+ | `evaluationPeriodsToAlarm` | `number` | The number of periods CloudWatch evaluates (the "M of N" window, with `datapointsToAlarm` as M). |
70
+ | `onAlarm.publishToEventBus` | `string[]` | Optional. Event-bus names to publish alarm-state changes to (via each bus's SNS topic). |
71
+
72
+ ### `options` — `QPQConfigAdvancedAwsAlarmSettings` (optional)
73
+
74
+ Advanced settings. Currently an empty interface extending the shared `QPQConfigAdvancedSettings`; reserved for future options.
75
+
76
+ ### `AwsAlarmNamespace` and its metric names
77
+
78
+ The namespace determines which `metricName` enum you use.
79
+
80
+ | Namespace | Value | Metric-name enum |
81
+ | --- | --- | --- |
82
+ | `Lambda` | `AWS/Lambda` | `AwsAlarmLambdaMetricName` |
83
+ | `ApiGateway` | `AWS/ApiGateway` | `AwsAlarmApiGatewayMetricName` |
84
+ | `DynamoDb` | `AWS/DynamoDB` | `AwsAlarmDynamoDbMetricName` |
85
+ | `Sqs` | `AWS/SQS` | `AwsAlarmSqsMetricName` |
86
+
87
+ **`AwsAlarmLambdaMetricName`:** `Invocations`, `Errors`, `DeadLetterErrors`, `Duration`, `Throttles`, `IteratorAge`, `ConcurrentExecutions`, `UnreservedConcurrentExecutions`.
88
+
89
+ **`AwsAlarmApiGatewayMetricName`:** `Count`, `Latency`, `Error4XX` (`4XXError`), `Error5XX` (`5XXError`).
90
+
91
+ **`AwsAlarmDynamoDbMetricName`:** `ConsumedReadCapacityUnits`, `ConsumedWriteCapacityUnits`, `ProvisionedReadCapacityUnits`, `ProvisionedWriteCapacityUnits`, `ReadThrottleEvents`, `WriteThrottleEvents`, `SuccessfulRequestLatency`, `SystemErrors`, `UserErrors`.
92
+
93
+ **`AwsAlarmSqsMetricName`:** `NumberOfMessagesSent`, `NumberOfMessagesReceived`, `NumberOfMessagesDeleted`, `NumberOfMessagesReceivedButNotDeleted`, `SentMessageSize`, `ReceiveMessageSize`, `ApproximateNumberOfMessagesDelayed`, `ApproximateNumberOfMessagesVisible`, `ApproximateNumberOfMessagesNotVisible`, `ApproximateAgeOfOldestMessage`, `ApproximateNumberOfMessagesDelayedNotVisible`.
94
+
95
+ ### `AwsAlarmStatistic`
96
+
97
+ `Minimum`, `Maximum`, `Average`, `Sum`, `SampleCount`, plus the CloudWatch extended-statistic patterns `Percentile` (`pNN.NN`), `TrimmedMean` (`tmNN.NN`), `InterquartileMean` (`iqm`), `WeightedMean` (`wmNN.NN`), `TruncatedCount` (`tcNN.NN`), and `TruncatedSum` (`tsNN.NN`).
98
+
99
+ ### `AwsAlarmPeriod`
100
+
101
+ The period in seconds: `OneMinute` (60), `FiveMinutes` (300), `FifteenMinutes` (900).
102
+
103
+ ### `AwsAlarmOperator`
104
+
105
+ How the metric is compared to `threshold`: `GreaterThanThreshold`, `GreaterThanOrEqualToThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`.
106
+
107
+ ## Examples
108
+
109
+ ```typescript
110
+ import {
111
+ defineAwsAlarm,
112
+ AwsAlarmNamespace,
113
+ AwsAlarmLambdaMetricName,
114
+ AwsAlarmStatistic,
115
+ AwsAlarmPeriod,
116
+ AwsAlarmOperator,
117
+ } from 'quidproquo-config-aws';
118
+
119
+ export default [
120
+ // Alert when Lambda errors exceed 5 over two of three 1-minute periods
121
+ defineAwsAlarm('worker-errors', {
122
+ namespace: AwsAlarmNamespace.Lambda,
123
+ metricName: AwsAlarmLambdaMetricName.Errors,
124
+ statistic: AwsAlarmStatistic.Sum,
125
+ period: AwsAlarmPeriod.OneMinute,
126
+ operator: AwsAlarmOperator.GreaterThanThreshold,
127
+ threshold: 5,
128
+ datapointsToAlarm: 2,
129
+ evaluationPeriodsToAlarm: 3,
130
+ onAlarm: {
131
+ publishToEventBus: ['ops-alerts'],
132
+ },
133
+ }),
134
+ ];
135
+ ```
136
+
137
+ ## Related
138
+
139
+ - [defineEventBus](../core/event-bus.md) — the bus an alarm publishes state changes to via `onAlarm.publishToEventBus`.
140
+ - [defineEventBusQuickSubscription](./event-bus-quick-subscription.md) — attach email / webhook subscribers to that bus so alerts reach a human out-of-band.
141
+ - [defineNotifyError](../core/notify-error.md) — the default per-resource error/throttle alarms quidproquo creates automatically.
142
+ - [defineAwsServiceDashboard](./aws-service-dashboard.md) — a ready-made operational dashboard covering common metrics.
@@ -0,0 +1,68 @@
1
+ ---
2
+ title: defineAwsDataStoreRemovalPolicy
3
+ description: Control whether a service's AWS data stores are retained or destroyed when their stack is torn down.
4
+ ---
5
+
6
+ # defineAwsDataStoreRemovalPolicy
7
+
8
+ Sets the **removal policy** for every persistent data store this service deploys — storage-drive S3 buckets, key-value-store DynamoDB tables, user-directory Cognito user pools, and graph-database Neptune clusters. It decides what happens to that data when the resource is deleted or replaced (a `cdk destroy`, a full teardown, or a change that forces resource replacement). It defaults to **retain**, so production data survives teardown; declare it as **destroy** in dev/ephemeral configs where you want a clean tear-down.
9
+
10
+ - **On AWS:** a single service-wide setting read by each data-store construct in `quidproquo-deploy-awscdk` (`QpqCoreStorageDriveConstruct`, `QpqCoreKeyValueStoreConstruct`, `QpqInfCoreUserDirectoryConstruct`, `QpqCoreApiGraphDatabaseConstruct`). `destroy` maps to CDK `RemovalPolicy.DESTROY`; `retain` maps to `RemovalPolicy.RETAIN` for buckets, tables, and user pools, and to `RemovalPolicy.SNAPSHOT` for the Neptune cluster — a final snapshot preserves the graph data without leaving an orphaned live cluster running. When the setting is absent, the resolver falls back to `retain`.
11
+
12
+ ```typescript
13
+ import { defineAwsDataStoreRemovalPolicy, AwsDataStoreRemovalPolicy } from 'quidproquo-config-aws';
14
+
15
+ export default [
16
+ // Dev config: let a teardown remove the data stores
17
+ defineAwsDataStoreRemovalPolicy(AwsDataStoreRemovalPolicy.destroy),
18
+ ];
19
+ ```
20
+
21
+ ## Signature
22
+
23
+ ```typescript
24
+ function defineAwsDataStoreRemovalPolicy(
25
+ removalPolicy: AwsDataStoreRemovalPolicy,
26
+ ): AwsDataStoreRemovalPolicyQPQConfigSetting;
27
+ ```
28
+
29
+ ## Parameters
30
+
31
+ ### `removalPolicy` — `AwsDataStoreRemovalPolicy` (required)
32
+
33
+ Which policy to apply to all of the service's data stores.
34
+
35
+ ### `AwsDataStoreRemovalPolicy`
36
+
37
+ | Value | Meaning | AWS effect |
38
+ | --- | --- | --- |
39
+ | `retain` | Keep the data when the resource is deleted or replaced (the default when this setting is not declared). | S3 buckets, DynamoDB tables, and Cognito user pools are **retained** (orphaned but preserved); the Neptune cluster is retained via a **final snapshot** rather than a live cluster. |
40
+ | `destroy` | Delete the data on teardown. | All data stores map to CDK `RemovalPolicy.DESTROY` and are removed with the stack. |
41
+
42
+ :::note
43
+ This is a single, service-wide setting (its `uniqueKey` is fixed) — declaring it more than once in a config is redundant. It applies uniformly to every data store the service owns; there is no per-resource override here.
44
+ :::
45
+
46
+ ## Examples
47
+
48
+ ```typescript
49
+ import { defineAwsDataStoreRemovalPolicy, AwsDataStoreRemovalPolicy } from 'quidproquo-config-aws';
50
+
51
+ // A shared dev config module: everything is disposable
52
+ export const devDataPolicy = [
53
+ defineAwsDataStoreRemovalPolicy(AwsDataStoreRemovalPolicy.destroy),
54
+ ];
55
+
56
+ // Production config: omit the setting entirely (retain is the default),
57
+ // or state it explicitly for clarity
58
+ export const prodDataPolicy = [
59
+ defineAwsDataStoreRemovalPolicy(AwsDataStoreRemovalPolicy.retain),
60
+ ];
61
+ ```
62
+
63
+ ## Related
64
+
65
+ - [defineStorageDrive](../core/storage-drive.md) — S3 buckets governed by this policy.
66
+ - [defineKeyValueStore](../core/key-value-store.md) — DynamoDB tables governed by this policy.
67
+ - [defineUserDirectory](../core/user-directory.md) — Cognito user pools governed by this policy.
68
+ - [defineGraphDatabase](../core/graph-database.md) — Neptune clusters, retained via a final snapshot under `retain`.
@@ -0,0 +1,70 @@
1
+ ---
2
+ title: defineAwsDyanmoOverrideForKvs
3
+ description: Point a key-value store at a pre-existing DynamoDB table instead of the one quidproquo would create.
4
+ ---
5
+
6
+ # defineAwsDyanmoOverrideForKvs
7
+
8
+ Overrides the physical **DynamoDB table** backing a [key-value store](../core/key-value-store.md). Normally quidproquo derives the table name from the store name and application/module/environment prefix and creates the table for you. This setting instead binds the store to an **existing** DynamoDB table by name, so the deploy imports that table rather than creating a new one. Use it to adopt a table that already exists (a migration, a manually-managed table, or a table shared across systems).
9
+
10
+ - **On AWS:** resolved by `getDynamoTableNameOverrride` in `quidproquo-config-aws` and consumed by `QpqCoreKeyValueStoreConstruct` in `quidproquo-deploy-awscdk`. When an override matches the store, the construct calls `aws_dynamodb.Table.fromTableName(...)` to import the named table instead of provisioning one, and the store's action processors read and write that table. Because the table is imported (not owned), its schema, keys, indexes, and removal policy are managed outside this config.
11
+
12
+ :::note Spelling
13
+ The exported name is spelled **`defineAwsDyanmoOverrideForKvs`** ("Dyanmo", not "Dynamo") in the source, and that is the name you import.
14
+ :::
15
+
16
+ ```typescript
17
+ import { defineAwsDyanmoOverrideForKvs } from 'quidproquo-config-aws';
18
+
19
+ export default [
20
+ // Back the 'sessions' key-value store with a pre-existing DynamoDB table
21
+ defineAwsDyanmoOverrideForKvs('sessions-table-override', { keyValueStoreName: 'sessions' }, 'legacy-sessions-prod'),
22
+ ];
23
+ ```
24
+
25
+ ## Signature
26
+
27
+ ```typescript
28
+ function defineAwsDyanmoOverrideForKvs(
29
+ name: string,
30
+ kvsStore: CustomFullyQualifiedResource<'keyValueStoreName'>,
31
+ dynamoTableName: string,
32
+ options?: QPQConfigAdvancedAwsDyanmoOverrideForKvsSettings,
33
+ ): AwsDyanmoOverrideForKvsQPQConfigSetting;
34
+ ```
35
+
36
+ ## Parameters
37
+
38
+ ### `name` — `string` (required)
39
+
40
+ A unique name for this override setting (its `uniqueKey` within the config). Purely an identifier for the override entry — it is not the store or table name.
41
+
42
+ ### `kvsStore` — `CustomFullyQualifiedResource<'keyValueStoreName'>` (required)
43
+
44
+ Identifies which key-value store to override. At minimum provide `{ keyValueStoreName: '<store>' }`; the remaining parts (`module`, `application`, `environment`, `feature`) are optional and default to the current service, letting you target a store owned by another module. It is normalised to a fully-qualified resource and matched against the store at deploy time.
45
+
46
+ ### `dynamoTableName` — `string` (required)
47
+
48
+ The name of the existing DynamoDB table to bind the store to. This exact table name is imported via `Table.fromTableName` — no application/environment prefixing is applied, so pass the real, deployed table name.
49
+
50
+ ### `options` — `QPQConfigAdvancedAwsDyanmoOverrideForKvsSettings` (optional)
51
+
52
+ Advanced settings. Currently an empty interface that extends the shared `QPQConfigAdvancedSettings` (e.g. `deprecated`), reserved for future options.
53
+
54
+ ## Examples
55
+
56
+ ```typescript
57
+ import { defineKeyValueStore } from 'quidproquo-core';
58
+ import { defineAwsDyanmoOverrideForKvs } from 'quidproquo-config-aws';
59
+
60
+ export default [
61
+ defineKeyValueStore('sessions', 'sessionId'),
62
+
63
+ // Instead of creating a fresh table, reuse a table created outside quidproquo
64
+ defineAwsDyanmoOverrideForKvs('sessions-override', { keyValueStoreName: 'sessions' }, 'legacy-sessions-prod'),
65
+ ];
66
+ ```
67
+
68
+ ## Related
69
+
70
+ - [defineKeyValueStore](../core/key-value-store.md) — the store whose backing table this setting overrides.
@@ -0,0 +1,100 @@
1
+ ---
2
+ title: defineAwsKmsKey
3
+ description: Register a customer-managed KMS key to encrypt a storage drive or key-value store.
4
+ ---
5
+
6
+ # defineAwsKmsKey
7
+
8
+ Registers an existing **customer-managed KMS key** (by ARN) and binds it to a specific [storage drive](../core/storage-drive.md) or [key-value store](../core/key-value-store.md). It is the AWS-side companion to the `encryption: true` flag on those resources: when a drive or store opts into customer-managed encryption, this setting tells the deploy which KMS key to use. Without a matching key registered here, the `encryption` flag has no key to reference.
9
+
10
+ - **On AWS:** looked up by `getAwsKmsKeyForStorageDrive` / `getAwsKmsKeyForKeyValueStore` in `quidproquo-config-aws`, keyed by target type + resource name + owning module. `QpqCoreStorageDriveConstruct` and `QpqCoreKeyValueStoreConstruct` in `quidproquo-deploy-awscdk` resolve the key with `aws_kms.Key.fromKeyArn(...)` and set it as the bucket / table `encryptionKey`. The deploy also grants the service's roles the KMS actions (`kms:Decrypt`, `kms:GenerateDataKey*`, `kms:Encrypt`, `kms:ReEncrypt*`, `kms:DescribeKey`) needed to use the key. The key itself is referenced, not created — you provision and manage the key (and its key policy) separately.
11
+
12
+ ```typescript
13
+ import { defineAwsKmsKey, AwsKmsKeyTargetType } from 'quidproquo-config-aws';
14
+
15
+ export default [
16
+ defineAwsKmsKey(
17
+ 'uploads-key',
18
+ 'arn:aws:kms:us-east-1:123456789012:key/abcd-1234-...',
19
+ AwsKmsKeyTargetType.storageDrive,
20
+ { name: 'user-uploads', module: 'my-service' },
21
+ ),
22
+ ];
23
+ ```
24
+
25
+ ## Signature
26
+
27
+ ```typescript
28
+ function defineAwsKmsKey(
29
+ keyname: string,
30
+ arn: string,
31
+ type: AwsKmsKeyTargetType,
32
+ owner: AwsKmsKeyOwner,
33
+ ): AwsKmsKeyQPQConfigSetting;
34
+ ```
35
+
36
+ ## Parameters
37
+
38
+ ### `keyname` — `string` (required)
39
+
40
+ A unique name for this key registration (its `uniqueKey` within the config). An identifier for the entry — not the AWS key alias.
41
+
42
+ ### `arn` — `string` (required)
43
+
44
+ The ARN of the existing customer-managed KMS key. This exact ARN is imported via `Key.fromKeyArn`.
45
+
46
+ ### `type` — `AwsKmsKeyTargetType` (required)
47
+
48
+ Which kind of data store this key encrypts. The lookup matches on this together with the owner, so a store only picks up a key registered for its own resource type.
49
+
50
+ | Value | Encrypts |
51
+ | --- | --- |
52
+ | `storageDrive` | A [storage drive](../core/storage-drive.md) (S3 bucket) with `encryption: true`. |
53
+ | `keyValueStore` | A [key-value store](../core/key-value-store.md) (DynamoDB table) with `encryption: true`. |
54
+
55
+ ### `owner` — `AwsKmsKeyOwner` (required)
56
+
57
+ Identifies the resource the key belongs to. Both fields are matched against the target store at deploy time.
58
+
59
+ ```typescript
60
+ type AwsKmsKeyOwner = {
61
+ name: string; // the storage-drive / key-value-store name
62
+ module: string; // the module that owns that resource
63
+ };
64
+ ```
65
+
66
+ - **`name`** — the storage-drive or key-value-store name (matches the value passed to `defineStorageDrive` / `defineKeyValueStore`).
67
+ - **`module`** — the module that owns that resource. For a store owned by the current service this is the service's own module name; set it to another module to key a foreign resource.
68
+
69
+ ## Examples
70
+
71
+ ```typescript
72
+ import { defineKeyValueStore } from 'quidproquo-core';
73
+ import { defineStorageDrive } from 'quidproquo-core';
74
+ import { defineAwsKmsKey, AwsKmsKeyTargetType } from 'quidproquo-config-aws';
75
+
76
+ export default [
77
+ // A drive and a store that both request customer-managed encryption
78
+ defineStorageDrive('user-uploads', { encryption: true }),
79
+ defineKeyValueStore('billing', 'invoiceId', { encryption: true }),
80
+
81
+ // Bind each to its KMS key
82
+ defineAwsKmsKey(
83
+ 'uploads-key',
84
+ 'arn:aws:kms:us-east-1:123456789012:key/uploads-...',
85
+ AwsKmsKeyTargetType.storageDrive,
86
+ { name: 'user-uploads', module: 'my-service' },
87
+ ),
88
+ defineAwsKmsKey(
89
+ 'billing-key',
90
+ 'arn:aws:kms:us-east-1:123456789012:key/billing-...',
91
+ AwsKmsKeyTargetType.keyValueStore,
92
+ { name: 'billing', module: 'my-service' },
93
+ ),
94
+ ];
95
+ ```
96
+
97
+ ## Related
98
+
99
+ - [defineStorageDrive](../core/storage-drive.md) — its `encryption` flag selects a key registered here.
100
+ - [defineKeyValueStore](../core/key-value-store.md) — its `encryption` flag selects a key registered here.