blockmine 1.21.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 (433) 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 +27 -14
  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 -54
  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 -858
  289. package/backend/src/core/EventGraphManager.js +280 -198
  290. package/backend/src/core/GraphExecutionEngine.js +321 -325
  291. package/backend/src/core/MessageQueue.js +27 -6
  292. package/backend/src/core/NodeRegistry.js +37 -1134
  293. package/backend/src/core/PluginManager.js +62 -12
  294. package/backend/src/core/PrismaService.js +32 -0
  295. package/backend/src/core/UserService.js +3 -3
  296. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  297. package/backend/src/core/commands/README.md +305 -0
  298. package/backend/src/core/commands/dev.js +13 -7
  299. package/backend/src/core/commands/ping.js +10 -4
  300. package/backend/src/core/commands/whois.js +63 -0
  301. package/backend/src/core/config/validation.js +27 -0
  302. package/backend/src/core/constants/graphTypes.js +21 -0
  303. package/backend/src/core/node-registries/actions.js +132 -0
  304. package/backend/src/core/node-registries/arrays.js +137 -0
  305. package/backend/src/core/node-registries/bot.js +23 -0
  306. package/backend/src/core/node-registries/data.js +290 -0
  307. package/backend/src/core/node-registries/debug.js +26 -0
  308. package/backend/src/core/node-registries/events.js +187 -0
  309. package/backend/src/core/node-registries/flow.js +139 -0
  310. package/backend/src/core/node-registries/logic.js +45 -0
  311. package/backend/src/core/node-registries/math.js +42 -0
  312. package/backend/src/core/node-registries/objects.js +98 -0
  313. package/backend/src/core/node-registries/strings.js +153 -0
  314. package/backend/src/core/node-registries/time.js +113 -0
  315. package/backend/src/core/node-registries/users.js +79 -0
  316. package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
  317. package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
  318. package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
  319. package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
  320. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  321. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  322. package/backend/src/core/nodes/{data_cast.js → data/cast.js} +8 -0
  323. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  324. package/backend/src/core/nodes/data/entity_info.js +69 -0
  325. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  326. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  327. package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
  328. package/backend/src/core/nodes/data/type_check.js +53 -0
  329. package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
  330. package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
  331. package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
  332. package/backend/src/core/nodes/flow/delay.js +43 -0
  333. package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
  334. package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
  335. package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
  336. package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
  337. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  338. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  339. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  340. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  341. package/backend/src/core/nodes/time/add.js +33 -0
  342. package/backend/src/core/nodes/time/compare.js +35 -0
  343. package/backend/src/core/nodes/time/diff.js +29 -0
  344. package/backend/src/core/nodes/time/format.js +32 -0
  345. package/backend/src/core/nodes/time/now.js +18 -0
  346. package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
  347. package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
  348. package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
  349. package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
  350. package/backend/src/core/services/BotLifecycleService.js +596 -0
  351. package/backend/src/core/services/BotProcessManager.js +163 -0
  352. package/backend/src/core/services/CacheManager.js +111 -0
  353. package/backend/src/core/services/CommandExecutionService.js +351 -0
  354. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  355. package/backend/src/core/services/TelemetryService.js +124 -0
  356. package/backend/src/core/services/ValidationService.js +132 -0
  357. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  358. package/backend/src/core/services.js +20 -5
  359. package/backend/src/core/system/CommandContext.js +84 -0
  360. package/backend/src/core/system/Transport.js +78 -0
  361. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  362. package/backend/src/core/utils/jsonParser.js +18 -0
  363. package/backend/src/core/utils/secretsFilter.js +262 -0
  364. package/backend/src/core/utils/variableParser.js +89 -0
  365. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  366. package/backend/src/core/validation/nodeSchemas.js +112 -0
  367. package/backend/src/lib/prisma.js +2 -4
  368. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  369. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  370. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  371. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  372. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  373. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  374. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  375. package/backend/src/real-time/botApi/index.js +40 -0
  376. package/backend/src/real-time/botApi/middleware.js +79 -0
  377. package/backend/src/real-time/botApi/utils.js +54 -0
  378. package/backend/src/real-time/socketHandler.js +6 -2
  379. package/backend/src/repositories/BaseRepository.js +43 -0
  380. package/backend/src/repositories/BotRepository.js +42 -0
  381. package/backend/src/repositories/CommandRepository.js +53 -0
  382. package/backend/src/repositories/EventGraphRepository.js +40 -0
  383. package/backend/src/repositories/GroupRepository.js +69 -0
  384. package/backend/src/repositories/PermissionRepository.js +48 -0
  385. package/backend/src/repositories/PluginRepository.js +42 -0
  386. package/backend/src/repositories/ServerRepository.js +27 -0
  387. package/backend/src/repositories/UserRepository.js +48 -0
  388. package/backend/src/server.js +3 -0
  389. package/backend/src/test-refactor.js +85 -0
  390. package/frontend/dist/assets/index-CfTo92bP.css +1 -0
  391. package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
  392. package/frontend/dist/index.html +2 -2
  393. package/frontend/package.json +0 -5
  394. package/package.json +2 -1
  395. package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
  396. package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
  397. package/nul +0 -0
  398. /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
  399. /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
  400. /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
  401. /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
  402. /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
  403. /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
  404. /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
  405. /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
  406. /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
  407. /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
  408. /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
  409. /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
  410. /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
  411. /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
  412. /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
  413. /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
  414. /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
  415. /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
  416. /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
  417. /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
  418. /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
  419. /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
  420. /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
  421. /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
  422. /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
  423. /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
  424. /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
  425. /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
  426. /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
  427. /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
  428. /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
  429. /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
  430. /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
  431. /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
  432. /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
  433. /package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +0 -0
@@ -0,0 +1,921 @@
1
+ # Network Security
2
+
3
+ Comprehensive guide to network security covering firewalls, security groups, network ACLs, DDoS protection, WAF, IDS/IPS, zero trust architecture, and network security best practices.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Overview](#overview)
8
+ - [Security Layers](#security-layers)
9
+ - [Firewalls](#firewalls)
10
+ - [Security Groups](#security-groups)
11
+ - [Network ACLs](#network-acls)
12
+ - [DDoS Protection](#ddos-protection)
13
+ - [Web Application Firewall (WAF)](#web-application-firewall-waf)
14
+ - [IDS/IPS](#idsips)
15
+ - [Zero Trust Architecture](#zero-trust-architecture)
16
+ - [Network Segmentation](#network-segmentation)
17
+ - [VPN Security](#vpn-security)
18
+ - [Best Practices](#best-practices)
19
+ - [Anti-Patterns](#anti-patterns)
20
+
21
+ ## Overview
22
+
23
+ Network security protects infrastructure, data, and communications from unauthorized access, attacks, and vulnerabilities through multiple layers of defense.
24
+
25
+ **Defense in Depth Strategy:**
26
+ ```
27
+ ┌────────────────────────────────────────┐
28
+ │ Application Security (WAF, API GW) │
29
+ ├────────────────────────────────────────┤
30
+ │ Host Security (Firewall, SELinux) │
31
+ ├────────────────────────────────────────┤
32
+ │ Network Security (SG, NACL, FW) │
33
+ ├────────────────────────────────────────┤
34
+ │ Perimeter Security (DDoS, IPS) │
35
+ ├────────────────────────────────────────┤
36
+ │ Physical Security (Data Centers) │
37
+ └────────────────────────────────────────┘
38
+ ```
39
+
40
+ ## Security Layers
41
+
42
+ ### Network Zones
43
+
44
+ ```
45
+ ┌─────────────────────────────────────────────┐
46
+ │ Internet │
47
+ └──────────────────┬──────────────────────────┘
48
+
49
+ ┌──────▼──────┐
50
+ │ Firewall │
51
+ │ (Perimeter)│
52
+ └──────┬──────┘
53
+
54
+ ┌───────────┴───────────┐
55
+ │ │
56
+ ┌─────▼─────┐ ┌─────▼──────┐
57
+ │ DMZ │ │ Internal │
58
+ │ (Public) │ │ (Private) │
59
+ └───────────┘ └─────┬───────┘
60
+
61
+ ┌───────▼────────┐
62
+ │ Database │
63
+ │ (Isolated) │
64
+ └────────────────┘
65
+ ```
66
+
67
+ ### Security Control Layers
68
+
69
+ 1. **Perimeter:** DDoS protection, firewall
70
+ 2. **Network:** Security groups, NACLs, routing
71
+ 3. **Application:** WAF, API gateway
72
+ 4. **Data:** Encryption, access control
73
+ 5. **Identity:** IAM, authentication, authorization
74
+
75
+ ## Firewalls
76
+
77
+ ### iptables Configuration
78
+
79
+ ```bash
80
+ #!/bin/bash
81
+ # Flush existing rules
82
+ iptables -F
83
+ iptables -X
84
+ iptables -t nat -F
85
+ iptables -t nat -X
86
+ iptables -t mangle -F
87
+ iptables -t mangle -X
88
+
89
+ # Default policies
90
+ iptables -P INPUT DROP
91
+ iptables -P FORWARD DROP
92
+ iptables -P OUTPUT ACCEPT
93
+
94
+ # Allow loopback
95
+ iptables -A INPUT -i lo -j ACCEPT
96
+ iptables -A OUTPUT -o lo -j ACCEPT
97
+
98
+ # Allow established connections
99
+ iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
100
+
101
+ # Allow SSH (rate limited)
102
+ iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
103
+ iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
104
+ iptables -A INPUT -p tcp --dport 22 -j ACCEPT
105
+
106
+ # Allow HTTP/HTTPS
107
+ iptables -A INPUT -p tcp --dport 80 -j ACCEPT
108
+ iptables -A INPUT -p tcp --dport 443 -j ACCEPT
109
+
110
+ # Allow ping (rate limited)
111
+ iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
112
+
113
+ # Drop invalid packets
114
+ iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
115
+
116
+ # Log dropped packets
117
+ iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
118
+
119
+ # Drop everything else
120
+ iptables -A INPUT -j DROP
121
+
122
+ # Save rules
123
+ iptables-save > /etc/iptables/rules.v4
124
+ ```
125
+
126
+ ### nftables (Modern Replacement)
127
+
128
+ ```bash
129
+ #!/usr/sbin/nft -f
130
+
131
+ flush ruleset
132
+
133
+ table inet filter {
134
+ chain input {
135
+ type filter hook input priority 0; policy drop;
136
+
137
+ # Allow loopback
138
+ iif lo accept
139
+
140
+ # Allow established/related
141
+ ct state established,related accept
142
+
143
+ # Allow SSH (rate limited)
144
+ tcp dport 22 ct state new limit rate 3/minute accept
145
+
146
+ # Allow HTTP/HTTPS
147
+ tcp dport { 80, 443 } accept
148
+
149
+ # Allow ICMP
150
+ icmp type echo-request limit rate 1/second accept
151
+
152
+ # Log drops
153
+ limit rate 5/minute log prefix "nftables drop: "
154
+ }
155
+
156
+ chain forward {
157
+ type filter hook forward priority 0; policy drop;
158
+ }
159
+
160
+ chain output {
161
+ type filter hook output priority 0; policy accept;
162
+ }
163
+ }
164
+ ```
165
+
166
+ ### UFW (Uncomplicated Firewall)
167
+
168
+ ```bash
169
+ # Enable UFW
170
+ ufw enable
171
+
172
+ # Default policies
173
+ ufw default deny incoming
174
+ ufw default allow outgoing
175
+
176
+ # Allow SSH
177
+ ufw allow ssh
178
+ ufw limit ssh # Rate limit SSH
179
+
180
+ # Allow HTTP/HTTPS
181
+ ufw allow 80/tcp
182
+ ufw allow 443/tcp
183
+
184
+ # Allow from specific IP
185
+ ufw allow from 192.0.2.0/24 to any port 3306
186
+
187
+ # Allow specific service
188
+ ufw allow from 10.0.0.0/8 to any app 'PostgreSQL'
189
+
190
+ # Deny specific IP
191
+ ufw deny from 203.0.113.0/24
192
+
193
+ # Show status
194
+ ufw status verbose
195
+
196
+ # Application profiles
197
+ ufw app list
198
+ ufw allow 'Nginx Full'
199
+ ```
200
+
201
+ ## Security Groups
202
+
203
+ ### AWS Security Groups
204
+
205
+ ```hcl
206
+ # Web server security group
207
+ resource "aws_security_group" "web" {
208
+ name = "web-server-sg"
209
+ description = "Security group for web servers"
210
+ vpc_id = aws_vpc.main.id
211
+
212
+ # Inbound rules
213
+ ingress {
214
+ description = "HTTPS from ALB"
215
+ from_port = 443
216
+ to_port = 443
217
+ protocol = "tcp"
218
+ security_groups = [aws_security_group.alb.id]
219
+ }
220
+
221
+ ingress {
222
+ description = "HTTP from ALB"
223
+ from_port = 80
224
+ to_port = 80
225
+ protocol = "tcp"
226
+ security_groups = [aws_security_group.alb.id]
227
+ }
228
+
229
+ ingress {
230
+ description = "SSH from bastion"
231
+ from_port = 22
232
+ to_port = 22
233
+ protocol = "tcp"
234
+ security_groups = [aws_security_group.bastion.id]
235
+ }
236
+
237
+ # Outbound rules
238
+ egress {
239
+ description = "All outbound"
240
+ from_port = 0
241
+ to_port = 0
242
+ protocol = "-1"
243
+ cidr_blocks = ["0.0.0.0/0"]
244
+ }
245
+
246
+ tags = {
247
+ Name = "web-server-sg"
248
+ }
249
+ }
250
+
251
+ # Database security group
252
+ resource "aws_security_group" "database" {
253
+ name = "database-sg"
254
+ description = "Security group for database servers"
255
+ vpc_id = aws_vpc.main.id
256
+
257
+ ingress {
258
+ description = "PostgreSQL from app servers"
259
+ from_port = 5432
260
+ to_port = 5432
261
+ protocol = "tcp"
262
+ security_groups = [aws_security_group.app.id]
263
+ }
264
+
265
+ egress {
266
+ description = "No outbound internet"
267
+ from_port = 0
268
+ to_port = 0
269
+ protocol = "-1"
270
+ cidr_blocks = []
271
+ }
272
+
273
+ tags = {
274
+ Name = "database-sg"
275
+ }
276
+ }
277
+
278
+ # ALB security group
279
+ resource "aws_security_group" "alb" {
280
+ name = "alb-sg"
281
+ description = "Security group for application load balancer"
282
+ vpc_id = aws_vpc.main.id
283
+
284
+ ingress {
285
+ description = "HTTPS from internet"
286
+ from_port = 443
287
+ to_port = 443
288
+ protocol = "tcp"
289
+ cidr_blocks = ["0.0.0.0/0"]
290
+ }
291
+
292
+ ingress {
293
+ description = "HTTP from internet (redirect to HTTPS)"
294
+ from_port = 80
295
+ to_port = 80
296
+ protocol = "tcp"
297
+ cidr_blocks = ["0.0.0.0/0"]
298
+ }
299
+
300
+ egress {
301
+ description = "To web servers"
302
+ from_port = 0
303
+ to_port = 0
304
+ protocol = "-1"
305
+ security_groups = [aws_security_group.web.id]
306
+ }
307
+
308
+ tags = {
309
+ Name = "alb-sg"
310
+ }
311
+ }
312
+ ```
313
+
314
+ ### Azure Network Security Groups
315
+
316
+ ```hcl
317
+ resource "azurerm_network_security_group" "web" {
318
+ name = "web-nsg"
319
+ location = azurerm_resource_group.main.location
320
+ resource_group_name = azurerm_resource_group.main.name
321
+
322
+ security_rule {
323
+ name = "AllowHTTPS"
324
+ priority = 100
325
+ direction = "Inbound"
326
+ access = "Allow"
327
+ protocol = "Tcp"
328
+ source_port_range = "*"
329
+ destination_port_range = "443"
330
+ source_address_prefix = "*"
331
+ destination_address_prefix = "*"
332
+ }
333
+
334
+ security_rule {
335
+ name = "AllowHTTP"
336
+ priority = 110
337
+ direction = "Inbound"
338
+ access = "Allow"
339
+ protocol = "Tcp"
340
+ source_port_range = "*"
341
+ destination_port_range = "80"
342
+ source_address_prefix = "*"
343
+ destination_address_prefix = "*"
344
+ }
345
+
346
+ security_rule {
347
+ name = "DenyAll"
348
+ priority = 4096
349
+ direction = "Inbound"
350
+ access = "Deny"
351
+ protocol = "*"
352
+ source_port_range = "*"
353
+ destination_port_range = "*"
354
+ source_address_prefix = "*"
355
+ destination_address_prefix = "*"
356
+ }
357
+ }
358
+ ```
359
+
360
+ ## Network ACLs
361
+
362
+ ### AWS Network ACLs
363
+
364
+ ```hcl
365
+ resource "aws_network_acl" "public" {
366
+ vpc_id = aws_vpc.main.id
367
+ subnet_ids = aws_subnet.public[*].id
368
+
369
+ # Inbound rules
370
+ ingress {
371
+ protocol = "tcp"
372
+ rule_no = 100
373
+ action = "allow"
374
+ cidr_block = "0.0.0.0/0"
375
+ from_port = 443
376
+ to_port = 443
377
+ }
378
+
379
+ ingress {
380
+ protocol = "tcp"
381
+ rule_no = 110
382
+ action = "allow"
383
+ cidr_block = "0.0.0.0/0"
384
+ from_port = 80
385
+ to_port = 80
386
+ }
387
+
388
+ # Ephemeral ports for return traffic
389
+ ingress {
390
+ protocol = "tcp"
391
+ rule_no = 120
392
+ action = "allow"
393
+ cidr_block = "0.0.0.0/0"
394
+ from_port = 1024
395
+ to_port = 65535
396
+ }
397
+
398
+ # Deny known malicious IPs
399
+ ingress {
400
+ protocol = "-1"
401
+ rule_no = 50
402
+ action = "deny"
403
+ cidr_block = "203.0.113.0/24" # Example malicious range
404
+ from_port = 0
405
+ to_port = 0
406
+ }
407
+
408
+ # Outbound rules
409
+ egress {
410
+ protocol = "-1"
411
+ rule_no = 100
412
+ action = "allow"
413
+ cidr_block = "0.0.0.0/0"
414
+ from_port = 0
415
+ to_port = 0
416
+ }
417
+
418
+ tags = {
419
+ Name = "public-nacl"
420
+ }
421
+ }
422
+ ```
423
+
424
+ ## DDoS Protection
425
+
426
+ ### AWS Shield and WAF
427
+
428
+ ```hcl
429
+ # AWS Shield Advanced
430
+ resource "aws_shield_protection" "alb" {
431
+ name = "alb-protection"
432
+ resource_arn = aws_lb.main.arn
433
+ }
434
+
435
+ # Rate limiting with WAF
436
+ resource "aws_wafv2_web_acl" "main" {
437
+ name = "rate-limit-acl"
438
+ scope = "REGIONAL"
439
+
440
+ default_action {
441
+ allow {}
442
+ }
443
+
444
+ # Rate limiting rule
445
+ rule {
446
+ name = "RateLimitRule"
447
+ priority = 1
448
+
449
+ action {
450
+ block {}
451
+ }
452
+
453
+ statement {
454
+ rate_based_statement {
455
+ limit = 2000
456
+ aggregate_key_type = "IP"
457
+ }
458
+ }
459
+
460
+ visibility_config {
461
+ cloudwatch_metrics_enabled = true
462
+ metric_name = "RateLimitRule"
463
+ sampled_requests_enabled = true
464
+ }
465
+ }
466
+
467
+ # Geographic blocking
468
+ rule {
469
+ name = "GeoBlockRule"
470
+ priority = 2
471
+
472
+ action {
473
+ block {}
474
+ }
475
+
476
+ statement {
477
+ geo_match_statement {
478
+ country_codes = ["CN", "RU"] # Example countries
479
+ }
480
+ }
481
+
482
+ visibility_config {
483
+ cloudwatch_metrics_enabled = true
484
+ metric_name = "GeoBlockRule"
485
+ sampled_requests_enabled = true
486
+ }
487
+ }
488
+
489
+ visibility_config {
490
+ cloudwatch_metrics_enabled = true
491
+ metric_name = "MainWebACL"
492
+ sampled_requests_enabled = true
493
+ }
494
+ }
495
+
496
+ # Associate WAF with ALB
497
+ resource "aws_wafv2_web_acl_association" "main" {
498
+ resource_arn = aws_lb.main.arn
499
+ web_acl_arn = aws_wafv2_web_acl.main.arn
500
+ }
501
+ ```
502
+
503
+ ### Cloudflare DDoS Protection
504
+
505
+ ```hcl
506
+ resource "cloudflare_rate_limit" "api" {
507
+ zone_id = var.cloudflare_zone_id
508
+
509
+ threshold = 1000
510
+ period = 60
511
+ match {
512
+ request {
513
+ url_pattern = "api.example.com/v1/*"
514
+ }
515
+ }
516
+
517
+ action {
518
+ mode = "challenge"
519
+ timeout = 3600
520
+ }
521
+ }
522
+
523
+ resource "cloudflare_firewall_rule" "block_countries" {
524
+ zone_id = var.cloudflare_zone_id
525
+ description = "Block traffic from specific countries"
526
+ filter_id = cloudflare_filter.geo_block.id
527
+ action = "block"
528
+ }
529
+
530
+ resource "cloudflare_filter" "geo_block" {
531
+ zone_id = var.cloudflare_zone_id
532
+ description = "Block specific countries"
533
+ expression = "(ip.geoip.country in {\"CN\" \"RU\"})"
534
+ }
535
+ ```
536
+
537
+ ## Web Application Firewall (WAF)
538
+
539
+ ### AWS WAF Rules
540
+
541
+ ```hcl
542
+ resource "aws_wafv2_web_acl" "comprehensive" {
543
+ name = "comprehensive-waf"
544
+ scope = "REGIONAL"
545
+
546
+ default_action {
547
+ allow {}
548
+ }
549
+
550
+ # SQL injection protection
551
+ rule {
552
+ name = "SQLInjectionRule"
553
+ priority = 1
554
+
555
+ override_action {
556
+ none {}
557
+ }
558
+
559
+ statement {
560
+ managed_rule_group_statement {
561
+ vendor_name = "AWS"
562
+ name = "AWSManagedRulesSQLiRuleSet"
563
+ }
564
+ }
565
+
566
+ visibility_config {
567
+ cloudwatch_metrics_enabled = true
568
+ metric_name = "SQLInjectionRule"
569
+ sampled_requests_enabled = true
570
+ }
571
+ }
572
+
573
+ # XSS protection
574
+ rule {
575
+ name = "XSSRule"
576
+ priority = 2
577
+
578
+ override_action {
579
+ none {}
580
+ }
581
+
582
+ statement {
583
+ managed_rule_group_statement {
584
+ vendor_name = "AWS"
585
+ name = "AWSManagedRulesKnownBadInputsRuleSet"
586
+ }
587
+ }
588
+
589
+ visibility_config {
590
+ cloudwatch_metrics_enabled = true
591
+ metric_name = "XSSRule"
592
+ sampled_requests_enabled = true
593
+ }
594
+ }
595
+
596
+ # Core rule set
597
+ rule {
598
+ name = "CoreRuleSet"
599
+ priority = 3
600
+
601
+ override_action {
602
+ none {}
603
+ }
604
+
605
+ statement {
606
+ managed_rule_group_statement {
607
+ vendor_name = "AWS"
608
+ name = "AWSManagedRulesCommonRuleSet"
609
+ }
610
+ }
611
+
612
+ visibility_config {
613
+ cloudwatch_metrics_enabled = true
614
+ metric_name = "CoreRuleSet"
615
+ sampled_requests_enabled = true
616
+ }
617
+ }
618
+
619
+ # IP reputation list
620
+ rule {
621
+ name = "IPReputationRule"
622
+ priority = 4
623
+
624
+ override_action {
625
+ none {}
626
+ }
627
+
628
+ statement {
629
+ managed_rule_group_statement {
630
+ vendor_name = "AWS"
631
+ name = "AWSManagedRulesAmazonIpReputationList"
632
+ }
633
+ }
634
+
635
+ visibility_config {
636
+ cloudwatch_metrics_enabled = true
637
+ metric_name = "IPReputationRule"
638
+ sampled_requests_enabled = true
639
+ }
640
+ }
641
+
642
+ visibility_config {
643
+ cloudwatch_metrics_enabled = true
644
+ metric_name = "ComprehensiveWAF"
645
+ sampled_requests_enabled = true
646
+ }
647
+ }
648
+ ```
649
+
650
+ ## IDS/IPS
651
+
652
+ ### Snort Configuration
653
+
654
+ ```bash
655
+ # /etc/snort/snort.conf
656
+
657
+ # Network variables
658
+ ipvar HOME_NET 10.0.0.0/8
659
+ ipvar EXTERNAL_NET !$HOME_NET
660
+
661
+ # Port lists
662
+ portvar HTTP_PORTS [80,443,8080]
663
+ portvar SSH_PORTS 22
664
+
665
+ # Rules
666
+ include $RULE_PATH/local.rules
667
+
668
+ # Custom rules in local.rules:
669
+ # Detect port scanning
670
+ alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"SCAN nmap TCP"; flags:S; threshold:type both, track by_src, count 5, seconds 60; sid:10000001;)
671
+
672
+ # Detect SSH brute force
673
+ alert tcp $EXTERNAL_NET any -> $HOME_NET $SSH_PORTS (msg:"SSH Brute Force Attempt"; flow:to_server,established; content:"SSH"; threshold:type both, track by_src, count 5, seconds 60; sid:10000002;)
674
+
675
+ # Detect SQL injection
676
+ alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"SQL Injection Attempt"; flow:to_server,established; content:"UNION"; content:"SELECT"; sid:10000003;)
677
+ ```
678
+
679
+ ### Suricata (Modern IDS/IPS)
680
+
681
+ ```yaml
682
+ # /etc/suricata/suricata.yaml
683
+ vars:
684
+ address-groups:
685
+ HOME_NET: "[10.0.0.0/8]"
686
+ EXTERNAL_NET: "!$HOME_NET"
687
+
688
+ port-groups:
689
+ HTTP_PORTS: "80,443"
690
+ SSH_PORTS: "22"
691
+
692
+ af-packet:
693
+ - interface: eth0
694
+ threads: auto
695
+ cluster-id: 99
696
+ cluster-type: cluster_flow
697
+
698
+ outputs:
699
+ - fast:
700
+ enabled: yes
701
+ filename: fast.log
702
+ - eve-log:
703
+ enabled: yes
704
+ filetype: regular
705
+ filename: eve.json
706
+ types:
707
+ - alert
708
+ - http
709
+ - dns
710
+ - tls
711
+
712
+ # Custom rules
713
+ rule-files:
714
+ - local.rules
715
+ - emerging-threats.rules
716
+ ```
717
+
718
+ ## Zero Trust Architecture
719
+
720
+ ### Zero Trust Principles
721
+
722
+ ```
723
+ Traditional: Zero Trust:
724
+ Trust inside Trust nothing
725
+ Verify once Verify always
726
+ Network-based Identity-based
727
+ Perimeter security Micro-segmentation
728
+ ```
729
+
730
+ ### Implementation with Service Mesh
731
+
732
+ ```yaml
733
+ # Istio authorization policy (zero trust)
734
+ apiVersion: security.istio.io/v1beta1
735
+ kind: AuthorizationPolicy
736
+ metadata:
737
+ name: deny-all
738
+ namespace: production
739
+ spec:
740
+ {} # Empty spec denies all
741
+
742
+ ---
743
+ apiVersion: security.istio.io/v1beta1
744
+ kind: AuthorizationPolicy
745
+ metadata:
746
+ name: allow-frontend-to-api
747
+ namespace: production
748
+ spec:
749
+ selector:
750
+ matchLabels:
751
+ app: api
752
+ action: ALLOW
753
+ rules:
754
+ - from:
755
+ - source:
756
+ principals: ["cluster.local/ns/production/sa/frontend"]
757
+ to:
758
+ - operation:
759
+ methods: ["GET", "POST"]
760
+ paths: ["/api/*"]
761
+
762
+ ---
763
+ # Require mTLS
764
+ apiVersion: security.istio.io/v1beta1
765
+ kind: PeerAuthentication
766
+ metadata:
767
+ name: default
768
+ namespace: production
769
+ spec:
770
+ mtls:
771
+ mode: STRICT
772
+ ```
773
+
774
+ ## Network Segmentation
775
+
776
+ ### VLAN Segmentation
777
+
778
+ ```
779
+ VLAN 10: Management (10.0.10.0/24)
780
+ VLAN 20: Web Tier (10.0.20.0/24)
781
+ VLAN 30: App Tier (10.0.30.0/24)
782
+ VLAN 40: Database Tier (10.0.40.0/24)
783
+ VLAN 50: DMZ (10.0.50.0/24)
784
+ ```
785
+
786
+ ### Kubernetes Network Policies
787
+
788
+ ```yaml
789
+ # Default deny all
790
+ apiVersion: networking.k8s.io/v1
791
+ kind: NetworkPolicy
792
+ metadata:
793
+ name: default-deny-all
794
+ namespace: production
795
+ spec:
796
+ podSelector: {}
797
+ policyTypes:
798
+ - Ingress
799
+ - Egress
800
+
801
+ ---
802
+ # Allow frontend to API
803
+ apiVersion: networking.k8s.io/v1
804
+ kind: NetworkPolicy
805
+ metadata:
806
+ name: allow-frontend-to-api
807
+ namespace: production
808
+ spec:
809
+ podSelector:
810
+ matchLabels:
811
+ app: api
812
+ policyTypes:
813
+ - Ingress
814
+ ingress:
815
+ - from:
816
+ - podSelector:
817
+ matchLabels:
818
+ app: frontend
819
+ ports:
820
+ - protocol: TCP
821
+ port: 8080
822
+
823
+ ---
824
+ # Allow API to database
825
+ apiVersion: networking.k8s.io/v1
826
+ kind: NetworkPolicy
827
+ metadata:
828
+ name: allow-api-to-db
829
+ namespace: production
830
+ spec:
831
+ podSelector:
832
+ matchLabels:
833
+ app: database
834
+ policyTypes:
835
+ - Ingress
836
+ ingress:
837
+ - from:
838
+ - podSelector:
839
+ matchLabels:
840
+ app: api
841
+ ports:
842
+ - protocol: TCP
843
+ port: 5432
844
+
845
+ ---
846
+ # Allow egress to external APIs
847
+ apiVersion: networking.k8s.io/v1
848
+ kind: NetworkPolicy
849
+ metadata:
850
+ name: allow-api-egress
851
+ namespace: production
852
+ spec:
853
+ podSelector:
854
+ matchLabels:
855
+ app: api
856
+ policyTypes:
857
+ - Egress
858
+ egress:
859
+ - to:
860
+ - namespaceSelector: {}
861
+ ports:
862
+ - protocol: TCP
863
+ port: 443
864
+ - to:
865
+ - podSelector:
866
+ matchLabels:
867
+ app: database
868
+ ports:
869
+ - protocol: TCP
870
+ port: 5432
871
+ ```
872
+
873
+ ## VPN Security
874
+
875
+ ### WireGuard Configuration
876
+
877
+ ```ini
878
+ # /etc/wireguard/wg0.conf
879
+ [Interface]
880
+ PrivateKey = <server-private-key>
881
+ Address = 10.200.0.1/24
882
+ ListenPort = 51820
883
+ PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
884
+ PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
885
+
886
+ [Peer]
887
+ # Client 1
888
+ PublicKey = <client1-public-key>
889
+ AllowedIPs = 10.200.0.2/32
890
+
891
+ [Peer]
892
+ # Client 2
893
+ PublicKey = <client2-public-key>
894
+ AllowedIPs = 10.200.0.3/32
895
+ ```
896
+
897
+ ## Best Practices
898
+
899
+ 1. **Implement defense in depth** - Multiple security layers
900
+ 2. **Principle of least privilege** - Minimum necessary access
901
+ 3. **Default deny** - Explicitly allow only what's needed
902
+ 4. **Network segmentation** - Isolate workloads and data
903
+ 5. **Enable logging** - Monitor and audit all traffic
904
+ 6. **Regular security audits** - Review and update rules
905
+ 7. **Encrypt in transit** - Use TLS/mTLS for all communications
906
+ 8. **Rate limiting** - Protect against abuse and DDoS
907
+ 9. **Keep systems updated** - Patch vulnerabilities promptly
908
+ 10. **Incident response plan** - Be prepared for security events
909
+
910
+ ## Anti-Patterns
911
+
912
+ - **0.0.0.0/0 everywhere** - Overly permissive rules
913
+ - **No logging** - Can't detect or investigate incidents
914
+ - **Single security layer** - Insufficient defense
915
+ - **Trusting internal network** - Internal threats exist
916
+ - **No rate limiting** - Vulnerable to DDoS
917
+ - **Ignoring egress filtering** - Data exfiltration risk
918
+ - **Weak encryption** - Use modern TLS versions only
919
+ - **No security monitoring** - Can't detect breaches
920
+ - **Manual firewall rules** - Inconsistent and error-prone
921
+ - **No incident response plan** - Slow reaction to breaches