@phila/cli 0.0.1

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 (278) hide show
  1. package/dist/commands/config.d.ts +30 -0
  2. package/dist/commands/config.d.ts.map +1 -0
  3. package/dist/commands/config.js +135 -0
  4. package/dist/commands/config.js.map +1 -0
  5. package/dist/commands/deploy.d.ts +2 -0
  6. package/dist/commands/deploy.d.ts.map +1 -0
  7. package/dist/commands/deploy.js +224 -0
  8. package/dist/commands/deploy.js.map +1 -0
  9. package/dist/commands/destroy.d.ts +3 -0
  10. package/dist/commands/destroy.d.ts.map +1 -0
  11. package/dist/commands/destroy.js +110 -0
  12. package/dist/commands/destroy.js.map +1 -0
  13. package/dist/commands/init.d.ts +25 -0
  14. package/dist/commands/init.d.ts.map +1 -0
  15. package/dist/commands/init.js +513 -0
  16. package/dist/commands/init.js.map +1 -0
  17. package/dist/commands/map.d.ts +8 -0
  18. package/dist/commands/map.d.ts.map +1 -0
  19. package/dist/commands/map.js +186 -0
  20. package/dist/commands/map.js.map +1 -0
  21. package/dist/commands/ship.d.ts +20 -0
  22. package/dist/commands/ship.d.ts.map +1 -0
  23. package/dist/commands/ship.js +445 -0
  24. package/dist/commands/ship.js.map +1 -0
  25. package/dist/commands/templates.d.ts +3 -0
  26. package/dist/commands/templates.d.ts.map +1 -0
  27. package/dist/commands/templates.js +120 -0
  28. package/dist/commands/templates.js.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +82 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/templates/_shared/city.config.json.tmpl +24 -0
  34. package/dist/templates/_shared/dotnet-api/Api.csproj +17 -0
  35. package/dist/templates/_shared/dotnet-api/Program.cs +58 -0
  36. package/dist/templates/_shared/dotnet-api/aws-lambda-tools-defaults.json +10 -0
  37. package/dist/templates/_shared/dotnet-api/obj/Api.csproj.nuget.dgspec.json +80 -0
  38. package/dist/templates/_shared/dotnet-api/obj/Api.csproj.nuget.g.props +15 -0
  39. package/dist/templates/_shared/dotnet-api/obj/Api.csproj.nuget.g.targets +2 -0
  40. package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  41. package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
  42. package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
  43. package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
  44. package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
  45. package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.assets.cache +0 -0
  46. package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
  47. package/dist/templates/_shared/dotnet-api/obj/project.assets.json +708 -0
  48. package/dist/templates/_shared/dotnet-api/obj/project.nuget.cache +35 -0
  49. package/dist/templates/_shared/dotnet-api-postgres/Api.csproj +19 -0
  50. package/dist/templates/_shared/dotnet-api-postgres/Program.cs +167 -0
  51. package/dist/templates/_shared/dotnet-api-postgres/aws-lambda-tools-defaults.json +10 -0
  52. package/dist/templates/_shared/dotnet-api-postgres/obj/Api.csproj.nuget.dgspec.json +88 -0
  53. package/dist/templates/_shared/dotnet-api-postgres/obj/Api.csproj.nuget.g.props +15 -0
  54. package/dist/templates/_shared/dotnet-api-postgres/obj/Api.csproj.nuget.g.targets +2 -0
  55. package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  56. package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
  57. package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
  58. package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
  59. package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
  60. package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.assets.cache +0 -0
  61. package/dist/templates/_shared/dotnet-api-postgres/obj/project.assets.json +106 -0
  62. package/dist/templates/_shared/dotnet-api-postgres/obj/project.nuget.cache +15 -0
  63. package/dist/templates/_shared/nuxt-frontend/app.vue +3 -0
  64. package/dist/templates/_shared/nuxt-frontend/nuxt.config.ts +25 -0
  65. package/dist/templates/_shared/nuxt-frontend/package.json.tmpl +19 -0
  66. package/dist/templates/_shared/nuxt-frontend/pages/index.vue +6 -0
  67. package/dist/templates/_shared/nuxt-frontend/public/.gitkeep +0 -0
  68. package/dist/templates/_shared/nuxt-frontend/tsconfig.json +3 -0
  69. package/dist/templates/_shared/webapp-cdk-package.json.tmpl +23 -0
  70. package/dist/templates/_shared/webapp-frontend/app.vue +3 -0
  71. package/dist/templates/_shared/webapp-frontend/nuxt.config.ts +25 -0
  72. package/dist/templates/_shared/webapp-frontend/package.json.tmpl +19 -0
  73. package/dist/templates/_shared/webapp-frontend/pages/index.vue +7 -0
  74. package/dist/templates/_shared/webapp-frontend/public/.gitkeep +0 -0
  75. package/dist/templates/_shared/webapp-frontend/tsconfig.json +3 -0
  76. package/dist/templates/lambda-api-nodejs/README.md.tmpl +203 -0
  77. package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/index.ts +89 -0
  78. package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/package.json +17 -0
  79. package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/tsconfig.json +8 -0
  80. package/dist/templates/lambda-api-nodejs/cdk/app.ts.tmpl +53 -0
  81. package/dist/templates/lambda-api-nodejs/cdk/cdk.json +68 -0
  82. package/dist/templates/lambda-api-nodejs/cdk/package.json +23 -0
  83. package/dist/templates/lambda-api-nodejs/cdk/tsconfig.json +9 -0
  84. package/dist/templates/lambda-api-nodejs/package.json.tmpl +20 -0
  85. package/dist/templates/lambda-api-nodejs/tsconfig.json +27 -0
  86. package/dist/templates/lambda-dynamo-api/README.md.tmpl +184 -0
  87. package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/index.ts +109 -0
  88. package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/package.json +19 -0
  89. package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/tsconfig.json +24 -0
  90. package/dist/templates/lambda-dynamo-api/cdk/app.ts.tmpl +59 -0
  91. package/dist/templates/lambda-dynamo-api/cdk/cdk.json +73 -0
  92. package/dist/templates/lambda-dynamo-api/cdk/package.json +23 -0
  93. package/dist/templates/lambda-dynamo-api/cdk/tsconfig.json +14 -0
  94. package/dist/templates/lambda-dynamo-api/package.json.tmpl +20 -0
  95. package/dist/templates/lambda-dynamo-api/tsconfig.json +27 -0
  96. package/dist/templates/lambda-postgres-api/README.md.tmpl +234 -0
  97. package/dist/templates/lambda-postgres-api/apps/__lambdaName__/index.ts +76 -0
  98. package/dist/templates/lambda-postgres-api/apps/__lambdaName__/package.json +18 -0
  99. package/dist/templates/lambda-postgres-api/apps/__lambdaName__/tsconfig.json +26 -0
  100. package/dist/templates/lambda-postgres-api/cdk/app.ts.tmpl +55 -0
  101. package/dist/templates/lambda-postgres-api/cdk/cdk.json +4 -0
  102. package/dist/templates/lambda-postgres-api/cdk/package.json +23 -0
  103. package/dist/templates/lambda-postgres-api/cdk/tsconfig.json +25 -0
  104. package/dist/templates/lambda-postgres-api/package.json.tmpl +20 -0
  105. package/dist/templates/lambda-postgres-api/tsconfig.json +11 -0
  106. package/dist/templates/static-site/README.md.tmpl +72 -0
  107. package/dist/templates/static-site/cdk/app.ts.tmpl +50 -0
  108. package/dist/templates/static-site/cdk/cdk.json +68 -0
  109. package/dist/templates/static-site/cdk/package.json +23 -0
  110. package/dist/templates/static-site/cdk/tsconfig.json +9 -0
  111. package/dist/templates/static-site/frontend/.gitkeep +0 -0
  112. package/dist/templates/static-site/frontend/README.md +41 -0
  113. package/dist/templates/static-site/frontend/package.json +9 -0
  114. package/dist/templates/static-site/package.json.tmpl +19 -0
  115. package/dist/templates/static-site/tsconfig.json +27 -0
  116. package/dist/templates/webapp-ecs-dotnet/README.md.tmpl +213 -0
  117. package/dist/templates/webapp-ecs-dotnet/apps/api/Api.csproj +12 -0
  118. package/dist/templates/webapp-ecs-dotnet/apps/api/Dockerfile +30 -0
  119. package/dist/templates/webapp-ecs-dotnet/apps/api/Program.cs +85 -0
  120. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +70 -0
  121. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Api.csproj.nuget.g.props +15 -0
  122. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
  123. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  124. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
  125. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
  126. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
  127. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
  128. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
  129. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/project.assets.json +75 -0
  130. package/dist/templates/webapp-ecs-dotnet/apps/api/obj/project.nuget.cache +8 -0
  131. package/dist/templates/webapp-ecs-dotnet/cdk/app.ts.tmpl +60 -0
  132. package/dist/templates/webapp-ecs-dotnet/cdk/cdk.json +38 -0
  133. package/dist/templates/webapp-ecs-dotnet/cdk/tsconfig.json +25 -0
  134. package/dist/templates/webapp-ecs-dotnet/package.json.tmpl +23 -0
  135. package/dist/templates/webapp-ecs-dotnet/tsconfig.json +26 -0
  136. package/dist/templates/webapp-ecs-node/README.md.tmpl +207 -0
  137. package/dist/templates/webapp-ecs-node/apps/api/Dockerfile +33 -0
  138. package/dist/templates/webapp-ecs-node/apps/api/index.ts +74 -0
  139. package/dist/templates/webapp-ecs-node/apps/api/package.json +22 -0
  140. package/dist/templates/webapp-ecs-node/apps/api/tsconfig.json +18 -0
  141. package/dist/templates/webapp-ecs-node/cdk/app.ts.tmpl +60 -0
  142. package/dist/templates/webapp-ecs-node/cdk/cdk.json +38 -0
  143. package/dist/templates/webapp-ecs-node/cdk/tsconfig.json +25 -0
  144. package/dist/templates/webapp-ecs-node/package.json.tmpl +25 -0
  145. package/dist/templates/webapp-ecs-node/tsconfig.json +26 -0
  146. package/dist/templates/webapp-ecs-postgres-dotnet/README.md.tmpl +271 -0
  147. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/Api.csproj +17 -0
  148. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/Dockerfile +30 -0
  149. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/Program.cs +194 -0
  150. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +80 -0
  151. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.props +19 -0
  152. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +6 -0
  153. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  154. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
  155. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
  156. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
  157. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
  158. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
  159. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
  160. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/project.assets.json +395 -0
  161. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/project.nuget.cache +49 -0
  162. package/dist/templates/webapp-ecs-postgres-dotnet/cdk/app.ts.tmpl +62 -0
  163. package/dist/templates/webapp-ecs-postgres-dotnet/cdk/cdk.json +38 -0
  164. package/dist/templates/webapp-ecs-postgres-dotnet/cdk/tsconfig.json +25 -0
  165. package/dist/templates/webapp-ecs-postgres-dotnet/package.json.tmpl +23 -0
  166. package/dist/templates/webapp-ecs-postgres-dotnet/tsconfig.json +26 -0
  167. package/dist/templates/webapp-ecs-postgres-node/README.md.tmpl +261 -0
  168. package/dist/templates/webapp-ecs-postgres-node/apps/api/Dockerfile +33 -0
  169. package/dist/templates/webapp-ecs-postgres-node/apps/api/index.ts +160 -0
  170. package/dist/templates/webapp-ecs-postgres-node/apps/api/package.json +25 -0
  171. package/dist/templates/webapp-ecs-postgres-node/apps/api/tsconfig.json +18 -0
  172. package/dist/templates/webapp-ecs-postgres-node/cdk/app.ts.tmpl +62 -0
  173. package/dist/templates/webapp-ecs-postgres-node/cdk/cdk.json +38 -0
  174. package/dist/templates/webapp-ecs-postgres-node/cdk/tsconfig.json +25 -0
  175. package/dist/templates/webapp-ecs-postgres-node/package.json.tmpl +25 -0
  176. package/dist/templates/webapp-ecs-postgres-node/tsconfig.json +26 -0
  177. package/dist/templates/webapp-lambda-dotnet/README.md.tmpl +188 -0
  178. package/dist/templates/webapp-lambda-dotnet/apps/api/Api.csproj +17 -0
  179. package/dist/templates/webapp-lambda-dotnet/apps/api/Program.cs +58 -0
  180. package/dist/templates/webapp-lambda-dotnet/apps/api/aws-lambda-tools-defaults.json +10 -0
  181. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +80 -0
  182. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Api.csproj.nuget.g.props +15 -0
  183. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
  184. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  185. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
  186. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
  187. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
  188. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
  189. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
  190. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
  191. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/project.assets.json +708 -0
  192. package/dist/templates/webapp-lambda-dotnet/apps/api/obj/project.nuget.cache +35 -0
  193. package/dist/templates/webapp-lambda-dotnet/cdk/app.ts.tmpl +59 -0
  194. package/dist/templates/webapp-lambda-dotnet/cdk/cdk.json +68 -0
  195. package/dist/templates/webapp-lambda-dotnet/cdk/tsconfig.json +9 -0
  196. package/dist/templates/webapp-lambda-dotnet/package.json.tmpl +23 -0
  197. package/dist/templates/webapp-lambda-dotnet/tsconfig.json +27 -0
  198. package/dist/templates/webapp-lambda-dynamo-dotnet/README.md.tmpl +223 -0
  199. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/Api.csproj +18 -0
  200. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/Program.cs +155 -0
  201. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/aws-lambda-tools-defaults.json +10 -0
  202. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +84 -0
  203. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Api.csproj.nuget.g.props +19 -0
  204. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
  205. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  206. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
  207. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
  208. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
  209. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
  210. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
  211. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
  212. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/project.assets.json +989 -0
  213. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/project.nuget.cache +223 -0
  214. package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/app.ts.tmpl +65 -0
  215. package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/cdk.json +68 -0
  216. package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/tsconfig.json +9 -0
  217. package/dist/templates/webapp-lambda-dynamo-dotnet/package.json.tmpl +23 -0
  218. package/dist/templates/webapp-lambda-dynamo-dotnet/tsconfig.json +27 -0
  219. package/dist/templates/webapp-lambda-dynamo-node/README.md.tmpl +189 -0
  220. package/dist/templates/webapp-lambda-dynamo-node/apps/api/index.ts +109 -0
  221. package/dist/templates/webapp-lambda-dynamo-node/apps/api/package.json +19 -0
  222. package/dist/templates/webapp-lambda-dynamo-node/apps/api/tsconfig.json +8 -0
  223. package/dist/templates/webapp-lambda-dynamo-node/cdk/app.ts.tmpl +65 -0
  224. package/dist/templates/webapp-lambda-dynamo-node/cdk/cdk.json +68 -0
  225. package/dist/templates/webapp-lambda-dynamo-node/cdk/tsconfig.json +9 -0
  226. package/dist/templates/webapp-lambda-dynamo-node/package.json.tmpl +24 -0
  227. package/dist/templates/webapp-lambda-dynamo-node/tsconfig.json +27 -0
  228. package/dist/templates/webapp-lambda-node/README.md.tmpl +179 -0
  229. package/dist/templates/webapp-lambda-node/apps/api/index.ts +100 -0
  230. package/dist/templates/webapp-lambda-node/apps/api/package.json +17 -0
  231. package/dist/templates/webapp-lambda-node/apps/api/tsconfig.json +8 -0
  232. package/dist/templates/webapp-lambda-node/cdk/app.ts.tmpl +59 -0
  233. package/dist/templates/webapp-lambda-node/cdk/cdk.json +68 -0
  234. package/dist/templates/webapp-lambda-node/cdk/tsconfig.json +9 -0
  235. package/dist/templates/webapp-lambda-node/package.json.tmpl +24 -0
  236. package/dist/templates/webapp-lambda-node/tsconfig.json +27 -0
  237. package/dist/templates/webapp-lambda-postgres-dotnet/README.md.tmpl +240 -0
  238. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/Api.csproj +19 -0
  239. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/Program.cs +167 -0
  240. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/aws-lambda-tools-defaults.json +10 -0
  241. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +88 -0
  242. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.props +15 -0
  243. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
  244. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  245. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
  246. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
  247. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
  248. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
  249. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
  250. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/project.assets.json +106 -0
  251. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/project.nuget.cache +15 -0
  252. package/dist/templates/webapp-lambda-postgres-dotnet/cdk/app.ts.tmpl +61 -0
  253. package/dist/templates/webapp-lambda-postgres-dotnet/cdk/cdk.json +68 -0
  254. package/dist/templates/webapp-lambda-postgres-dotnet/cdk/tsconfig.json +9 -0
  255. package/dist/templates/webapp-lambda-postgres-dotnet/package.json.tmpl +23 -0
  256. package/dist/templates/webapp-lambda-postgres-dotnet/tsconfig.json +27 -0
  257. package/dist/templates/webapp-lambda-postgres-node/README.md.tmpl +190 -0
  258. package/dist/templates/webapp-lambda-postgres-node/apps/api/index.ts +76 -0
  259. package/dist/templates/webapp-lambda-postgres-node/apps/api/package.json +18 -0
  260. package/dist/templates/webapp-lambda-postgres-node/apps/api/tsconfig.json +8 -0
  261. package/dist/templates/webapp-lambda-postgres-node/cdk/app.ts.tmpl +61 -0
  262. package/dist/templates/webapp-lambda-postgres-node/cdk/cdk.json +68 -0
  263. package/dist/templates/webapp-lambda-postgres-node/cdk/tsconfig.json +9 -0
  264. package/dist/templates/webapp-lambda-postgres-node/package.json.tmpl +24 -0
  265. package/dist/templates/webapp-lambda-postgres-node/tsconfig.json +27 -0
  266. package/dist/utils/aws.d.ts +4 -0
  267. package/dist/utils/aws.d.ts.map +1 -0
  268. package/dist/utils/aws.js +90 -0
  269. package/dist/utils/aws.js.map +1 -0
  270. package/dist/utils/dependencies.d.ts +27 -0
  271. package/dist/utils/dependencies.d.ts.map +1 -0
  272. package/dist/utils/dependencies.js +267 -0
  273. package/dist/utils/dependencies.js.map +1 -0
  274. package/dist/utils/template.d.ts +23 -0
  275. package/dist/utils/template.d.ts.map +1 -0
  276. package/dist/utils/template.js +115 -0
  277. package/dist/utils/template.js.map +1 -0
  278. package/package.json +48 -0
@@ -0,0 +1,223 @@
1
+ {
2
+ "version": 2,
3
+ "dgSpecHash": "qrcdDGVN3Mw=",
4
+ "success": false,
5
+ "projectFilePath": "/Users/alejandro.lopez/code/phila-ctl/templates/webapp-lambda-dynamo-dotnet/apps/api/Api.csproj",
6
+ "expectedPackageFiles": [
7
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.apigatewayevents/2.7.1/amazon.lambda.apigatewayevents.2.7.1.nupkg.sha512",
8
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.applicationloadbalancerevents/2.2.0/amazon.lambda.applicationloadbalancerevents.2.2.0.nupkg.sha512",
9
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.aspnetcoreserver/9.0.2/amazon.lambda.aspnetcoreserver.9.0.2.nupkg.sha512",
10
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.aspnetcoreserver.hosting/1.7.2/amazon.lambda.aspnetcoreserver.hosting.1.7.2.nupkg.sha512",
11
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.core/2.5.0/amazon.lambda.core.2.5.0.nupkg.sha512",
12
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.logging.aspnetcore/3.1.1/amazon.lambda.logging.aspnetcore.3.1.1.nupkg.sha512",
13
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.runtimesupport/1.12.0/amazon.lambda.runtimesupport.1.12.0.nupkg.sha512",
14
+ "/Users/alejandro.lopez/.nuget/packages/amazon.lambda.serialization.systemtextjson/2.4.4/amazon.lambda.serialization.systemtextjson.2.4.4.nupkg.sha512",
15
+ "/Users/alejandro.lopez/.nuget/packages/awssdk.core/3.7.400/awssdk.core.3.7.400.nupkg.sha512",
16
+ "/Users/alejandro.lopez/.nuget/packages/awssdk.dynamodbv2/3.7.400/awssdk.dynamodbv2.3.7.400.nupkg.sha512",
17
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.configuration/2.1.0/microsoft.extensions.configuration.2.1.0.nupkg.sha512",
18
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.configuration.abstractions/2.1.0/microsoft.extensions.configuration.abstractions.2.1.0.nupkg.sha512",
19
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.configuration.binder/2.1.0/microsoft.extensions.configuration.binder.2.1.0.nupkg.sha512",
20
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/2.1.0/microsoft.extensions.dependencyinjection.abstractions.2.1.0.nupkg.sha512",
21
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.logging/2.1.0/microsoft.extensions.logging.2.1.0.nupkg.sha512",
22
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.logging.abstractions/2.1.0/microsoft.extensions.logging.abstractions.2.1.0.nupkg.sha512",
23
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.options/2.1.0/microsoft.extensions.options.2.1.0.nupkg.sha512",
24
+ "/Users/alejandro.lopez/.nuget/packages/microsoft.extensions.primitives/2.1.0/microsoft.extensions.primitives.2.1.0.nupkg.sha512",
25
+ "/Users/alejandro.lopez/.nuget/packages/snapshotrestore.registry/1.0.0/snapshotrestore.registry.1.0.0.nupkg.sha512",
26
+ "/Users/alejandro.lopez/.nuget/packages/system.memory/4.5.0/system.memory.4.5.0.nupkg.sha512",
27
+ "/Users/alejandro.lopez/.nuget/packages/system.runtime.compilerservices.unsafe/4.5.0/system.runtime.compilerservices.unsafe.4.5.0.nupkg.sha512"
28
+ ],
29
+ "logs": [
30
+ {
31
+ "code": "NU1301",
32
+ "level": "Error",
33
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
34
+ "libraryId": "Amazon.Lambda.Serialization.SystemTextJson"
35
+ },
36
+ {
37
+ "code": "NU1301",
38
+ "level": "Error",
39
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
40
+ "libraryId": "AWSSDK.DynamoDBv2"
41
+ },
42
+ {
43
+ "code": "NU1301",
44
+ "level": "Error",
45
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
46
+ "libraryId": "Amazon.Lambda.AspNetCoreServer.Hosting"
47
+ },
48
+ {
49
+ "code": "NU1301",
50
+ "level": "Error",
51
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
52
+ "libraryId": "AWSSDK.DynamoDBv2"
53
+ },
54
+ {
55
+ "code": "NU1301",
56
+ "level": "Error",
57
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
58
+ "libraryId": "Amazon.Lambda.Serialization.SystemTextJson"
59
+ },
60
+ {
61
+ "code": "NU1301",
62
+ "level": "Error",
63
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
64
+ "libraryId": "Amazon.Lambda.AspNetCoreServer.Hosting"
65
+ },
66
+ {
67
+ "code": "NU1301",
68
+ "level": "Error",
69
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
70
+ "libraryId": "Amazon.Lambda.Core"
71
+ },
72
+ {
73
+ "code": "NU1301",
74
+ "level": "Error",
75
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
76
+ "libraryId": "Amazon.Lambda.AspNetCoreServer"
77
+ },
78
+ {
79
+ "code": "NU1301",
80
+ "level": "Error",
81
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
82
+ "libraryId": "Amazon.Lambda.APIGatewayEvents"
83
+ },
84
+ {
85
+ "code": "NU1301",
86
+ "level": "Error",
87
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
88
+ "libraryId": "Amazon.Lambda.RuntimeSupport"
89
+ },
90
+ {
91
+ "code": "NU1301",
92
+ "level": "Error",
93
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
94
+ "libraryId": "Amazon.Lambda.APIGatewayEvents"
95
+ },
96
+ {
97
+ "code": "NU1301",
98
+ "level": "Error",
99
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
100
+ "libraryId": "Amazon.Lambda.AspNetCoreServer"
101
+ },
102
+ {
103
+ "code": "NU1301",
104
+ "level": "Error",
105
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
106
+ "libraryId": "Amazon.Lambda.Core"
107
+ },
108
+ {
109
+ "code": "NU1301",
110
+ "level": "Error",
111
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
112
+ "libraryId": "Amazon.Lambda.RuntimeSupport"
113
+ },
114
+ {
115
+ "code": "NU1301",
116
+ "level": "Error",
117
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
118
+ "libraryId": "Amazon.Lambda.Logging.AspNetCore"
119
+ },
120
+ {
121
+ "code": "NU1301",
122
+ "level": "Error",
123
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
124
+ "libraryId": "Amazon.Lambda.ApplicationLoadBalancerEvents"
125
+ },
126
+ {
127
+ "code": "NU1301",
128
+ "level": "Error",
129
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
130
+ "libraryId": "Amazon.Lambda.Logging.AspNetCore"
131
+ },
132
+ {
133
+ "code": "NU1301",
134
+ "level": "Error",
135
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
136
+ "libraryId": "Amazon.Lambda.ApplicationLoadBalancerEvents"
137
+ },
138
+ {
139
+ "code": "NU1301",
140
+ "level": "Error",
141
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
142
+ "libraryId": "Microsoft.Extensions.Configuration.Abstractions"
143
+ },
144
+ {
145
+ "code": "NU1301",
146
+ "level": "Error",
147
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
148
+ "libraryId": "Microsoft.Extensions.Logging"
149
+ },
150
+ {
151
+ "code": "NU1301",
152
+ "level": "Error",
153
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
154
+ "libraryId": "Microsoft.Extensions.Primitives"
155
+ },
156
+ {
157
+ "code": "NU1301",
158
+ "level": "Error",
159
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
160
+ "libraryId": "System.Memory"
161
+ },
162
+ {
163
+ "code": "NU1301",
164
+ "level": "Error",
165
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
166
+ "libraryId": "System.Runtime.CompilerServices.Unsafe"
167
+ },
168
+ {
169
+ "code": "NU1301",
170
+ "level": "Error",
171
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
172
+ "libraryId": "Microsoft.Extensions.Configuration.Binder"
173
+ },
174
+ {
175
+ "code": "NU1301",
176
+ "level": "Error",
177
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
178
+ "libraryId": "Microsoft.Extensions.Options"
179
+ },
180
+ {
181
+ "code": "NU1301",
182
+ "level": "Error",
183
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
184
+ "libraryId": "Microsoft.Extensions.Configuration"
185
+ },
186
+ {
187
+ "code": "NU1301",
188
+ "level": "Error",
189
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
190
+ "libraryId": "SnapshotRestore.Registry"
191
+ },
192
+ {
193
+ "code": "NU1301",
194
+ "level": "Error",
195
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
196
+ "libraryId": "SnapshotRestore.Registry"
197
+ },
198
+ {
199
+ "code": "NU1301",
200
+ "level": "Error",
201
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
202
+ "libraryId": "Amazon.Lambda.Core"
203
+ },
204
+ {
205
+ "code": "NU1301",
206
+ "level": "Error",
207
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
208
+ "libraryId": "Amazon.Lambda.Core"
209
+ },
210
+ {
211
+ "code": "NU1301",
212
+ "level": "Error",
213
+ "message": "Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json.",
214
+ "libraryId": "AWSSDK.Core"
215
+ },
216
+ {
217
+ "code": "NU1900",
218
+ "level": "Warning",
219
+ "warningLevel": 1,
220
+ "message": "Error occurred while getting package vulnerability data: Unable to load the service index for source https://philagov-102658671810.d.codeartifact.us-east-1.amazonaws.com/nuget/se-team/v3/index.json."
221
+ }
222
+ ]
223
+ }
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env node
2
+ import 'source-map-support/register';
3
+ import { App, Aspects, Stack } from 'aws-cdk-lib';
4
+ import { AwsSolutionsChecks, NIST80053R5Checks } from 'cdk-nag';
5
+ import { StaticSite, LambdaDynamoApi, Confidentiality, Environment } from '@phila/constructs';
6
+
7
+ const app = new App();
8
+
9
+ // Environment is determined by CDK context
10
+ const environment = app.node.tryGetContext('environment') as Environment;
11
+
12
+ if (!environment) {
13
+ throw new Error('Environment must be specified via context. Use: cdk deploy -c environment=dev');
14
+ }
15
+
16
+ // Read compliance frameworks from context
17
+ const compliance = app.node.tryGetContext('compliance');
18
+ const complianceFrameworks = compliance ? compliance.split(',') : [];
19
+
20
+ // Application context with governance metadata
21
+ const context = {
22
+ appName: '{{appName}}',
23
+ environment,
24
+ department: '{{department}}',
25
+ team: '{{team}}',
26
+ contact: '{{contact}}',
27
+ compliance: complianceFrameworks,
28
+ confidentiality: Confidentiality.{{CONFIDENTIALITY}},
29
+ };
30
+
31
+ // Stack name follows pattern: {appName}-{environment}
32
+ const stack = new Stack(app, '{{appName}}-' + environment, {
33
+ env: {
34
+ account: process.env.CDK_DEFAULT_ACCOUNT,
35
+ region: process.env.CDK_DEFAULT_REGION || 'us-east-1',
36
+ },
37
+ stackName: '{{appName}}-' + environment,
38
+ });
39
+
40
+ // Create the StaticSite construct for the Nuxt frontend
41
+ new StaticSite(stack, '{{appName}}Site', {
42
+ ...context,
43
+ assetDir: '../frontend/dist',
44
+ });
45
+
46
+ // Create the LambdaDynamoApi construct for the .NET API backend with DynamoDB
47
+ new LambdaDynamoApi(stack, '{{appName}}Api', {
48
+ ...context,
49
+ apiId: 'api',
50
+ runtime: 'dotnet8',
51
+ handler: 'Api',
52
+ codeDir: '../apps/api',
53
+ // DynamoDB table configuration
54
+ partitionKey: { name: 'pk', type: 'S' },
55
+ // Uncomment for composite key (partition + sort):
56
+ // sortKey: { name: 'sk', type: 'S' },
57
+ // Uncomment to enable DynamoDB streams:
58
+ // enableStream: true,
59
+ });
60
+
61
+ // Apply compliance checks
62
+ Aspects.of(app).add(new NIST80053R5Checks({ verbose: true }));
63
+ Aspects.of(app).add(new AwsSolutionsChecks({ verbose: true }));
64
+
65
+ app.synth();
@@ -0,0 +1,68 @@
1
+ {
2
+ "app": "npx ts-node --prefer-ts-exts app.ts",
3
+ "watch": {
4
+ "include": ["**"],
5
+ "exclude": [
6
+ "README.md",
7
+ "cdk*.json",
8
+ "**/*.d.ts",
9
+ "**/*.js",
10
+ "tsconfig.json",
11
+ "package*.json",
12
+ "yarn.lock",
13
+ "node_modules",
14
+ "test"
15
+ ]
16
+ },
17
+ "context": {
18
+ "@aws-cdk/aws-lambda:recognizeLayerVersion": true,
19
+ "@aws-cdk/core:checkSecretUsage": true,
20
+ "@aws-cdk/core:target-partitions": ["aws", "aws-cn"],
21
+ "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
22
+ "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
23
+ "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true,
24
+ "@aws-cdk/aws-iam:minimizePolicies": true,
25
+ "@aws-cdk/core:validateSnapshotRemovalPolicy": true,
26
+ "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true,
27
+ "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true,
28
+ "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true,
29
+ "@aws-cdk/aws-apigateway:disableCloudWatchRole": false,
30
+ "@aws-cdk/core:enablePartitionLiterals": true,
31
+ "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true,
32
+ "@aws-cdk/aws-iam:standardizedServicePrincipals": true,
33
+ "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true,
34
+ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true,
35
+ "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true,
36
+ "@aws-cdk/aws-route53-patters:useCertificate": true,
37
+ "@aws-cdk/customresources:installLatestAwsSdkDefault": false,
38
+ "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true,
39
+ "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true,
40
+ "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true,
41
+ "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true,
42
+ "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true,
43
+ "@aws-cdk/aws-redshift:columnId": true,
44
+ "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true,
45
+ "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true,
46
+ "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true,
47
+ "@aws-cdk/aws-kms:aliasNameRef": true,
48
+ "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true,
49
+ "@aws-cdk/core:includePrefixInUniqueNameGeneration": true,
50
+ "@aws-cdk/aws-efs:denyAnonymousAccess": true,
51
+ "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true,
52
+ "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true,
53
+ "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true,
54
+ "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true,
55
+ "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true,
56
+ "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true,
57
+ "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true,
58
+ "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": true,
59
+ "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": true,
60
+ "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": true,
61
+ "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": true,
62
+ "@aws-cdk/aws-eks:nodegroupNameAttribute": true,
63
+ "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": true,
64
+ "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true,
65
+ "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false,
66
+ "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false
67
+ }
68
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist",
5
+ "rootDir": "."
6
+ },
7
+ "include": ["*.ts"],
8
+ "exclude": ["node_modules", "cdk.out"]
9
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "{{appName}}",
3
+ "version": "1.0.0",
4
+ "description": "Web application with Nuxt frontend, .NET Lambda API backend, and DynamoDB",
5
+ "private": true,
6
+ "scripts": {
7
+ "build": "npm run build:frontend && npm run build:api",
8
+ "build:frontend": "cd frontend && npm run build",
9
+ "build:api": "cd apps/api && dotnet publish -c Release -o publish",
10
+ "dev": "cd frontend && npm run dev",
11
+ "test": "npm test --workspaces --if-present",
12
+ "synth": "cd cdk && cdk synth",
13
+ "deploy": "cd cdk && cdk deploy",
14
+ "diff": "cd cdk && cdk diff"
15
+ },
16
+ "workspaces": [
17
+ "cdk",
18
+ "frontend"
19
+ ],
20
+ "devDependencies": {
21
+ "typescript": "^5.3.0"
22
+ }
23
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "commonjs",
5
+ "lib": ["ES2020"],
6
+ "declaration": true,
7
+ "strict": true,
8
+ "noImplicitAny": true,
9
+ "strictNullChecks": true,
10
+ "noImplicitThis": true,
11
+ "alwaysStrict": true,
12
+ "noUnusedLocals": false,
13
+ "noUnusedParameters": false,
14
+ "noImplicitReturns": true,
15
+ "noFallthroughCasesInSwitch": false,
16
+ "inlineSourceMap": true,
17
+ "inlineSources": true,
18
+ "experimentalDecorators": true,
19
+ "strictPropertyInitialization": false,
20
+ "typeRoots": ["./node_modules/@types"],
21
+ "skipLibCheck": true,
22
+ "esModuleInterop": true,
23
+ "forceConsistentCasingInFileNames": true,
24
+ "resolveJsonModule": true
25
+ },
26
+ "exclude": ["node_modules", "cdk.out", "frontend"]
27
+ }
@@ -0,0 +1,189 @@
1
+ # {{appName}}
2
+
3
+ Web application with Nuxt SSG frontend and Lambda API backend with DynamoDB using Philadelphia constructs.
4
+
5
+ Generated on {{timestamp}}
6
+
7
+ ## Architecture
8
+
9
+ ![Architecture Diagram](https://github.com/CityOfPhiladelphia/phila-ctl/blob/main/packages/constructs/docs/diagrams/webapp-lambda-dynamo.drawio)
10
+
11
+ View the [architecture diagram](https://github.com/CityOfPhiladelphia/phila-ctl/blob/main/packages/constructs/docs/diagrams/webapp-lambda-dynamo.drawio) in draw.io or VS Code with the Draw.io extension.
12
+
13
+ ## Quick Start
14
+
15
+ ### Prerequisites
16
+
17
+ - Node.js 20+
18
+ - AWS CLI configured with SSO
19
+ - AWS profile named `phila-{{appName}}`
20
+
21
+ ### Setup
22
+
23
+ ```bash
24
+ # Install dependencies
25
+ npm install
26
+
27
+ # Build all packages
28
+ npm run build
29
+ ```
30
+
31
+ ### Development
32
+
33
+ ```bash
34
+ # Run frontend dev server
35
+ npm run dev
36
+
37
+ # Build frontend for production
38
+ npm run build:frontend
39
+
40
+ # Build API
41
+ npm run build:api
42
+ ```
43
+
44
+ ### Deployment
45
+
46
+ ```bash
47
+ # Configure AWS profile
48
+ export AWS_PROFILE=phila-{{appName}}
49
+
50
+ # Deploy to dev environment
51
+ city deploy dev
52
+
53
+ # Deploy to test environment
54
+ city deploy test
55
+
56
+ # Deploy to production (requires confirmation)
57
+ city deploy prod
58
+ ```
59
+
60
+ ### Shipping Updates
61
+
62
+ ```bash
63
+ # Ship frontend changes to S3/CloudFront
64
+ city ship dev --web
65
+
66
+ # Ship API changes to Lambda
67
+ city ship dev --lambda api
68
+ ```
69
+
70
+ ## Project Structure
71
+
72
+ ```
73
+ .
74
+ ├── cdk/ # CDK infrastructure code
75
+ │ └── app.ts # Main CDK application
76
+ ├── frontend/ # Nuxt 3 SSG frontend
77
+ │ ├── pages/ # File-based routing
78
+ │ ├── app.vue # Root component
79
+ │ └── nuxt.config.ts # Nuxt configuration
80
+ ├── apps/ # Backend code
81
+ │ └── api/ # Lambda API handler
82
+ │ └── index.ts # API routes with DynamoDB
83
+ └── city.config.json # City CLI configuration
84
+ ```
85
+
86
+ ## Frontend
87
+
88
+ The frontend uses [Nuxt 3](https://nuxt.com) with Static Site Generation (SSG):
89
+
90
+ - Pre-renders to static HTML for S3/CloudFront
91
+ - File-based routing in `pages/` directory
92
+ - TypeScript support enabled
93
+
94
+ ### Adding Pages
95
+
96
+ Create Vue files in `frontend/pages/`:
97
+
98
+ ```vue
99
+ <!-- frontend/pages/about.vue -->
100
+ <template>
101
+ <div>
102
+ <h1>About</h1>
103
+ </div>
104
+ </template>
105
+ ```
106
+
107
+ This automatically creates a route at `/about`.
108
+
109
+ ## API
110
+
111
+ The API uses [@phila/philaroute](https://www.npmjs.com/package/@phila/philaroute) for HTTP routing with DynamoDB for data persistence.
112
+
113
+ ### DynamoDB Operations
114
+
115
+ The template includes CRUD operations in `apps/api/index.ts`:
116
+
117
+ ```typescript
118
+ // Get item
119
+ GET /items/:id
120
+
121
+ // Create item (requires { id: string, ...data })
122
+ POST /items
123
+
124
+ // Delete item
125
+ DELETE /items/:id
126
+ ```
127
+
128
+ ### Table Schema
129
+
130
+ The DynamoDB table uses a single-table design with:
131
+ - `pk` (partition key) - Primary identifier
132
+
133
+ To add a sort key, update `cdk/app.ts`:
134
+
135
+ ```typescript
136
+ new LambdaDynamoApi(stack, '{{appName}}Api', {
137
+ ...context,
138
+ partitionKey: { name: 'pk', type: 'S' },
139
+ sortKey: { name: 'sk', type: 'S' }, // Add sort key
140
+ });
141
+ ```
142
+
143
+ ### Environment Variables
144
+
145
+ Lambda functions automatically receive:
146
+ - `APP_NAME` - Application name ({{appName}})
147
+ - `ENVIRONMENT` - Current environment (dev/test/prod)
148
+ - `TABLE_NAME` - DynamoDB table name
149
+
150
+ ## Resources Created
151
+
152
+ This application creates:
153
+
154
+ **Frontend:**
155
+ - **S3 Bucket** - Static asset storage
156
+ - **CloudFront Distribution** - CDN with HTTPS
157
+ - **Origin Access Control** - Secure S3 access
158
+
159
+ **API:**
160
+ - **API Gateway REST API** - HTTP endpoint
161
+ - **Lambda Function** - Serverless compute
162
+ - **DynamoDB Table** - NoSQL database with encryption
163
+ - **VPC Security Group** - Network security
164
+ - **IAM Role** - Permissions for Lambda and DynamoDB
165
+
166
+ **Shared:**
167
+ - **SSM Parameters** - Resource discovery
168
+ - **CloudWatch Logs** - Application logs
169
+ - **KMS Keys** - Encryption
170
+
171
+ ## URLs
172
+
173
+ After deployment, URLs are available via:
174
+
175
+ ```bash
176
+ # Frontend URL
177
+ city config list --env dev | grep cloudfront
178
+
179
+ # API URL
180
+ city config list --env dev | grep api
181
+ ```
182
+
183
+ ## Support
184
+
185
+ For issues or questions:
186
+ - [Philadelphia Infrastructure Library Documentation](https://github.com/CityOfPhiladelphia/phila-ctl)
187
+ - [philaroute Documentation](https://www.npmjs.com/package/@phila/philaroute)
188
+ - [Nuxt Documentation](https://nuxt.com/docs)
189
+ - [DynamoDB Developer Guide](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/)