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,650 @@
1
+ # GitOps Automation
2
+
3
+ GitOps principles, ArgoCD, Flux CD, continuous deployment, progressive delivery, and automated rollbacks for Kubernetes deployments.
4
+
5
+ ## Table of Contents
6
+
7
+ - [GitOps Principles](#gitops-principles)
8
+ - [ArgoCD](#argocd)
9
+ - [Flux CD](#flux-cd)
10
+ - [Application Patterns](#application-patterns)
11
+ - [Progressive Delivery](#progressive-delivery)
12
+ - [Multi-Environment Strategy](#multi-environment-strategy)
13
+ - [Best Practices](#best-practices)
14
+
15
+ ## GitOps Principles
16
+
17
+ ### Core Tenets
18
+
19
+ ```
20
+ 1. Declarative Git contains desired state, not imperative scripts
21
+ 2. Versioned All changes tracked in Git history
22
+ 3. Pulled Cluster pulls changes (not pushed from CI)
23
+ 4. Reconciled Continuous sync between Git and cluster
24
+ ```
25
+
26
+ ### GitOps Workflow
27
+
28
+ ```
29
+ Developer CI/CD Pipeline Git Repository GitOps Controller Kubernetes Cluster
30
+ ──────── ────────────── ────────────── ───────────────── ──────────────────
31
+ git push → Build & Test → Update manifests Detect drift → Apply changes
32
+ Container image in Git repo Pull latest Reconcile state
33
+ Compare desired
34
+ vs actual state
35
+ ```
36
+
37
+ ## ArgoCD
38
+
39
+ ### Installation
40
+
41
+ ```yaml
42
+ # Install ArgoCD
43
+ kubectl create namespace argocd
44
+ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
45
+
46
+ # Expose ArgoCD server
47
+ kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
48
+
49
+ # Get initial password
50
+ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
51
+ ```
52
+
53
+ ### Application Definition
54
+
55
+ ```yaml
56
+ # apps/production/api-service.yaml
57
+ apiVersion: argoproj.io/v1alpha1
58
+ kind: Application
59
+ metadata:
60
+ name: api-service
61
+ namespace: argocd
62
+ # Finalizer ensures cascade delete
63
+ finalizers:
64
+ - resources-finalizer.argocd.argoproj.io
65
+ spec:
66
+ # Project for RBAC and restrictions
67
+ project: production
68
+
69
+ # Source: Git repository
70
+ source:
71
+ repoURL: https://github.com/company/k8s-manifests
72
+ targetRevision: main
73
+ path: applications/api-service/overlays/production
74
+
75
+ # Kustomize build options
76
+ kustomize:
77
+ namePrefix: prod-
78
+ commonLabels:
79
+ environment: production
80
+ images:
81
+ - api-service=company/api-service:v1.2.3
82
+
83
+ # Destination: Kubernetes cluster
84
+ destination:
85
+ server: https://kubernetes.default.svc
86
+ namespace: production
87
+
88
+ # Sync policy
89
+ syncPolicy:
90
+ automated:
91
+ prune: true # Delete resources not in Git
92
+ selfHeal: true # Auto-fix drift
93
+ allowEmpty: false # Don't delete all on empty dir
94
+
95
+ syncOptions:
96
+ - CreateNamespace=true
97
+ - PrunePropagationPolicy=foreground
98
+ - PruneLast=true
99
+
100
+ retry:
101
+ limit: 5
102
+ backoff:
103
+ duration: 5s
104
+ factor: 2
105
+ maxDuration: 3m
106
+
107
+ # Ignore differences in specific fields
108
+ ignoreDifferences:
109
+ - group: apps
110
+ kind: Deployment
111
+ jsonPointers:
112
+ - /spec/replicas # Ignore HPA-managed replicas
113
+
114
+ # Health assessment
115
+ health:
116
+ checkInterval: 30s
117
+ timeout: 5m
118
+ ```
119
+
120
+ ### AppProject (Multi-Tenancy)
121
+
122
+ ```yaml
123
+ # projects/team-platform.yaml
124
+ apiVersion: argoproj.io/v1alpha1
125
+ kind: AppProject
126
+ metadata:
127
+ name: team-platform
128
+ namespace: argocd
129
+ spec:
130
+ description: Platform team applications
131
+
132
+ # Allowed source repositories
133
+ sourceRepos:
134
+ - https://github.com/company/platform-*
135
+ - https://github.com/company/k8s-manifests
136
+
137
+ # Allowed destinations
138
+ destinations:
139
+ - namespace: 'platform-*'
140
+ server: https://kubernetes.default.svc
141
+ - namespace: production
142
+ server: https://kubernetes.default.svc
143
+
144
+ # Cluster resource whitelist (what can be deployed)
145
+ clusterResourceWhitelist:
146
+ - group: ''
147
+ kind: Namespace
148
+ - group: rbac.authorization.k8s.io
149
+ kind: ClusterRole
150
+ - group: rbac.authorization.k8s.io
151
+ kind: ClusterRoleBinding
152
+
153
+ # Namespace resource whitelist
154
+ namespaceResourceWhitelist:
155
+ - group: apps
156
+ kind: Deployment
157
+ - group: apps
158
+ kind: StatefulSet
159
+ - group: ''
160
+ kind: Service
161
+ - group: ''
162
+ kind: ConfigMap
163
+ - group: ''
164
+ kind: Secret
165
+
166
+ # Roles for RBAC
167
+ roles:
168
+ - name: developer
169
+ description: Developer access
170
+ policies:
171
+ - p, proj:team-platform:developer, applications, get, team-platform/*, allow
172
+ - p, proj:team-platform:developer, applications, sync, team-platform/*, allow
173
+ groups:
174
+ - platform-developers
175
+
176
+ - name: admin
177
+ description: Admin access
178
+ policies:
179
+ - p, proj:team-platform:admin, applications, *, team-platform/*, allow
180
+ groups:
181
+ - platform-admins
182
+ ```
183
+
184
+ ### App of Apps Pattern
185
+
186
+ ```yaml
187
+ # apps/root-app.yaml
188
+ apiVersion: argoproj.io/v1alpha1
189
+ kind: Application
190
+ metadata:
191
+ name: root-app
192
+ namespace: argocd
193
+ spec:
194
+ project: default
195
+
196
+ source:
197
+ repoURL: https://github.com/company/k8s-manifests
198
+ targetRevision: main
199
+ path: apps/production # Directory containing other Application manifests
200
+
201
+ destination:
202
+ server: https://kubernetes.default.svc
203
+ namespace: argocd
204
+
205
+ syncPolicy:
206
+ automated:
207
+ prune: true
208
+ selfHeal: true
209
+ ```
210
+
211
+ ### ApplicationSet
212
+
213
+ ```yaml
214
+ # applicationsets/microservices.yaml
215
+ apiVersion: argoproj.io/v1alpha1
216
+ kind: ApplicationSet
217
+ metadata:
218
+ name: microservices
219
+ namespace: argocd
220
+ spec:
221
+ # Generator: Create app per directory
222
+ generators:
223
+ - git:
224
+ repoURL: https://github.com/company/k8s-manifests
225
+ revision: main
226
+ directories:
227
+ - path: applications/*/overlays/production
228
+
229
+ template:
230
+ metadata:
231
+ name: '{{path.basename}}'
232
+ labels:
233
+ environment: production
234
+ spec:
235
+ project: production
236
+ source:
237
+ repoURL: https://github.com/company/k8s-manifests
238
+ targetRevision: main
239
+ path: '{{path}}'
240
+ destination:
241
+ server: https://kubernetes.default.svc
242
+ namespace: production
243
+ syncPolicy:
244
+ automated:
245
+ prune: true
246
+ selfHeal: true
247
+ ```
248
+
249
+ ## Flux CD
250
+
251
+ ### Installation
252
+
253
+ ```bash
254
+ # Install Flux CLI
255
+ curl -s https://fluxcd.io/install.sh | sudo bash
256
+
257
+ # Bootstrap Flux on cluster
258
+ flux bootstrap github \
259
+ --owner=company \
260
+ --repository=k8s-cluster \
261
+ --branch=main \
262
+ --path=clusters/production \
263
+ --personal=false \
264
+ --token-auth
265
+ ```
266
+
267
+ ### GitRepository Source
268
+
269
+ ```yaml
270
+ # flux-system/sources/k8s-manifests.yaml
271
+ apiVersion: source.toolkit.fluxcd.io/v1
272
+ kind: GitRepository
273
+ metadata:
274
+ name: k8s-manifests
275
+ namespace: flux-system
276
+ spec:
277
+ interval: 1m
278
+ url: https://github.com/company/k8s-manifests
279
+ ref:
280
+ branch: main
281
+ secretRef:
282
+ name: github-credentials
283
+ ```
284
+
285
+ ### Kustomization
286
+
287
+ ```yaml
288
+ # flux-system/kustomizations/api-service.yaml
289
+ apiVersion: kustomize.toolkit.fluxcd.io/v1
290
+ kind: Kustomization
291
+ metadata:
292
+ name: api-service
293
+ namespace: flux-system
294
+ spec:
295
+ interval: 5m
296
+ path: ./applications/api-service/overlays/production
297
+ prune: true
298
+ sourceRef:
299
+ kind: GitRepository
300
+ name: k8s-manifests
301
+ healthChecks:
302
+ - apiVersion: apps/v1
303
+ kind: Deployment
304
+ name: api-service
305
+ namespace: production
306
+ timeout: 5m
307
+ wait: true
308
+ ```
309
+
310
+ ### HelmRelease
311
+
312
+ ```yaml
313
+ # flux-system/helm/nginx-ingress.yaml
314
+ apiVersion: helm.toolkit.fluxcd.io/v2beta1
315
+ kind: HelmRelease
316
+ metadata:
317
+ name: nginx-ingress
318
+ namespace: flux-system
319
+ spec:
320
+ interval: 30m
321
+ chart:
322
+ spec:
323
+ chart: ingress-nginx
324
+ version: '4.7.x'
325
+ sourceRef:
326
+ kind: HelmRepository
327
+ name: ingress-nginx
328
+ namespace: flux-system
329
+ values:
330
+ controller:
331
+ service:
332
+ type: LoadBalancer
333
+ metrics:
334
+ enabled: true
335
+ replicaCount: 3
336
+ ```
337
+
338
+ ## Application Patterns
339
+
340
+ ### Kustomize Structure
341
+
342
+ ```
343
+ k8s-manifests/
344
+ ├── base/ # Base manifests
345
+ │ └── api-service/
346
+ │ ├── kustomization.yaml
347
+ │ ├── deployment.yaml
348
+ │ ├── service.yaml
349
+ │ └── configmap.yaml
350
+ ├── overlays/ # Environment-specific
351
+ │ ├── dev/
352
+ │ │ └── api-service/
353
+ │ │ ├── kustomization.yaml
354
+ │ │ └── patches/
355
+ │ ├── staging/
356
+ │ │ └── api-service/
357
+ │ │ └── kustomization.yaml
358
+ │ └── production/
359
+ │ └── api-service/
360
+ │ ├── kustomization.yaml
361
+ │ ├── patches/
362
+ │ └── sealed-secrets.yaml
363
+ └── apps/ # ArgoCD Applications
364
+ ├── dev/
365
+ ├── staging/
366
+ └── production/
367
+ └── api-service.yaml
368
+ ```
369
+
370
+ **Base Kustomization:**
371
+ ```yaml
372
+ # base/api-service/kustomization.yaml
373
+ apiVersion: kustomize.config.k8s.io/v1beta1
374
+ kind: Kustomization
375
+
376
+ resources:
377
+ - deployment.yaml
378
+ - service.yaml
379
+ - configmap.yaml
380
+
381
+ commonLabels:
382
+ app: api-service
383
+
384
+ images:
385
+ - name: api-service
386
+ newName: company/api-service
387
+ newTag: latest
388
+ ```
389
+
390
+ **Production Overlay:**
391
+ ```yaml
392
+ # overlays/production/api-service/kustomization.yaml
393
+ apiVersion: kustomize.config.k8s.io/v1beta1
394
+ kind: Kustomization
395
+
396
+ bases:
397
+ - ../../../base/api-service
398
+
399
+ namespace: production
400
+
401
+ commonLabels:
402
+ environment: production
403
+
404
+ images:
405
+ - name: api-service
406
+ newTag: v1.2.3
407
+
408
+ replicas:
409
+ - name: api-service
410
+ count: 5
411
+
412
+ patches:
413
+ - path: patches/resources.yaml
414
+ - path: patches/hpa.yaml
415
+ ```
416
+
417
+ ## Progressive Delivery
418
+
419
+ ### Canary Deployment (Argo Rollouts)
420
+
421
+ ```yaml
422
+ apiVersion: argoproj.io/v1alpha1
423
+ kind: Rollout
424
+ metadata:
425
+ name: api-service
426
+ namespace: production
427
+ spec:
428
+ replicas: 10
429
+ strategy:
430
+ canary:
431
+ # Canary steps
432
+ steps:
433
+ - setWeight: 10 # Route 10% traffic to canary
434
+ - pause: {duration: 5m}
435
+ - setWeight: 20
436
+ - pause: {duration: 5m}
437
+ - setWeight: 40
438
+ - pause: {duration: 10m}
439
+ - setWeight: 60
440
+ - pause: {duration: 10m}
441
+ - setWeight: 80
442
+ - pause: {duration: 10m}
443
+
444
+ # Traffic routing
445
+ trafficRouting:
446
+ istio:
447
+ virtualService:
448
+ name: api-service
449
+ routes:
450
+ - primary
451
+
452
+ # Analysis during canary
453
+ analysis:
454
+ templates:
455
+ - templateName: success-rate
456
+ startingStep: 2
457
+ args:
458
+ - name: service-name
459
+ value: api-service
460
+
461
+ # Pod template
462
+ template:
463
+ metadata:
464
+ labels:
465
+ app: api-service
466
+ spec:
467
+ containers:
468
+ - name: api
469
+ image: company/api-service:v1.3.0
470
+ # ... container spec
471
+ ```
472
+
473
+ **Analysis Template:**
474
+ ```yaml
475
+ apiVersion: argoproj.io/v1alpha1
476
+ kind: AnalysisTemplate
477
+ metadata:
478
+ name: success-rate
479
+ spec:
480
+ args:
481
+ - name: service-name
482
+ - name: prometheus-server
483
+ value: http://prometheus.monitoring:9090
484
+
485
+ metrics:
486
+ - name: success-rate
487
+ interval: 1m
488
+ successCondition: result >= 0.95
489
+ failureLimit: 3
490
+ provider:
491
+ prometheus:
492
+ address: "{{args.prometheus-server}}"
493
+ query: |
494
+ sum(rate(
495
+ http_requests_total{
496
+ service="{{args.service-name}}",
497
+ status!~"5.."
498
+ }[5m]
499
+ )) /
500
+ sum(rate(
501
+ http_requests_total{
502
+ service="{{args.service-name}}"
503
+ }[5m]
504
+ ))
505
+ ```
506
+
507
+ ### Blue/Green Deployment
508
+
509
+ ```yaml
510
+ apiVersion: argoproj.io/v1alpha1
511
+ kind: Rollout
512
+ metadata:
513
+ name: api-service
514
+ spec:
515
+ replicas: 10
516
+ strategy:
517
+ blueGreen:
518
+ # Active service
519
+ activeService: api-service
520
+
521
+ # Preview service
522
+ previewService: api-service-preview
523
+
524
+ # Auto promotion
525
+ autoPromotionEnabled: false
526
+
527
+ # Post-promotion analysis
528
+ postPromotionAnalysis:
529
+ templates:
530
+ - templateName: smoke-tests
531
+
532
+ # Rollback window
533
+ scaleDownDelaySeconds: 600 # Keep old version for 10 minutes
534
+
535
+ template:
536
+ # ... pod spec
537
+ ```
538
+
539
+ ## Multi-Environment Strategy
540
+
541
+ ### Environment Promotion
542
+
543
+ ```
544
+ ┌──────────┐ ┌──────────┐ ┌──────────┐
545
+ │ Dev │ → │ Staging │ → │ Prod │
546
+ │ │ │ │ │ │
547
+ │ Auto │ │ Auto │ │ Manual │
548
+ │ Deploy │ │ Deploy │ │ Approval │
549
+ └──────────┘ └──────────┘ └──────────┘
550
+ ```
551
+
552
+ **Image Promotion Strategy:**
553
+ ```bash
554
+ #!/bin/bash
555
+ # promote-image.sh
556
+
557
+ ENV=$1
558
+ IMAGE_TAG=$2
559
+
560
+ case "$ENV" in
561
+ staging)
562
+ # Update staging kustomization
563
+ cd overlays/staging
564
+ kustomize edit set image api-service=company/api-service:${IMAGE_TAG}
565
+ ;;
566
+
567
+ production)
568
+ # Require approval
569
+ echo "Promoting to production requires approval"
570
+ echo "Creating PR..."
571
+ cd overlays/production
572
+ git checkout -b promote-${IMAGE_TAG}
573
+ kustomize edit set image api-service=company/api-service:${IMAGE_TAG}
574
+ git commit -am "Promote api-service to ${IMAGE_TAG}"
575
+ git push origin promote-${IMAGE_TAG}
576
+ gh pr create --title "Promote api-service to ${IMAGE_TAG}" --body "Production deployment"
577
+ ;;
578
+ esac
579
+ ```
580
+
581
+ ## Best Practices
582
+
583
+ ### 1. Separate App Code and Manifests
584
+
585
+ ```
586
+ Repositories:
587
+ - api-service (application code)
588
+ - k8s-manifests (Kubernetes manifests)
589
+
590
+ Workflow:
591
+ 1. CI builds image → company/api-service:abc123
592
+ 2. CI updates k8s-manifests with new tag
593
+ 3. GitOps pulls and deploys
594
+ ```
595
+
596
+ ### 2. Sealed Secrets
597
+
598
+ ```bash
599
+ # Encrypt secret
600
+ echo -n 'super-secret' | kubectl create secret generic db-password \
601
+ --dry-run=client \
602
+ --from-file=password=/dev/stdin \
603
+ -o yaml | \
604
+ kubeseal -o yaml > sealed-secret.yaml
605
+
606
+ # Commit encrypted secret
607
+ git add sealed-secret.yaml
608
+ git commit -m "Add database password"
609
+ ```
610
+
611
+ ### 3. Progressive Rollouts
612
+
613
+ Use canary or blue/green for production, with automated analysis.
614
+
615
+ ### 4. Environment Parity
616
+
617
+ Keep environments as similar as possible, differ only in scale and data.
618
+
619
+ ### 5. GitOps Notifications
620
+
621
+ ```yaml
622
+ # ArgoCD notification
623
+ apiVersion: v1
624
+ kind: ConfigMap
625
+ metadata:
626
+ name: argocd-notifications-cm
627
+ data:
628
+ service.slack: |
629
+ token: $slack-token
630
+ trigger.on-deployed: |
631
+ - when: app.status.operationState.phase in ['Succeeded']
632
+ send: [app-deployed]
633
+ template.app-deployed: |
634
+ message: |
635
+ Application {{.app.metadata.name}} deployed to {{.app.spec.destination.namespace}}
636
+ slack:
637
+ attachments: |
638
+ [{
639
+ "title": "{{.app.metadata.name}}",
640
+ "title_link": "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
641
+ "color": "good"
642
+ }]
643
+ ```
644
+
645
+ ---
646
+
647
+ **Related Resources:**
648
+ - [infrastructure-as-code.md](infrastructure-as-code.md) - IaC patterns
649
+ - [developer-platforms.md](developer-platforms.md) - Self-service platforms
650
+ - [container-orchestration.md](container-orchestration.md) - Kubernetes