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,114 @@
1
+ ---
2
+ title: defineAwsServiceAccountInfo
3
+ description: Bind a service to the AWS account and region it deploys to, and tune its Lambda/logging defaults.
4
+ ---
5
+
6
+ # defineAwsServiceAccountInfo
7
+
8
+ Binds this service to the **AWS account and region** it deploys into, and carries service-wide Lambda and logging defaults. It is the one required AWS setting — the deploy reads the target account/region from here, and cross-module resolution uses the `serviceInfoMap` to locate sibling services in other accounts/regions/environments. Exactly one `defineAwsServiceAccountInfo` is allowed per config.
9
+
10
+ - **On AWS:** consumed throughout `quidproquo-deploy-awscdk` and `quidproquo-actionprocessor-awslambda` via `getAwsServiceAccountInfoConfig` and friends. `deployAccountId`/`deployRegion` set the CloudFormation stack env; `apiLayers` become Lambda layer references; `lambdaMaxMemoryInMiB` sets the default function memory; the `disable*` flags toggle X-Ray tracing, reserved concurrency, and the Lambda-warming schedule; `logServiceName`, `disableLogs`, and `instantLogs` drive the logging pipeline. Resources across the `serviceInfoMap` are matched by module/environment/feature/application to resolve cross-service references.
11
+
12
+ ```typescript
13
+ import { defineAwsServiceAccountInfo } from 'quidproquo-config-aws';
14
+
15
+ export default [
16
+ defineAwsServiceAccountInfo('123456789012', 'us-east-1'),
17
+ ];
18
+ ```
19
+
20
+ ## Signature
21
+
22
+ ```typescript
23
+ function defineAwsServiceAccountInfo(
24
+ deployAccountId: string,
25
+ deployRegion: string,
26
+ serviceInfoMap?: ServiceAccountInfo[],
27
+ options?: QPQConfigAdvancedAwsServiceAccountInfoSettings,
28
+ ): AwsServiceAccountInfoQPQConfigSetting;
29
+ ```
30
+
31
+ ## Parameters
32
+
33
+ ### `deployAccountId` — `string` (required)
34
+
35
+ The AWS account id this service deploys into. Sets the CloudFormation stack account and is the default account for the service's own resources.
36
+
37
+ ### `deployRegion` — `string` (required)
38
+
39
+ The AWS region this service deploys into.
40
+
41
+ ### `serviceInfoMap` — `ServiceAccountInfo[]` (optional, default `[]`)
42
+
43
+ The account/region (and environment/feature) coordinates of **other** services this one references, so cross-module resource lookups can resolve resources that live in different accounts, regions, environments, or features. The current service's own entry is added automatically. Each entry:
44
+
45
+ ```typescript
46
+ type ServiceAccountInfo = {
47
+ moduleName: string;
48
+ applicationName?: string;
49
+ environment?: string;
50
+ feature?: string;
51
+ awsAccountId: string;
52
+ awsRegion: string;
53
+ };
54
+ ```
55
+
56
+ - **`moduleName`** — the module (service) name being located.
57
+ - **`applicationName` / `environment` / `feature`** — optional narrowing; unset parts match the current service. Cross-service resolution scores candidates by how specifically they match.
58
+ - **`awsAccountId` / `awsRegion`** — where that module is deployed.
59
+
60
+ ### `options` — `QPQConfigAdvancedAwsServiceAccountInfoSettings` (optional)
61
+
62
+ | Property | Type | Default | Description |
63
+ | --- | --- | --- | --- |
64
+ | `apiLayers` | `ApiLayer[]` | `[]` | Lambda layers to attach to the service's functions. See [ApiLayer](#apilayer). |
65
+ | `lambdaMaxMemoryInMiB` | `number` | `1024` | Default memory (MiB) for the service's Lambda functions. Individual functions may still override this. |
66
+ | `logServiceName` | `string` | – | The service name used when writing structured logs. |
67
+ | `disableLogs` | `boolean` | `false` | Turn off the log-shipping pipeline for the service. |
68
+ | `disableLambdaWarming` | `boolean` | `false` | Don't create the scheduled warming rule that keeps functions warm. |
69
+ | `disableReservedConcurrency` | `boolean` | `false` | Don't apply reserved concurrency to functions (leaves them on unreserved account concurrency). |
70
+ | `disableTracing` | `boolean` | `false` | Deploy functions with X-Ray tracing set to `DISABLED` instead of `ACTIVE`. |
71
+ | `instantLogs` | `boolean` | `false` | Flush logs immediately rather than batching them (higher cost/visibility trade-off). |
72
+
73
+ ### `ApiLayer`
74
+
75
+ ```typescript
76
+ interface ApiLayer {
77
+ buildPath?: string;
78
+ name: string;
79
+ layerArn?: string;
80
+ }
81
+ ```
82
+
83
+ - **`name`** — identifier for the layer.
84
+ - **`buildPath`** — optional local path to build the layer from.
85
+ - **`layerArn`** — optional ARN of an existing published layer to reference.
86
+
87
+ ## Examples
88
+
89
+ ```typescript
90
+ import { defineAwsServiceAccountInfo } from 'quidproquo-config-aws';
91
+
92
+ export default [
93
+ // Minimal: just the deploy target
94
+ defineAwsServiceAccountInfo('123456789012', 'us-east-1'),
95
+
96
+ // With a sibling service in another account and some tuning
97
+ defineAwsServiceAccountInfo(
98
+ '123456789012',
99
+ 'us-east-1',
100
+ [
101
+ { moduleName: 'billing-service', awsAccountId: '210987654321', awsRegion: 'us-east-1' },
102
+ ],
103
+ {
104
+ lambdaMaxMemoryInMiB: 2048,
105
+ disableLambdaWarming: true,
106
+ },
107
+ ),
108
+ ];
109
+ ```
110
+
111
+ ## Related
112
+
113
+ - [defineAwsServiceDashboard](./aws-service-dashboard.md) and [defineAwsAlarm](./aws-alarm.md) — operational monitoring for the service defined here.
114
+ - [defineAwsVirtualNetworkSettings](./aws-virtual-network-settings.md) — VPC tuning for the same service.
@@ -0,0 +1,61 @@
1
+ ---
2
+ title: defineAwsServiceDashboard
3
+ description: Deploy a ready-made operational CloudWatch dashboard for the service, with anomaly detection.
4
+ ---
5
+
6
+ # defineAwsServiceDashboard
7
+
8
+ Adds a default operational **CloudWatch dashboard** for this service — a single, config-derived view of its API traffic/errors/latency, Lambda invocations/errors/duration/concurrency, DynamoDB throttles/capacity, queue depth, and WAF allowed/blocked counts. It also enables anomaly detection on API latency and Lambda duration, with latency anomaly alarms routed the same way as the default per-resource alarms. Declare it on a service you want to watch operationally.
9
+
10
+ - **On AWS:** deploys an `aws_cloudwatch.Dashboard` (`QpqConfigAwsDashboardConstruct` in `quidproquo-deploy-awscdk`). Widgets are built purely from config-derived resource names — API routes, service functions, queue consumers, schedules, and websocket handler Lambdas (infra Lambdas like deploy-event and storage-drive triggers are deliberately excluded). Unless disabled, it also creates anomaly-detector models (free) on API latency and Lambda duration to power the band widgets, plus API latency anomaly alarms that route via [`defineNotifyError`](../core/notify-error.md) (same opt-in and targets as the default resource alarms). Websocket APIs are absent from the metric widgets because their metrics dimension on the AWS-generated API id, which isn't knowable from config.
11
+
12
+ :::note Cost
13
+ CloudWatch dashboards are roughly US$3/month each beyond the first 3 free per account, so a dashboard per service adds up. Declare this only on services worth watching.
14
+ :::
15
+
16
+ ```typescript
17
+ import { defineAwsServiceDashboard } from 'quidproquo-config-aws';
18
+
19
+ export default [
20
+ defineAwsServiceDashboard(),
21
+ ];
22
+ ```
23
+
24
+ ## Signature
25
+
26
+ ```typescript
27
+ function defineAwsServiceDashboard(
28
+ options?: Omit<AwsServiceDashboardQPQConfigSetting, 'configSettingType' | 'uniqueKey'>,
29
+ ): AwsServiceDashboardQPQConfigSetting;
30
+ ```
31
+
32
+ ## Parameters
33
+
34
+ ### `options` (optional)
35
+
36
+ | Property | Type | Default | Description |
37
+ | --- | --- | --- | --- |
38
+ | `disableAnomalyDetection` | `boolean` | `false` | Skip the anomaly-detector models, the anomaly-band widgets, and the API latency anomaly alarms. The rest of the dashboard (plain metric widgets) is still deployed. |
39
+
40
+ :::note
41
+ This is a single, service-wide setting (its `uniqueKey` is fixed) — declare it at most once per service.
42
+ :::
43
+
44
+ ## Examples
45
+
46
+ ```typescript
47
+ import { defineAwsServiceDashboard } from 'quidproquo-config-aws';
48
+
49
+ export default [
50
+ // Full dashboard with anomaly detection
51
+ defineAwsServiceDashboard(),
52
+
53
+ // Dashboard without the anomaly-detection models, bands, and alarms
54
+ defineAwsServiceDashboard({ disableAnomalyDetection: true }),
55
+ ];
56
+ ```
57
+
58
+ ## Related
59
+
60
+ - [defineAwsAlarm](./aws-alarm.md) — declare an additional custom alarm on a specific metric.
61
+ - [defineNotifyError](../core/notify-error.md) — the routing target the dashboard's latency anomaly alarms use.
@@ -0,0 +1,88 @@
1
+ ---
2
+ title: defineAwsVirtualNetworkSettings
3
+ description: Tune the AWS VPC (AZs, NAT, endpoints, flow logs) that backs a core virtual network.
4
+ ---
5
+
6
+ # defineAwsVirtualNetworkSettings
7
+
8
+ Tunes the AWS **VPC** that backs a core [`defineVirtualNetwork(name)`](../core/virtual-network.md). The core define declares the network provider-agnostically; this AWS setting layers on the concrete VPC knobs — availability zones, NAT gateways, gateway/interface endpoints, and flow logs. It is secure-by-default: even when you never declare it, VPCs get flow logs to CloudWatch and the free S3/DynamoDB gateway endpoints. Declare it (keyed by the same network name) only to opt out of a default or to add interface endpoints / NAT / AZ overrides.
9
+
10
+ - **On AWS:** resolved by `getAwsVirtualNetworkSettings` (falling back to defaults when absent) and applied by `BootstrapQpqCoreVirtualNetworkConstruct` in `quidproquo-deploy-awscdk`. It sets the VPC's `maxAzs` and `natGateways`, adds S3 and DynamoDB gateway endpoints unless disabled, adds any requested interface endpoints (one ENI per AZ, private DNS on), and — unless disabled — creates a flow-log group at `/qpq/vpc-flow-logs/{vpcName}` with the requested retention and traffic type.
11
+
12
+ ```typescript
13
+ import { defineVirtualNetwork } from 'quidproquo-core';
14
+ import { defineAwsVirtualNetworkSettings } from 'quidproquo-config-aws';
15
+
16
+ export default [
17
+ defineVirtualNetwork('private-net'),
18
+
19
+ // Cheaper non-prod VPC: a single NAT gateway
20
+ defineAwsVirtualNetworkSettings('private-net', {
21
+ natGateways: 1,
22
+ }),
23
+ ];
24
+ ```
25
+
26
+ ## Signature
27
+
28
+ ```typescript
29
+ function defineAwsVirtualNetworkSettings(
30
+ virtualNetworkName: string,
31
+ options?: QPQConfigAdvancedAwsVirtualNetworkSettings,
32
+ ): AwsVirtualNetworkQPQConfigSetting;
33
+ ```
34
+
35
+ ## Parameters
36
+
37
+ ### `virtualNetworkName` — `string` (required)
38
+
39
+ The name of the core virtual network these settings apply to — it must match the name passed to `defineVirtualNetwork`. This is also the setting's `uniqueKey`.
40
+
41
+ ### `options` — `QPQConfigAdvancedAwsVirtualNetworkSettings` (optional)
42
+
43
+ | Property | Type | Default | Description |
44
+ | --- | --- | --- | --- |
45
+ | `flowLogs` | `AwsVirtualNetworkFlowLogSettings` | flow logs on | VPC flow-log configuration. See [Flow logs](#flow-logs). |
46
+ | `disableS3GatewayEndpoint` | `boolean` | `false` | Skip the free S3 gateway endpoint. Only disable if you have custom route-table requirements. |
47
+ | `disableDynamoDbGatewayEndpoint` | `boolean` | `false` | Skip the free DynamoDB gateway endpoint. |
48
+ | `interfaceEndpoints` | `string[]` | `[]` | AWS service short names to add interface endpoints for, e.g. `['secretsmanager', 'kms']` — resolved to `com.amazonaws.{region}.{name}`. Each costs roughly US$7.30/mo per AZ (~$14.60/mo at the default `maxAzs` 2) plus $0.01/GB, in exchange for that service's traffic never leaving the VPC (and not being billed through NAT). |
49
+ | `natGateways` | `number` | CDK default (one per AZ) | Number of NAT gateways. `undefined` leaves the CDK default untouched (no subnet/NAT churn on already-deployed VPCs). Set to `1` to halve cost in non-prod (trading AZ redundancy for egress). **`0` is rejected** — qpq Lambdas are placed in `PRIVATE_WITH_EGRESS` subnets, which don't exist in a NAT-less VPC (passing `0` throws). Changing this on a deployed VPC replaces its subnets. |
50
+ | `maxAzs` | `number` | `2` | Number of availability zones. Changing this on a deployed VPC replaces its subnets. |
51
+
52
+ ### Flow logs
53
+
54
+ `AwsVirtualNetworkFlowLogSettings`:
55
+
56
+ | Property | Type | Default | Description |
57
+ | --- | --- | --- | --- |
58
+ | `disable` | `boolean` | `false` | Turn flow logs off. Flow logs are on unless disabled; CloudWatch ingestion is ~US$0.50/GB (typically cents-to-dollars/month for Lambda-only VPCs). |
59
+ | `retentionDays` | `number` | `365` | CloudWatch log-group retention, rounded **up** to the nearest supported `RetentionDays` value at deploy time. |
60
+ | `trafficType` | `AwsVpcFlowLogTrafficType` | `all` | Which traffic to record. |
61
+
62
+ **`AwsVpcFlowLogTrafficType`:** `all`, `accept`, `reject`.
63
+
64
+ ## Examples
65
+
66
+ ```typescript
67
+ import { defineVirtualNetwork } from 'quidproquo-core';
68
+ import { defineAwsVirtualNetworkSettings, AwsVpcFlowLogTrafficType } from 'quidproquo-config-aws';
69
+
70
+ export default [
71
+ defineVirtualNetwork('data-net'),
72
+
73
+ defineAwsVirtualNetworkSettings('data-net', {
74
+ maxAzs: 3,
75
+ // Keep Secrets Manager & KMS traffic inside the VPC
76
+ interfaceEndpoints: ['secretsmanager', 'kms'],
77
+ flowLogs: {
78
+ retentionDays: 30,
79
+ trafficType: AwsVpcFlowLogTrafficType.reject,
80
+ },
81
+ }),
82
+ ];
83
+ ```
84
+
85
+ ## Related
86
+
87
+ - [defineVirtualNetwork](../core/virtual-network.md) — the core, provider-agnostic network these settings tune. Declare both, keyed by the same name.
88
+ - [defineGraphDatabase](../core/graph-database.md) — an in-network data store that runs inside the tuned VPC.
@@ -0,0 +1,80 @@
1
+ ---
2
+ title: defineBootstrapAwsOrganization
3
+ description: Bootstrap an AWS Organizations organizational unit and its member accounts.
4
+ ---
5
+
6
+ # defineBootstrapAwsOrganization
7
+
8
+ Bootstraps an **AWS Organizations organizational unit (OU)** and a set of member AWS accounts placed inside it. Use this when standing up the account/organization structure that your applications will later deploy into.
9
+
10
+ This is an **organization bootstrap setting**: it configures AWS Organizations itself, not a deployed service. It is declared in a bootstrap config and deployed by the bootstrap stack (`BootstrapQpqServiceStack`).
11
+
12
+ - **On AWS:** deploys an `aws_organizations.CfnOrganizationalUnit` under the given root/parent OU, and one `aws_organizations.CfnAccount` per name in `accountNames`, each placed in the new OU. Member accounts are named `<organizationName>-<accountName>`, given a cross-account access role `account-<accountName>-AccessRole`, and assigned a generated `+`-suffixed email derived from `baseEmailAddress` (e.g. `me+<org>-<account>@example.com`). Deployed by `QpqBootstrapConfigAwsOrganizationConstruct`.
13
+
14
+ ```typescript
15
+ import { defineBootstrapAwsOrganization } from 'quidproquo-config-aws';
16
+
17
+ export default [
18
+ defineBootstrapAwsOrganization(
19
+ 'r-abcd', // root/parent OU id
20
+ 'aws+billing@example.com', // base email for generated account emails
21
+ 'acme', // organization / OU name
22
+ ['prod', 'staging', 'dev'],// member account names
23
+ ),
24
+ ];
25
+ ```
26
+
27
+ ## Signature
28
+
29
+ ```typescript
30
+ function defineBootstrapAwsOrganization(
31
+ rootAwsOrganizationalUnitId: string,
32
+ baseEmailAddress: string,
33
+ name: string,
34
+ accountNames: string[],
35
+ ): AwsOrganizationQPQConfigSetting;
36
+ ```
37
+
38
+ ## Parameters
39
+
40
+ ### `rootAwsOrganizationalUnitId` — `string` (required)
41
+
42
+ The id of the parent OU (typically the organization root, e.g. `r-xxxx`) that the new organizational unit is created under. Also forms part of the setting's `uniqueKey` (`<rootAwsOrganizationalUnitId>-<name>`).
43
+
44
+ ### `baseEmailAddress` — `string` (required)
45
+
46
+ A base email address used to generate a unique email for each member account. The construct splits it at `@` and produces `<local>+<organizationName>-<accountName>@<domain>` per account, so every AWS account gets a distinct, deliverable root email from a single mailbox.
47
+
48
+ ### `name` — `string` (required)
49
+
50
+ The organization/OU name. Used as the created OU's name, as the prefix for each member account name (`<name>-<accountName>`), and within the generated account emails and the setting's `uniqueKey`.
51
+
52
+ ### `accountNames` — `string[]` (required)
53
+
54
+ The member accounts to create inside the OU. Each entry produces one AWS account named `<name>-<accountName>` with an access role `account-<accountName>-AccessRole`.
55
+
56
+ ## Notes
57
+
58
+ - Creating AWS accounts via CloudFormation is not reversible in the usual sense — removing an account from `accountNames` does not close the AWS account. Treat this as a one-way bootstrap and manage account lifecycle deliberately.
59
+ - The source additionally sketches (currently commented out) support for per-account user access and an IAM Identity Center (SSO) admin permission set; those are not created by the current implementation.
60
+
61
+ ## Examples
62
+
63
+ ```typescript
64
+ import { defineBootstrapAwsOrganization } from 'quidproquo-config-aws';
65
+
66
+ export default [
67
+ defineBootstrapAwsOrganization(
68
+ 'r-abcd',
69
+ 'aws-ops@example.com',
70
+ 'acme',
71
+ ['prod', 'staging', 'sandbox'],
72
+ ),
73
+ ];
74
+ ```
75
+
76
+ ## Related
77
+
78
+ - [defineBootstrapWaf](./bootstrap-waf.md) — another bootstrap-phase setting deployed by the same `BootstrapQpqServiceStack`.
79
+ - [defineAccountBudget](./account-budget.md), [defineAccountCloudTrail](./account-cloud-trail.md), [defineAccountSecurityServices](./account-security-services.md) — account-level settings applied per member account (from that account's own account config).
80
+ - **AWS implementation:** `QpqBootstrapConfigAwsOrganizationConstruct` (Organizations OU + member accounts) in `quidproquo-deploy-awscdk`.
@@ -0,0 +1,106 @@
1
+ ---
2
+ title: defineBootstrapWaf
3
+ description: Bootstrap the shared AWS WAF web ACLs (regional + CloudFront) for an app/environment that services opt into.
4
+ ---
5
+
6
+ # defineBootstrapWaf
7
+
8
+ Bootstraps the **shared AWS WAF (WAFv2) web ACLs** for an app + environment: a REGIONAL web ACL (for API Gateway stages) and a CLOUDFRONT web ACL (for CloudFront distributions). Both evaluate the same set of rules. Individual services then opt into protection with `defineWafProtection` in their config.
9
+
10
+ This is a **bootstrap setting**: it is created once during the bootstrap phase for the whole app/environment rather than per-service. It is declared in a bootstrap config and deployed by the bootstrap stack (`BootstrapQpqServiceStack`). There is a single `defineBootstrapWaf` per config (its `uniqueKey` is the constant `'bootstrapWaf'`).
11
+
12
+ - **On AWS:** deploys two `aws_wafv2.CfnWebACL`s with `defaultAction: allow` and shared rules. The REGIONAL ACL (`qpq-waf-regional-<app>-<env>`) is created by `QpqBootstrapConfigWafConstruct` in the bootstrap stack and publishes its ARN to SSM; each service's API stack attaches via a `WebACLAssociation`. The CLOUDFRONT ACL (`qpq-waf-cloudfront-<app>-<env>`) must live in `us-east-1`, so it is a sibling stack (`WafCloudFrontWebAclStack`) that hands its ARN back to the deploy region via SSM (directly if deploying to `us-east-1`, otherwise via a cross-region `AwsCustomResource`). CloudWatch metrics and sampled requests are enabled on every rule.
13
+
14
+ ```typescript
15
+ import { defineBootstrapWaf } from 'quidproquo-config-aws';
16
+
17
+ export default [
18
+ defineBootstrapWaf(),
19
+ ];
20
+ ```
21
+
22
+ ## Signature
23
+
24
+ ```typescript
25
+ function defineBootstrapWaf(
26
+ options?: {
27
+ managedRuleGroups?: WafManagedRuleGroup[];
28
+ rateLimits?: WafRateLimit[];
29
+ },
30
+ ): BootstrapWafQPQConfigSetting;
31
+ ```
32
+
33
+ ## Parameters
34
+
35
+ ### `options` — (optional)
36
+
37
+ | Property | Type | Default | Description |
38
+ | --- | --- | --- | --- |
39
+ | `managedRuleGroups` | `WafManagedRuleGroup[]` | `[common, knownBadInputs, sqli]` | AWS-managed rule groups to enable, each added as a managed-rule-group statement with `overrideAction: none`. See [`WafManagedRuleGroup`](#wafmanagedrulegroup). |
40
+ | `rateLimits` | `WafRateLimit[]` | `[]` (none) | Rate-based blocking rules (e.g. brute-force throttling on auth endpoints). Evaluated **before** the managed rule groups. See [`WafRateLimit`](#wafratelimit). |
41
+
42
+ ### `WafManagedRuleGroup`
43
+
44
+ ```typescript
45
+ export enum WafManagedRuleGroup {
46
+ common = 'common', // AWSManagedRulesCommonRuleSet
47
+ knownBadInputs = 'knownBadInputs', // AWSManagedRulesKnownBadInputsRuleSet
48
+ sqli = 'sqli', // AWSManagedRulesSQLiRuleSet
49
+ ipReputation = 'ipReputation', // AWSManagedRulesAmazonIpReputationList
50
+ }
51
+ ```
52
+
53
+ | Member | AWS managed rule set |
54
+ | --- | --- |
55
+ | `common` | `AWSManagedRulesCommonRuleSet` — broad OWASP-style protections. |
56
+ | `knownBadInputs` | `AWSManagedRulesKnownBadInputsRuleSet` — blocks request patterns known to be malicious. |
57
+ | `sqli` | `AWSManagedRulesSQLiRuleSet` — SQL-injection protections. |
58
+ | `ipReputation` | `AWSManagedRulesAmazonIpReputationList` — Amazon IP reputation list. |
59
+
60
+ ### `WafRateLimit`
61
+
62
+ ```typescript
63
+ export interface WafRateLimit {
64
+ name: string;
65
+ limit: number;
66
+ uriPathStartsWith?: string;
67
+ }
68
+ ```
69
+
70
+ | Property | Type | Description |
71
+ | --- | --- | --- |
72
+ | `name` | `string` | Rule name (used to build the WAF rule and metric names, e.g. `rate-limit-<name>`). |
73
+ | `limit` | `number` | Maximum requests per 5-minute window per source IP before that IP is blocked (`aggregateKeyType: IP`). |
74
+ | `uriPathStartsWith` | `string` | Optional. Scope the rate limit to URI paths with this prefix (e.g. `/auth`) via a scope-down byte-match statement. Omit to rate limit all paths. |
75
+
76
+ ## Notes
77
+
78
+ - Rate-limit rules are given the lowest priorities (evaluated first as cheap counters), then the managed rule groups follow.
79
+ - To actually apply these ACLs, a service opts in with `defineWafProtection()` in its (shared) service config; the ACL ARNs are resolved by convention from SSM at deploy time, so the bootstrap must be deployed before the service's API/web stacks.
80
+
81
+ ## Examples
82
+
83
+ ```typescript
84
+ import { defineBootstrapWaf, WafManagedRuleGroup } from 'quidproquo-config-aws';
85
+
86
+ export default [
87
+ defineBootstrapWaf({
88
+ managedRuleGroups: [
89
+ WafManagedRuleGroup.common,
90
+ WafManagedRuleGroup.knownBadInputs,
91
+ WafManagedRuleGroup.sqli,
92
+ WafManagedRuleGroup.ipReputation,
93
+ ],
94
+ rateLimits: [
95
+ { name: 'auth-brute-force', limit: 100, uriPathStartsWith: '/auth' },
96
+ { name: 'global', limit: 5000 },
97
+ ],
98
+ }),
99
+ ];
100
+ ```
101
+
102
+ ## Related
103
+
104
+ - [defineWafProtection](./waf-protection.md) — a per-service setting that opts a service's API Gateway stage and CloudFront distributions into these web ACLs.
105
+ - [defineBootstrapAwsOrganization](./bootstrap-aws-organization.md) — another bootstrap-phase setting deployed by the same `BootstrapQpqServiceStack`.
106
+ - **AWS implementation:** `QpqBootstrapConfigWafConstruct` (regional ACL) and `WafCloudFrontWebAclStack` (CloudFront ACL in us-east-1), with shared rule building in `wafRules.ts`, in `quidproquo-deploy-awscdk`.
@@ -0,0 +1,69 @@
1
+ ---
2
+ title: defineDomainCertificate
3
+ description: Issue a real ACM certificate with DNS validation for a root domain and its subdomains.
4
+ ---
5
+
6
+ # defineDomainCertificate
7
+
8
+ Issues a real **ACM (AWS Certificate Manager) certificate**, DNS-validated against a Route 53 hosted zone, for a root domain and a set of subdomains. This is the concrete certificate that API Gateway and CloudFront distributions use for HTTPS. The webserver [`defineCertificate`](../webserver/certificate.md) is a portable shim that ultimately defers to a domain certificate like this one on AWS.
9
+
10
+ - **On AWS:** each unique `(region, rootDomain)` becomes a `DomainCertificateStack` (via `createDomainCertificateStacks` in `quidproquo-deploy-awscdk`). The stack resolves the root domain through the same environment/feature prefixing as [`defineApi`](../webserver/api.md) (`resolveDomainRoot`), so `rootDomain: "example.com"` in a dev deploy issues against `development.example.com`. It looks up the hosted zone, creates an `aws_certificatemanager.Certificate` with `CertificateValidation.fromDns(...)` covering the resolved subdomains (and the apex when `includeApex`), and publishes the cert ARN to SSM (keyed by region + root domain) — writing cross-region via a custom resource when the cert region differs from the deploy region. Entries sharing a `(region, rootDomain)` are merged into one cert covering the union of their names.
11
+
12
+ ```typescript
13
+ import { defineDomainCertificate } from 'quidproquo-config-aws';
14
+
15
+ export default [
16
+ // A cert for api.example.com and admin.example.com in the deploy region
17
+ defineDomainCertificate('example.com', 'us-east-1', ['api', 'admin']),
18
+ ];
19
+ ```
20
+
21
+ ## Signature
22
+
23
+ ```typescript
24
+ function defineDomainCertificate(
25
+ rootDomain: string,
26
+ region: string,
27
+ subdomains: string[],
28
+ options?: { includeApex?: boolean },
29
+ ): DomainCertificateQPQConfigSetting;
30
+ ```
31
+
32
+ ## Parameters
33
+
34
+ ### `rootDomain` — `string` (required)
35
+
36
+ The base, un-prefixed apex domain — the same value you pass to `defineApi` / web-entry `rootDomain` fields. At synth time it is resolved against the config's environment and feature (a dev deploy of `"example.com"` becomes `development.example.com`, or `myfeature.development.example.com`). Together with `region` it forms the setting's `uniqueKey`.
37
+
38
+ ### `region` — `string` (required)
39
+
40
+ The AWS region to issue the certificate in. CloudFront requires certificates in `us-east-1`, while regional API Gateway certs live in the deploy region — declaring both for the same apex is a valid, merged case.
41
+
42
+ ### `subdomains` — `string[]` (required)
43
+
44
+ The subdomain labels to cover, each combined with the resolved apex (e.g. `'api'` → `api.<resolved-apex>`). At least one subdomain must be declared unless `includeApex` is `true`, or synth throws.
45
+
46
+ ### `options` — `{ includeApex?: boolean }` (optional)
47
+
48
+ | Property | Type | Default | Description |
49
+ | --- | --- | --- | --- |
50
+ | `includeApex` | `boolean` | `false` | Also cover the resolved apex domain itself (in addition to the subdomains). Merged entries OR this flag together. |
51
+
52
+ ## Examples
53
+
54
+ ```typescript
55
+ import { defineDomainCertificate } from 'quidproquo-config-aws';
56
+
57
+ export default [
58
+ // Regional API cert in the deploy region
59
+ defineDomainCertificate('example.com', 'us-east-1', ['api']),
60
+
61
+ // CloudFront cert (must be us-east-1) covering the apex and www
62
+ defineDomainCertificate('example.com', 'us-east-1', ['www'], { includeApex: true }),
63
+ ];
64
+ ```
65
+
66
+ ## Related
67
+
68
+ - [defineCertificate](../webserver/certificate.md) — the portable webserver shim that defers to this real ACM certificate on AWS.
69
+ - [defineApi](../webserver/api.md) — its `rootDomain` uses the same resolution as this certificate's `rootDomain`.
@@ -0,0 +1,84 @@
1
+ ---
2
+ title: defineEventBusQuickSubscription
3
+ description: Attach direct SNS email or webhook subscribers to an event bus, with no compute in between.
4
+ ---
5
+
6
+ # defineEventBusQuickSubscription
7
+
8
+ Attaches **direct SNS subscribers** — an email address or an incident-tool webhook URL — to a core [event bus](../core/event-bus.md), with no queue or Lambda in between. It's for a bus used as an alert channel: messages published to the bus (for example alarm-state changes routed via `onAlarm.publishToEventBus`) reach a human out-of-band, without depending on the service's own compute being healthy. For rich, in-band handling, use the normal bus → queue → function pattern instead.
9
+
10
+ This is an AWS-specific convenience — direct email/webhook delivery is an SNS feature, not a portable event-bus concept — which is why it lives in `quidproquo-config-aws` rather than on core's [`defineEventBus`](../core/event-bus.md).
11
+
12
+ - **On AWS:** resolved by `getEventBusQuickSubscriptions` and applied in `QpqCoreEventBusConstruct` (`quidproquo-deploy-awscdk`) to the bus's SNS topic. An `email` subscription adds an `EmailSubscription`; a `url` subscription adds a `UrlSubscription` (http vs https auto-detected from the URL). Multiple calls for the same bus are additive. Quick subscriptions are **not** supported on FIFO event buses (SNS FIFO topics only allow SQS subscriptions) — declaring one there fails the deploy.
13
+
14
+ ```typescript
15
+ import { defineEventBus } from 'quidproquo-core';
16
+ import { defineEventBusQuickSubscription, EventBusQuickSubscriptionType } from 'quidproquo-config-aws';
17
+
18
+ export default [
19
+ defineEventBus('ops-alerts'),
20
+
21
+ defineEventBusQuickSubscription('ops-alerts', [
22
+ { type: EventBusQuickSubscriptionType.email, email: 'oncall@example.com' },
23
+ ]),
24
+ ];
25
+ ```
26
+
27
+ ## Signature
28
+
29
+ ```typescript
30
+ function defineEventBusQuickSubscription(
31
+ eventBusName: string,
32
+ subscriptions: EventBusQuickSubscription[],
33
+ options?: QPQConfigAdvancedEventBusQuickSubscriptionSettings,
34
+ ): EventBusQuickSubscriptionQPQConfigSetting;
35
+ ```
36
+
37
+ ## Parameters
38
+
39
+ ### `eventBusName` — `string` (required)
40
+
41
+ The name of the event bus to attach subscribers to (the setting's `uniqueKey`). Matches the name passed to `defineEventBus`.
42
+
43
+ ### `subscriptions` — `EventBusQuickSubscription[]` (required)
44
+
45
+ The endpoints SNS delivers to directly. Each is a discriminated union on `type`:
46
+
47
+ ```typescript
48
+ type EventBusQuickSubscription =
49
+ | { type: EventBusQuickSubscriptionType.email; email: string }
50
+ | { type: EventBusQuickSubscriptionType.url; url: string };
51
+ ```
52
+
53
+ | `type` | Field | Delivery |
54
+ | --- | --- | --- |
55
+ | `EventBusQuickSubscriptionType.email` | `email` | Sends an email to the address (SNS email confirmation applies). |
56
+ | `EventBusQuickSubscriptionType.url` | `url` | POSTs to an incident-tool webhook (PagerDuty / Slack / OpsGenie); http/https auto-detected from the URL prefix. |
57
+
58
+ ### `options` — `QPQConfigAdvancedEventBusQuickSubscriptionSettings` (optional)
59
+
60
+ | Property | Type | Default | Description |
61
+ | --- | --- | --- | --- |
62
+ | `owner` | `CrossModuleOwner<'eventBusName'>` | – | The module that owns the target bus when it lives in another service (mirror the `owner` you pass to `defineEventBus`). The subscription then binds only to that owner's bus, so a same-named bus owned by a different module won't accidentally pick it up. Omit for a bus owned by this service. |
63
+
64
+ ## Examples
65
+
66
+ ```typescript
67
+ import { defineEventBus } from 'quidproquo-core';
68
+ import { defineEventBusQuickSubscription, EventBusQuickSubscriptionType } from 'quidproquo-config-aws';
69
+
70
+ export default [
71
+ defineEventBus('ops-alerts'),
72
+
73
+ // Email plus a Slack/PagerDuty webhook — additive across calls
74
+ defineEventBusQuickSubscription('ops-alerts', [
75
+ { type: EventBusQuickSubscriptionType.email, email: 'oncall@example.com' },
76
+ { type: EventBusQuickSubscriptionType.url, url: 'https://hooks.example.com/incident' },
77
+ ]),
78
+ ];
79
+ ```
80
+
81
+ ## Related
82
+
83
+ - [defineEventBus](../core/event-bus.md) — the core bus these subscribers attach to.
84
+ - [defineAwsAlarm](./aws-alarm.md) — publish alarm state to the bus (via `onAlarm.publishToEventBus`) so these subscribers get notified.
@@ -0,0 +1,45 @@
1
+ ---
2
+ title: defineWafProtection
3
+ description: Opt a service's API Gateway stage and CloudFront distributions into the app's WAF web ACLs.
4
+ ---
5
+
6
+ # defineWafProtection
7
+
8
+ Opts this service into the **WAF (web application firewall)** web ACLs created for the app. The web ACLs themselves are provisioned once, in the bootstrap phase, by [`defineBootstrapWaf`](./bootstrap-waf.md) (a regional ACL for API Gateway and a CloudFront ACL in `us-east-1`). This setting is what associates a service's API Gateway stage and CloudFront distributions with those ACLs. It's a separate setting because service configs and the bootstrap config are separate arrays — the ACL ARNs are resolved by convention from SSM at deploy time (so the bootstrap WAF must be deployed first).
9
+
10
+ - **On AWS:** flagged by `isWafProtectionEnabled` and consumed in `quidproquo-deploy-awscdk`. `ApiQpqWebserverApiConstruct` creates a `CfnWebACLAssociation` between the API Gateway stage and the regional web ACL ARN (read from SSM); `WebQpqWebserverWebEntryConstruct` sets the CloudFront distribution's `webAclId` to the CloudFront web ACL ARN (also from SSM). Without a bootstrap WAF deployed, there are no ACL ARNs to resolve.
11
+
12
+ ```typescript
13
+ import { defineWafProtection } from 'quidproquo-config-aws';
14
+
15
+ export default [
16
+ defineWafProtection(),
17
+ ];
18
+ ```
19
+
20
+ ## Signature
21
+
22
+ ```typescript
23
+ function defineWafProtection(): WafProtectionQPQConfigSetting;
24
+ ```
25
+
26
+ ## Parameters
27
+
28
+ This define takes no arguments — it's a presence flag. Include it in a service's config to attach that service's API Gateway stage and CloudFront distributions to the app's WAF web ACLs; omit it to leave the service unprotected. The rule content (managed rule groups, rate limits) is configured on the bootstrap side via [`defineBootstrapWaf`](./bootstrap-waf.md), not here.
29
+
30
+ ## Examples
31
+
32
+ ```typescript
33
+ import { defineWafProtection } from 'quidproquo-config-aws';
34
+
35
+ // A shared service config module
36
+ export default [
37
+ // ...other settings...
38
+ defineWafProtection(),
39
+ ];
40
+ ```
41
+
42
+ ## Related
43
+
44
+ - [defineBootstrapWaf](./bootstrap-waf.md) — creates the regional and CloudFront web ACLs, and configures their managed rule groups and rate limits, in the bootstrap config.
45
+ - [defineApi](../webserver/api.md) — the API Gateway stage that gets the regional ACL association.
@@ -0,0 +1,8 @@
1
+ {
2
+ "label": "quidproquo-core",
3
+ "position": 1,
4
+ "link": {
5
+ "type": "generated-index",
6
+ "description": "Config settings (define* functions) exported from quidproquo-core."
7
+ }
8
+ }