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,203 @@
1
+ # Security Testing
2
+
3
+ Penetration testing, security chaos engineering, threat modeling, fuzz testing, and security test automation.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Penetration Testing](#penetration-testing)
8
+ - [Security Chaos Engineering](#security-chaos-engineering)
9
+ - [Threat Modeling](#threat-modeling)
10
+ - [Fuzz Testing](#fuzz-testing)
11
+ - [Security Test Automation](#security-test-automation)
12
+
13
+ ## Penetration Testing
14
+
15
+ ### Types
16
+
17
+ **Black Box:** No internal knowledge
18
+ **White Box:** Full system knowledge
19
+ **Gray Box:** Partial knowledge
20
+
21
+ ### Tools
22
+
23
+ **OWASP ZAP:**
24
+ ```bash
25
+ # Automated scan
26
+ docker run -t owasp/zap2docker-stable zap-baseline.py \
27
+ -t https://example.com \
28
+ -r report.html
29
+
30
+ # Full scan
31
+ docker run -t owasp/zap2docker-stable zap-full-scan.py \
32
+ -t https://example.com
33
+ ```
34
+
35
+ **Burp Suite:**
36
+ ```bash
37
+ # Professional automated scanning
38
+ burp-scanner --url=https://example.com \
39
+ --report=burp-report.html
40
+ ```
41
+
42
+ **Metasploit:**
43
+ ```bash
44
+ msfconsole
45
+ use exploit/multi/handler
46
+ set PAYLOAD windows/meterpreter/reverse_tcp
47
+ set LHOST 192.168.1.100
48
+ set LPORT 4444
49
+ exploit
50
+ ```
51
+
52
+ ## Security Chaos Engineering
53
+
54
+ ### Principles
55
+
56
+ 1. **Assume breach:** System already compromised
57
+ 2. **Test defenses:** Verify detection and response
58
+ 3. **Controlled experiments:** Measured impact
59
+ 4. **Continuous testing:** Regular security drills
60
+
61
+ ### Implementation
62
+
63
+ **Attack Simulation:**
64
+ ```yaml
65
+ # chaos-mesh experiment
66
+ apiVersion: chaos-mesh.org/v1alpha1
67
+ kind: NetworkChaos
68
+ metadata:
69
+ name: simulate-attack
70
+ spec:
71
+ action: partition
72
+ mode: all
73
+ selector:
74
+ namespaces:
75
+ - production
76
+ labelSelectors:
77
+ app: database
78
+ duration: "5m"
79
+ direction: to
80
+ target:
81
+ mode: all
82
+ selector:
83
+ namespaces:
84
+ - production
85
+ labelSelectors:
86
+ app: api
87
+ ```
88
+
89
+ ## Threat Modeling
90
+
91
+ ### STRIDE Framework
92
+
93
+ - **S**poofing
94
+ - **T**ampering
95
+ - **R**epudiation
96
+ - **I**nformation Disclosure
97
+ - **D**enial of Service
98
+ - **E**levation of Privilege
99
+
100
+ ### Example
101
+
102
+ ```yaml
103
+ # threat-model.yaml
104
+ application: payment-api
105
+ assets:
106
+ - credit_card_data
107
+ - user_credentials
108
+ - transaction_history
109
+
110
+ threats:
111
+ - id: T001
112
+ category: Information Disclosure
113
+ description: Unauthorized access to credit card data
114
+ likelihood: medium
115
+ impact: critical
116
+ mitigations:
117
+ - Encryption at rest (AES-256)
118
+ - TLS 1.3 in transit
119
+ - Access logging
120
+ - Data masking in logs
121
+
122
+ - id: T002
123
+ category: Elevation of Privilege
124
+ description: Container escape to host
125
+ likelihood: low
126
+ impact: critical
127
+ mitigations:
128
+ - Non-root containers
129
+ - seccomp profiles
130
+ - AppArmor/SELinux
131
+ - Pod Security Standards
132
+ ```
133
+
134
+ ## Fuzz Testing
135
+
136
+ ### AFL (American Fuzzy Lop)
137
+
138
+ ```bash
139
+ # Install AFL
140
+ sudo apt-get install afl
141
+
142
+ # Compile program with AFL
143
+ afl-gcc -o program program.c
144
+
145
+ # Run fuzzer
146
+ afl-fuzz -i input_dir -o output_dir ./program @@
147
+ ```
148
+
149
+ ### libFuzzer
150
+
151
+ ```cpp
152
+ // fuzz_target.cc
153
+ #include <cstdint>
154
+ #include <cstddef>
155
+
156
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
157
+ // Your code to test
158
+ ParseInput(Data, Size);
159
+ return 0;
160
+ }
161
+ ```
162
+
163
+ ```bash
164
+ # Compile and run
165
+ clang++ -g -fsanitize=fuzzer fuzz_target.cc -o fuzzer
166
+ ./fuzzer corpus/
167
+ ```
168
+
169
+ ## Security Test Automation
170
+
171
+ ```yaml
172
+ # .github/workflows/security-tests.yml
173
+ name: Security Tests
174
+
175
+ on:
176
+ schedule:
177
+ - cron: '0 2 * * 0' # Weekly
178
+ workflow_dispatch:
179
+
180
+ jobs:
181
+ pentest:
182
+ runs-on: ubuntu-latest
183
+ steps:
184
+ - name: OWASP ZAP Scan
185
+ uses: zaproxy/action-baseline@v0.7.0
186
+ with:
187
+ target: ${{ secrets.STAGING_URL }}
188
+
189
+ chaos:
190
+ runs-on: ubuntu-latest
191
+ steps:
192
+ - name: Security Chaos Test
193
+ run: |
194
+ kubectl apply -f chaos/attack-simulation.yaml
195
+ sleep 300
196
+ kubectl logs -l app=monitoring | grep "ALERT"
197
+ ```
198
+
199
+ ---
200
+
201
+ **Related Resources:**
202
+ - [security-scanning.md](security-scanning.md)
203
+ - [security-monitoring.md](security-monitoring.md)
@@ -0,0 +1,518 @@
1
+ # Supply Chain Security
2
+
3
+ SBOM generation, dependency scanning, image signing with Cosign/Sigstore, artifact attestation, and software supply chain protection.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Overview](#overview)
8
+ - [SBOM Generation](#sbom-generation)
9
+ - [Dependency Scanning](#dependency-scanning)
10
+ - [Image Signing](#image-signing)
11
+ - [Artifact Attestation](#artifact-attestation)
12
+ - [Supply Chain Levels for Software Artifacts (SLSA)](#slsa)
13
+ - [Best Practices](#best-practices)
14
+
15
+ ## Overview
16
+
17
+ **Supply Chain Attack Vectors:**
18
+
19
+ ```
20
+ ┌──────────────────────────────────────────────┐
21
+ │ Supply Chain Threats │
22
+ ├──────────────────────────────────────────────┤
23
+ │ • Compromised dependencies │
24
+ │ • Malicious packages │
25
+ │ • Build environment tampering │
26
+ │ • Registry/repository attacks │
27
+ │ • Unsigned/unverified artifacts │
28
+ │ • Lack of provenance │
29
+ └──────────────────────────────────────────────┘
30
+ ```
31
+
32
+ ## SBOM Generation
33
+
34
+ ### What is an SBOM?
35
+
36
+ Software Bill of Materials: Complete inventory of components in software.
37
+
38
+ ### Formats
39
+
40
+ - **SPDX:** ISO/IEC standard
41
+ - **CycloneDX:** OWASP project
42
+ - **SWID:** ISO/IEC 19770-2
43
+
44
+ ### Syft (SBOM Generator)
45
+
46
+ **Installation:**
47
+ ```bash
48
+ curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh
49
+ ```
50
+
51
+ **Generate SBOM:**
52
+ ```bash
53
+ # From container image
54
+ syft nginx:latest -o spdx-json > nginx-sbom.json
55
+ syft nginx:latest -o cyclonedx-json > nginx-sbom-cdx.json
56
+
57
+ # From directory
58
+ syft dir:. -o spdx-json > app-sbom.json
59
+
60
+ # From archive
61
+ syft file:app.tar.gz -o spdx-json
62
+
63
+ # Multiple formats
64
+ syft nginx:latest -o json,cyclonedx-json,spdx-json
65
+ ```
66
+
67
+ **CI Integration:**
68
+ ```yaml
69
+ # .github/workflows/sbom.yml
70
+ name: Generate SBOM
71
+
72
+ on:
73
+ push:
74
+ tags: ['v*']
75
+
76
+ jobs:
77
+ sbom:
78
+ runs-on: ubuntu-latest
79
+ steps:
80
+ - uses: actions/checkout@v3
81
+
82
+ - name: Build container
83
+ run: docker build -t myapp:${{ github.ref_name }} .
84
+
85
+ - name: Generate SBOM
86
+ uses: anchore/sbom-action@v0
87
+ with:
88
+ image: myapp:${{ github.ref_name }}
89
+ format: spdx-json
90
+ output-file: sbom.spdx.json
91
+
92
+ - name: Upload SBOM
93
+ uses: actions/upload-artifact@v3
94
+ with:
95
+ name: sbom
96
+ path: sbom.spdx.json
97
+
98
+ - name: Attach SBOM to release
99
+ uses: softprops/action-gh-release@v1
100
+ with:
101
+ files: sbom.spdx.json
102
+ ```
103
+
104
+ ### SBOM Analysis
105
+
106
+ ```bash
107
+ # Install grype for vulnerability scanning
108
+ curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh
109
+
110
+ # Scan SBOM for vulnerabilities
111
+ grype sbom:sbom.spdx.json
112
+
113
+ # Output formats
114
+ grype sbom:sbom.spdx.json -o json
115
+ grype sbom:sbom.spdx.json -o sarif
116
+ ```
117
+
118
+ ## Dependency Scanning
119
+
120
+ ### Dependency Confusion Attacks
121
+
122
+ **Prevention:**
123
+ ```json
124
+ // package.json - use scoped packages
125
+ {
126
+ "name": "@myorg/mypackage",
127
+ "dependencies": {
128
+ "@myorg/internal-lib": "^1.0.0"
129
+ }
130
+ }
131
+ ```
132
+
133
+ ```yaml
134
+ # .npmrc - configure private registry
135
+ @myorg:registry=https://npm.pkg.github.com
136
+ //npm.pkg.github.com/:_authToken=${NPM_TOKEN}
137
+ ```
138
+
139
+ ### Lock Files
140
+
141
+ **Commit lock files:**
142
+ ```bash
143
+ # npm
144
+ package-lock.json ✅
145
+
146
+ # yarn
147
+ yarn.lock ✅
148
+
149
+ # pnpm
150
+ pnpm-lock.yaml ✅
151
+
152
+ # pip
153
+ requirements.txt ✅
154
+ Pipfile.lock ✅
155
+
156
+ # go
157
+ go.sum ✅
158
+ ```
159
+
160
+ ### Dependency Review
161
+
162
+ ```yaml
163
+ # .github/workflows/dependency-review.yml
164
+ name: Dependency Review
165
+
166
+ on: [pull_request]
167
+
168
+ permissions:
169
+ contents: read
170
+
171
+ jobs:
172
+ dependency-review:
173
+ runs-on: ubuntu-latest
174
+ steps:
175
+ - uses: actions/checkout@v3
176
+ - uses: actions/dependency-review-action@v3
177
+ with:
178
+ fail-on-severity: moderate
179
+ deny-licenses: GPL-3.0, AGPL-3.0
180
+ ```
181
+
182
+ ## Image Signing
183
+
184
+ ### Cosign
185
+
186
+ **Installation:**
187
+ ```bash
188
+ # Linux
189
+ wget https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-linux-amd64
190
+ chmod +x cosign-linux-amd64
191
+ sudo mv cosign-linux-amd64 /usr/local/bin/cosign
192
+
193
+ # macOS
194
+ brew install cosign
195
+ ```
196
+
197
+ **Generate Keys:**
198
+ ```bash
199
+ # Generate key pair
200
+ cosign generate-key-pair
201
+
202
+ # Outputs:
203
+ # - cosign.key (private - store securely!)
204
+ # - cosign.pub (public - distribute)
205
+ ```
206
+
207
+ **Sign Image:**
208
+ ```bash
209
+ # Sign with key
210
+ cosign sign --key cosign.key ghcr.io/myorg/myapp:v1.0.0
211
+
212
+ # Keyless signing (OIDC)
213
+ cosign sign ghcr.io/myorg/myapp:v1.0.0
214
+
215
+ # Sign with annotations
216
+ cosign sign --key cosign.key \
217
+ -a git_sha=$(git rev-parse HEAD) \
218
+ -a build_date=$(date -u +%Y-%m-%dT%H:%M:%SZ) \
219
+ -a author=$GITHUB_ACTOR \
220
+ ghcr.io/myorg/myapp:v1.0.0
221
+ ```
222
+
223
+ **Verify Signature:**
224
+ ```bash
225
+ # Verify with public key
226
+ cosign verify --key cosign.pub ghcr.io/myorg/myapp:v1.0.0
227
+
228
+ # Keyless verification
229
+ cosign verify \
230
+ --certificate-identity=user@example.com \
231
+ --certificate-oidc-issuer=https://github.com/login/oauth \
232
+ ghcr.io/myorg/myapp:v1.0.0
233
+
234
+ # Verify annotations
235
+ cosign verify --key cosign.pub \
236
+ -a git_sha=abc123 \
237
+ ghcr.io/myorg/myapp:v1.0.0
238
+ ```
239
+
240
+ **CI/CD Integration:**
241
+ ```yaml
242
+ # .github/workflows/sign-publish.yml
243
+ name: Build, Sign, and Publish
244
+
245
+ on:
246
+ push:
247
+ tags: ['v*']
248
+
249
+ permissions:
250
+ contents: read
251
+ packages: write
252
+ id-token: write # For keyless signing
253
+
254
+ jobs:
255
+ build-sign-publish:
256
+ runs-on: ubuntu-latest
257
+ steps:
258
+ - uses: actions/checkout@v3
259
+
260
+ - name: Login to GHCR
261
+ uses: docker/login-action@v2
262
+ with:
263
+ registry: ghcr.io
264
+ username: ${{ github.actor }}
265
+ password: ${{ secrets.GITHUB_TOKEN }}
266
+
267
+ - name: Build and push
268
+ uses: docker/build-push-action@v4
269
+ with:
270
+ push: true
271
+ tags: ghcr.io/${{ github.repository }}:${{ github.ref_name }}
272
+
273
+ - name: Install Cosign
274
+ uses: sigstore/cosign-installer@v3
275
+
276
+ - name: Sign image
277
+ run: |
278
+ cosign sign --yes \
279
+ -a git_sha=${{ github.sha }} \
280
+ -a tag=${{ github.ref_name }} \
281
+ ghcr.io/${{ github.repository }}:${{ github.ref_name }}
282
+ ```
283
+
284
+ ### Policy Enforcement
285
+
286
+ **Kyverno Image Verification:**
287
+ ```yaml
288
+ apiVersion: kyverno.io/v1
289
+ kind: ClusterPolicy
290
+ metadata:
291
+ name: verify-image-signature
292
+ spec:
293
+ validationFailureAction: enforce
294
+ webhookTimeoutSeconds: 30
295
+ rules:
296
+ - name: verify-signature
297
+ match:
298
+ any:
299
+ - resources:
300
+ kinds:
301
+ - Pod
302
+ verifyImages:
303
+ - imageReferences:
304
+ - "ghcr.io/myorg/*"
305
+ attestors:
306
+ - count: 1
307
+ entries:
308
+ - keys:
309
+ publicKeys: |-
310
+ -----BEGIN PUBLIC KEY-----
311
+ MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE...
312
+ -----END PUBLIC KEY-----
313
+ ```
314
+
315
+ ## Artifact Attestation
316
+
317
+ ### in-toto Attestations
318
+
319
+ **Generate Attestation:**
320
+ ```bash
321
+ # Create provenance attestation
322
+ cosign attest --key cosign.key \
323
+ --predicate provenance.json \
324
+ ghcr.io/myorg/myapp:v1.0.0
325
+ ```
326
+
327
+ **Provenance Format:**
328
+ ```json
329
+ {
330
+ "_type": "https://in-toto.io/Statement/v0.1",
331
+ "subject": [{
332
+ "name": "ghcr.io/myorg/myapp",
333
+ "digest": {
334
+ "sha256": "abc123..."
335
+ }
336
+ }],
337
+ "predicateType": "https://slsa.dev/provenance/v0.2",
338
+ "predicate": {
339
+ "builder": {
340
+ "id": "https://github.com/myorg/myrepo/actions/runs/12345"
341
+ },
342
+ "buildType": "https://github.com/Attestations/GitHubActionsWorkflow@v1",
343
+ "invocation": {
344
+ "configSource": {
345
+ "uri": "git+https://github.com/myorg/myrepo",
346
+ "digest": {"sha1": "abc123"},
347
+ "entryPoint": ".github/workflows/build.yml"
348
+ }
349
+ },
350
+ "metadata": {
351
+ "buildStartedOn": "2023-01-15T10:00:00Z",
352
+ "buildFinishedOn": "2023-01-15T10:05:00Z",
353
+ "completeness": {
354
+ "parameters": true,
355
+ "environment": true,
356
+ "materials": true
357
+ },
358
+ "reproducible": false
359
+ },
360
+ "materials": [
361
+ {
362
+ "uri": "git+https://github.com/myorg/myrepo",
363
+ "digest": {"sha1": "abc123"}
364
+ }
365
+ ]
366
+ }
367
+ }
368
+ ```
369
+
370
+ **Verify Attestation:**
371
+ ```bash
372
+ cosign verify-attestation --key cosign.pub \
373
+ ghcr.io/myorg/myapp:v1.0.0
374
+ ```
375
+
376
+ ### SLSA Provenance
377
+
378
+ ```yaml
379
+ # .github/workflows/slsa-provenance.yml
380
+ name: SLSA Provenance
381
+
382
+ on:
383
+ push:
384
+ tags: ['v*']
385
+
386
+ permissions:
387
+ contents: read
388
+ packages: write
389
+ id-token: write
390
+
391
+ jobs:
392
+ build:
393
+ runs-on: ubuntu-latest
394
+ outputs:
395
+ digest: ${{ steps.build.outputs.digest }}
396
+ steps:
397
+ - uses: actions/checkout@v3
398
+
399
+ - name: Build
400
+ id: build
401
+ run: |
402
+ docker build -t myapp:latest .
403
+ digest=$(docker inspect --format='{{index .RepoDigests 0}}' myapp:latest | cut -d'@' -f2)
404
+ echo "digest=$digest" >> $GITHUB_OUTPUT
405
+
406
+ provenance:
407
+ needs: [build]
408
+ uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@v1.5.0
409
+ with:
410
+ image: ghcr.io/${{ github.repository }}
411
+ digest: ${{ needs.build.outputs.digest }}
412
+ secrets:
413
+ registry-username: ${{ github.actor }}
414
+ registry-password: ${{ secrets.GITHUB_TOKEN }}
415
+ ```
416
+
417
+ ## SLSA
418
+
419
+ ### SLSA Levels
420
+
421
+ **SLSA 1:** Documentation of build process
422
+ **SLSA 2:** Tamper-proof provenance
423
+ **SLSA 3:** Source and build platforms hardened
424
+ **SLSA 4:** Highest level, two-person review
425
+
426
+ ### Implementation
427
+
428
+ ```yaml
429
+ # slsa-framework requirements
430
+ requirements:
431
+ slsa_1:
432
+ - Build process documented
433
+ - Provenance generated
434
+
435
+ slsa_2:
436
+ - Authenticated provenance
437
+ - Service-generated (not user)
438
+ - Tamper-proof
439
+
440
+ slsa_3:
441
+ - Source and build platform security
442
+ - Hardened build environment
443
+ - Build as code
444
+
445
+ slsa_4:
446
+ - Two-person review
447
+ - Hermetic builds
448
+ - Reproducible builds
449
+ ```
450
+
451
+ ## Best Practices
452
+
453
+ ### 1. Generate and Publish SBOMs
454
+
455
+ ```bash
456
+ # Include with every release
457
+ syft myapp:v1.0.0 -o spdx-json > sbom.json
458
+ ```
459
+
460
+ ### 2. Sign All Artifacts
461
+
462
+ ```bash
463
+ # Images, binaries, packages
464
+ cosign sign --key cosign.key artifact
465
+ ```
466
+
467
+ ### 3. Verify Before Use
468
+
469
+ ```bash
470
+ # Verify signatures in deployment pipeline
471
+ cosign verify --key cosign.pub image
472
+ ```
473
+
474
+ ### 4. Use Private Registries
475
+
476
+ ```yaml
477
+ # Control your supply chain
478
+ registry: private-registry.example.com
479
+ ```
480
+
481
+ ### 5. Pin Dependencies
482
+
483
+ ```json
484
+ {
485
+ "dependencies": {
486
+ "express": "4.18.2", // ✅ Exact version
487
+ "lodash": "^4.17.21" // ❌ Range
488
+ }
489
+ }
490
+ ```
491
+
492
+ ### 6. Automated Scanning
493
+
494
+ ```yaml
495
+ # Scan dependencies daily
496
+ schedule:
497
+ - cron: '0 0 * * *'
498
+ ```
499
+
500
+ ### 7. Provenance Verification
501
+
502
+ ```bash
503
+ # Verify build provenance
504
+ cosign verify-attestation image
505
+ ```
506
+
507
+ ### 8. Reproducible Builds
508
+
509
+ ```dockerfile
510
+ # Use specific base image digests
511
+ FROM node:20-alpine@sha256:abc123...
512
+ ```
513
+
514
+ ---
515
+
516
+ **Related Resources:**
517
+ - [container-security.md](container-security.md) - Image security
518
+ - [ci-cd-security.md](ci-cd-security.md) - Pipeline security