@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.
- package/dist/commands/config.d.ts +30 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +135 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/deploy.d.ts +2 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +224 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/destroy.d.ts +3 -0
- package/dist/commands/destroy.d.ts.map +1 -0
- package/dist/commands/destroy.js +110 -0
- package/dist/commands/destroy.js.map +1 -0
- package/dist/commands/init.d.ts +25 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +513 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/map.d.ts +8 -0
- package/dist/commands/map.d.ts.map +1 -0
- package/dist/commands/map.js +186 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/commands/ship.d.ts +20 -0
- package/dist/commands/ship.d.ts.map +1 -0
- package/dist/commands/ship.js +445 -0
- package/dist/commands/ship.js.map +1 -0
- package/dist/commands/templates.d.ts +3 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +120 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/_shared/city.config.json.tmpl +24 -0
- package/dist/templates/_shared/dotnet-api/Api.csproj +17 -0
- package/dist/templates/_shared/dotnet-api/Program.cs +58 -0
- package/dist/templates/_shared/dotnet-api/aws-lambda-tools-defaults.json +10 -0
- package/dist/templates/_shared/dotnet-api/obj/Api.csproj.nuget.dgspec.json +80 -0
- package/dist/templates/_shared/dotnet-api/obj/Api.csproj.nuget.g.props +15 -0
- package/dist/templates/_shared/dotnet-api/obj/Api.csproj.nuget.g.targets +2 -0
- package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
- package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
- package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
- package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
- package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
- package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.assets.cache +0 -0
- package/dist/templates/_shared/dotnet-api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
- package/dist/templates/_shared/dotnet-api/obj/project.assets.json +708 -0
- package/dist/templates/_shared/dotnet-api/obj/project.nuget.cache +35 -0
- package/dist/templates/_shared/dotnet-api-postgres/Api.csproj +19 -0
- package/dist/templates/_shared/dotnet-api-postgres/Program.cs +167 -0
- package/dist/templates/_shared/dotnet-api-postgres/aws-lambda-tools-defaults.json +10 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Api.csproj.nuget.dgspec.json +88 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Api.csproj.nuget.g.props +15 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Api.csproj.nuget.g.targets +2 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/Debug/net8.0/Api.assets.cache +0 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/project.assets.json +106 -0
- package/dist/templates/_shared/dotnet-api-postgres/obj/project.nuget.cache +15 -0
- package/dist/templates/_shared/nuxt-frontend/app.vue +3 -0
- package/dist/templates/_shared/nuxt-frontend/nuxt.config.ts +25 -0
- package/dist/templates/_shared/nuxt-frontend/package.json.tmpl +19 -0
- package/dist/templates/_shared/nuxt-frontend/pages/index.vue +6 -0
- package/dist/templates/_shared/nuxt-frontend/public/.gitkeep +0 -0
- package/dist/templates/_shared/nuxt-frontend/tsconfig.json +3 -0
- package/dist/templates/_shared/webapp-cdk-package.json.tmpl +23 -0
- package/dist/templates/_shared/webapp-frontend/app.vue +3 -0
- package/dist/templates/_shared/webapp-frontend/nuxt.config.ts +25 -0
- package/dist/templates/_shared/webapp-frontend/package.json.tmpl +19 -0
- package/dist/templates/_shared/webapp-frontend/pages/index.vue +7 -0
- package/dist/templates/_shared/webapp-frontend/public/.gitkeep +0 -0
- package/dist/templates/_shared/webapp-frontend/tsconfig.json +3 -0
- package/dist/templates/lambda-api-nodejs/README.md.tmpl +203 -0
- package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/index.ts +89 -0
- package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/package.json +17 -0
- package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/tsconfig.json +8 -0
- package/dist/templates/lambda-api-nodejs/cdk/app.ts.tmpl +53 -0
- package/dist/templates/lambda-api-nodejs/cdk/cdk.json +68 -0
- package/dist/templates/lambda-api-nodejs/cdk/package.json +23 -0
- package/dist/templates/lambda-api-nodejs/cdk/tsconfig.json +9 -0
- package/dist/templates/lambda-api-nodejs/package.json.tmpl +20 -0
- package/dist/templates/lambda-api-nodejs/tsconfig.json +27 -0
- package/dist/templates/lambda-dynamo-api/README.md.tmpl +184 -0
- package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/index.ts +109 -0
- package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/package.json +19 -0
- package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/tsconfig.json +24 -0
- package/dist/templates/lambda-dynamo-api/cdk/app.ts.tmpl +59 -0
- package/dist/templates/lambda-dynamo-api/cdk/cdk.json +73 -0
- package/dist/templates/lambda-dynamo-api/cdk/package.json +23 -0
- package/dist/templates/lambda-dynamo-api/cdk/tsconfig.json +14 -0
- package/dist/templates/lambda-dynamo-api/package.json.tmpl +20 -0
- package/dist/templates/lambda-dynamo-api/tsconfig.json +27 -0
- package/dist/templates/lambda-postgres-api/README.md.tmpl +234 -0
- package/dist/templates/lambda-postgres-api/apps/__lambdaName__/index.ts +76 -0
- package/dist/templates/lambda-postgres-api/apps/__lambdaName__/package.json +18 -0
- package/dist/templates/lambda-postgres-api/apps/__lambdaName__/tsconfig.json +26 -0
- package/dist/templates/lambda-postgres-api/cdk/app.ts.tmpl +55 -0
- package/dist/templates/lambda-postgres-api/cdk/cdk.json +4 -0
- package/dist/templates/lambda-postgres-api/cdk/package.json +23 -0
- package/dist/templates/lambda-postgres-api/cdk/tsconfig.json +25 -0
- package/dist/templates/lambda-postgres-api/package.json.tmpl +20 -0
- package/dist/templates/lambda-postgres-api/tsconfig.json +11 -0
- package/dist/templates/static-site/README.md.tmpl +72 -0
- package/dist/templates/static-site/cdk/app.ts.tmpl +50 -0
- package/dist/templates/static-site/cdk/cdk.json +68 -0
- package/dist/templates/static-site/cdk/package.json +23 -0
- package/dist/templates/static-site/cdk/tsconfig.json +9 -0
- package/dist/templates/static-site/frontend/.gitkeep +0 -0
- package/dist/templates/static-site/frontend/README.md +41 -0
- package/dist/templates/static-site/frontend/package.json +9 -0
- package/dist/templates/static-site/package.json.tmpl +19 -0
- package/dist/templates/static-site/tsconfig.json +27 -0
- package/dist/templates/webapp-ecs-dotnet/README.md.tmpl +213 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/Api.csproj +12 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/Dockerfile +30 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/Program.cs +85 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +70 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Api.csproj.nuget.g.props +15 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/project.assets.json +75 -0
- package/dist/templates/webapp-ecs-dotnet/apps/api/obj/project.nuget.cache +8 -0
- package/dist/templates/webapp-ecs-dotnet/cdk/app.ts.tmpl +60 -0
- package/dist/templates/webapp-ecs-dotnet/cdk/cdk.json +38 -0
- package/dist/templates/webapp-ecs-dotnet/cdk/tsconfig.json +25 -0
- package/dist/templates/webapp-ecs-dotnet/package.json.tmpl +23 -0
- package/dist/templates/webapp-ecs-dotnet/tsconfig.json +26 -0
- package/dist/templates/webapp-ecs-node/README.md.tmpl +207 -0
- package/dist/templates/webapp-ecs-node/apps/api/Dockerfile +33 -0
- package/dist/templates/webapp-ecs-node/apps/api/index.ts +74 -0
- package/dist/templates/webapp-ecs-node/apps/api/package.json +22 -0
- package/dist/templates/webapp-ecs-node/apps/api/tsconfig.json +18 -0
- package/dist/templates/webapp-ecs-node/cdk/app.ts.tmpl +60 -0
- package/dist/templates/webapp-ecs-node/cdk/cdk.json +38 -0
- package/dist/templates/webapp-ecs-node/cdk/tsconfig.json +25 -0
- package/dist/templates/webapp-ecs-node/package.json.tmpl +25 -0
- package/dist/templates/webapp-ecs-node/tsconfig.json +26 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/README.md.tmpl +271 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/Api.csproj +17 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/Dockerfile +30 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/Program.cs +194 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +80 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.props +19 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +6 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/project.assets.json +395 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/obj/project.nuget.cache +49 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/cdk/app.ts.tmpl +62 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/cdk/cdk.json +38 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/cdk/tsconfig.json +25 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/package.json.tmpl +23 -0
- package/dist/templates/webapp-ecs-postgres-dotnet/tsconfig.json +26 -0
- package/dist/templates/webapp-ecs-postgres-node/README.md.tmpl +261 -0
- package/dist/templates/webapp-ecs-postgres-node/apps/api/Dockerfile +33 -0
- package/dist/templates/webapp-ecs-postgres-node/apps/api/index.ts +160 -0
- package/dist/templates/webapp-ecs-postgres-node/apps/api/package.json +25 -0
- package/dist/templates/webapp-ecs-postgres-node/apps/api/tsconfig.json +18 -0
- package/dist/templates/webapp-ecs-postgres-node/cdk/app.ts.tmpl +62 -0
- package/dist/templates/webapp-ecs-postgres-node/cdk/cdk.json +38 -0
- package/dist/templates/webapp-ecs-postgres-node/cdk/tsconfig.json +25 -0
- package/dist/templates/webapp-ecs-postgres-node/package.json.tmpl +25 -0
- package/dist/templates/webapp-ecs-postgres-node/tsconfig.json +26 -0
- package/dist/templates/webapp-lambda-dotnet/README.md.tmpl +188 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/Api.csproj +17 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/Program.cs +58 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/aws-lambda-tools-defaults.json +10 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +80 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Api.csproj.nuget.g.props +15 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/project.assets.json +708 -0
- package/dist/templates/webapp-lambda-dotnet/apps/api/obj/project.nuget.cache +35 -0
- package/dist/templates/webapp-lambda-dotnet/cdk/app.ts.tmpl +59 -0
- package/dist/templates/webapp-lambda-dotnet/cdk/cdk.json +68 -0
- package/dist/templates/webapp-lambda-dotnet/cdk/tsconfig.json +9 -0
- package/dist/templates/webapp-lambda-dotnet/package.json.tmpl +23 -0
- package/dist/templates/webapp-lambda-dotnet/tsconfig.json +27 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/README.md.tmpl +223 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/Api.csproj +18 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/Program.cs +155 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/aws-lambda-tools-defaults.json +10 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +84 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Api.csproj.nuget.g.props +19 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/Debug/net8.0/Api.csproj.AssemblyReference.cache +0 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/project.assets.json +989 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/obj/project.nuget.cache +223 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/app.ts.tmpl +65 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/cdk.json +68 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/tsconfig.json +9 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/package.json.tmpl +23 -0
- package/dist/templates/webapp-lambda-dynamo-dotnet/tsconfig.json +27 -0
- package/dist/templates/webapp-lambda-dynamo-node/README.md.tmpl +189 -0
- package/dist/templates/webapp-lambda-dynamo-node/apps/api/index.ts +109 -0
- package/dist/templates/webapp-lambda-dynamo-node/apps/api/package.json +19 -0
- package/dist/templates/webapp-lambda-dynamo-node/apps/api/tsconfig.json +8 -0
- package/dist/templates/webapp-lambda-dynamo-node/cdk/app.ts.tmpl +65 -0
- package/dist/templates/webapp-lambda-dynamo-node/cdk/cdk.json +68 -0
- package/dist/templates/webapp-lambda-dynamo-node/cdk/tsconfig.json +9 -0
- package/dist/templates/webapp-lambda-dynamo-node/package.json.tmpl +24 -0
- package/dist/templates/webapp-lambda-dynamo-node/tsconfig.json +27 -0
- package/dist/templates/webapp-lambda-node/README.md.tmpl +179 -0
- package/dist/templates/webapp-lambda-node/apps/api/index.ts +100 -0
- package/dist/templates/webapp-lambda-node/apps/api/package.json +17 -0
- package/dist/templates/webapp-lambda-node/apps/api/tsconfig.json +8 -0
- package/dist/templates/webapp-lambda-node/cdk/app.ts.tmpl +59 -0
- package/dist/templates/webapp-lambda-node/cdk/cdk.json +68 -0
- package/dist/templates/webapp-lambda-node/cdk/tsconfig.json +9 -0
- package/dist/templates/webapp-lambda-node/package.json.tmpl +24 -0
- package/dist/templates/webapp-lambda-node/tsconfig.json +27 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/README.md.tmpl +240 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/Api.csproj +19 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/Program.cs +167 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/aws-lambda-tools-defaults.json +10 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Api.csproj.nuget.dgspec.json +88 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.props +15 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Api.csproj.nuget.g.targets +2 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfo.cs +22 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.AssemblyInfoInputs.cache +1 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GeneratedMSBuildEditorConfig.editorconfig +19 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.GlobalUsings.g.cs +17 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/Debug/net8.0/Api.assets.cache +0 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/project.assets.json +106 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/obj/project.nuget.cache +15 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/cdk/app.ts.tmpl +61 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/cdk/cdk.json +68 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/cdk/tsconfig.json +9 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/package.json.tmpl +23 -0
- package/dist/templates/webapp-lambda-postgres-dotnet/tsconfig.json +27 -0
- package/dist/templates/webapp-lambda-postgres-node/README.md.tmpl +190 -0
- package/dist/templates/webapp-lambda-postgres-node/apps/api/index.ts +76 -0
- package/dist/templates/webapp-lambda-postgres-node/apps/api/package.json +18 -0
- package/dist/templates/webapp-lambda-postgres-node/apps/api/tsconfig.json +8 -0
- package/dist/templates/webapp-lambda-postgres-node/cdk/app.ts.tmpl +61 -0
- package/dist/templates/webapp-lambda-postgres-node/cdk/cdk.json +68 -0
- package/dist/templates/webapp-lambda-postgres-node/cdk/tsconfig.json +9 -0
- package/dist/templates/webapp-lambda-postgres-node/package.json.tmpl +24 -0
- package/dist/templates/webapp-lambda-postgres-node/tsconfig.json +27 -0
- package/dist/utils/aws.d.ts +4 -0
- package/dist/utils/aws.d.ts.map +1 -0
- package/dist/utils/aws.js +90 -0
- package/dist/utils/aws.js.map +1 -0
- package/dist/utils/dependencies.d.ts +27 -0
- package/dist/utils/dependencies.d.ts.map +1 -0
- package/dist/utils/dependencies.js +267 -0
- package/dist/utils/dependencies.js.map +1 -0
- package/dist/utils/template.d.ts +23 -0
- package/dist/utils/template.d.ts.map +1 -0
- package/dist/utils/template.js +115 -0
- package/dist/utils/template.js.map +1 -0
- 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,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
|
+

|
|
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/)
|