@friggframework/devtools 2.0.0-next.61 → 2.0.0-next.62

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 (305) hide show
  1. package/package.json +14 -7
  2. package/.eslintrc.json +0 -3
  3. package/CHANGELOG.md +0 -132
  4. package/infrastructure/ARCHITECTURE.md +0 -487
  5. package/infrastructure/CLAUDE.md +0 -481
  6. package/infrastructure/HEALTH.md +0 -468
  7. package/infrastructure/README.md +0 -522
  8. package/infrastructure/__tests__/fixtures/mock-aws-resources.js +0 -391
  9. package/infrastructure/__tests__/helpers/test-utils.js +0 -277
  10. package/infrastructure/__tests__/postgres-config.test.js +0 -914
  11. package/infrastructure/__tests__/template-generation.test.js +0 -687
  12. package/infrastructure/create-frigg-infrastructure.js +0 -147
  13. package/infrastructure/docs/POSTGRES-CONFIGURATION.md +0 -630
  14. package/infrastructure/docs/PRE-DEPLOYMENT-HEALTH-CHECK-SPEC.md +0 -1317
  15. package/infrastructure/docs/WEBSOCKET-CONFIGURATION.md +0 -105
  16. package/infrastructure/docs/deployment-instructions.md +0 -268
  17. package/infrastructure/docs/generate-iam-command.md +0 -278
  18. package/infrastructure/docs/iam-policy-templates.md +0 -193
  19. package/infrastructure/domains/database/aurora-builder.js +0 -809
  20. package/infrastructure/domains/database/aurora-builder.test.js +0 -950
  21. package/infrastructure/domains/database/aurora-discovery.js +0 -87
  22. package/infrastructure/domains/database/aurora-discovery.test.js +0 -188
  23. package/infrastructure/domains/database/aurora-resolver.js +0 -210
  24. package/infrastructure/domains/database/aurora-resolver.test.js +0 -347
  25. package/infrastructure/domains/database/migration-builder.js +0 -701
  26. package/infrastructure/domains/database/migration-builder.test.js +0 -321
  27. package/infrastructure/domains/database/migration-resolver.js +0 -163
  28. package/infrastructure/domains/database/migration-resolver.test.js +0 -337
  29. package/infrastructure/domains/health/application/ports/IPropertyReconciler.js +0 -164
  30. package/infrastructure/domains/health/application/ports/IResourceDetector.js +0 -129
  31. package/infrastructure/domains/health/application/ports/IResourceImporter.js +0 -142
  32. package/infrastructure/domains/health/application/ports/IStackRepository.js +0 -131
  33. package/infrastructure/domains/health/application/ports/index.js +0 -26
  34. package/infrastructure/domains/health/application/use-cases/__tests__/execute-resource-import-use-case.test.js +0 -679
  35. package/infrastructure/domains/health/application/use-cases/__tests__/mismatch-analyzer-method-name.test.js +0 -167
  36. package/infrastructure/domains/health/application/use-cases/__tests__/repair-via-import-use-case.test.js +0 -1130
  37. package/infrastructure/domains/health/application/use-cases/execute-resource-import-use-case.js +0 -221
  38. package/infrastructure/domains/health/application/use-cases/reconcile-properties-use-case.js +0 -152
  39. package/infrastructure/domains/health/application/use-cases/reconcile-properties-use-case.test.js +0 -343
  40. package/infrastructure/domains/health/application/use-cases/repair-via-import-use-case.js +0 -535
  41. package/infrastructure/domains/health/application/use-cases/repair-via-import-use-case.test.js +0 -376
  42. package/infrastructure/domains/health/application/use-cases/run-health-check-use-case.js +0 -213
  43. package/infrastructure/domains/health/application/use-cases/run-health-check-use-case.test.js +0 -441
  44. package/infrastructure/domains/health/docs/ACME-DEV-DRIFT-ANALYSIS.md +0 -267
  45. package/infrastructure/domains/health/docs/BUILD-VS-DEPLOYED-TEMPLATE-ANALYSIS.md +0 -324
  46. package/infrastructure/domains/health/docs/ORPHAN-DETECTION-ANALYSIS.md +0 -386
  47. package/infrastructure/domains/health/docs/SPEC-CLEANUP-COMMAND.md +0 -1419
  48. package/infrastructure/domains/health/docs/TDD-IMPLEMENTATION-SUMMARY.md +0 -391
  49. package/infrastructure/domains/health/docs/TEMPLATE-COMPARISON-IMPLEMENTATION.md +0 -551
  50. package/infrastructure/domains/health/domain/entities/issue.js +0 -299
  51. package/infrastructure/domains/health/domain/entities/issue.test.js +0 -528
  52. package/infrastructure/domains/health/domain/entities/property-mismatch.js +0 -108
  53. package/infrastructure/domains/health/domain/entities/property-mismatch.test.js +0 -275
  54. package/infrastructure/domains/health/domain/entities/resource.js +0 -159
  55. package/infrastructure/domains/health/domain/entities/resource.test.js +0 -432
  56. package/infrastructure/domains/health/domain/entities/stack-health-report.js +0 -306
  57. package/infrastructure/domains/health/domain/entities/stack-health-report.test.js +0 -601
  58. package/infrastructure/domains/health/domain/services/__tests__/health-score-percentage-based.test.js +0 -380
  59. package/infrastructure/domains/health/domain/services/__tests__/import-progress-monitor.test.js +0 -971
  60. package/infrastructure/domains/health/domain/services/__tests__/import-template-generator.test.js +0 -1150
  61. package/infrastructure/domains/health/domain/services/__tests__/logical-id-mapper.test.js +0 -672
  62. package/infrastructure/domains/health/domain/services/__tests__/template-parser.test.js +0 -496
  63. package/infrastructure/domains/health/domain/services/__tests__/update-progress-monitor.test.js +0 -419
  64. package/infrastructure/domains/health/domain/services/health-score-calculator.js +0 -248
  65. package/infrastructure/domains/health/domain/services/health-score-calculator.test.js +0 -504
  66. package/infrastructure/domains/health/domain/services/import-progress-monitor.js +0 -195
  67. package/infrastructure/domains/health/domain/services/import-template-generator.js +0 -435
  68. package/infrastructure/domains/health/domain/services/logical-id-mapper.js +0 -345
  69. package/infrastructure/domains/health/domain/services/mismatch-analyzer.js +0 -234
  70. package/infrastructure/domains/health/domain/services/mismatch-analyzer.test.js +0 -431
  71. package/infrastructure/domains/health/domain/services/property-mutability-config.js +0 -382
  72. package/infrastructure/domains/health/domain/services/template-parser.js +0 -245
  73. package/infrastructure/domains/health/domain/services/update-progress-monitor.js +0 -192
  74. package/infrastructure/domains/health/domain/value-objects/health-score.js +0 -138
  75. package/infrastructure/domains/health/domain/value-objects/health-score.test.js +0 -267
  76. package/infrastructure/domains/health/domain/value-objects/property-mutability.js +0 -161
  77. package/infrastructure/domains/health/domain/value-objects/property-mutability.test.js +0 -198
  78. package/infrastructure/domains/health/domain/value-objects/resource-state.js +0 -167
  79. package/infrastructure/domains/health/domain/value-objects/resource-state.test.js +0 -196
  80. package/infrastructure/domains/health/domain/value-objects/stack-identifier.js +0 -192
  81. package/infrastructure/domains/health/domain/value-objects/stack-identifier.test.js +0 -262
  82. package/infrastructure/domains/health/infrastructure/adapters/__tests__/orphan-detection-cfn-tagged.test.js +0 -312
  83. package/infrastructure/domains/health/infrastructure/adapters/__tests__/orphan-detection-multi-stack.test.js +0 -367
  84. package/infrastructure/domains/health/infrastructure/adapters/__tests__/orphan-detection-relationship-analysis.test.js +0 -432
  85. package/infrastructure/domains/health/infrastructure/adapters/aws-property-reconciler.js +0 -784
  86. package/infrastructure/domains/health/infrastructure/adapters/aws-property-reconciler.test.js +0 -1133
  87. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-detector.js +0 -565
  88. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-detector.test.js +0 -554
  89. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-importer.js +0 -318
  90. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-importer.test.js +0 -398
  91. package/infrastructure/domains/health/infrastructure/adapters/aws-stack-repository.js +0 -777
  92. package/infrastructure/domains/health/infrastructure/adapters/aws-stack-repository.test.js +0 -580
  93. package/infrastructure/domains/integration/integration-builder.js +0 -404
  94. package/infrastructure/domains/integration/integration-builder.test.js +0 -690
  95. package/infrastructure/domains/integration/integration-resolver.js +0 -170
  96. package/infrastructure/domains/integration/integration-resolver.test.js +0 -369
  97. package/infrastructure/domains/integration/websocket-builder.js +0 -69
  98. package/infrastructure/domains/integration/websocket-builder.test.js +0 -195
  99. package/infrastructure/domains/networking/vpc-builder.js +0 -2051
  100. package/infrastructure/domains/networking/vpc-builder.test.js +0 -1960
  101. package/infrastructure/domains/networking/vpc-discovery.js +0 -177
  102. package/infrastructure/domains/networking/vpc-discovery.test.js +0 -350
  103. package/infrastructure/domains/networking/vpc-resolver.js +0 -505
  104. package/infrastructure/domains/networking/vpc-resolver.test.js +0 -801
  105. package/infrastructure/domains/parameters/ssm-builder.js +0 -79
  106. package/infrastructure/domains/parameters/ssm-builder.test.js +0 -189
  107. package/infrastructure/domains/parameters/ssm-discovery.js +0 -84
  108. package/infrastructure/domains/parameters/ssm-discovery.test.js +0 -210
  109. package/infrastructure/domains/security/iam-generator.js +0 -816
  110. package/infrastructure/domains/security/iam-generator.test.js +0 -204
  111. package/infrastructure/domains/security/kms-builder.js +0 -415
  112. package/infrastructure/domains/security/kms-builder.test.js +0 -392
  113. package/infrastructure/domains/security/kms-discovery.js +0 -80
  114. package/infrastructure/domains/security/kms-discovery.test.js +0 -177
  115. package/infrastructure/domains/security/kms-resolver.js +0 -96
  116. package/infrastructure/domains/security/kms-resolver.test.js +0 -216
  117. package/infrastructure/domains/security/templates/frigg-deployment-iam-stack.yaml +0 -401
  118. package/infrastructure/domains/security/templates/iam-policy-basic.json +0 -218
  119. package/infrastructure/domains/security/templates/iam-policy-full.json +0 -288
  120. package/infrastructure/domains/shared/base-builder.js +0 -112
  121. package/infrastructure/domains/shared/base-resolver.js +0 -186
  122. package/infrastructure/domains/shared/base-resolver.test.js +0 -305
  123. package/infrastructure/domains/shared/builder-orchestrator.js +0 -212
  124. package/infrastructure/domains/shared/builder-orchestrator.test.js +0 -213
  125. package/infrastructure/domains/shared/cloudformation-discovery-v2.js +0 -334
  126. package/infrastructure/domains/shared/cloudformation-discovery.js +0 -672
  127. package/infrastructure/domains/shared/cloudformation-discovery.test.js +0 -985
  128. package/infrastructure/domains/shared/environment-builder.js +0 -119
  129. package/infrastructure/domains/shared/environment-builder.test.js +0 -247
  130. package/infrastructure/domains/shared/providers/aws-provider-adapter.js +0 -579
  131. package/infrastructure/domains/shared/providers/aws-provider-adapter.test.js +0 -416
  132. package/infrastructure/domains/shared/providers/azure-provider-adapter.stub.js +0 -93
  133. package/infrastructure/domains/shared/providers/cloud-provider-adapter.js +0 -136
  134. package/infrastructure/domains/shared/providers/gcp-provider-adapter.stub.js +0 -82
  135. package/infrastructure/domains/shared/providers/provider-factory.js +0 -108
  136. package/infrastructure/domains/shared/providers/provider-factory.test.js +0 -170
  137. package/infrastructure/domains/shared/resource-discovery.enhanced.test.js +0 -306
  138. package/infrastructure/domains/shared/resource-discovery.js +0 -233
  139. package/infrastructure/domains/shared/resource-discovery.test.js +0 -588
  140. package/infrastructure/domains/shared/types/app-definition.js +0 -205
  141. package/infrastructure/domains/shared/types/discovery-result.js +0 -106
  142. package/infrastructure/domains/shared/types/discovery-result.test.js +0 -258
  143. package/infrastructure/domains/shared/types/index.js +0 -46
  144. package/infrastructure/domains/shared/types/resource-ownership.js +0 -108
  145. package/infrastructure/domains/shared/types/resource-ownership.test.js +0 -101
  146. package/infrastructure/domains/shared/utilities/base-definition-factory.js +0 -394
  147. package/infrastructure/domains/shared/utilities/base-definition-factory.js.bak +0 -338
  148. package/infrastructure/domains/shared/utilities/base-definition-factory.test.js +0 -291
  149. package/infrastructure/domains/shared/utilities/handler-path-resolver.js +0 -134
  150. package/infrastructure/domains/shared/utilities/handler-path-resolver.test.js +0 -268
  151. package/infrastructure/domains/shared/utilities/prisma-layer-manager.js +0 -159
  152. package/infrastructure/domains/shared/utilities/prisma-layer-manager.test.js +0 -444
  153. package/infrastructure/domains/shared/validation/env-validator.js +0 -78
  154. package/infrastructure/domains/shared/validation/env-validator.test.js +0 -173
  155. package/infrastructure/domains/shared/validation/plugin-validator.js +0 -187
  156. package/infrastructure/domains/shared/validation/plugin-validator.test.js +0 -323
  157. package/infrastructure/esbuild.config.js +0 -53
  158. package/infrastructure/index.js +0 -4
  159. package/infrastructure/infrastructure-composer.js +0 -117
  160. package/infrastructure/infrastructure-composer.test.js +0 -1895
  161. package/infrastructure/integration.test.js +0 -383
  162. package/infrastructure/scripts/build-prisma-layer.js +0 -701
  163. package/infrastructure/scripts/build-prisma-layer.test.js +0 -170
  164. package/infrastructure/scripts/build-time-discovery.js +0 -238
  165. package/infrastructure/scripts/build-time-discovery.test.js +0 -379
  166. package/infrastructure/scripts/run-discovery.js +0 -110
  167. package/infrastructure/scripts/verify-prisma-layer.js +0 -72
  168. package/layers/prisma/.build-complete +0 -3
  169. package/layers/prisma/nodejs/package.json +0 -8
  170. package/management-ui/.eslintrc.js +0 -22
  171. package/management-ui/components.json +0 -21
  172. package/management-ui/docs/phase2-integration-guide.md +0 -320
  173. package/management-ui/index.html +0 -13
  174. package/management-ui/package.json +0 -76
  175. package/management-ui/packages/devtools/frigg-cli/ui-command/index.js +0 -302
  176. package/management-ui/postcss.config.js +0 -6
  177. package/management-ui/server/api/backend.js +0 -256
  178. package/management-ui/server/api/cli.js +0 -315
  179. package/management-ui/server/api/codegen.js +0 -663
  180. package/management-ui/server/api/connections.js +0 -857
  181. package/management-ui/server/api/discovery.js +0 -185
  182. package/management-ui/server/api/environment/index.js +0 -1
  183. package/management-ui/server/api/environment/router.js +0 -378
  184. package/management-ui/server/api/environment.js +0 -328
  185. package/management-ui/server/api/integrations.js +0 -876
  186. package/management-ui/server/api/logs.js +0 -248
  187. package/management-ui/server/api/monitoring.js +0 -282
  188. package/management-ui/server/api/open-ide.js +0 -31
  189. package/management-ui/server/api/project.js +0 -1029
  190. package/management-ui/server/api/users/sessions.js +0 -371
  191. package/management-ui/server/api/users/simulation.js +0 -254
  192. package/management-ui/server/api/users.js +0 -362
  193. package/management-ui/server/api-contract.md +0 -275
  194. package/management-ui/server/index.js +0 -873
  195. package/management-ui/server/middleware/errorHandler.js +0 -93
  196. package/management-ui/server/middleware/security.js +0 -32
  197. package/management-ui/server/processManager.js +0 -296
  198. package/management-ui/server/server.js +0 -346
  199. package/management-ui/server/services/aws-monitor.js +0 -413
  200. package/management-ui/server/services/npm-registry.js +0 -347
  201. package/management-ui/server/services/template-engine.js +0 -538
  202. package/management-ui/server/utils/cliIntegration.js +0 -220
  203. package/management-ui/server/utils/environment/auditLogger.js +0 -471
  204. package/management-ui/server/utils/environment/awsParameterStore.js +0 -275
  205. package/management-ui/server/utils/environment/encryption.js +0 -278
  206. package/management-ui/server/utils/environment/envFileManager.js +0 -286
  207. package/management-ui/server/utils/import-commonjs.js +0 -28
  208. package/management-ui/server/utils/response.js +0 -83
  209. package/management-ui/server/websocket/handler.js +0 -325
  210. package/management-ui/src/App.jsx +0 -25
  211. package/management-ui/src/assets/FriggLogo.svg +0 -1
  212. package/management-ui/src/components/AppRouter.jsx +0 -65
  213. package/management-ui/src/components/Button.jsx +0 -70
  214. package/management-ui/src/components/Card.jsx +0 -97
  215. package/management-ui/src/components/EnvironmentCompare.jsx +0 -400
  216. package/management-ui/src/components/EnvironmentEditor.jsx +0 -372
  217. package/management-ui/src/components/EnvironmentImportExport.jsx +0 -469
  218. package/management-ui/src/components/EnvironmentSchema.jsx +0 -491
  219. package/management-ui/src/components/EnvironmentSecurity.jsx +0 -463
  220. package/management-ui/src/components/ErrorBoundary.jsx +0 -73
  221. package/management-ui/src/components/IntegrationCard.jsx +0 -481
  222. package/management-ui/src/components/IntegrationCardEnhanced.jsx +0 -770
  223. package/management-ui/src/components/IntegrationExplorer.jsx +0 -379
  224. package/management-ui/src/components/IntegrationStatus.jsx +0 -336
  225. package/management-ui/src/components/Layout.jsx +0 -716
  226. package/management-ui/src/components/LoadingSpinner.jsx +0 -113
  227. package/management-ui/src/components/RepositoryPicker.jsx +0 -248
  228. package/management-ui/src/components/SessionMonitor.jsx +0 -350
  229. package/management-ui/src/components/StatusBadge.jsx +0 -208
  230. package/management-ui/src/components/UserContextSwitcher.jsx +0 -212
  231. package/management-ui/src/components/UserSimulation.jsx +0 -327
  232. package/management-ui/src/components/Welcome.jsx +0 -434
  233. package/management-ui/src/components/codegen/APIEndpointGenerator.jsx +0 -637
  234. package/management-ui/src/components/codegen/APIModuleSelector.jsx +0 -227
  235. package/management-ui/src/components/codegen/CodeGenerationWizard.jsx +0 -247
  236. package/management-ui/src/components/codegen/CodePreviewEditor.jsx +0 -316
  237. package/management-ui/src/components/codegen/DynamicModuleForm.jsx +0 -271
  238. package/management-ui/src/components/codegen/FormBuilder.jsx +0 -737
  239. package/management-ui/src/components/codegen/IntegrationGenerator.jsx +0 -855
  240. package/management-ui/src/components/codegen/ProjectScaffoldWizard.jsx +0 -797
  241. package/management-ui/src/components/codegen/SchemaBuilder.jsx +0 -303
  242. package/management-ui/src/components/codegen/TemplateSelector.jsx +0 -586
  243. package/management-ui/src/components/codegen/index.js +0 -10
  244. package/management-ui/src/components/connections/ConnectionConfigForm.jsx +0 -362
  245. package/management-ui/src/components/connections/ConnectionHealthMonitor.jsx +0 -182
  246. package/management-ui/src/components/connections/ConnectionTester.jsx +0 -200
  247. package/management-ui/src/components/connections/EntityRelationshipMapper.jsx +0 -292
  248. package/management-ui/src/components/connections/OAuthFlow.jsx +0 -204
  249. package/management-ui/src/components/connections/index.js +0 -5
  250. package/management-ui/src/components/index.js +0 -21
  251. package/management-ui/src/components/monitoring/APIGatewayMetrics.jsx +0 -222
  252. package/management-ui/src/components/monitoring/LambdaMetrics.jsx +0 -169
  253. package/management-ui/src/components/monitoring/MetricsChart.jsx +0 -197
  254. package/management-ui/src/components/monitoring/MonitoringDashboard.jsx +0 -393
  255. package/management-ui/src/components/monitoring/SQSMetrics.jsx +0 -246
  256. package/management-ui/src/components/monitoring/index.js +0 -6
  257. package/management-ui/src/components/monitoring/monitoring.css +0 -218
  258. package/management-ui/src/components/theme-provider.jsx +0 -52
  259. package/management-ui/src/components/theme-toggle.jsx +0 -39
  260. package/management-ui/src/components/ui/badge.tsx +0 -36
  261. package/management-ui/src/components/ui/button.test.jsx +0 -56
  262. package/management-ui/src/components/ui/button.tsx +0 -57
  263. package/management-ui/src/components/ui/card.tsx +0 -76
  264. package/management-ui/src/components/ui/dropdown-menu.tsx +0 -199
  265. package/management-ui/src/components/ui/select.tsx +0 -157
  266. package/management-ui/src/components/ui/skeleton.jsx +0 -15
  267. package/management-ui/src/hooks/useFrigg.jsx +0 -387
  268. package/management-ui/src/hooks/useSocket.jsx +0 -58
  269. package/management-ui/src/index.css +0 -193
  270. package/management-ui/src/lib/utils.ts +0 -6
  271. package/management-ui/src/main.jsx +0 -10
  272. package/management-ui/src/pages/CodeGeneration.jsx +0 -14
  273. package/management-ui/src/pages/Connections.jsx +0 -252
  274. package/management-ui/src/pages/ConnectionsEnhanced.jsx +0 -633
  275. package/management-ui/src/pages/Dashboard.jsx +0 -311
  276. package/management-ui/src/pages/Environment.jsx +0 -314
  277. package/management-ui/src/pages/IntegrationConfigure.jsx +0 -669
  278. package/management-ui/src/pages/IntegrationDiscovery.jsx +0 -567
  279. package/management-ui/src/pages/IntegrationTest.jsx +0 -742
  280. package/management-ui/src/pages/Integrations.jsx +0 -253
  281. package/management-ui/src/pages/Monitoring.jsx +0 -17
  282. package/management-ui/src/pages/Simulation.jsx +0 -155
  283. package/management-ui/src/pages/Users.jsx +0 -492
  284. package/management-ui/src/services/api.js +0 -41
  285. package/management-ui/src/services/apiModuleService.js +0 -193
  286. package/management-ui/src/services/websocket-handlers.js +0 -120
  287. package/management-ui/src/test/api/project.test.js +0 -273
  288. package/management-ui/src/test/components/Welcome.test.jsx +0 -378
  289. package/management-ui/src/test/mocks/server.js +0 -178
  290. package/management-ui/src/test/setup.js +0 -61
  291. package/management-ui/src/test/utils/test-utils.jsx +0 -134
  292. package/management-ui/src/utils/repository.js +0 -98
  293. package/management-ui/src/utils/repository.test.js +0 -118
  294. package/management-ui/src/workflows/phase2-integration-workflows.js +0 -884
  295. package/management-ui/tailwind.config.js +0 -63
  296. package/management-ui/tsconfig.json +0 -37
  297. package/management-ui/tsconfig.node.json +0 -10
  298. package/management-ui/vite.config.js +0 -26
  299. package/management-ui/vitest.config.js +0 -38
  300. package/test/auther-definition-method-tester.js +0 -45
  301. package/test/index.js +0 -9
  302. package/test/integration-validator.js +0 -2
  303. package/test/mock-api-readme.md +0 -102
  304. package/test/mock-api.js +0 -284
  305. package/test/mock-integration.js +0 -78
@@ -1,522 +0,0 @@
1
- # Frigg Infrastructure
2
-
3
- This directory contains the infrastructure-as-code templates and utilities for deploying Frigg applications to AWS.
4
-
5
- ## Quick Start
6
-
7
- ```bash
8
- # Install dependencies
9
- npm install
10
-
11
- # Run infrastructure tests
12
- npm test
13
-
14
- # Deploy basic infrastructure
15
- frigg deploy --stage production
16
-
17
- # Deploy with Phase 3 features
18
- frigg deploy --stage production --enable-phase3
19
- ```
20
-
21
- ## Directory Structure
22
-
23
- ```
24
- infrastructure/
25
- ├── README.md # This file
26
- ├── PHASE3-DEPLOYMENT-GUIDE.md # Phase 3 deployment guide
27
- ├── AWS-DISCOVERY-TROUBLESHOOTING.md # AWS discovery troubleshooting
28
- ├── DEPLOYMENT-INSTRUCTIONS.md # General deployment instructions
29
- ├── README-TESTING.md # Testing strategy documentation
30
- ├──
31
- ├── cloudformation/ # CloudFormation templates
32
- │ ├── monitoring-infrastructure.yaml # Enhanced monitoring (Phase 3)
33
- │ ├── cdn-infrastructure.yaml # CDN and UI distribution (Phase 3)
34
- │ ├── codegen-infrastructure.yaml # Code generation services (Phase 3)
35
- │ ├── alerting-infrastructure.yaml # Advanced alerting (Phase 3)
36
- │ └── deployment-pipeline.yaml # CI/CD pipeline (Phase 3)
37
- ├──
38
- ├── aws-discovery.js # AWS resource discovery utility
39
- ├── build-time-discovery.js # Build-time discovery integration
40
- ├── serverless-template.js # Serverless configuration generator
41
- ├── iam-generator.js # IAM policy generator
42
- ├── create-frigg-infrastructure.js # Infrastructure creation utility
43
- ├── run-discovery.js # Discovery runner script
44
- ├──
45
- ├── __tests__/ # Test files
46
- │ ├── fixtures/ # Test fixtures and mock data
47
- │ └── helpers/ # Test helper utilities
48
- ├── aws-discovery.test.js # AWS discovery tests
49
- ├── build-time-discovery.test.js # Build-time discovery tests
50
- ├── serverless-template.test.js # Serverless template tests
51
- ├── iam-generator.test.js # IAM generator tests
52
- ├── integration.test.js # End-to-end integration tests
53
- └── ... # Additional test files
54
- ```
55
-
56
- ## Infrastructure Components
57
-
58
- ### Core Infrastructure (Phase 1-2)
59
-
60
- #### 1. Serverless Template Generator (`serverless-template.js`)
61
-
62
- Generates complete serverless.yml configurations with:
63
-
64
- - VPC configuration and resource discovery (with optional self-healing)
65
- - NAT/EIP management strategies (`discover`, `createAndManage`, `useExisting`)
66
- - KMS encryption for field-level encryption
67
- - SSM Parameter Store integration
68
- - Integration-specific functions and queues
69
- - WebSocket support for real-time features
70
-
71
- #### 2. AWS Discovery (`aws-discovery.js`)
72
-
73
- Automatically discovers existing AWS resources and highlights misconfigurations:
74
-
75
- - Default VPC and security groups
76
- - Private subnets for Lambda functions (with routing validation)
77
- - Customer-managed KMS keys
78
- - Route tables for VPC endpoints
79
- - NAT gateways / Elastic IPs and whether remediation is required
80
-
81
- #### 3. Build-Time Discovery (`build-time-discovery.js`)
82
-
83
- Integrates AWS discovery into the build process:
84
-
85
- - Pre-build hook for serverless deployments
86
- - Environment variable injection
87
- - Template variable replacement
88
- - Error handling and fallback values
89
-
90
- ### Phase 3 Infrastructure
91
-
92
- #### 1. Enhanced Monitoring (`cloudformation/monitoring-infrastructure.yaml`)
93
-
94
- Production-ready monitoring with:
95
-
96
- - Code generation service monitoring
97
- - UI distribution monitoring
98
- - Advanced CloudWatch dashboards
99
- - Custom metrics and alarms
100
-
101
- #### 2. CDN Infrastructure (`cloudformation/cdn-infrastructure.yaml`)
102
-
103
- CloudFront distribution for UI packages:
104
-
105
- - S3 bucket for multi-framework UI packages
106
- - CloudFront distribution with custom domains
107
- - Lambda function for package deployment
108
- - API Gateway for package management
109
-
110
- #### 3. Code Generation Infrastructure (`cloudformation/codegen-infrastructure.yaml`)
111
-
112
- Serverless code generation platform:
113
-
114
- - SQS queue for generation requests
115
- - Lambda function with AI/ML integration
116
- - DynamoDB tracking table
117
- - S3 storage for templates and generated code
118
- - ElastiCache for template caching
119
-
120
- #### 4. Advanced Alerting (`cloudformation/alerting-infrastructure.yaml`)
121
-
122
- Multi-channel alerting system:
123
-
124
- - Multiple SNS topics for alert severity levels
125
- - Lambda function for alert processing
126
- - PagerDuty and Slack integration
127
- - Composite alarms for system health
128
- - Advanced metrics collection
129
-
130
- #### 5. Deployment Pipeline (`cloudformation/deployment-pipeline.yaml`)
131
-
132
- CI/CD pipeline for automated deployments:
133
-
134
- - CodePipeline with GitHub integration
135
- - CodeBuild projects for backend and UI
136
- - Multi-stage deployment workflow
137
- - Integration testing and approval gates
138
-
139
- ## Configuration Options
140
-
141
- ### App Definition Structure
142
-
143
- ```javascript
144
- const appDefinition = {
145
- // Basic configuration
146
- name: 'my-frigg-app',
147
- provider: 'aws',
148
-
149
- // VPC configuration
150
- vpc: {
151
- enable: true,
152
- management: 'discover', // 'discover' | 'create-new' | 'use-existing'
153
- selfHeal: true, // Let the template repair routing/NAT issues
154
- securityGroupIds: [...], // Optional: custom security groups or CFN Refs
155
- subnets: {
156
- management: 'discover', // 'discover' | 'create' | 'use-existing'
157
- ids: [...], // Required when management is 'use-existing'
158
- },
159
- natGateway: {
160
- management: 'discover', // 'discover' | 'createAndManage' | 'useExisting'
161
- id: 'nat-xxxxxxxx', // Required when management is 'useExisting'
162
- },
163
- enableVPCEndpoints: true // Optional: create VPC endpoints
164
- },
165
-
166
- // KMS encryption
167
- encryption: {
168
- fieldLevelEncryptionMethod: 'kms',
169
- createResourceIfNoneFound: true
170
- },
171
-
172
- // SSM Parameter Store
173
- ssm: {
174
- enable: true
175
- },
176
-
177
- // WebSocket support (optional)
178
- websockets: {
179
- enable: true
180
- },
181
-
182
- // Integrations
183
- integrations: [
184
- { Definition: { name: 'hubspot' } },
185
- { Definition: { name: 'salesforce' } }
186
- ]
187
- };
188
- ```
189
-
190
- ### Environment Variables
191
-
192
- The infrastructure system uses environment variables for AWS resource references:
193
-
194
- ```bash
195
- # Automatically set by AWS discovery
196
- AWS_DISCOVERY_VPC_ID=vpc-12345678
197
- AWS_DISCOVERY_SECURITY_GROUP_ID=sg-12345678
198
- AWS_DISCOVERY_SUBNET_ID_1=subnet-12345678
199
- AWS_DISCOVERY_SUBNET_ID_2=subnet-87654321
200
- AWS_DISCOVERY_PUBLIC_SUBNET_ID=subnet-abcdef12
201
- AWS_DISCOVERY_ROUTE_TABLE_ID=rtb-12345678
202
- AWS_DISCOVERY_KMS_KEY_ID=arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
203
-
204
- # Set by serverless framework
205
- AWS_REGION=us-east-1
206
- STAGE=production
207
- SERVICE_NAME=my-frigg-app
208
- ```
209
-
210
- ## Lambda Layers
211
-
212
- ### Prisma Layer
213
-
214
- The Frigg infrastructure uses a Lambda Layer to optimize Prisma deployment, reducing function sizes by ~60%.
215
-
216
- **What's included:**
217
-
218
- - `@prisma/client` - Prisma Client runtime
219
- - `@prisma-mongodb/client` - MongoDB Prisma Client
220
- - `@prisma-postgresql/client` - PostgreSQL Prisma Client
221
- - `prisma` - Prisma CLI (for migrations)
222
-
223
- **Benefits:**
224
-
225
- - ✅ **Reduces function sizes**: From ~120MB → ~45MB per function (60% reduction)
226
- - ✅ **Faster deployments**: Layer cached between deployments
227
- - ✅ **Shared resources**: Prisma uploaded once (~70MB layer), shared by all functions
228
- - ✅ **Improved cold starts**: Smaller packages = faster initialization
229
-
230
- **Building the layer:**
231
-
232
- ```bash
233
- cd packages/devtools
234
- npm run build:prisma-layer
235
- ```
236
-
237
- **Expected output:**
238
-
239
- ```
240
- Building Prisma Lambda Layer...
241
- ✓ Layer built successfully (70MB)
242
- Layer location: infrastructure/layers/prisma
243
- ```
244
-
245
- **Automatic deployment:**
246
-
247
- The layer is automatically deployed when you run `frigg deploy`. All Lambda functions reference the layer via CloudFormation.
248
-
249
- **Troubleshooting:**
250
-
251
- If you encounter "Module not found" errors after deployment:
252
-
253
- ```bash
254
- # Verify layer is attached to function
255
- aws lambda get-function-configuration \
256
- --function-name your-app-dev-auth \
257
- --query 'Layers[*].Arn'
258
- ```
259
-
260
- **Disabling Prisma Layer (Bundle with Functions):**
261
-
262
- By default, Prisma ships via a Lambda Layer. You can disable the layer and bundle Prisma directly with each Lambda:
263
-
264
- ```javascript
265
- const appDefinition = {
266
- name: 'my-app',
267
- usePrismaLambdaLayer: false, // Bundle Prisma with each function
268
- integrations: [{ Definition: { name: 'asana' } }],
269
- };
270
- ```
271
-
272
- **When to disable the Prisma Layer:**
273
-
274
- - ✅ Your CI/CD IAM user lacks `lambda:PublishLayerVersion`
275
- - ✅ Deploying to an AWS region/account with Lambda layer restrictions
276
- - ✅ Troubleshooting Prisma client loading issues
277
- - ✅ You prefer a simpler deployment artifact (no shared layer management)
278
-
279
- **Trade-offs:**
280
-
281
- | Mode | Function Size | Deploy Speed | IAM Permissions Required |
282
- |------|---------------|--------------|-------------------------|
283
- | **Layer (default)** | ~45MB per function | Faster (layer cached) | `lambda:PublishLayerVersion` |
284
- | **Bundled** | ~80MB per function | Slower (Prisma uploaded per function) | None (layer-related) |
285
-
286
- > ℹ️ When `usePrismaLambdaLayer: false`, Prisma stays inside each bundle and the runtime automatically loads the correct binary. No extra configuration is required.
287
-
288
- ## Usage Examples
289
-
290
- ### Basic Deployment
291
-
292
- ```javascript
293
- const { composeServerlessDefinition } = require('./serverless-template');
294
-
295
- const appDefinition = {
296
- name: 'my-app',
297
- integrations: [{ Definition: { name: 'hubspot' } }],
298
- };
299
-
300
- const serverlessConfig = await composeServerlessDefinition(appDefinition);
301
- // Use serverlessConfig for deployment
302
- ```
303
-
304
- ### VPC-Enabled Deployment
305
-
306
- ```javascript
307
- const appDefinition = {
308
- name: 'secure-app',
309
- vpc: { enable: true },
310
- encryption: { fieldLevelEncryptionMethod: 'kms' },
311
- ssm: { enable: true },
312
- integrations: [{ Definition: { name: 'salesforce' } }],
313
- };
314
-
315
- const serverlessConfig = await composeServerlessDefinition(appDefinition);
316
- ```
317
-
318
- ### Phase 3 Deployment with WebSockets
319
-
320
- ```javascript
321
- const appDefinition = {
322
- name: 'realtime-app',
323
- websockets: { enable: true },
324
- vpc: { enable: true },
325
- integrations: [{ Definition: { name: 'slack' } }],
326
- };
327
-
328
- const serverlessConfig = await composeServerlessDefinition(appDefinition);
329
- ```
330
-
331
- ## Testing
332
-
333
- ### Running Tests
334
-
335
- ```bash
336
- # Run all infrastructure tests
337
- npm test
338
-
339
- # Run specific test suites
340
- npm test aws-discovery.test.js
341
- npm test serverless-template.test.js
342
- npm test integration.test.js
343
-
344
- # Run with coverage
345
- npm test -- --coverage
346
-
347
- # Run in watch mode
348
- npm test -- --watch
349
- ```
350
-
351
- ### Test Categories
352
-
353
- 1. **Unit Tests**: Test individual components
354
-
355
- - AWS discovery utilities
356
- - Serverless template generation
357
- - IAM policy generation
358
-
359
- 2. **Integration Tests**: Test end-to-end workflows
360
-
361
- - Complete discovery and template generation
362
- - Plugin integration
363
- - Phase 3 infrastructure validation
364
-
365
- 3. **Performance Tests**: Validate infrastructure limits
366
- - CloudFormation template sizes
367
- - Resource count limits
368
- - Cross-stack dependencies
369
-
370
- ### Mock Data
371
-
372
- Tests use mock AWS resources to avoid real AWS API calls:
373
-
374
- ```javascript
375
- const mockAWSResources = {
376
- defaultVpcId: 'vpc-12345678',
377
- defaultSecurityGroupId: 'sg-12345678',
378
- privateSubnetId1: 'subnet-private-1',
379
- privateSubnetId2: 'subnet-private-2',
380
- defaultKmsKeyId:
381
- 'arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012',
382
- };
383
- ```
384
-
385
- ## Security
386
-
387
- ### IAM Permissions
388
-
389
- The infrastructure requires specific IAM permissions for AWS resource discovery and deployment:
390
-
391
- - **EC2**: Describe VPCs, subnets, security groups, route tables
392
- - **KMS**: List keys, describe keys
393
- - **STS**: Get caller identity
394
- - **CloudFormation**: Full access for stack operations
395
- - **Lambda**: Function management
396
- - **API Gateway**: API management
397
- - **S3**: Bucket and object operations (including tagging)
398
- - **DynamoDB**: Table operations
399
- - **SQS**: Queue operations
400
- - **SNS**: Topic operations
401
- - **CloudWatch**: Metrics and alarms
402
- - **IAM**: Role and policy management
403
-
404
- ### Best Practices
405
-
406
- 1. **Least Privilege**: IAM roles have minimal required permissions
407
- 2. **Encryption**: All data encrypted at rest and in transit
408
- 3. **VPC Security**: Lambda functions in private subnets when needed
409
- 4. **Access Control**: S3 buckets block public access by default
410
- 5. **Audit Logging**: CloudTrail integration for API calls
411
-
412
- ## Troubleshooting
413
-
414
- ### Common Issues
415
-
416
- #### AWS Discovery Failures
417
-
418
- ```bash
419
- # Check AWS credentials
420
- aws sts get-caller-identity
421
-
422
- # Verify region configuration
423
- echo $AWS_REGION
424
-
425
- # Test VPC discovery
426
- node -e "
427
- const { AWSDiscovery } = require('./aws-discovery');
428
- const discovery = new AWSDiscovery('us-east-1');
429
- discovery.findDefaultVpc().then(console.log).catch(console.error);
430
- "
431
- ```
432
-
433
- #### Serverless Deployment Issues
434
-
435
- ```bash
436
- # Enable debug logging
437
- SLS_DEBUG=true serverless deploy
438
-
439
- # Check generated template
440
- serverless print
441
-
442
- # Validate CloudFormation template
443
- aws cloudformation validate-template --template-body file://template.json
444
- ```
445
-
446
- - **Connectivity to external services (e.g., databases):** If your Lambda functions in a VPC cannot connect to external services, ensure that the `FriggLambdaSecurityGroup` has the correct **egress** rules to allow outbound traffic on the required ports (e.g., port 27017 for MongoDB).
447
-
448
- #### Infrastructure Test Failures
449
-
450
- ```bash
451
- # Run specific failing test
452
- npm test -- --testNamePattern="should discover all AWS resources"
453
-
454
- # Debug with verbose output
455
- npm test -- --verbose --silent=false
456
-
457
- # Check test environment
458
- npm run test:debug
459
- ```
460
-
461
- ### Performance Optimization
462
-
463
- #### Lambda Cold Starts
464
-
465
- - Use provisioned concurrency for critical functions
466
- - Optimize function size and dependencies
467
- - Monitor cold start metrics
468
-
469
- #### VPC Performance
470
-
471
- - Use VPC endpoints to reduce NAT Gateway costs
472
- - Monitor ENI creation/deletion times
473
- - Consider Lambda@Edge for global distribution
474
-
475
- #### Cost Optimization
476
-
477
- - Use S3 Intelligent Tiering
478
- - Configure CloudWatch log retention
479
- - Monitor and alert on unexpected usage
480
-
481
- ## Contributing
482
-
483
- ### Adding New Infrastructure Components
484
-
485
- 1. Create CloudFormation template in `cloudformation/`
486
- 2. Add validation tests in `__tests__/`
487
- 3. Update integration tests
488
- 4. Document in deployment guide
489
- 5. Add to CI/CD pipeline
490
-
491
- ### Testing Guidelines
492
-
493
- 1. Mock all AWS API calls
494
- 2. Test both success and failure scenarios
495
- 3. Validate CloudFormation template syntax
496
- 4. Test cross-stack dependencies
497
- 5. Include performance and security tests
498
-
499
- ### Documentation
500
-
501
- 1. Update this README for new features
502
- 2. Add examples to deployment guide
503
- 3. Document troubleshooting steps
504
- 4. Include security considerations
505
-
506
- ## Support
507
-
508
- - **Documentation**: See `PHASE3-DEPLOYMENT-GUIDE.md` for detailed deployment instructions
509
- - **Testing**: See `README-TESTING.md` for testing strategy
510
- - **Troubleshooting**: See `AWS-DISCOVERY-TROUBLESHOOTING.md` for common issues
511
- - **Issues**: Create GitHub issues for bugs and feature requests
512
- - **Discussions**: Use GitHub Discussions for questions and ideas
513
-
514
- ## Related Documentation
515
-
516
- - [Lambda Layer for Prisma](./LAMBDA-LAYER-PRISMA.md) - Complete guide to Prisma Lambda Layer optimization
517
- - [Phase 3 Deployment Guide](./PHASE3-DEPLOYMENT-GUIDE.md)
518
- - [Testing Strategy](./README-TESTING.md)
519
- - [AWS Discovery Troubleshooting](./AWS-DISCOVERY-TROUBLESHOOTING.md)
520
- - [IAM Policy Templates](./IAM-POLICY-TEMPLATES.md)
521
- - [VPC Configuration](./VPC-CONFIGURATION.md)
522
- - [WebSocket Configuration](./WEBSOCKET-CONFIGURATION.md)