@friggframework/devtools 2.0.0-next.5 → 2.0.0-next.50

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 (356) hide show
  1. package/frigg-cli/README.md +1290 -0
  2. package/frigg-cli/__tests__/unit/commands/build.test.js +279 -0
  3. package/frigg-cli/__tests__/unit/commands/db-setup.test.js +548 -0
  4. package/frigg-cli/__tests__/unit/commands/deploy.test.js +320 -0
  5. package/frigg-cli/__tests__/unit/commands/doctor.test.js +309 -0
  6. package/frigg-cli/__tests__/unit/commands/install.test.js +400 -0
  7. package/frigg-cli/__tests__/unit/commands/ui.test.js +346 -0
  8. package/frigg-cli/__tests__/unit/dependencies.test.js +74 -0
  9. package/frigg-cli/__tests__/unit/utils/database-validator.test.js +366 -0
  10. package/frigg-cli/__tests__/unit/utils/error-messages.test.js +304 -0
  11. package/frigg-cli/__tests__/unit/version-detection.test.js +171 -0
  12. package/frigg-cli/__tests__/utils/mock-factory.js +270 -0
  13. package/frigg-cli/__tests__/utils/prisma-mock.js +194 -0
  14. package/frigg-cli/__tests__/utils/test-fixtures.js +463 -0
  15. package/frigg-cli/__tests__/utils/test-setup.js +287 -0
  16. package/frigg-cli/build-command/index.js +66 -0
  17. package/frigg-cli/db-setup-command/index.js +193 -0
  18. package/frigg-cli/deploy-command/SPEC-DEPLOY-DRY-RUN.md +981 -0
  19. package/frigg-cli/deploy-command/index.js +302 -0
  20. package/frigg-cli/doctor-command/index.js +335 -0
  21. package/frigg-cli/generate-command/__tests__/generate-command.test.js +301 -0
  22. package/frigg-cli/generate-command/azure-generator.js +43 -0
  23. package/frigg-cli/generate-command/gcp-generator.js +47 -0
  24. package/frigg-cli/generate-command/index.js +332 -0
  25. package/frigg-cli/generate-command/terraform-generator.js +555 -0
  26. package/frigg-cli/generate-iam-command.js +118 -0
  27. package/frigg-cli/index.js +154 -1
  28. package/frigg-cli/index.test.js +1 -4
  29. package/frigg-cli/init-command/backend-first-handler.js +756 -0
  30. package/frigg-cli/init-command/index.js +93 -0
  31. package/frigg-cli/init-command/template-handler.js +143 -0
  32. package/frigg-cli/install-command/index.js +1 -4
  33. package/frigg-cli/jest.config.js +124 -0
  34. package/frigg-cli/package.json +63 -0
  35. package/frigg-cli/repair-command/index.js +564 -0
  36. package/frigg-cli/start-command/index.js +125 -6
  37. package/frigg-cli/start-command/start-command.test.js +297 -0
  38. package/frigg-cli/test/init-command.test.js +180 -0
  39. package/frigg-cli/test/npm-registry.test.js +319 -0
  40. package/frigg-cli/ui-command/index.js +154 -0
  41. package/frigg-cli/utils/app-resolver.js +319 -0
  42. package/frigg-cli/utils/backend-path.js +16 -17
  43. package/frigg-cli/utils/database-validator.js +154 -0
  44. package/frigg-cli/utils/error-messages.js +257 -0
  45. package/frigg-cli/utils/npm-registry.js +167 -0
  46. package/frigg-cli/utils/process-manager.js +199 -0
  47. package/frigg-cli/utils/repo-detection.js +405 -0
  48. package/infrastructure/ARCHITECTURE.md +487 -0
  49. package/infrastructure/CLAUDE.md +481 -0
  50. package/infrastructure/HEALTH.md +468 -0
  51. package/infrastructure/README.md +494 -0
  52. package/infrastructure/__tests__/fixtures/mock-aws-resources.js +391 -0
  53. package/infrastructure/__tests__/helpers/test-utils.js +277 -0
  54. package/infrastructure/__tests__/postgres-config.test.js +914 -0
  55. package/infrastructure/__tests__/template-generation.test.js +687 -0
  56. package/infrastructure/create-frigg-infrastructure.js +129 -20
  57. package/infrastructure/docs/POSTGRES-CONFIGURATION.md +630 -0
  58. package/infrastructure/docs/PRE-DEPLOYMENT-HEALTH-CHECK-SPEC.md +1317 -0
  59. package/infrastructure/docs/WEBSOCKET-CONFIGURATION.md +105 -0
  60. package/infrastructure/docs/deployment-instructions.md +268 -0
  61. package/infrastructure/docs/generate-iam-command.md +278 -0
  62. package/infrastructure/docs/iam-policy-templates.md +193 -0
  63. package/infrastructure/domains/database/aurora-builder.js +809 -0
  64. package/infrastructure/domains/database/aurora-builder.test.js +950 -0
  65. package/infrastructure/domains/database/aurora-discovery.js +87 -0
  66. package/infrastructure/domains/database/aurora-discovery.test.js +188 -0
  67. package/infrastructure/domains/database/aurora-resolver.js +210 -0
  68. package/infrastructure/domains/database/aurora-resolver.test.js +347 -0
  69. package/infrastructure/domains/database/migration-builder.js +695 -0
  70. package/infrastructure/domains/database/migration-builder.test.js +294 -0
  71. package/infrastructure/domains/database/migration-resolver.js +163 -0
  72. package/infrastructure/domains/database/migration-resolver.test.js +337 -0
  73. package/infrastructure/domains/health/application/ports/IPropertyReconciler.js +164 -0
  74. package/infrastructure/domains/health/application/ports/IResourceDetector.js +129 -0
  75. package/infrastructure/domains/health/application/ports/IResourceImporter.js +142 -0
  76. package/infrastructure/domains/health/application/ports/IStackRepository.js +131 -0
  77. package/infrastructure/domains/health/application/ports/index.js +26 -0
  78. package/infrastructure/domains/health/application/use-cases/__tests__/execute-resource-import-use-case.test.js +679 -0
  79. package/infrastructure/domains/health/application/use-cases/__tests__/mismatch-analyzer-method-name.test.js +167 -0
  80. package/infrastructure/domains/health/application/use-cases/__tests__/repair-via-import-use-case.test.js +1130 -0
  81. package/infrastructure/domains/health/application/use-cases/execute-resource-import-use-case.js +221 -0
  82. package/infrastructure/domains/health/application/use-cases/reconcile-properties-use-case.js +152 -0
  83. package/infrastructure/domains/health/application/use-cases/reconcile-properties-use-case.test.js +343 -0
  84. package/infrastructure/domains/health/application/use-cases/repair-via-import-use-case.js +535 -0
  85. package/infrastructure/domains/health/application/use-cases/repair-via-import-use-case.test.js +376 -0
  86. package/infrastructure/domains/health/application/use-cases/run-health-check-use-case.js +213 -0
  87. package/infrastructure/domains/health/application/use-cases/run-health-check-use-case.test.js +441 -0
  88. package/infrastructure/domains/health/docs/ACME-DEV-DRIFT-ANALYSIS.md +267 -0
  89. package/infrastructure/domains/health/docs/BUILD-VS-DEPLOYED-TEMPLATE-ANALYSIS.md +324 -0
  90. package/infrastructure/domains/health/docs/ORPHAN-DETECTION-ANALYSIS.md +386 -0
  91. package/infrastructure/domains/health/docs/SPEC-CLEANUP-COMMAND.md +1419 -0
  92. package/infrastructure/domains/health/docs/TDD-IMPLEMENTATION-SUMMARY.md +391 -0
  93. package/infrastructure/domains/health/docs/TEMPLATE-COMPARISON-IMPLEMENTATION.md +551 -0
  94. package/infrastructure/domains/health/domain/entities/issue.js +299 -0
  95. package/infrastructure/domains/health/domain/entities/issue.test.js +528 -0
  96. package/infrastructure/domains/health/domain/entities/property-mismatch.js +108 -0
  97. package/infrastructure/domains/health/domain/entities/property-mismatch.test.js +275 -0
  98. package/infrastructure/domains/health/domain/entities/resource.js +159 -0
  99. package/infrastructure/domains/health/domain/entities/resource.test.js +432 -0
  100. package/infrastructure/domains/health/domain/entities/stack-health-report.js +306 -0
  101. package/infrastructure/domains/health/domain/entities/stack-health-report.test.js +601 -0
  102. package/infrastructure/domains/health/domain/services/__tests__/health-score-percentage-based.test.js +380 -0
  103. package/infrastructure/domains/health/domain/services/__tests__/import-progress-monitor.test.js +971 -0
  104. package/infrastructure/domains/health/domain/services/__tests__/import-template-generator.test.js +1150 -0
  105. package/infrastructure/domains/health/domain/services/__tests__/logical-id-mapper.test.js +672 -0
  106. package/infrastructure/domains/health/domain/services/__tests__/template-parser.test.js +496 -0
  107. package/infrastructure/domains/health/domain/services/__tests__/update-progress-monitor.test.js +419 -0
  108. package/infrastructure/domains/health/domain/services/health-score-calculator.js +248 -0
  109. package/infrastructure/domains/health/domain/services/health-score-calculator.test.js +504 -0
  110. package/infrastructure/domains/health/domain/services/import-progress-monitor.js +195 -0
  111. package/infrastructure/domains/health/domain/services/import-template-generator.js +435 -0
  112. package/infrastructure/domains/health/domain/services/logical-id-mapper.js +345 -0
  113. package/infrastructure/domains/health/domain/services/mismatch-analyzer.js +234 -0
  114. package/infrastructure/domains/health/domain/services/mismatch-analyzer.test.js +431 -0
  115. package/infrastructure/domains/health/domain/services/property-mutability-config.js +382 -0
  116. package/infrastructure/domains/health/domain/services/template-parser.js +245 -0
  117. package/infrastructure/domains/health/domain/services/update-progress-monitor.js +192 -0
  118. package/infrastructure/domains/health/domain/value-objects/health-score.js +138 -0
  119. package/infrastructure/domains/health/domain/value-objects/health-score.test.js +267 -0
  120. package/infrastructure/domains/health/domain/value-objects/property-mutability.js +161 -0
  121. package/infrastructure/domains/health/domain/value-objects/property-mutability.test.js +198 -0
  122. package/infrastructure/domains/health/domain/value-objects/resource-state.js +167 -0
  123. package/infrastructure/domains/health/domain/value-objects/resource-state.test.js +196 -0
  124. package/infrastructure/domains/health/domain/value-objects/stack-identifier.js +192 -0
  125. package/infrastructure/domains/health/domain/value-objects/stack-identifier.test.js +262 -0
  126. package/infrastructure/domains/health/infrastructure/adapters/__tests__/orphan-detection-cfn-tagged.test.js +312 -0
  127. package/infrastructure/domains/health/infrastructure/adapters/__tests__/orphan-detection-multi-stack.test.js +367 -0
  128. package/infrastructure/domains/health/infrastructure/adapters/__tests__/orphan-detection-relationship-analysis.test.js +432 -0
  129. package/infrastructure/domains/health/infrastructure/adapters/aws-property-reconciler.js +784 -0
  130. package/infrastructure/domains/health/infrastructure/adapters/aws-property-reconciler.test.js +1133 -0
  131. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-detector.js +565 -0
  132. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-detector.test.js +554 -0
  133. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-importer.js +318 -0
  134. package/infrastructure/domains/health/infrastructure/adapters/aws-resource-importer.test.js +398 -0
  135. package/infrastructure/domains/health/infrastructure/adapters/aws-stack-repository.js +777 -0
  136. package/infrastructure/domains/health/infrastructure/adapters/aws-stack-repository.test.js +580 -0
  137. package/infrastructure/domains/integration/integration-builder.js +397 -0
  138. package/infrastructure/domains/integration/integration-builder.test.js +593 -0
  139. package/infrastructure/domains/integration/integration-resolver.js +170 -0
  140. package/infrastructure/domains/integration/integration-resolver.test.js +369 -0
  141. package/infrastructure/domains/integration/websocket-builder.js +69 -0
  142. package/infrastructure/domains/integration/websocket-builder.test.js +195 -0
  143. package/infrastructure/domains/networking/vpc-builder.js +1829 -0
  144. package/infrastructure/domains/networking/vpc-builder.test.js +1262 -0
  145. package/infrastructure/domains/networking/vpc-discovery.js +177 -0
  146. package/infrastructure/domains/networking/vpc-discovery.test.js +350 -0
  147. package/infrastructure/domains/networking/vpc-resolver.js +324 -0
  148. package/infrastructure/domains/networking/vpc-resolver.test.js +501 -0
  149. package/infrastructure/domains/parameters/ssm-builder.js +79 -0
  150. package/infrastructure/domains/parameters/ssm-builder.test.js +189 -0
  151. package/infrastructure/domains/parameters/ssm-discovery.js +84 -0
  152. package/infrastructure/domains/parameters/ssm-discovery.test.js +210 -0
  153. package/infrastructure/domains/security/iam-generator.js +816 -0
  154. package/infrastructure/domains/security/iam-generator.test.js +204 -0
  155. package/infrastructure/domains/security/kms-builder.js +366 -0
  156. package/infrastructure/domains/security/kms-builder.test.js +374 -0
  157. package/infrastructure/domains/security/kms-discovery.js +80 -0
  158. package/infrastructure/domains/security/kms-discovery.test.js +177 -0
  159. package/infrastructure/domains/security/kms-resolver.js +96 -0
  160. package/infrastructure/domains/security/kms-resolver.test.js +216 -0
  161. package/infrastructure/domains/security/templates/frigg-deployment-iam-stack.yaml +401 -0
  162. package/infrastructure/domains/security/templates/iam-policy-basic.json +218 -0
  163. package/infrastructure/domains/security/templates/iam-policy-full.json +288 -0
  164. package/infrastructure/domains/shared/base-builder.js +112 -0
  165. package/infrastructure/domains/shared/base-resolver.js +186 -0
  166. package/infrastructure/domains/shared/base-resolver.test.js +305 -0
  167. package/infrastructure/domains/shared/builder-orchestrator.js +212 -0
  168. package/infrastructure/domains/shared/builder-orchestrator.test.js +213 -0
  169. package/infrastructure/domains/shared/cloudformation-discovery-v2.js +334 -0
  170. package/infrastructure/domains/shared/cloudformation-discovery.js +375 -0
  171. package/infrastructure/domains/shared/cloudformation-discovery.test.js +590 -0
  172. package/infrastructure/domains/shared/environment-builder.js +119 -0
  173. package/infrastructure/domains/shared/environment-builder.test.js +247 -0
  174. package/infrastructure/domains/shared/providers/aws-provider-adapter.js +544 -0
  175. package/infrastructure/domains/shared/providers/aws-provider-adapter.test.js +377 -0
  176. package/infrastructure/domains/shared/providers/azure-provider-adapter.stub.js +93 -0
  177. package/infrastructure/domains/shared/providers/cloud-provider-adapter.js +136 -0
  178. package/infrastructure/domains/shared/providers/gcp-provider-adapter.stub.js +82 -0
  179. package/infrastructure/domains/shared/providers/provider-factory.js +108 -0
  180. package/infrastructure/domains/shared/providers/provider-factory.test.js +170 -0
  181. package/infrastructure/domains/shared/resource-discovery.enhanced.test.js +306 -0
  182. package/infrastructure/domains/shared/resource-discovery.js +221 -0
  183. package/infrastructure/domains/shared/resource-discovery.test.js +552 -0
  184. package/infrastructure/domains/shared/types/app-definition.js +205 -0
  185. package/infrastructure/domains/shared/types/discovery-result.js +106 -0
  186. package/infrastructure/domains/shared/types/discovery-result.test.js +258 -0
  187. package/infrastructure/domains/shared/types/index.js +46 -0
  188. package/infrastructure/domains/shared/types/resource-ownership.js +108 -0
  189. package/infrastructure/domains/shared/types/resource-ownership.test.js +101 -0
  190. package/infrastructure/domains/shared/utilities/base-definition-factory.js +380 -0
  191. package/infrastructure/domains/shared/utilities/base-definition-factory.js.bak +338 -0
  192. package/infrastructure/domains/shared/utilities/base-definition-factory.test.js +248 -0
  193. package/infrastructure/domains/shared/utilities/handler-path-resolver.js +134 -0
  194. package/infrastructure/domains/shared/utilities/handler-path-resolver.test.js +268 -0
  195. package/infrastructure/domains/shared/utilities/prisma-layer-manager.js +159 -0
  196. package/infrastructure/domains/shared/utilities/prisma-layer-manager.test.js +444 -0
  197. package/infrastructure/domains/shared/validation/env-validator.js +78 -0
  198. package/infrastructure/domains/shared/validation/env-validator.test.js +173 -0
  199. package/infrastructure/domains/shared/validation/plugin-validator.js +187 -0
  200. package/infrastructure/domains/shared/validation/plugin-validator.test.js +323 -0
  201. package/infrastructure/esbuild.config.js +53 -0
  202. package/infrastructure/infrastructure-composer.js +109 -0
  203. package/infrastructure/infrastructure-composer.test.js +1895 -0
  204. package/infrastructure/integration.test.js +383 -0
  205. package/infrastructure/scripts/build-prisma-layer.js +553 -0
  206. package/infrastructure/scripts/build-prisma-layer.test.js +102 -0
  207. package/infrastructure/scripts/build-time-discovery.js +238 -0
  208. package/infrastructure/scripts/build-time-discovery.test.js +379 -0
  209. package/infrastructure/scripts/run-discovery.js +110 -0
  210. package/layers/prisma/.build-complete +3 -0
  211. package/layers/prisma/nodejs/package.json +8 -0
  212. package/management-ui/.eslintrc.js +22 -0
  213. package/management-ui/README.md +203 -0
  214. package/management-ui/components.json +21 -0
  215. package/management-ui/docs/phase2-integration-guide.md +320 -0
  216. package/management-ui/index.html +13 -0
  217. package/management-ui/package.json +76 -0
  218. package/management-ui/packages/devtools/frigg-cli/ui-command/index.js +302 -0
  219. package/management-ui/postcss.config.js +6 -0
  220. package/management-ui/server/api/backend.js +256 -0
  221. package/management-ui/server/api/cli.js +315 -0
  222. package/management-ui/server/api/codegen.js +663 -0
  223. package/management-ui/server/api/connections.js +857 -0
  224. package/management-ui/server/api/discovery.js +185 -0
  225. package/management-ui/server/api/environment/index.js +1 -0
  226. package/management-ui/server/api/environment/router.js +378 -0
  227. package/management-ui/server/api/environment.js +328 -0
  228. package/management-ui/server/api/integrations.js +876 -0
  229. package/management-ui/server/api/logs.js +248 -0
  230. package/management-ui/server/api/monitoring.js +282 -0
  231. package/management-ui/server/api/open-ide.js +31 -0
  232. package/management-ui/server/api/project.js +1029 -0
  233. package/management-ui/server/api/users/sessions.js +371 -0
  234. package/management-ui/server/api/users/simulation.js +254 -0
  235. package/management-ui/server/api/users.js +362 -0
  236. package/management-ui/server/api-contract.md +275 -0
  237. package/management-ui/server/index.js +873 -0
  238. package/management-ui/server/middleware/errorHandler.js +93 -0
  239. package/management-ui/server/middleware/security.js +32 -0
  240. package/management-ui/server/processManager.js +296 -0
  241. package/management-ui/server/server.js +346 -0
  242. package/management-ui/server/services/aws-monitor.js +413 -0
  243. package/management-ui/server/services/npm-registry.js +347 -0
  244. package/management-ui/server/services/template-engine.js +538 -0
  245. package/management-ui/server/utils/cliIntegration.js +220 -0
  246. package/management-ui/server/utils/environment/auditLogger.js +471 -0
  247. package/management-ui/server/utils/environment/awsParameterStore.js +275 -0
  248. package/management-ui/server/utils/environment/encryption.js +278 -0
  249. package/management-ui/server/utils/environment/envFileManager.js +286 -0
  250. package/management-ui/server/utils/import-commonjs.js +28 -0
  251. package/management-ui/server/utils/response.js +83 -0
  252. package/management-ui/server/websocket/handler.js +325 -0
  253. package/management-ui/src/App.jsx +25 -0
  254. package/management-ui/src/assets/FriggLogo.svg +1 -0
  255. package/management-ui/src/components/AppRouter.jsx +65 -0
  256. package/management-ui/src/components/Button.jsx +70 -0
  257. package/management-ui/src/components/Card.jsx +97 -0
  258. package/management-ui/src/components/EnvironmentCompare.jsx +400 -0
  259. package/management-ui/src/components/EnvironmentEditor.jsx +372 -0
  260. package/management-ui/src/components/EnvironmentImportExport.jsx +469 -0
  261. package/management-ui/src/components/EnvironmentSchema.jsx +491 -0
  262. package/management-ui/src/components/EnvironmentSecurity.jsx +463 -0
  263. package/management-ui/src/components/ErrorBoundary.jsx +73 -0
  264. package/management-ui/src/components/IntegrationCard.jsx +481 -0
  265. package/management-ui/src/components/IntegrationCardEnhanced.jsx +770 -0
  266. package/management-ui/src/components/IntegrationExplorer.jsx +379 -0
  267. package/management-ui/src/components/IntegrationStatus.jsx +336 -0
  268. package/management-ui/src/components/Layout.jsx +716 -0
  269. package/management-ui/src/components/LoadingSpinner.jsx +113 -0
  270. package/management-ui/src/components/RepositoryPicker.jsx +248 -0
  271. package/management-ui/src/components/SessionMonitor.jsx +350 -0
  272. package/management-ui/src/components/StatusBadge.jsx +208 -0
  273. package/management-ui/src/components/UserContextSwitcher.jsx +212 -0
  274. package/management-ui/src/components/UserSimulation.jsx +327 -0
  275. package/management-ui/src/components/Welcome.jsx +434 -0
  276. package/management-ui/src/components/codegen/APIEndpointGenerator.jsx +637 -0
  277. package/management-ui/src/components/codegen/APIModuleSelector.jsx +227 -0
  278. package/management-ui/src/components/codegen/CodeGenerationWizard.jsx +247 -0
  279. package/management-ui/src/components/codegen/CodePreviewEditor.jsx +316 -0
  280. package/management-ui/src/components/codegen/DynamicModuleForm.jsx +271 -0
  281. package/management-ui/src/components/codegen/FormBuilder.jsx +737 -0
  282. package/management-ui/src/components/codegen/IntegrationGenerator.jsx +855 -0
  283. package/management-ui/src/components/codegen/ProjectScaffoldWizard.jsx +797 -0
  284. package/management-ui/src/components/codegen/SchemaBuilder.jsx +303 -0
  285. package/management-ui/src/components/codegen/TemplateSelector.jsx +586 -0
  286. package/management-ui/src/components/codegen/index.js +10 -0
  287. package/management-ui/src/components/connections/ConnectionConfigForm.jsx +362 -0
  288. package/management-ui/src/components/connections/ConnectionHealthMonitor.jsx +182 -0
  289. package/management-ui/src/components/connections/ConnectionTester.jsx +200 -0
  290. package/management-ui/src/components/connections/EntityRelationshipMapper.jsx +292 -0
  291. package/management-ui/src/components/connections/OAuthFlow.jsx +204 -0
  292. package/management-ui/src/components/connections/index.js +5 -0
  293. package/management-ui/src/components/index.js +21 -0
  294. package/management-ui/src/components/monitoring/APIGatewayMetrics.jsx +222 -0
  295. package/management-ui/src/components/monitoring/LambdaMetrics.jsx +169 -0
  296. package/management-ui/src/components/monitoring/MetricsChart.jsx +197 -0
  297. package/management-ui/src/components/monitoring/MonitoringDashboard.jsx +393 -0
  298. package/management-ui/src/components/monitoring/SQSMetrics.jsx +246 -0
  299. package/management-ui/src/components/monitoring/index.js +6 -0
  300. package/management-ui/src/components/monitoring/monitoring.css +218 -0
  301. package/management-ui/src/components/theme-provider.jsx +52 -0
  302. package/management-ui/src/components/theme-toggle.jsx +39 -0
  303. package/management-ui/src/components/ui/badge.tsx +36 -0
  304. package/management-ui/src/components/ui/button.test.jsx +56 -0
  305. package/management-ui/src/components/ui/button.tsx +57 -0
  306. package/management-ui/src/components/ui/card.tsx +76 -0
  307. package/management-ui/src/components/ui/dropdown-menu.tsx +199 -0
  308. package/management-ui/src/components/ui/select.tsx +157 -0
  309. package/management-ui/src/components/ui/skeleton.jsx +15 -0
  310. package/management-ui/src/hooks/useFrigg.jsx +387 -0
  311. package/management-ui/src/hooks/useSocket.jsx +58 -0
  312. package/management-ui/src/index.css +193 -0
  313. package/management-ui/src/lib/utils.ts +6 -0
  314. package/management-ui/src/main.jsx +10 -0
  315. package/management-ui/src/pages/CodeGeneration.jsx +14 -0
  316. package/management-ui/src/pages/Connections.jsx +252 -0
  317. package/management-ui/src/pages/ConnectionsEnhanced.jsx +633 -0
  318. package/management-ui/src/pages/Dashboard.jsx +311 -0
  319. package/management-ui/src/pages/Environment.jsx +314 -0
  320. package/management-ui/src/pages/IntegrationConfigure.jsx +669 -0
  321. package/management-ui/src/pages/IntegrationDiscovery.jsx +567 -0
  322. package/management-ui/src/pages/IntegrationTest.jsx +742 -0
  323. package/management-ui/src/pages/Integrations.jsx +253 -0
  324. package/management-ui/src/pages/Monitoring.jsx +17 -0
  325. package/management-ui/src/pages/Simulation.jsx +155 -0
  326. package/management-ui/src/pages/Users.jsx +492 -0
  327. package/management-ui/src/services/api.js +41 -0
  328. package/management-ui/src/services/apiModuleService.js +193 -0
  329. package/management-ui/src/services/websocket-handlers.js +120 -0
  330. package/management-ui/src/test/api/project.test.js +273 -0
  331. package/management-ui/src/test/components/Welcome.test.jsx +378 -0
  332. package/management-ui/src/test/mocks/server.js +178 -0
  333. package/management-ui/src/test/setup.js +61 -0
  334. package/management-ui/src/test/utils/test-utils.jsx +134 -0
  335. package/management-ui/src/utils/repository.js +98 -0
  336. package/management-ui/src/utils/repository.test.js +118 -0
  337. package/management-ui/src/workflows/phase2-integration-workflows.js +884 -0
  338. package/management-ui/tailwind.config.js +63 -0
  339. package/management-ui/tsconfig.json +37 -0
  340. package/management-ui/tsconfig.node.json +10 -0
  341. package/management-ui/vite.config.js +26 -0
  342. package/management-ui/vitest.config.js +38 -0
  343. package/package.json +35 -13
  344. package/test/index.js +2 -4
  345. package/test/mock-integration.js +4 -14
  346. package/infrastructure/app-handler-helpers.js +0 -57
  347. package/infrastructure/backend-utils.js +0 -87
  348. package/infrastructure/routers/auth.js +0 -26
  349. package/infrastructure/routers/integration-defined-routers.js +0 -42
  350. package/infrastructure/routers/middleware/loadUser.js +0 -15
  351. package/infrastructure/routers/middleware/requireLoggedInUser.js +0 -12
  352. package/infrastructure/routers/user.js +0 -41
  353. package/infrastructure/routers/websocket.js +0 -55
  354. package/infrastructure/serverless-template.js +0 -291
  355. package/infrastructure/workers/integration-defined-workers.js +0 -24
  356. package/test/auther-definition-tester.js +0 -125
@@ -0,0 +1,494 @@
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
+ ## Usage Examples
261
+
262
+ ### Basic Deployment
263
+
264
+ ```javascript
265
+ const { composeServerlessDefinition } = require('./serverless-template');
266
+
267
+ const appDefinition = {
268
+ name: 'my-app',
269
+ integrations: [{ Definition: { name: 'hubspot' } }],
270
+ };
271
+
272
+ const serverlessConfig = await composeServerlessDefinition(appDefinition);
273
+ // Use serverlessConfig for deployment
274
+ ```
275
+
276
+ ### VPC-Enabled Deployment
277
+
278
+ ```javascript
279
+ const appDefinition = {
280
+ name: 'secure-app',
281
+ vpc: { enable: true },
282
+ encryption: { fieldLevelEncryptionMethod: 'kms' },
283
+ ssm: { enable: true },
284
+ integrations: [{ Definition: { name: 'salesforce' } }],
285
+ };
286
+
287
+ const serverlessConfig = await composeServerlessDefinition(appDefinition);
288
+ ```
289
+
290
+ ### Phase 3 Deployment with WebSockets
291
+
292
+ ```javascript
293
+ const appDefinition = {
294
+ name: 'realtime-app',
295
+ websockets: { enable: true },
296
+ vpc: { enable: true },
297
+ integrations: [{ Definition: { name: 'slack' } }],
298
+ };
299
+
300
+ const serverlessConfig = await composeServerlessDefinition(appDefinition);
301
+ ```
302
+
303
+ ## Testing
304
+
305
+ ### Running Tests
306
+
307
+ ```bash
308
+ # Run all infrastructure tests
309
+ npm test
310
+
311
+ # Run specific test suites
312
+ npm test aws-discovery.test.js
313
+ npm test serverless-template.test.js
314
+ npm test integration.test.js
315
+
316
+ # Run with coverage
317
+ npm test -- --coverage
318
+
319
+ # Run in watch mode
320
+ npm test -- --watch
321
+ ```
322
+
323
+ ### Test Categories
324
+
325
+ 1. **Unit Tests**: Test individual components
326
+
327
+ - AWS discovery utilities
328
+ - Serverless template generation
329
+ - IAM policy generation
330
+
331
+ 2. **Integration Tests**: Test end-to-end workflows
332
+
333
+ - Complete discovery and template generation
334
+ - Plugin integration
335
+ - Phase 3 infrastructure validation
336
+
337
+ 3. **Performance Tests**: Validate infrastructure limits
338
+ - CloudFormation template sizes
339
+ - Resource count limits
340
+ - Cross-stack dependencies
341
+
342
+ ### Mock Data
343
+
344
+ Tests use mock AWS resources to avoid real AWS API calls:
345
+
346
+ ```javascript
347
+ const mockAWSResources = {
348
+ defaultVpcId: 'vpc-12345678',
349
+ defaultSecurityGroupId: 'sg-12345678',
350
+ privateSubnetId1: 'subnet-private-1',
351
+ privateSubnetId2: 'subnet-private-2',
352
+ defaultKmsKeyId:
353
+ 'arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012',
354
+ };
355
+ ```
356
+
357
+ ## Security
358
+
359
+ ### IAM Permissions
360
+
361
+ The infrastructure requires specific IAM permissions for AWS resource discovery and deployment:
362
+
363
+ - **EC2**: Describe VPCs, subnets, security groups, route tables
364
+ - **KMS**: List keys, describe keys
365
+ - **STS**: Get caller identity
366
+ - **CloudFormation**: Full access for stack operations
367
+ - **Lambda**: Function management
368
+ - **API Gateway**: API management
369
+ - **S3**: Bucket and object operations (including tagging)
370
+ - **DynamoDB**: Table operations
371
+ - **SQS**: Queue operations
372
+ - **SNS**: Topic operations
373
+ - **CloudWatch**: Metrics and alarms
374
+ - **IAM**: Role and policy management
375
+
376
+ ### Best Practices
377
+
378
+ 1. **Least Privilege**: IAM roles have minimal required permissions
379
+ 2. **Encryption**: All data encrypted at rest and in transit
380
+ 3. **VPC Security**: Lambda functions in private subnets when needed
381
+ 4. **Access Control**: S3 buckets block public access by default
382
+ 5. **Audit Logging**: CloudTrail integration for API calls
383
+
384
+ ## Troubleshooting
385
+
386
+ ### Common Issues
387
+
388
+ #### AWS Discovery Failures
389
+
390
+ ```bash
391
+ # Check AWS credentials
392
+ aws sts get-caller-identity
393
+
394
+ # Verify region configuration
395
+ echo $AWS_REGION
396
+
397
+ # Test VPC discovery
398
+ node -e "
399
+ const { AWSDiscovery } = require('./aws-discovery');
400
+ const discovery = new AWSDiscovery('us-east-1');
401
+ discovery.findDefaultVpc().then(console.log).catch(console.error);
402
+ "
403
+ ```
404
+
405
+ #### Serverless Deployment Issues
406
+
407
+ ```bash
408
+ # Enable debug logging
409
+ SLS_DEBUG=true serverless deploy
410
+
411
+ # Check generated template
412
+ serverless print
413
+
414
+ # Validate CloudFormation template
415
+ aws cloudformation validate-template --template-body file://template.json
416
+ ```
417
+
418
+ - **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).
419
+
420
+ #### Infrastructure Test Failures
421
+
422
+ ```bash
423
+ # Run specific failing test
424
+ npm test -- --testNamePattern="should discover all AWS resources"
425
+
426
+ # Debug with verbose output
427
+ npm test -- --verbose --silent=false
428
+
429
+ # Check test environment
430
+ npm run test:debug
431
+ ```
432
+
433
+ ### Performance Optimization
434
+
435
+ #### Lambda Cold Starts
436
+
437
+ - Use provisioned concurrency for critical functions
438
+ - Optimize function size and dependencies
439
+ - Monitor cold start metrics
440
+
441
+ #### VPC Performance
442
+
443
+ - Use VPC endpoints to reduce NAT Gateway costs
444
+ - Monitor ENI creation/deletion times
445
+ - Consider Lambda@Edge for global distribution
446
+
447
+ #### Cost Optimization
448
+
449
+ - Use S3 Intelligent Tiering
450
+ - Configure CloudWatch log retention
451
+ - Monitor and alert on unexpected usage
452
+
453
+ ## Contributing
454
+
455
+ ### Adding New Infrastructure Components
456
+
457
+ 1. Create CloudFormation template in `cloudformation/`
458
+ 2. Add validation tests in `__tests__/`
459
+ 3. Update integration tests
460
+ 4. Document in deployment guide
461
+ 5. Add to CI/CD pipeline
462
+
463
+ ### Testing Guidelines
464
+
465
+ 1. Mock all AWS API calls
466
+ 2. Test both success and failure scenarios
467
+ 3. Validate CloudFormation template syntax
468
+ 4. Test cross-stack dependencies
469
+ 5. Include performance and security tests
470
+
471
+ ### Documentation
472
+
473
+ 1. Update this README for new features
474
+ 2. Add examples to deployment guide
475
+ 3. Document troubleshooting steps
476
+ 4. Include security considerations
477
+
478
+ ## Support
479
+
480
+ - **Documentation**: See `PHASE3-DEPLOYMENT-GUIDE.md` for detailed deployment instructions
481
+ - **Testing**: See `README-TESTING.md` for testing strategy
482
+ - **Troubleshooting**: See `AWS-DISCOVERY-TROUBLESHOOTING.md` for common issues
483
+ - **Issues**: Create GitHub issues for bugs and feature requests
484
+ - **Discussions**: Use GitHub Discussions for questions and ideas
485
+
486
+ ## Related Documentation
487
+
488
+ - [Lambda Layer for Prisma](./LAMBDA-LAYER-PRISMA.md) - Complete guide to Prisma Lambda Layer optimization
489
+ - [Phase 3 Deployment Guide](./PHASE3-DEPLOYMENT-GUIDE.md)
490
+ - [Testing Strategy](./README-TESTING.md)
491
+ - [AWS Discovery Troubleshooting](./AWS-DISCOVERY-TROUBLESHOOTING.md)
492
+ - [IAM Policy Templates](./IAM-POLICY-TEMPLATES.md)
493
+ - [VPC Configuration](./VPC-CONFIGURATION.md)
494
+ - [WebSocket Configuration](./WEBSOCKET-CONFIGURATION.md)