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

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 (357) hide show
  1. package/frigg-cli/README.md +1289 -0
  2. package/frigg-cli/__tests__/unit/commands/build.test.js +279 -0
  3. package/frigg-cli/__tests__/unit/commands/db-setup.test.js +649 -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 +397 -0
  10. package/frigg-cli/__tests__/unit/utils/error-messages.test.js +345 -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 +53 -14
  17. package/frigg-cli/db-setup-command/index.js +246 -0
  18. package/frigg-cli/deploy-command/SPEC-DEPLOY-DRY-RUN.md +981 -0
  19. package/frigg-cli/deploy-command/index.js +295 -17
  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 +142 -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 +167 -0
  44. package/frigg-cli/utils/error-messages.js +329 -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 +522 -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 +701 -0
  70. package/infrastructure/domains/database/migration-builder.test.js +321 -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 +404 -0
  138. package/infrastructure/domains/integration/integration-builder.test.js +690 -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 +2051 -0
  144. package/infrastructure/domains/networking/vpc-builder.test.js +1960 -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 +505 -0
  148. package/infrastructure/domains/networking/vpc-resolver.test.js +801 -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 +415 -0
  156. package/infrastructure/domains/security/kms-builder.test.js +392 -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 +672 -0
  171. package/infrastructure/domains/shared/cloudformation-discovery.test.js +985 -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 +579 -0
  175. package/infrastructure/domains/shared/providers/aws-provider-adapter.test.js +416 -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 +233 -0
  183. package/infrastructure/domains/shared/resource-discovery.test.js +588 -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 +394 -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 +291 -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 +117 -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 +701 -0
  206. package/infrastructure/scripts/build-prisma-layer.test.js +170 -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/infrastructure/scripts/verify-prisma-layer.js +72 -0
  211. package/layers/prisma/.build-complete +3 -0
  212. package/layers/prisma/nodejs/package.json +8 -0
  213. package/management-ui/.eslintrc.js +22 -0
  214. package/management-ui/README.md +203 -0
  215. package/management-ui/components.json +21 -0
  216. package/management-ui/docs/phase2-integration-guide.md +320 -0
  217. package/management-ui/index.html +13 -0
  218. package/management-ui/package.json +76 -0
  219. package/management-ui/packages/devtools/frigg-cli/ui-command/index.js +302 -0
  220. package/management-ui/postcss.config.js +6 -0
  221. package/management-ui/server/api/backend.js +256 -0
  222. package/management-ui/server/api/cli.js +315 -0
  223. package/management-ui/server/api/codegen.js +663 -0
  224. package/management-ui/server/api/connections.js +857 -0
  225. package/management-ui/server/api/discovery.js +185 -0
  226. package/management-ui/server/api/environment/index.js +1 -0
  227. package/management-ui/server/api/environment/router.js +378 -0
  228. package/management-ui/server/api/environment.js +328 -0
  229. package/management-ui/server/api/integrations.js +876 -0
  230. package/management-ui/server/api/logs.js +248 -0
  231. package/management-ui/server/api/monitoring.js +282 -0
  232. package/management-ui/server/api/open-ide.js +31 -0
  233. package/management-ui/server/api/project.js +1029 -0
  234. package/management-ui/server/api/users/sessions.js +371 -0
  235. package/management-ui/server/api/users/simulation.js +254 -0
  236. package/management-ui/server/api/users.js +362 -0
  237. package/management-ui/server/api-contract.md +275 -0
  238. package/management-ui/server/index.js +873 -0
  239. package/management-ui/server/middleware/errorHandler.js +93 -0
  240. package/management-ui/server/middleware/security.js +32 -0
  241. package/management-ui/server/processManager.js +296 -0
  242. package/management-ui/server/server.js +346 -0
  243. package/management-ui/server/services/aws-monitor.js +413 -0
  244. package/management-ui/server/services/npm-registry.js +347 -0
  245. package/management-ui/server/services/template-engine.js +538 -0
  246. package/management-ui/server/utils/cliIntegration.js +220 -0
  247. package/management-ui/server/utils/environment/auditLogger.js +471 -0
  248. package/management-ui/server/utils/environment/awsParameterStore.js +275 -0
  249. package/management-ui/server/utils/environment/encryption.js +278 -0
  250. package/management-ui/server/utils/environment/envFileManager.js +286 -0
  251. package/management-ui/server/utils/import-commonjs.js +28 -0
  252. package/management-ui/server/utils/response.js +83 -0
  253. package/management-ui/server/websocket/handler.js +325 -0
  254. package/management-ui/src/App.jsx +25 -0
  255. package/management-ui/src/assets/FriggLogo.svg +1 -0
  256. package/management-ui/src/components/AppRouter.jsx +65 -0
  257. package/management-ui/src/components/Button.jsx +70 -0
  258. package/management-ui/src/components/Card.jsx +97 -0
  259. package/management-ui/src/components/EnvironmentCompare.jsx +400 -0
  260. package/management-ui/src/components/EnvironmentEditor.jsx +372 -0
  261. package/management-ui/src/components/EnvironmentImportExport.jsx +469 -0
  262. package/management-ui/src/components/EnvironmentSchema.jsx +491 -0
  263. package/management-ui/src/components/EnvironmentSecurity.jsx +463 -0
  264. package/management-ui/src/components/ErrorBoundary.jsx +73 -0
  265. package/management-ui/src/components/IntegrationCard.jsx +481 -0
  266. package/management-ui/src/components/IntegrationCardEnhanced.jsx +770 -0
  267. package/management-ui/src/components/IntegrationExplorer.jsx +379 -0
  268. package/management-ui/src/components/IntegrationStatus.jsx +336 -0
  269. package/management-ui/src/components/Layout.jsx +716 -0
  270. package/management-ui/src/components/LoadingSpinner.jsx +113 -0
  271. package/management-ui/src/components/RepositoryPicker.jsx +248 -0
  272. package/management-ui/src/components/SessionMonitor.jsx +350 -0
  273. package/management-ui/src/components/StatusBadge.jsx +208 -0
  274. package/management-ui/src/components/UserContextSwitcher.jsx +212 -0
  275. package/management-ui/src/components/UserSimulation.jsx +327 -0
  276. package/management-ui/src/components/Welcome.jsx +434 -0
  277. package/management-ui/src/components/codegen/APIEndpointGenerator.jsx +637 -0
  278. package/management-ui/src/components/codegen/APIModuleSelector.jsx +227 -0
  279. package/management-ui/src/components/codegen/CodeGenerationWizard.jsx +247 -0
  280. package/management-ui/src/components/codegen/CodePreviewEditor.jsx +316 -0
  281. package/management-ui/src/components/codegen/DynamicModuleForm.jsx +271 -0
  282. package/management-ui/src/components/codegen/FormBuilder.jsx +737 -0
  283. package/management-ui/src/components/codegen/IntegrationGenerator.jsx +855 -0
  284. package/management-ui/src/components/codegen/ProjectScaffoldWizard.jsx +797 -0
  285. package/management-ui/src/components/codegen/SchemaBuilder.jsx +303 -0
  286. package/management-ui/src/components/codegen/TemplateSelector.jsx +586 -0
  287. package/management-ui/src/components/codegen/index.js +10 -0
  288. package/management-ui/src/components/connections/ConnectionConfigForm.jsx +362 -0
  289. package/management-ui/src/components/connections/ConnectionHealthMonitor.jsx +182 -0
  290. package/management-ui/src/components/connections/ConnectionTester.jsx +200 -0
  291. package/management-ui/src/components/connections/EntityRelationshipMapper.jsx +292 -0
  292. package/management-ui/src/components/connections/OAuthFlow.jsx +204 -0
  293. package/management-ui/src/components/connections/index.js +5 -0
  294. package/management-ui/src/components/index.js +21 -0
  295. package/management-ui/src/components/monitoring/APIGatewayMetrics.jsx +222 -0
  296. package/management-ui/src/components/monitoring/LambdaMetrics.jsx +169 -0
  297. package/management-ui/src/components/monitoring/MetricsChart.jsx +197 -0
  298. package/management-ui/src/components/monitoring/MonitoringDashboard.jsx +393 -0
  299. package/management-ui/src/components/monitoring/SQSMetrics.jsx +246 -0
  300. package/management-ui/src/components/monitoring/index.js +6 -0
  301. package/management-ui/src/components/monitoring/monitoring.css +218 -0
  302. package/management-ui/src/components/theme-provider.jsx +52 -0
  303. package/management-ui/src/components/theme-toggle.jsx +39 -0
  304. package/management-ui/src/components/ui/badge.tsx +36 -0
  305. package/management-ui/src/components/ui/button.test.jsx +56 -0
  306. package/management-ui/src/components/ui/button.tsx +57 -0
  307. package/management-ui/src/components/ui/card.tsx +76 -0
  308. package/management-ui/src/components/ui/dropdown-menu.tsx +199 -0
  309. package/management-ui/src/components/ui/select.tsx +157 -0
  310. package/management-ui/src/components/ui/skeleton.jsx +15 -0
  311. package/management-ui/src/hooks/useFrigg.jsx +387 -0
  312. package/management-ui/src/hooks/useSocket.jsx +58 -0
  313. package/management-ui/src/index.css +193 -0
  314. package/management-ui/src/lib/utils.ts +6 -0
  315. package/management-ui/src/main.jsx +10 -0
  316. package/management-ui/src/pages/CodeGeneration.jsx +14 -0
  317. package/management-ui/src/pages/Connections.jsx +252 -0
  318. package/management-ui/src/pages/ConnectionsEnhanced.jsx +633 -0
  319. package/management-ui/src/pages/Dashboard.jsx +311 -0
  320. package/management-ui/src/pages/Environment.jsx +314 -0
  321. package/management-ui/src/pages/IntegrationConfigure.jsx +669 -0
  322. package/management-ui/src/pages/IntegrationDiscovery.jsx +567 -0
  323. package/management-ui/src/pages/IntegrationTest.jsx +742 -0
  324. package/management-ui/src/pages/Integrations.jsx +253 -0
  325. package/management-ui/src/pages/Monitoring.jsx +17 -0
  326. package/management-ui/src/pages/Simulation.jsx +155 -0
  327. package/management-ui/src/pages/Users.jsx +492 -0
  328. package/management-ui/src/services/api.js +41 -0
  329. package/management-ui/src/services/apiModuleService.js +193 -0
  330. package/management-ui/src/services/websocket-handlers.js +120 -0
  331. package/management-ui/src/test/api/project.test.js +273 -0
  332. package/management-ui/src/test/components/Welcome.test.jsx +378 -0
  333. package/management-ui/src/test/mocks/server.js +178 -0
  334. package/management-ui/src/test/setup.js +61 -0
  335. package/management-ui/src/test/utils/test-utils.jsx +134 -0
  336. package/management-ui/src/utils/repository.js +98 -0
  337. package/management-ui/src/utils/repository.test.js +118 -0
  338. package/management-ui/src/workflows/phase2-integration-workflows.js +884 -0
  339. package/management-ui/tailwind.config.js +63 -0
  340. package/management-ui/tsconfig.json +37 -0
  341. package/management-ui/tsconfig.node.json +10 -0
  342. package/management-ui/vite.config.js +26 -0
  343. package/management-ui/vitest.config.js +38 -0
  344. package/package.json +35 -14
  345. package/test/index.js +2 -4
  346. package/test/mock-integration.js +4 -14
  347. package/infrastructure/app-handler-helpers.js +0 -57
  348. package/infrastructure/backend-utils.js +0 -87
  349. package/infrastructure/routers/auth.js +0 -26
  350. package/infrastructure/routers/integration-defined-routers.js +0 -42
  351. package/infrastructure/routers/middleware/loadUser.js +0 -15
  352. package/infrastructure/routers/middleware/requireLoggedInUser.js +0 -12
  353. package/infrastructure/routers/user.js +0 -41
  354. package/infrastructure/routers/websocket.js +0 -55
  355. package/infrastructure/serverless-template.js +0 -291
  356. package/infrastructure/workers/integration-defined-workers.js +0 -24
  357. package/test/auther-definition-tester.js +0 -125
@@ -0,0 +1,522 @@
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)