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,411 @@
1
+ # CI/CD Pipelines
2
+
3
+ Pipeline design, GitHub Actions, GitLab CI, Jenkins, Azure DevOps, and CI/CD best practices.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Pipeline Design](#pipeline-design)
8
+ - [GitHub Actions](#github-actions)
9
+ - [GitLab CI](#gitlab-ci)
10
+ - [Jenkins](#jenkins)
11
+ - [Best Practices](#best-practices)
12
+
13
+ ## Pipeline Design
14
+
15
+ **Standard Pipeline Stages:**
16
+ ```
17
+ Source → Build → Test → Package → Deploy → Verify
18
+ ```
19
+
20
+ **Detailed Flow:**
21
+ ```yaml
22
+ stages:
23
+ checkout:
24
+ - Clone repository
25
+ - Checkout branch
26
+ - Fetch dependencies metadata
27
+
28
+ build:
29
+ - Install dependencies
30
+ - Compile code
31
+ - Run linters
32
+ - Static analysis
33
+
34
+ test:
35
+ - Unit tests
36
+ - Integration tests
37
+ - Coverage report
38
+ - Security scan
39
+
40
+ package:
41
+ - Build artifacts
42
+ - Create container image
43
+ - Scan image
44
+ - Sign artifacts
45
+
46
+ deploy:
47
+ - Deploy to staging
48
+ - Run smoke tests
49
+ - Deploy to production (manual approval)
50
+
51
+ verify:
52
+ - Health checks
53
+ - Integration tests in prod
54
+ - Monitor metrics
55
+ ```
56
+
57
+ ## GitHub Actions
58
+
59
+ **Complete Workflow:**
60
+ ```yaml
61
+ name: CI/CD
62
+
63
+ on:
64
+ push:
65
+ branches: [main, develop]
66
+ tags: ['v*']
67
+ pull_request:
68
+ branches: [main]
69
+
70
+ env:
71
+ REGISTRY: ghcr.io
72
+ IMAGE_NAME: ${{ github.repository }}
73
+
74
+ jobs:
75
+ test:
76
+ runs-on: ubuntu-latest
77
+ steps:
78
+ - uses: actions/checkout@v3
79
+
80
+ - uses: actions/setup-node@v3
81
+ with:
82
+ node-version: '20'
83
+ cache: 'npm'
84
+
85
+ - run: npm ci
86
+ - run: npm run lint
87
+ - run: npm test
88
+ - run: npm run build
89
+
90
+ - name: Upload coverage
91
+ uses: codecov/codecov-action@v3
92
+
93
+ build-push:
94
+ needs: test
95
+ if: github.event_name == 'push'
96
+ runs-on: ubuntu-latest
97
+ permissions:
98
+ contents: read
99
+ packages: write
100
+ outputs:
101
+ version: ${{ steps.meta.outputs.version }}
102
+ tags: ${{ steps.meta.outputs.tags }}
103
+ steps:
104
+ - uses: actions/checkout@v3
105
+
106
+ - name: Docker meta
107
+ id: meta
108
+ uses: docker/metadata-action@v4
109
+ with:
110
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
111
+ tags: |
112
+ type=ref,event=branch
113
+ type=semver,pattern={{version}}
114
+ type=semver,pattern={{major}}.{{minor}}
115
+ type=sha,prefix={{branch}}-
116
+
117
+ - name: Login to registry
118
+ uses: docker/login-action@v2
119
+ with:
120
+ registry: ${{ env.REGISTRY }}
121
+ username: ${{ github.actor }}
122
+ password: ${{ secrets.GITHUB_TOKEN }}
123
+
124
+ - name: Build and push
125
+ uses: docker/build-push-action@v4
126
+ with:
127
+ context: .
128
+ push: true
129
+ tags: ${{ steps.meta.outputs.tags }}
130
+ labels: ${{ steps.meta.outputs.labels }}
131
+ cache-from: type=gha
132
+ cache-to: type=gha,mode=max
133
+
134
+ deploy-staging:
135
+ needs: build-push
136
+ if: github.ref == 'refs/heads/develop'
137
+ runs-on: ubuntu-latest
138
+ environment: staging
139
+ steps:
140
+ - name: Deploy to staging
141
+ run: |
142
+ kubectl set image deployment/myapp \
143
+ app=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ needs.build-push.outputs.version }} \
144
+ --namespace=staging
145
+
146
+ - name: Verify deployment
147
+ run: |
148
+ kubectl rollout status deployment/myapp -n staging
149
+ kubectl wait --for=condition=available --timeout=5m deployment/myapp -n staging
150
+
151
+ deploy-production:
152
+ needs: build-push
153
+ if: startsWith(github.ref, 'refs/tags/v')
154
+ runs-on: ubuntu-latest
155
+ environment: production
156
+ steps:
157
+ - name: Deploy to production
158
+ run: |
159
+ kubectl set image deployment/myapp \
160
+ app=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ needs.build-push.outputs.version }} \
161
+ --namespace=production
162
+
163
+ - name: Verify deployment
164
+ run: kubectl rollout status deployment/myapp -n production
165
+
166
+ - name: Create GitHub release
167
+ uses: softprops/action-gh-release@v1
168
+ with:
169
+ generate_release_notes: true
170
+ ```
171
+
172
+ ## GitLab CI
173
+
174
+ ```yaml
175
+ # .gitlab-ci.yml
176
+ stages:
177
+ - build
178
+ - test
179
+ - package
180
+ - deploy
181
+
182
+ variables:
183
+ DOCKER_DRIVER: overlay2
184
+ DOCKER_TLS_CERTDIR: ""
185
+
186
+ before_script:
187
+ - echo "Pipeline starting"
188
+
189
+ build:
190
+ stage: build
191
+ image: node:20
192
+ script:
193
+ - npm ci
194
+ - npm run build
195
+ artifacts:
196
+ paths:
197
+ - dist/
198
+ expire_in: 1 hour
199
+ cache:
200
+ paths:
201
+ - node_modules/
202
+
203
+ test:unit:
204
+ stage: test
205
+ image: node:20
206
+ script:
207
+ - npm ci
208
+ - npm test
209
+ coverage: '/Coverage: \d+\.\d+%/'
210
+
211
+ test:lint:
212
+ stage: test
213
+ image: node:20
214
+ script:
215
+ - npm ci
216
+ - npm run lint
217
+
218
+ package:
219
+ stage: package
220
+ image: docker:latest
221
+ services:
222
+ - docker:dind
223
+ script:
224
+ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
225
+ - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
226
+ - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
227
+ - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest
228
+ - docker push $CI_REGISTRY_IMAGE:latest
229
+ only:
230
+ - main
231
+ - develop
232
+
233
+ deploy:staging:
234
+ stage: deploy
235
+ image: bitnami/kubectl:latest
236
+ script:
237
+ - kubectl config use-context $KUBE_CONTEXT
238
+ - kubectl set image deployment/myapp app=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA -n staging
239
+ - kubectl rollout status deployment/myapp -n staging
240
+ environment:
241
+ name: staging
242
+ url: https://staging.example.com
243
+ only:
244
+ - develop
245
+
246
+ deploy:production:
247
+ stage: deploy
248
+ image: bitnami/kubectl:latest
249
+ script:
250
+ - kubectl config use-context $KUBE_CONTEXT
251
+ - kubectl set image deployment/myapp app=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA -n production
252
+ - kubectl rollout status deployment/myapp -n production
253
+ environment:
254
+ name: production
255
+ url: https://example.com
256
+ when: manual
257
+ only:
258
+ - main
259
+ - tags
260
+ ```
261
+
262
+ ## Jenkins
263
+
264
+ **Jenkinsfile (Declarative):**
265
+ ```groovy
266
+ pipeline {
267
+ agent any
268
+
269
+ environment {
270
+ DOCKER_REGISTRY = 'registry.example.com'
271
+ IMAGE_NAME = 'myapp'
272
+ KUBECONFIG = credentials('kubeconfig')
273
+ }
274
+
275
+ stages {
276
+ stage('Checkout') {
277
+ steps {
278
+ checkout scm
279
+ }
280
+ }
281
+
282
+ stage('Build') {
283
+ steps {
284
+ sh 'npm ci'
285
+ sh 'npm run build'
286
+ }
287
+ }
288
+
289
+ stage('Test') {
290
+ parallel {
291
+ stage('Unit Tests') {
292
+ steps {
293
+ sh 'npm test'
294
+ }
295
+ }
296
+ stage('Lint') {
297
+ steps {
298
+ sh 'npm run lint'
299
+ }
300
+ }
301
+ }
302
+ }
303
+
304
+ stage('Package') {
305
+ steps {
306
+ script {
307
+ docker.build("${DOCKER_REGISTRY}/${IMAGE_NAME}:${env.BUILD_NUMBER}")
308
+ }
309
+ }
310
+ }
311
+
312
+ stage('Push') {
313
+ steps {
314
+ script {
315
+ docker.withRegistry("https://${DOCKER_REGISTRY}", 'docker-credentials') {
316
+ docker.image("${DOCKER_REGISTRY}/${IMAGE_NAME}:${env.BUILD_NUMBER}").push()
317
+ docker.image("${DOCKER_REGISTRY}/${IMAGE_NAME}:${env.BUILD_NUMBER}").push('latest')
318
+ }
319
+ }
320
+ }
321
+ }
322
+
323
+ stage('Deploy to Staging') {
324
+ when {
325
+ branch 'develop'
326
+ }
327
+ steps {
328
+ sh """
329
+ kubectl set image deployment/myapp \
330
+ app=${DOCKER_REGISTRY}/${IMAGE_NAME}:${env.BUILD_NUMBER} \
331
+ --namespace=staging
332
+ kubectl rollout status deployment/myapp -n staging
333
+ """
334
+ }
335
+ }
336
+
337
+ stage('Deploy to Production') {
338
+ when {
339
+ branch 'main'
340
+ }
341
+ steps {
342
+ input message: 'Deploy to production?', ok: 'Deploy'
343
+ sh """
344
+ kubectl set image deployment/myapp \
345
+ app=${DOCKER_REGISTRY}/${IMAGE_NAME}:${env.BUILD_NUMBER} \
346
+ --namespace=production
347
+ kubectl rollout status deployment/myapp -n production
348
+ """
349
+ }
350
+ }
351
+ }
352
+
353
+ post {
354
+ success {
355
+ slackSend color: 'good', message: "Deployment successful: ${env.JOB_NAME} #${env.BUILD_NUMBER}"
356
+ }
357
+ failure {
358
+ slackSend color: 'danger', message: "Deployment failed: ${env.JOB_NAME} #${env.BUILD_NUMBER}"
359
+ }
360
+ }
361
+ }
362
+ ```
363
+
364
+ ## Best Practices
365
+
366
+ ### 1. Fast Pipelines
367
+
368
+ ```yaml
369
+ # Run tests in parallel
370
+ jobs:
371
+ test:
372
+ strategy:
373
+ matrix:
374
+ node: [18, 20]
375
+ os: [ubuntu-latest, windows-latest]
376
+ runs-on: ${{ matrix.os }}
377
+ ```
378
+
379
+ ### 2. Caching
380
+
381
+ ```yaml
382
+ # Cache dependencies
383
+ - uses: actions/cache@v3
384
+ with:
385
+ path: ~/.npm
386
+ key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
387
+ ```
388
+
389
+ ### 3. Secrets Management
390
+
391
+ ```yaml
392
+ # Never hardcode secrets
393
+ env:
394
+ API_KEY: ${{ secrets.API_KEY }}
395
+ ```
396
+
397
+ ### 4. Artifact Management
398
+
399
+ ```yaml
400
+ # Upload build artifacts
401
+ - uses: actions/upload-artifact@v3
402
+ with:
403
+ name: dist
404
+ path: dist/
405
+ ```
406
+
407
+ ---
408
+
409
+ **Related Resources:**
410
+ - [build-optimization.md](build-optimization.md)
411
+ - [pipeline-security.md](pipeline-security.md)
@@ -0,0 +1,197 @@
1
+ # Deployment Strategies
2
+
3
+ Blue-green deployment, canary releases, rolling updates, recreate strategy, and progressive deployment patterns.
4
+
5
+ ## Blue-Green Deployment
6
+
7
+ **Concept:** Two identical environments, switch traffic instantly.
8
+
9
+ **Kubernetes Implementation:**
10
+ ```yaml
11
+ # Blue deployment (current production)
12
+ apiVersion: apps/v1
13
+ kind: Deployment
14
+ metadata:
15
+ name: myapp-blue
16
+ labels:
17
+ version: blue
18
+ spec:
19
+ replicas: 3
20
+ selector:
21
+ matchLabels:
22
+ app: myapp
23
+ version: blue
24
+ template:
25
+ metadata:
26
+ labels:
27
+ app: myapp
28
+ version: blue
29
+ spec:
30
+ containers:
31
+ - name: app
32
+ image: myapp:v1.0.0
33
+
34
+ ---
35
+ # Green deployment (new version)
36
+ apiVersion: apps/v1
37
+ kind: Deployment
38
+ metadata:
39
+ name: myapp-green
40
+ labels:
41
+ version: green
42
+ spec:
43
+ replicas: 3
44
+ selector:
45
+ matchLabels:
46
+ app: myapp
47
+ version: green
48
+ template:
49
+ metadata:
50
+ labels:
51
+ app: myapp
52
+ version: green
53
+ spec:
54
+ containers:
55
+ - name: app
56
+ image: myapp:v2.0.0
57
+
58
+ ---
59
+ # Service switches between blue and green
60
+ apiVersion: v1
61
+ kind: Service
62
+ metadata:
63
+ name: myapp
64
+ spec:
65
+ selector:
66
+ app: myapp
67
+ version: blue # Change to 'green' to switch
68
+ ports:
69
+ - port: 80
70
+ targetPort: 8080
71
+ ```
72
+
73
+ **Switch Script:**
74
+ ```bash
75
+ # Deploy green
76
+ kubectl apply -f myapp-green.yaml
77
+
78
+ # Wait for green to be ready
79
+ kubectl wait --for=condition=available deployment/myapp-green
80
+
81
+ # Run smoke tests
82
+ ./smoke-tests.sh http://myapp-green
83
+
84
+ # Switch traffic
85
+ kubectl patch service myapp -p '{"spec":{"selector":{"version":"green"}}}'
86
+
87
+ # Monitor for 10 minutes
88
+ sleep 600
89
+
90
+ # If issues, rollback
91
+ # kubectl patch service myapp -p '{"spec":{"selector":{"version":"blue"}}}'
92
+
93
+ # Clean up old blue deployment
94
+ kubectl delete deployment myapp-blue
95
+ ```
96
+
97
+ ## Canary Deployment
98
+
99
+ **Concept:** Gradually shift traffic from old to new version.
100
+
101
+ **Flagger Configuration:**
102
+ ```yaml
103
+ apiVersion: flagger.app/v1beta1
104
+ kind: Canary
105
+ metadata:
106
+ name: myapp
107
+ spec:
108
+ targetRef:
109
+ apiVersion: apps/v1
110
+ kind: Deployment
111
+ name: myapp
112
+ service:
113
+ port: 80
114
+ analysis:
115
+ interval: 1m
116
+ threshold: 5
117
+ maxWeight: 50
118
+ stepWeight: 10
119
+ metrics:
120
+ - name: request-success-rate
121
+ thresholdRange:
122
+ min: 99
123
+ - name: request-duration
124
+ thresholdRange:
125
+ max: 500
126
+ ```
127
+
128
+ **Traffic Split Progression:**
129
+ ```
130
+ Step 1: 10% canary, 90% primary
131
+ Step 2: 20% canary, 80% primary
132
+ Step 3: 30% canary, 70% primary
133
+ ...
134
+ Final: 100% canary, 0% primary
135
+ ```
136
+
137
+ ## Rolling Update
138
+
139
+ **Kubernetes Native:**
140
+ ```yaml
141
+ apiVersion: apps/v1
142
+ kind: Deployment
143
+ metadata:
144
+ name: myapp
145
+ spec:
146
+ replicas: 6
147
+ strategy:
148
+ type: RollingUpdate
149
+ rollingUpdate:
150
+ maxSurge: 2 # Max 2 extra pods during update
151
+ maxUnavailable: 1 # Max 1 pod down during update
152
+ template:
153
+ spec:
154
+ containers:
155
+ - name: app
156
+ image: myapp:v2.0.0
157
+ ```
158
+
159
+ **Update Process:**
160
+ ```
161
+ Current: [V1] [V1] [V1] [V1] [V1] [V1]
162
+ [V1] [V1] [V1] [V1] [V1] [V2] [V2] ← 2 new, 1 old terminating
163
+ [V1] [V1] [V1] [V1] [V2] [V2]
164
+ [V1] [V1] [V1] [V2] [V2] [V2]
165
+ [V1] [V1] [V2] [V2] [V2] [V2]
166
+ [V1] [V2] [V2] [V2] [V2] [V2]
167
+ New: [V2] [V2] [V2] [V2] [V2] [V2]
168
+ ```
169
+
170
+ ## Recreate Strategy
171
+
172
+ **Use Case:** Database schema changes requiring downtime.
173
+
174
+ ```yaml
175
+ apiVersion: apps/v1
176
+ kind: Deployment
177
+ metadata:
178
+ name: myapp
179
+ spec:
180
+ strategy:
181
+ type: Recreate # Kill all old pods before creating new
182
+ ```
183
+
184
+ ## Strategy Comparison
185
+
186
+ | Strategy | Downtime | Rollback Speed | Resource Cost | Complexity |
187
+ |----------|----------|----------------|---------------|------------|
188
+ | Blue-Green | None | Instant | 2x (temporary) | Low |
189
+ | Canary | None | Gradual | 1.1-1.5x | Medium |
190
+ | Rolling | None | Medium | 1.1-1.5x | Low |
191
+ | Recreate | Yes | Fast | 1x | Very Low |
192
+
193
+ ---
194
+
195
+ **Related Resources:**
196
+ - [progressive-delivery.md](progressive-delivery.md)
197
+ - [rollback-strategies.md](rollback-strategies.md)
@@ -0,0 +1,62 @@
1
+ # Pipeline Security
2
+
3
+ Securing CI/CD pipelines, secrets management, artifact signing, supply chain security, and pipeline hardening.
4
+
5
+ ## Pipeline Hardening
6
+
7
+ **Minimal Permissions:**
8
+ ```yaml
9
+ permissions:
10
+ contents: read # Read code
11
+ packages: write # Push containers
12
+ id-token: write # OIDC for signing
13
+ # Don't grant more than needed
14
+ ```
15
+
16
+ **Pin Actions:**
17
+ ```yaml
18
+ # ❌ Bad - mutable tag
19
+ - uses: actions/checkout@v3
20
+
21
+ # ✅ Good - pinned SHA
22
+ - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
23
+ ```
24
+
25
+ ## Secrets Management
26
+
27
+ **GitHub Secrets:**
28
+ ```yaml
29
+ - name: Deploy
30
+ env:
31
+ API_KEY: ${{ secrets.API_KEY }}
32
+ DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
33
+ run: ./deploy.sh
34
+ ```
35
+
36
+ **Vault Integration:**
37
+ ```yaml
38
+ - uses: hashicorp/vault-action@v2
39
+ with:
40
+ url: https://vault.example.com
41
+ token: ${{ secrets.VAULT_TOKEN }}
42
+ secrets: |
43
+ secret/data/production api_key | API_KEY ;
44
+ secret/data/production db_pass | DB_PASSWORD
45
+ ```
46
+
47
+ ## Artifact Signing
48
+
49
+ **Cosign:**
50
+ ```yaml
51
+ - name: Sign image
52
+ run: |
53
+ cosign sign --yes \
54
+ -a git_sha=${{ github.sha }} \
55
+ myregistry.com/myapp:${{ github.sha }}
56
+ ```
57
+
58
+ ---
59
+
60
+ **Related Resources:**
61
+ - [ci-cd-pipelines.md](ci-cd-pipelines.md)
62
+ - [../devsecops/resources/ci-cd-security.md](../../devsecops/resources/ci-cd-security.md)