blockmine 1.20.0 → 1.22.0

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 (434) hide show
  1. package/.claude/agents/README.md +469 -0
  2. package/.claude/agents/auth-route-debugger.md +118 -0
  3. package/.claude/agents/auth-route-tester.md +93 -0
  4. package/.claude/agents/auto-error-resolver.md +97 -0
  5. package/.claude/agents/build-optimizer.md +236 -0
  6. package/.claude/agents/code-architecture-reviewer.md +83 -0
  7. package/.claude/agents/code-refactor-master.md +94 -0
  8. package/.claude/agents/cost-optimizer.md +134 -0
  9. package/.claude/agents/deployment-orchestrator.md +113 -0
  10. package/.claude/agents/documentation-architect.md +82 -0
  11. package/.claude/agents/frontend-error-fixer.md +77 -0
  12. package/.claude/agents/iac-code-generator.md +71 -0
  13. package/.claude/agents/incident-responder.md +346 -0
  14. package/.claude/agents/infrastructure-architect.md +31 -0
  15. package/.claude/agents/kubernetes-specialist.md +56 -0
  16. package/.claude/agents/migration-planner.md +181 -0
  17. package/.claude/agents/network-architect.md +196 -0
  18. package/.claude/agents/plan-reviewer.md +52 -0
  19. package/.claude/agents/refactor-planner.md +63 -0
  20. package/.claude/agents/security-scanner.md +102 -0
  21. package/.claude/agents/web-research-specialist.md +78 -0
  22. package/.claude/commands/cost-analysis.md +315 -0
  23. package/.claude/commands/dev-docs-update.md +55 -0
  24. package/.claude/commands/dev-docs.md +51 -0
  25. package/.claude/commands/incident-debug.md +247 -0
  26. package/.claude/commands/infra-plan.md +81 -0
  27. package/.claude/commands/migration-plan.md +478 -0
  28. package/.claude/commands/route-research-for-testing.md +37 -0
  29. package/.claude/commands/security-review.md +66 -0
  30. package/.claude/hooks/CONFIG.md +448 -0
  31. package/.claude/hooks/README.md +163 -0
  32. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
  33. package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
  34. package/.claude/hooks/add-skill-activation-banners.ts +132 -0
  35. package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
  36. package/.claude/hooks/error-handling-reminder.sh +12 -0
  37. package/.claude/hooks/error-handling-reminder.ts +222 -0
  38. package/.claude/hooks/k8s-manifest-validator.sh +56 -0
  39. package/.claude/hooks/package-lock.json +556 -0
  40. package/.claude/hooks/package.json +16 -0
  41. package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
  42. package/.claude/hooks/post-tool-use-tracker.sh +183 -0
  43. package/.claude/hooks/security-policy-check.sh +247 -0
  44. package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
  45. package/.claude/hooks/skill-activation-prompt.sh +10 -0
  46. package/.claude/hooks/skill-activation-prompt.ts +141 -0
  47. package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
  48. package/.claude/hooks/terraform-validator.sh +53 -0
  49. package/.claude/hooks/test-input.json +7 -0
  50. package/.claude/hooks/test-skill-activation.ts +427 -0
  51. package/.claude/hooks/trigger-build-resolver.sh +79 -0
  52. package/.claude/hooks/tsc-check.sh +173 -0
  53. package/.claude/hooks/tsconfig.json +19 -0
  54. package/.claude/settings.json +55 -0
  55. package/.claude/settings.local.json +28 -3
  56. package/.claude/skills/README.md +507 -0
  57. package/.claude/skills/api-engineering/SKILL.md +63 -0
  58. package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
  59. package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
  60. package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
  61. package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
  62. package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
  63. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  64. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  65. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  66. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  67. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  68. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  69. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  70. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  71. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  72. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  73. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  74. package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
  75. package/.claude/skills/build-engineering/SKILL.md +431 -0
  76. package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
  77. package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
  78. package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
  79. package/.claude/skills/build-engineering/resources/build-security.md +95 -0
  80. package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
  81. package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
  82. package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
  83. package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
  84. package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
  85. package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
  86. package/.claude/skills/cloud-engineering/SKILL.md +675 -0
  87. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
  88. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
  89. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
  90. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
  91. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
  92. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
  93. package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
  94. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
  95. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
  96. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
  97. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
  98. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
  99. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
  100. package/.claude/skills/cybersecurity/SKILL.md +409 -0
  101. package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
  102. package/.claude/skills/database-engineering/SKILL.md +61 -0
  103. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
  104. package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
  105. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
  106. package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
  107. package/.claude/skills/devsecops/SKILL.md +374 -0
  108. package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
  109. package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
  110. package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
  111. package/.claude/skills/devsecops/resources/container-security.md +915 -0
  112. package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
  113. package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
  114. package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
  115. package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
  116. package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
  117. package/.claude/skills/devsecops/resources/security-testing.md +203 -0
  118. package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
  119. package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
  120. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
  121. package/.claude/skills/documentation-as-code/SKILL.md +323 -0
  122. package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
  123. package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
  124. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
  125. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
  126. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
  127. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
  128. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
  129. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
  130. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
  131. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
  132. package/.claude/skills/engineering-management/SKILL.md +356 -0
  133. package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
  134. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
  135. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
  136. package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
  137. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
  138. package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
  139. package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
  140. package/.claude/skills/error-tracking/SKILL.md +379 -0
  141. package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
  142. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  143. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  144. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  145. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  146. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  147. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  148. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  149. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  150. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  151. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  152. package/.claude/skills/general-it-engineering/SKILL.md +393 -0
  153. package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
  154. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
  155. package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
  156. package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
  157. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
  158. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
  159. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
  160. package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
  161. package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
  162. package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
  163. package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
  164. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
  165. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
  166. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
  167. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
  168. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
  169. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
  170. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
  171. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
  172. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
  173. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
  174. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
  175. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
  176. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
  177. package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
  178. package/.claude/skills/network-engineering/SKILL.md +385 -0
  179. package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
  180. package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
  181. package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
  182. package/.claude/skills/network-engineering/resources/network-security.md +921 -0
  183. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
  184. package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
  185. package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
  186. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
  187. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
  188. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
  189. package/.claude/skills/observability-engineering/SKILL.md +101 -0
  190. package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
  191. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
  192. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
  193. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
  194. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
  195. package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
  196. package/.claude/skills/platform-engineering/SKILL.md +555 -0
  197. package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
  198. package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
  199. package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
  200. package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
  201. package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
  202. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
  203. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
  204. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
  205. package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
  206. package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
  207. package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
  208. package/.claude/skills/release-engineering/SKILL.md +393 -0
  209. package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
  210. package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
  211. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
  212. package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
  213. package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
  214. package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
  215. package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
  216. package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
  217. package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
  218. package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
  219. package/.claude/skills/route-tester/SKILL.md +392 -0
  220. package/.claude/skills/skill-developer/ADVANCED.md +197 -0
  221. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  222. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  223. package/.claude/skills/skill-developer/SKILL.md +430 -0
  224. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  225. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  226. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  227. package/.claude/skills/skill-rules.json +2940 -0
  228. package/.claude/skills/sre/SKILL.md +464 -0
  229. package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
  230. package/.claude/skills/sre/resources/capacity-planning.md +226 -0
  231. package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
  232. package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
  233. package/.claude/skills/sre/resources/incident-management.md +436 -0
  234. package/.claude/skills/sre/resources/observability-stack.md +240 -0
  235. package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
  236. package/.claude/skills/sre/resources/performance-optimization.md +108 -0
  237. package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
  238. package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
  239. package/.claude/skills/sre/resources/toil-reduction.md +145 -0
  240. package/.claude/skills/systems-engineering/SKILL.md +648 -0
  241. package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
  242. package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
  243. package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
  244. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
  245. package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
  246. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
  247. package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
  248. package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
  249. package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
  250. package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
  251. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
  252. package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
  253. package/.claude/skills/technical-leadership/SKILL.md +728 -0
  254. package/CHANGELOG.md +90 -39
  255. package/README.md +94 -0
  256. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  257. package/backend/jest.config.js +59 -0
  258. package/backend/package-lock.json +6129 -0
  259. package/backend/package.json +16 -4
  260. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  261. package/backend/prisma/schema.prisma +33 -0
  262. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  263. package/backend/src/__tests__/core/UserService.test.js +875 -0
  264. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  265. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  266. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  267. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  268. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  269. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  270. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  271. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  272. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  273. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  274. package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
  275. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  276. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  277. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  278. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  279. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  280. package/backend/src/__tests__/setup.js +25 -0
  281. package/backend/src/api/routes/apiKeys.js +181 -0
  282. package/backend/src/api/routes/bots.js +49 -7
  283. package/backend/src/api/routes/plugins.js +2 -1
  284. package/backend/src/api/routes/system.js +174 -0
  285. package/backend/src/container.js +82 -0
  286. package/backend/src/core/BotManager.js +142 -871
  287. package/backend/src/core/BotManager.old.js +1093 -0
  288. package/backend/src/core/BotProcess.js +1092 -850
  289. package/backend/src/core/BreakLoopSignal.js +8 -0
  290. package/backend/src/core/EventGraphManager.js +280 -193
  291. package/backend/src/core/GraphExecutionEngine.js +321 -928
  292. package/backend/src/core/MessageQueue.js +27 -6
  293. package/backend/src/core/NodeRegistry.js +37 -991
  294. package/backend/src/core/PluginManager.js +62 -12
  295. package/backend/src/core/PrismaService.js +32 -0
  296. package/backend/src/core/UserService.js +3 -3
  297. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  298. package/backend/src/core/commands/README.md +305 -0
  299. package/backend/src/core/commands/dev.js +13 -7
  300. package/backend/src/core/commands/ping.js +10 -4
  301. package/backend/src/core/commands/whois.js +63 -0
  302. package/backend/src/core/config/validation.js +27 -0
  303. package/backend/src/core/constants/graphTypes.js +21 -0
  304. package/backend/src/core/node-registries/actions.js +132 -0
  305. package/backend/src/core/node-registries/arrays.js +137 -0
  306. package/backend/src/core/node-registries/bot.js +23 -0
  307. package/backend/src/core/node-registries/data.js +290 -0
  308. package/backend/src/core/node-registries/debug.js +26 -0
  309. package/backend/src/core/node-registries/events.js +187 -0
  310. package/backend/src/core/node-registries/flow.js +139 -0
  311. package/backend/src/core/node-registries/logic.js +45 -0
  312. package/backend/src/core/node-registries/math.js +42 -0
  313. package/backend/src/core/node-registries/objects.js +98 -0
  314. package/backend/src/core/node-registries/strings.js +153 -0
  315. package/backend/src/core/node-registries/time.js +113 -0
  316. package/backend/src/core/node-registries/users.js +79 -0
  317. package/backend/src/core/nodes/actions/bot_look_at.js +36 -0
  318. package/backend/src/core/nodes/actions/bot_set_variable.js +32 -0
  319. package/backend/src/core/nodes/actions/http_request.js +98 -0
  320. package/backend/src/core/nodes/actions/send_log.js +28 -0
  321. package/backend/src/core/nodes/actions/send_message.js +32 -0
  322. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  323. package/backend/src/core/nodes/arrays/add_element.js +23 -0
  324. package/backend/src/core/nodes/arrays/contains.js +40 -0
  325. package/backend/src/core/nodes/arrays/find_index.js +23 -0
  326. package/backend/src/core/nodes/arrays/get_by_index.js +23 -0
  327. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  328. package/backend/src/core/nodes/arrays/get_random_element.js +32 -0
  329. package/backend/src/core/nodes/arrays/remove_by_index.js +30 -0
  330. package/backend/src/core/nodes/bot/get_position.js +20 -0
  331. package/backend/src/core/nodes/data/array_literal.js +31 -0
  332. package/backend/src/core/nodes/data/boolean_literal.js +21 -0
  333. package/backend/src/core/nodes/data/cast.js +42 -0
  334. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  335. package/backend/src/core/nodes/data/entity_info.js +69 -0
  336. package/backend/src/core/nodes/data/get_argument.js +23 -0
  337. package/backend/src/core/nodes/data/get_bot_look.js +14 -0
  338. package/backend/src/core/nodes/data/get_entity_field.js +18 -0
  339. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  340. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  341. package/backend/src/core/nodes/data/get_server_players.js +18 -0
  342. package/backend/src/core/nodes/data/get_user_field.js +40 -0
  343. package/backend/src/core/nodes/data/get_variable.js +23 -0
  344. package/backend/src/core/nodes/data/length.js +25 -0
  345. package/backend/src/core/nodes/data/make_object.js +31 -0
  346. package/backend/src/core/nodes/data/number_literal.js +21 -0
  347. package/backend/src/core/nodes/data/string_literal.js +34 -0
  348. package/backend/src/core/nodes/data/type_check.js +53 -0
  349. package/backend/src/core/nodes/debug/log.js +16 -0
  350. package/backend/src/core/nodes/flow/branch.js +15 -0
  351. package/backend/src/core/nodes/flow/break.js +14 -0
  352. package/backend/src/core/nodes/flow/delay.js +43 -0
  353. package/backend/src/core/nodes/flow/for_each.js +39 -0
  354. package/backend/src/core/nodes/flow/sequence.js +16 -0
  355. package/backend/src/core/nodes/flow/switch.js +47 -0
  356. package/backend/src/core/nodes/flow/while.js +64 -0
  357. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  358. package/backend/src/core/nodes/logic/compare.js +33 -0
  359. package/backend/src/core/nodes/logic/operation.js +35 -0
  360. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  361. package/backend/src/core/nodes/math/operation.js +31 -0
  362. package/backend/src/core/nodes/math/random_number.js +43 -0
  363. package/backend/src/core/nodes/objects/create.js +40 -0
  364. package/backend/src/core/nodes/objects/delete.js +26 -0
  365. package/backend/src/core/nodes/objects/get.js +23 -0
  366. package/backend/src/core/nodes/objects/has_key.js +30 -0
  367. package/backend/src/core/nodes/objects/set.js +27 -0
  368. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  369. package/backend/src/core/nodes/strings/concat.js +27 -0
  370. package/backend/src/core/nodes/strings/contains.js +41 -0
  371. package/backend/src/core/nodes/strings/ends_with.js +43 -0
  372. package/backend/src/core/nodes/strings/equals.js +36 -0
  373. package/backend/src/core/nodes/strings/length.js +36 -0
  374. package/backend/src/core/nodes/strings/matches.js +39 -0
  375. package/backend/src/core/nodes/strings/split.js +37 -0
  376. package/backend/src/core/nodes/strings/starts_with.js +43 -0
  377. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  378. package/backend/src/core/nodes/time/add.js +33 -0
  379. package/backend/src/core/nodes/time/compare.js +35 -0
  380. package/backend/src/core/nodes/time/diff.js +29 -0
  381. package/backend/src/core/nodes/time/format.js +32 -0
  382. package/backend/src/core/nodes/time/now.js +18 -0
  383. package/backend/src/core/nodes/users/check_blacklist.js +37 -0
  384. package/backend/src/core/nodes/users/get_groups.js +36 -0
  385. package/backend/src/core/nodes/users/get_permissions.js +36 -0
  386. package/backend/src/core/nodes/users/set_blacklist.js +37 -0
  387. package/backend/src/core/services/BotLifecycleService.js +596 -0
  388. package/backend/src/core/services/BotProcessManager.js +163 -0
  389. package/backend/src/core/services/CacheManager.js +111 -0
  390. package/backend/src/core/services/CommandExecutionService.js +351 -0
  391. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  392. package/backend/src/core/services/TelemetryService.js +124 -0
  393. package/backend/src/core/services/ValidationService.js +132 -0
  394. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  395. package/backend/src/core/services.js +20 -5
  396. package/backend/src/core/system/CommandContext.js +84 -0
  397. package/backend/src/core/system/Transport.js +78 -0
  398. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  399. package/backend/src/core/utils/jsonParser.js +18 -0
  400. package/backend/src/core/utils/secretsFilter.js +262 -0
  401. package/backend/src/core/utils/variableParser.js +89 -0
  402. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  403. package/backend/src/core/validation/nodeSchemas.js +112 -0
  404. package/backend/src/lib/prisma.js +2 -4
  405. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  406. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  407. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  408. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  409. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  410. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  411. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  412. package/backend/src/real-time/botApi/index.js +40 -0
  413. package/backend/src/real-time/botApi/middleware.js +79 -0
  414. package/backend/src/real-time/botApi/utils.js +54 -0
  415. package/backend/src/real-time/socketHandler.js +6 -2
  416. package/backend/src/repositories/BaseRepository.js +43 -0
  417. package/backend/src/repositories/BotRepository.js +42 -0
  418. package/backend/src/repositories/CommandRepository.js +53 -0
  419. package/backend/src/repositories/EventGraphRepository.js +40 -0
  420. package/backend/src/repositories/GroupRepository.js +69 -0
  421. package/backend/src/repositories/PermissionRepository.js +48 -0
  422. package/backend/src/repositories/PluginRepository.js +42 -0
  423. package/backend/src/repositories/ServerRepository.js +27 -0
  424. package/backend/src/repositories/UserRepository.js +48 -0
  425. package/backend/src/server.js +3 -0
  426. package/backend/src/test-refactor.js +85 -0
  427. package/frontend/dist/assets/index-CfTo92bP.css +1 -0
  428. package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
  429. package/frontend/dist/index.html +2 -2
  430. package/frontend/package.json +1 -5
  431. package/package.json +2 -1
  432. package/frontend/dist/assets/index-BFd7YoAj.css +0 -1
  433. package/frontend/dist/assets/index-CMMutadc.js +0 -8352
  434. package/nul +0 -0
@@ -0,0 +1,512 @@
1
+ # Migration Architecture
2
+
3
+ Guide to planning and executing infrastructure migrations with minimal risk and downtime.
4
+
5
+ ## Migration Patterns
6
+
7
+ ### 1. Strangler Fig Pattern
8
+
9
+ **Gradually replace old system with new:**
10
+
11
+ ```
12
+ Phase 1: Both systems running, proxy routes to old
13
+ ┌──────┐ ┌─────────┐
14
+ │Client│────►│ Proxy │────►Old System (100%)
15
+ └──────┘ └─────────┘
16
+
17
+ Phase 2: Route new features to new system
18
+ ┌──────┐ ┌─────────┐────►Old System (90%)
19
+ │Client│────►│ Proxy │
20
+ └──────┘ └─────────┘────►New System (10%)
21
+
22
+ Phase 3: Gradually shift traffic
23
+ ┌──────┐ ┌─────────┐────►Old System (50%)
24
+ │Client│────►│ Proxy │
25
+ └──────┘ └─────────┘────►New System (50%)
26
+
27
+ Phase 4: Complete migration
28
+ ┌──────┐ ┌─────────┐
29
+ │Client│────►│ Proxy │────►New System (100%)
30
+ └──────┘ └─────────┘ Old System (decommissioned)
31
+ ```
32
+
33
+ **Example:**
34
+ ```typescript
35
+ // API proxy routing old → new gradually
36
+ app.use((req, res, next) => {
37
+ const rolloutPercentage = 20; // Start with 20%
38
+
39
+ // Feature flag or random routing
40
+ if (Math.random() * 100 < rolloutPercentage) {
41
+ return proxyToNewAPI(req, res); // New system
42
+ } else {
43
+ return proxyToOldAPI(req, res); // Old system
44
+ }
45
+ });
46
+ ```
47
+
48
+ **Advantages:**
49
+ - ✅ Low risk (gradual rollout)
50
+ - ✅ Easy rollback
51
+ - ✅ No big bang
52
+ - ✅ Continuous delivery
53
+
54
+ **Disadvantages:**
55
+ - ❌ Both systems run simultaneously (higher cost)
56
+ - ❌ Longer timeline
57
+ - ❌ Data synchronization complexity
58
+
59
+ ---
60
+
61
+ ### 2. Big Bang Migration
62
+
63
+ **Switch all at once:**
64
+
65
+ ```
66
+ Friday 11pm: Final backup
67
+ Friday 11:30pm: Migrate data
68
+ Saturday 12am: Switch DNS
69
+ Saturday 12:30am: Verify
70
+ Saturday 1am: Go-live
71
+
72
+ Downtime: 2 hours
73
+ ```
74
+
75
+ **When to use:**
76
+ - Small applications
77
+ - Can tolerate downtime
78
+ - Tight deadline
79
+ - Data migration simple
80
+
81
+ **Example:**
82
+ ```bash
83
+ #!/bin/bash
84
+ # Big bang migration script
85
+
86
+ # 1. Stop old application
87
+ kubectl scale deployment/old-app --replicas=0
88
+
89
+ # 2. Final data export
90
+ pg_dump old_db > final_backup.sql
91
+
92
+ # 3. Import to new database
93
+ psql new_db < final_backup.sql
94
+
95
+ # 4. Deploy new application
96
+ kubectl apply -f new-app.yaml
97
+
98
+ # 5. Update DNS
99
+ aws route53 change-resource-record-sets ...
100
+
101
+ # 6. Verify
102
+ curl https://api.example.com/health
103
+ ```
104
+
105
+ **Advantages:**
106
+ - ✅ Fast (single maintenance window)
107
+ - ✅ Simple (no dual operation)
108
+ - ✅ Lower cost (no parallel systems)
109
+
110
+ **Disadvantages:**
111
+ - ❌ High risk (all-or-nothing)
112
+ - ❌ Downtime required
113
+ - ❌ Difficult rollback
114
+ - ❌ Stressful
115
+
116
+ ---
117
+
118
+ ### 3. Phased Migration
119
+
120
+ **Migrate in stages:**
121
+
122
+ ```
123
+ Phase 1: Migrate authentication service (1 week)
124
+ Phase 2: Migrate user profile service (1 week)
125
+ Phase 3: Migrate order service (1 week)
126
+ Phase 4: Migrate product catalog (1 week)
127
+ Phase 5: Decommission old system
128
+
129
+ Total: 5 weeks
130
+ ```
131
+
132
+ **Advantages:**
133
+ - ✅ Lower risk per phase
134
+ - ✅ Learn and adjust
135
+ - ✅ Easier rollback (per service)
136
+
137
+ **Disadvantages:**
138
+ - ❌ Longer timeline
139
+ - ❌ Complex coordination
140
+ - ❌ Data consistency challenges
141
+
142
+ ---
143
+
144
+ ### 4. Blue-Green Deployment
145
+
146
+ **Two identical environments:**
147
+
148
+ ```
149
+ Blue (Current):
150
+ ┌──────────────┐
151
+ │ v1.0 (100%) │◄─── Load Balancer (active)
152
+ └──────────────┘
153
+
154
+ Green (New):
155
+ ┌──────────────┐
156
+ │ v2.0 (0%) │ (idle, testing)
157
+ └──────────────┘
158
+
159
+ After validation:
160
+ Blue (Old):
161
+ ┌──────────────┐
162
+ │ v1.0 (0%) │ (idle, rollback ready)
163
+ └──────────────┘
164
+
165
+ Green (New):
166
+ ┌──────────────┐
167
+ │ v2.0 (100%) │◄─── Load Balancer (active)
168
+ └──────────────┘
169
+ ```
170
+
171
+ **Implementation:**
172
+ ```yaml
173
+ # Blue deployment
174
+ apiVersion: apps/v1
175
+ kind: Deployment
176
+ metadata:
177
+ name: app-blue
178
+ labels:
179
+ version: blue
180
+ spec:
181
+ replicas: 10
182
+
183
+ ---
184
+ # Green deployment
185
+ apiVersion: apps/v1
186
+ kind: Deployment
187
+ metadata:
188
+ name: app-green
189
+ labels:
190
+ version: green
191
+ spec:
192
+ replicas: 10
193
+
194
+ ---
195
+ # Service switches between blue/green
196
+ apiVersion: v1
197
+ kind: Service
198
+ metadata:
199
+ name: app
200
+ spec:
201
+ selector:
202
+ version: blue # Switch to 'green' to cutover
203
+ ```
204
+
205
+ **Advantages:**
206
+ - ✅ Zero downtime
207
+ - ✅ Instant rollback (switch back)
208
+ - ✅ Full validation before cutover
209
+
210
+ **Disadvantages:**
211
+ - ❌ 2x infrastructure cost
212
+ - ❌ Database migration complexity
213
+ - ❌ Data synchronization during transition
214
+
215
+ ---
216
+
217
+ ## Data Migration Strategies
218
+
219
+ ### 1. Dual Writes
220
+
221
+ **Write to both old and new databases:**
222
+
223
+ ```typescript
224
+ async function createUser(data) {
225
+ // Write to old database
226
+ await oldDB.users.create({ data });
227
+
228
+ // Also write to new database
229
+ try {
230
+ await newDB.users.create({ data });
231
+ } catch (error) {
232
+ logger.error('New DB write failed', error);
233
+ // Continue (old DB is source of truth)
234
+ }
235
+ }
236
+
237
+ // Read from old database (still source of truth)
238
+ async function getUser(id) {
239
+ return await oldDB.users.findUnique({ where: { id } });
240
+ }
241
+ ```
242
+
243
+ **Phases:**
244
+ 1. Dual writes (both DBs)
245
+ 2. Backfill new DB with historical data
246
+ 3. Verify data consistency
247
+ 4. Switch reads to new DB
248
+ 5. Stop writes to old DB
249
+
250
+ ---
251
+
252
+ ### 2. Change Data Capture (CDC)
253
+
254
+ **Stream changes from old to new:**
255
+
256
+ ```
257
+ Old Database → Debezium → Kafka → Consumer → New Database
258
+
259
+ Real-time replication without application changes
260
+ ```
261
+
262
+ ```yaml
263
+ # Debezium connector
264
+ {
265
+ "name": "mysql-connector",
266
+ "config": {
267
+ "connector.class": "io.debezium.connector.mysql.MySqlConnector",
268
+ "database.hostname": "old-mysql",
269
+ "database.port": "3306",
270
+ "database.user": "debezium",
271
+ "database.dbname": "prod",
272
+ "database.server.id": "1",
273
+ "table.include.list": "prod.users,prod.orders",
274
+ "database.history.kafka.bootstrap.servers": "kafka:9092",
275
+ "database.history.kafka.topic": "schema-changes"
276
+ }
277
+ }
278
+ ```
279
+
280
+ **Advantages:**
281
+ - ✅ No application code changes
282
+ - ✅ Real-time replication
283
+ - ✅ Can replay events
284
+
285
+ **Disadvantages:**
286
+ - ❌ Requires CDC-capable database
287
+ - ❌ Additional infrastructure (Kafka)
288
+
289
+ ---
290
+
291
+ ### 3. Database Replication
292
+
293
+ **Built-in database replication:**
294
+
295
+ ```
296
+ MySQL → MySQL (read replica) → Promote to standalone
297
+
298
+ or
299
+
300
+ PostgreSQL → PostgreSQL (streaming replication)
301
+ ```
302
+
303
+ ```sql
304
+ -- Create read replica (AWS RDS)
305
+ aws rds create-db-instance-read-replica \
306
+ --db-instance-identifier prod-db-replica \
307
+ --source-db-instance-identifier prod-db \
308
+ --db-instance-class db.r5.xlarge
309
+
310
+ -- Promote replica to standalone
311
+ aws rds promote-read-replica \
312
+ --db-instance-identifier prod-db-replica
313
+ ```
314
+
315
+ ---
316
+
317
+ ## Migration Checklist
318
+
319
+ ### Pre-Migration
320
+
321
+ **Planning:**
322
+ - [ ] Document current architecture
323
+ - [ ] Define success criteria
324
+ - [ ] Identify dependencies
325
+ - [ ] Estimate timeline
326
+ - [ ] Calculate costs (old + new during migration)
327
+ - [ ] Plan rollback procedures
328
+
329
+ **Risk Assessment:**
330
+ - [ ] Identify high-risk components
331
+ - [ ] Plan for data loss scenarios
332
+ - [ ] Define acceptable downtime
333
+ - [ ] Set up monitoring/alerting
334
+ - [ ] Practice in staging
335
+
336
+ **Communication:**
337
+ - [ ] Notify stakeholders
338
+ - [ ] Create maintenance window (if needed)
339
+ - [ ] Prepare status page updates
340
+ - [ ] Assign on-call engineers
341
+
342
+ ---
343
+
344
+ ### During Migration
345
+
346
+ **Execution:**
347
+ - [ ] Execute migration plan step-by-step
348
+ - [ ] Monitor metrics continuously
349
+ - [ ] Document issues encountered
350
+ - [ ] Be ready to rollback
351
+
352
+ **Validation:**
353
+ - [ ] Smoke tests (critical paths)
354
+ - [ ] Data integrity checks
355
+ - [ ] Performance benchmarks
356
+ - [ ] User acceptance testing
357
+
358
+ ---
359
+
360
+ ### Post-Migration
361
+
362
+ **Verification:**
363
+ - [ ] Monitor for 24-48 hours
364
+ - [ ] Compare metrics (old vs new)
365
+ - [ ] Validate business KPIs
366
+ - [ ] Address any issues
367
+
368
+ **Cleanup:**
369
+ - [ ] Decommission old infrastructure (after 2-4 weeks)
370
+ - [ ] Update documentation
371
+ - [ ] Delete old backups (after retention period)
372
+ - [ ] Post-mortem meeting
373
+
374
+ ---
375
+
376
+ ## Zero-Downtime Migration Techniques
377
+
378
+ ### Database Schema Changes
379
+
380
+ **Expand-Contract Pattern:**
381
+
382
+ ```sql
383
+ -- Phase 1: EXPAND (add new column, keep old)
384
+ ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
385
+
386
+ -- Dual-write both columns
387
+ UPDATE users SET full_name = CONCAT(first_name, ' ', last_name);
388
+
389
+ -- Phase 2: Migrate code to use new column
390
+ -- (deploy application changes)
391
+
392
+ -- Phase 3: CONTRACT (remove old columns)
393
+ ALTER TABLE users DROP COLUMN first_name;
394
+ ALTER TABLE users DROP COLUMN last_name;
395
+ ```
396
+
397
+ **Migration steps must be backward-compatible!**
398
+
399
+ ---
400
+
401
+ ### DNS Cutover
402
+
403
+ ```
404
+ 1. Lower DNS TTL to 60 seconds (24 hours before)
405
+ 2. Update DNS to point to new system
406
+ 3. Wait for TTL expiration (1-5 minutes)
407
+ 4. Monitor both systems for stragglers
408
+ 5. After 24 hours, decommission old
409
+ ```
410
+
411
+ ---
412
+
413
+ ## Rollback Strategies
414
+
415
+ ### Feature Flags
416
+
417
+ ```typescript
418
+ const useNewAPI = featureFlags.isEnabled('new-api');
419
+
420
+ if (useNewAPI) {
421
+ return await newAPI.getUsers();
422
+ } else {
423
+ return await oldAPI.getUsers();
424
+ }
425
+
426
+ // Instant rollback: Disable feature flag
427
+ ```
428
+
429
+ ### Database Rollback
430
+
431
+ ```bash
432
+ # Backup before migration
433
+ pg_dump prod_db > pre_migration_backup.sql
434
+
435
+ # If migration fails:
436
+ psql prod_db < pre_migration_backup.sql
437
+
438
+ # Rollback application
439
+ kubectl rollout undo deployment/api
440
+ ```
441
+
442
+ ---
443
+
444
+ ## Migration Timeline Template
445
+
446
+ ```markdown
447
+ # Migration: Monolith → Microservices
448
+
449
+ ## Week 1-2: Preparation
450
+ - Document current architecture
451
+ - Set up new infrastructure (Kubernetes)
452
+ - Create migration plan
453
+ - Practice in staging
454
+
455
+ ## Week 3-4: Phase 1 - Authentication Service
456
+ - Extract auth service
457
+ - Deploy to production (0% traffic)
458
+ - Shadow traffic testing
459
+ - Ramp to 10% → 50% → 100%
460
+ - Decommission old auth code
461
+
462
+ ## Week 5-6: Phase 2 - User Profile Service
463
+ - Extract profile service
464
+ - Deploy and test
465
+ - Ramp traffic gradually
466
+ - Monitor and optimize
467
+
468
+ ## Week 7-8: Phase 3 - Order Service
469
+ - (repeat process)
470
+
471
+ ## Week 9: Final Cutover
472
+ - Decommission monolith
473
+ - Update documentation
474
+ - Post-mortem
475
+
476
+ ## Week 10+: Monitoring & Optimization
477
+ - Monitor for 2-4 weeks
478
+ - Performance tuning
479
+ - Cost optimization
480
+ ```
481
+
482
+ ---
483
+
484
+ ## Common Migration Pitfalls
485
+
486
+ ❌ **No rollback plan** - Always have a way back
487
+ ❌ **Insufficient testing** - Practice in staging first
488
+ ❌ **Big bang approach** - Prefer gradual migration
489
+ ❌ **Ignoring data consistency** - Dual writes, CDC, or replication
490
+ ❌ **No monitoring** - Can't detect issues quickly
491
+ ❌ **Poor communication** - Stakeholders surprised
492
+ ❌ **Rushing** - Give adequate time for each phase
493
+
494
+ ---
495
+
496
+ ## Best Practices
497
+
498
+ ✅ **Migrate gradually** - Strangler fig preferred
499
+ ✅ **Test thoroughly** - Staging should mirror production
500
+ ✅ **Monitor everything** - Metrics before/during/after
501
+ ✅ **Have rollback plan** - Test rollback procedure
502
+ ✅ **Communicate clearly** - Keep stakeholders informed
503
+ ✅ **Document everything** - Architecture, decisions, issues
504
+ ✅ **Validate data** - Check integrity after migration
505
+ ✅ **Keep old system** - Don't decommission for 2-4 weeks
506
+
507
+ ---
508
+
509
+ **Related Resources:**
510
+ - architecture-patterns.md - Microservices, strangler fig
511
+ - disaster-recovery.md - Backup and recovery procedures
512
+ - multi-region-design.md - Multi-region migration