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,738 @@
1
+ # DNS Management
2
+
3
+ Comprehensive guide to DNS (Domain Name System) management covering DNS architecture, zone files, cloud DNS services, DNSSEC, DNS security, and traffic routing strategies.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Overview](#overview)
8
+ - [DNS Architecture](#dns-architecture)
9
+ - [DNS Record Types](#dns-record-types)
10
+ - [Zone Files](#zone-files)
11
+ - [Cloud DNS Services](#cloud-dns-services)
12
+ - [Route 53 Advanced Features](#route-53-advanced-features)
13
+ - [DNSSEC](#dnssec)
14
+ - [DNS Security](#dns-security)
15
+ - [Traffic Routing Strategies](#traffic-routing-strategies)
16
+ - [Best Practices](#best-practices)
17
+ - [Anti-Patterns](#anti-patterns)
18
+
19
+ ## Overview
20
+
21
+ DNS translates human-readable domain names into IP addresses. Proper DNS management is critical for availability, performance, and security.
22
+
23
+ **Key Concepts:**
24
+ - Hierarchical distributed database
25
+ - Authoritative vs recursive DNS
26
+ - DNS caching and TTL
27
+ - Zone delegation
28
+ - DNS resolution process
29
+
30
+ ## DNS Architecture
31
+
32
+ ### DNS Hierarchy
33
+
34
+ ```
35
+ Root (.)
36
+ |
37
+ ┌──────────────┼──────────────┐
38
+ | | |
39
+ .com .org .net
40
+ | | |
41
+ example.com wikipedia.org cloudflare.net
42
+ |
43
+ ┌─────┴─────┐
44
+ | |
45
+ www.example.com api.example.com
46
+ ```
47
+
48
+ ### DNS Resolution Flow
49
+
50
+ ```
51
+ 1. User requests www.example.com
52
+ 2. Client checks local DNS cache
53
+ 3. If not cached, queries recursive resolver
54
+ 4. Resolver queries root nameserver → .com TLD nameserver → example.com authoritative nameserver
55
+ 5. Returns IP address to client
56
+ 6. Client caches result based on TTL
57
+ ```
58
+
59
+ ### DNS Server Types
60
+
61
+ **Authoritative DNS:**
62
+ - Holds actual DNS records
63
+ - Responds with definitive answers
64
+ - Managed by domain owner
65
+
66
+ **Recursive DNS:**
67
+ - Queries other DNS servers on behalf of clients
68
+ - Caches results
69
+ - Examples: 8.8.8.8 (Google), 1.1.1.1 (Cloudflare)
70
+
71
+ ## DNS Record Types
72
+
73
+ ### A Record (IPv4 Address)
74
+
75
+ ```
76
+ example.com. 300 IN A 192.0.2.1
77
+ ```
78
+
79
+ ### AAAA Record (IPv6 Address)
80
+
81
+ ```
82
+ example.com. 300 IN AAAA 2001:0db8::1
83
+ ```
84
+
85
+ ### CNAME Record (Canonical Name)
86
+
87
+ ```
88
+ www.example.com. 300 IN CNAME example.com.
89
+ ```
90
+
91
+ **Important:** CNAME cannot coexist with other records at same name.
92
+
93
+ ### MX Record (Mail Exchange)
94
+
95
+ ```
96
+ example.com. 3600 IN MX 10 mail1.example.com.
97
+ example.com. 3600 IN MX 20 mail2.example.com.
98
+ ```
99
+
100
+ Lower priority number = higher priority.
101
+
102
+ ### TXT Record (Text/SPF/DKIM)
103
+
104
+ ```
105
+ example.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
106
+ _dmarc.example.com. 300 IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
107
+ ```
108
+
109
+ ### NS Record (Name Server)
110
+
111
+ ```
112
+ example.com. 86400 IN NS ns1.example.com.
113
+ example.com. 86400 IN NS ns2.example.com.
114
+ ```
115
+
116
+ ### SRV Record (Service)
117
+
118
+ ```
119
+ _service._proto.name. TTL IN SRV priority weight port target
120
+ _http._tcp.example.com. 300 IN SRV 10 60 80 server1.example.com.
121
+ ```
122
+
123
+ ### CAA Record (Certificate Authority Authorization)
124
+
125
+ ```
126
+ example.com. 300 IN CAA 0 issue "letsencrypt.org"
127
+ example.com. 300 IN CAA 0 issuewild "letsencrypt.org"
128
+ ```
129
+
130
+ ## Zone Files
131
+
132
+ ### BIND Zone File Format
133
+
134
+ ```
135
+ $TTL 3600
136
+ $ORIGIN example.com.
137
+
138
+ @ IN SOA ns1.example.com. admin.example.com. (
139
+ 2024010101 ; Serial (YYYYMMDDnn)
140
+ 7200 ; Refresh (2 hours)
141
+ 3600 ; Retry (1 hour)
142
+ 1209600 ; Expire (2 weeks)
143
+ 3600 ) ; Minimum TTL (1 hour)
144
+
145
+ IN NS ns1.example.com.
146
+ IN NS ns2.example.com.
147
+
148
+ IN A 192.0.2.1
149
+ IN AAAA 2001:0db8::1
150
+
151
+ IN MX 10 mail.example.com.
152
+
153
+ www IN A 192.0.2.1
154
+ api IN A 192.0.2.2
155
+ cdn IN CNAME cdn.cloudfront.net.
156
+
157
+ ; Subdomain delegation
158
+ staging IN NS ns1.staging.example.com.
159
+ staging IN NS ns2.staging.example.com.
160
+
161
+ ; Wildcard record
162
+ *.dynamic IN A 192.0.2.100
163
+ ```
164
+
165
+ ### SOA Record Explained
166
+
167
+ ```
168
+ SOA <primary-ns> <admin-email> (
169
+ <serial> ; Version number, increment on each change
170
+ <refresh> ; Time secondary should check for updates
171
+ <retry> ; Time to retry failed refresh
172
+ <expire> ; Time before zone considered invalid
173
+ <minimum> ; Minimum TTL for negative responses
174
+ )
175
+ ```
176
+
177
+ ## Cloud DNS Services
178
+
179
+ ### AWS Route 53
180
+
181
+ **Create Hosted Zone:**
182
+ ```hcl
183
+ resource "aws_route53_zone" "primary" {
184
+ name = "example.com"
185
+ comment = "Primary DNS zone for example.com"
186
+
187
+ tags = {
188
+ Environment = "production"
189
+ }
190
+ }
191
+
192
+ # A record
193
+ resource "aws_route53_record" "www" {
194
+ zone_id = aws_route53_zone.primary.zone_id
195
+ name = "www.example.com"
196
+ type = "A"
197
+ ttl = 300
198
+ records = ["192.0.2.1"]
199
+ }
200
+
201
+ # Alias record (AWS-specific)
202
+ resource "aws_route53_record" "apex" {
203
+ zone_id = aws_route53_zone.primary.zone_id
204
+ name = "example.com"
205
+ type = "A"
206
+
207
+ alias {
208
+ name = aws_lb.main.dns_name
209
+ zone_id = aws_lb.main.zone_id
210
+ evaluate_target_health = true
211
+ }
212
+ }
213
+
214
+ # CNAME record
215
+ resource "aws_route53_record" "api" {
216
+ zone_id = aws_route53_zone.primary.zone_id
217
+ name = "api.example.com"
218
+ type = "CNAME"
219
+ ttl = 300
220
+ records = ["api-lb.us-east-1.elb.amazonaws.com"]
221
+ }
222
+ ```
223
+
224
+ ### Google Cloud DNS
225
+
226
+ ```hcl
227
+ resource "google_dns_managed_zone" "primary" {
228
+ name = "example-com"
229
+ dns_name = "example.com."
230
+ description = "Primary DNS zone"
231
+
232
+ dnssec_config {
233
+ state = "on"
234
+ }
235
+ }
236
+
237
+ resource "google_dns_record_set" "a" {
238
+ managed_zone = google_dns_managed_zone.primary.name
239
+ name = "www.example.com."
240
+ type = "A"
241
+ ttl = 300
242
+ rrdatas = ["192.0.2.1"]
243
+ }
244
+
245
+ resource "google_dns_record_set" "mx" {
246
+ managed_zone = google_dns_managed_zone.primary.name
247
+ name = "example.com."
248
+ type = "MX"
249
+ ttl = 3600
250
+ rrdatas = [
251
+ "10 mail1.example.com.",
252
+ "20 mail2.example.com."
253
+ ]
254
+ }
255
+ ```
256
+
257
+ ### Azure DNS
258
+
259
+ ```hcl
260
+ resource "azurerm_dns_zone" "primary" {
261
+ name = "example.com"
262
+ resource_group_name = azurerm_resource_group.main.name
263
+
264
+ tags = {
265
+ environment = "production"
266
+ }
267
+ }
268
+
269
+ resource "azurerm_dns_a_record" "www" {
270
+ name = "www"
271
+ zone_name = azurerm_dns_zone.primary.name
272
+ resource_group_name = azurerm_resource_group.main.name
273
+ ttl = 300
274
+ records = ["192.0.2.1"]
275
+ }
276
+
277
+ resource "azurerm_dns_cname_record" "cdn" {
278
+ name = "cdn"
279
+ zone_name = azurerm_dns_zone.primary.name
280
+ resource_group_name = azurerm_resource_group.main.name
281
+ ttl = 300
282
+ record = "cdn.azureedge.net"
283
+ }
284
+ ```
285
+
286
+ ## Route 53 Advanced Features
287
+
288
+ ### Weighted Routing (Traffic Distribution)
289
+
290
+ ```hcl
291
+ # Send 70% traffic to new version, 30% to old
292
+ resource "aws_route53_record" "api_new" {
293
+ zone_id = aws_route53_zone.primary.zone_id
294
+ name = "api.example.com"
295
+ type = "A"
296
+ ttl = 60
297
+
298
+ weighted_routing_policy {
299
+ weight = 70
300
+ }
301
+
302
+ set_identifier = "api-new"
303
+ records = ["192.0.2.10"]
304
+ }
305
+
306
+ resource "aws_route53_record" "api_old" {
307
+ zone_id = aws_route53_zone.primary.zone_id
308
+ name = "api.example.com"
309
+ type = "A"
310
+ ttl = 60
311
+
312
+ weighted_routing_policy {
313
+ weight = 30
314
+ }
315
+
316
+ set_identifier = "api-old"
317
+ records = ["192.0.2.20"]
318
+ }
319
+ ```
320
+
321
+ ### Latency-Based Routing
322
+
323
+ ```hcl
324
+ resource "aws_route53_record" "api_us_east" {
325
+ zone_id = aws_route53_zone.primary.zone_id
326
+ name = "api.example.com"
327
+ type = "A"
328
+
329
+ latency_routing_policy {
330
+ region = "us-east-1"
331
+ }
332
+
333
+ set_identifier = "api-us-east-1"
334
+
335
+ alias {
336
+ name = aws_lb.us_east.dns_name
337
+ zone_id = aws_lb.us_east.zone_id
338
+ evaluate_target_health = true
339
+ }
340
+ }
341
+
342
+ resource "aws_route53_record" "api_eu_west" {
343
+ zone_id = aws_route53_zone.primary.zone_id
344
+ name = "api.example.com"
345
+ type = "A"
346
+
347
+ latency_routing_policy {
348
+ region = "eu-west-1"
349
+ }
350
+
351
+ set_identifier = "api-eu-west-1"
352
+
353
+ alias {
354
+ name = aws_lb.eu_west.dns_name
355
+ zone_id = aws_lb.eu_west.zone_id
356
+ evaluate_target_health = true
357
+ }
358
+ }
359
+ ```
360
+
361
+ ### Geolocation Routing
362
+
363
+ ```hcl
364
+ # Default for all locations
365
+ resource "aws_route53_record" "geo_default" {
366
+ zone_id = aws_route53_zone.primary.zone_id
367
+ name = "www.example.com"
368
+ type = "A"
369
+
370
+ geolocation_routing_policy {
371
+ continent = "*"
372
+ }
373
+
374
+ set_identifier = "default"
375
+ records = ["192.0.2.1"]
376
+ }
377
+
378
+ # Europe
379
+ resource "aws_route53_record" "geo_europe" {
380
+ zone_id = aws_route53_zone.primary.zone_id
381
+ name = "www.example.com"
382
+ type = "A"
383
+
384
+ geolocation_routing_policy {
385
+ continent = "EU"
386
+ }
387
+
388
+ set_identifier = "europe"
389
+ records = ["192.0.2.10"]
390
+ }
391
+
392
+ # Asia
393
+ resource "aws_route53_record" "geo_asia" {
394
+ zone_id = aws_route53_zone.primary.zone_id
395
+ name = "www.example.com"
396
+ type = "A"
397
+
398
+ geolocation_routing_policy {
399
+ continent = "AS"
400
+ }
401
+
402
+ set_identifier = "asia"
403
+ records = ["192.0.2.20"]
404
+ }
405
+ ```
406
+
407
+ ### Failover Routing
408
+
409
+ ```hcl
410
+ # Primary endpoint with health check
411
+ resource "aws_route53_health_check" "primary" {
412
+ fqdn = "primary.example.com"
413
+ port = 443
414
+ type = "HTTPS"
415
+ resource_path = "/health"
416
+ failure_threshold = 3
417
+ request_interval = 30
418
+
419
+ tags = {
420
+ Name = "primary-health-check"
421
+ }
422
+ }
423
+
424
+ resource "aws_route53_record" "primary" {
425
+ zone_id = aws_route53_zone.primary.zone_id
426
+ name = "app.example.com"
427
+ type = "A"
428
+
429
+ failover_routing_policy {
430
+ type = "PRIMARY"
431
+ }
432
+
433
+ set_identifier = "primary"
434
+ health_check_id = aws_route53_health_check.primary.id
435
+ records = ["192.0.2.1"]
436
+ ttl = 60
437
+ }
438
+
439
+ # Secondary (failover) endpoint
440
+ resource "aws_route53_record" "secondary" {
441
+ zone_id = aws_route53_zone.primary.zone_id
442
+ name = "app.example.com"
443
+ type = "A"
444
+
445
+ failover_routing_policy {
446
+ type = "SECONDARY"
447
+ }
448
+
449
+ set_identifier = "secondary"
450
+ records = ["192.0.2.100"]
451
+ ttl = 60
452
+ }
453
+ ```
454
+
455
+ ### Multi-Value Answer Routing
456
+
457
+ ```hcl
458
+ resource "aws_route53_record" "multi_value_1" {
459
+ zone_id = aws_route53_zone.primary.zone_id
460
+ name = "api.example.com"
461
+ type = "A"
462
+ ttl = 60
463
+
464
+ multivalue_answer_routing_policy = true
465
+ set_identifier = "server-1"
466
+ health_check_id = aws_route53_health_check.server1.id
467
+
468
+ records = ["192.0.2.1"]
469
+ }
470
+
471
+ resource "aws_route53_record" "multi_value_2" {
472
+ zone_id = aws_route53_zone.primary.zone_id
473
+ name = "api.example.com"
474
+ type = "A"
475
+ ttl = 60
476
+
477
+ multivalue_answer_routing_policy = true
478
+ set_identifier = "server-2"
479
+ health_check_id = aws_route53_health_check.server2.id
480
+
481
+ records = ["192.0.2.2"]
482
+ }
483
+ ```
484
+
485
+ ## DNSSEC
486
+
487
+ ### Enable DNSSEC on Route 53
488
+
489
+ ```hcl
490
+ resource "aws_route53_zone" "primary" {
491
+ name = "example.com"
492
+ }
493
+
494
+ # Enable DNSSEC signing
495
+ resource "aws_route53_key_signing_key" "main" {
496
+ hosted_zone_id = aws_route53_zone.primary.zone_id
497
+ key_management_service_arn = aws_kms_key.dnssec.arn
498
+ name = "example-ksk"
499
+ }
500
+
501
+ resource "aws_route53_hosted_zone_dnssec" "main" {
502
+ hosted_zone_id = aws_route53_key_signing_key.main.hosted_zone_id
503
+ }
504
+
505
+ # KMS key for DNSSEC
506
+ resource "aws_kms_key" "dnssec" {
507
+ customer_master_key_spec = "ECC_NIST_P256"
508
+ deletion_window_in_days = 7
509
+ key_usage = "SIGN_VERIFY"
510
+ policy = jsonencode({
511
+ Statement = [
512
+ {
513
+ Action = [
514
+ "kms:DescribeKey",
515
+ "kms:GetPublicKey",
516
+ "kms:Sign",
517
+ ],
518
+ Effect = "Allow"
519
+ Principal = {
520
+ Service = "dnssec-route53.amazonaws.com"
521
+ }
522
+ Resource = "*"
523
+ },
524
+ ]
525
+ Version = "2012-10-17"
526
+ })
527
+ }
528
+ ```
529
+
530
+ ### DNSSEC Validation
531
+
532
+ ```bash
533
+ # Check DNSSEC status
534
+ dig example.com +dnssec
535
+
536
+ # Verify DNSSEC chain
537
+ delv @8.8.8.8 example.com
538
+
539
+ # Check DS record at parent
540
+ dig DS example.com
541
+ ```
542
+
543
+ ## DNS Security
544
+
545
+ ### DNS over HTTPS (DoH)
546
+
547
+ ```python
548
+ # Using DNS over HTTPS
549
+ import requests
550
+
551
+ def resolve_doh(domain):
552
+ url = "https://cloudflare-dns.com/dns-query"
553
+ headers = {"accept": "application/dns-json"}
554
+ params = {"name": domain, "type": "A"}
555
+
556
+ response = requests.get(url, headers=headers, params=params)
557
+ return response.json()
558
+
559
+ result = resolve_doh("example.com")
560
+ print(result)
561
+ ```
562
+
563
+ ### DNS over TLS (DoT)
564
+
565
+ ```bash
566
+ # Configure systemd-resolved for DoT
567
+ cat > /etc/systemd/resolved.conf <<EOF
568
+ [Resolve]
569
+ DNS=1.1.1.1#cloudflare-dns.com 8.8.8.8#dns.google
570
+ DNSOverTLS=yes
571
+ DNSSEC=yes
572
+ EOF
573
+
574
+ systemctl restart systemd-resolved
575
+ ```
576
+
577
+ ### DDoS Protection
578
+
579
+ ```hcl
580
+ # Route 53 with Shield Advanced
581
+ resource "aws_shield_protection" "route53" {
582
+ name = "route53-protection"
583
+ resource_arn = aws_route53_zone.primary.arn
584
+ }
585
+
586
+ # Rate limiting health checks
587
+ resource "aws_route53_health_check" "rate_limited" {
588
+ type = "HTTPS"
589
+ resource_path = "/health"
590
+ fqdn = "api.example.com"
591
+ port = 443
592
+ request_interval = 30
593
+ failure_threshold = 3
594
+ measure_latency = true
595
+ enable_sni = true
596
+ }
597
+ ```
598
+
599
+ ## Traffic Routing Strategies
600
+
601
+ ### Blue-Green Deployment
602
+
603
+ ```hcl
604
+ # Blue environment (current production)
605
+ resource "aws_route53_record" "production" {
606
+ zone_id = aws_route53_zone.primary.zone_id
607
+ name = "app.example.com"
608
+ type = "A"
609
+
610
+ weighted_routing_policy {
611
+ weight = 100 # All traffic to blue
612
+ }
613
+
614
+ set_identifier = "blue"
615
+ records = ["192.0.2.10"]
616
+ ttl = 60
617
+ }
618
+
619
+ # Green environment (new version)
620
+ resource "aws_route53_record" "staging" {
621
+ zone_id = aws_route53_zone.primary.zone_id
622
+ name = "app.example.com"
623
+ type = "A"
624
+
625
+ weighted_routing_policy {
626
+ weight = 0 # No production traffic yet
627
+ }
628
+
629
+ set_identifier = "green"
630
+ records = ["192.0.2.20"]
631
+ ttl = 60
632
+ }
633
+
634
+ # To switch: Update weights (blue=0, green=100)
635
+ ```
636
+
637
+ ### Canary Deployment
638
+
639
+ ```hcl
640
+ # Stable version
641
+ resource "aws_route53_record" "stable" {
642
+ zone_id = aws_route53_zone.primary.zone_id
643
+ name = "api.example.com"
644
+ type = "A"
645
+
646
+ weighted_routing_policy {
647
+ weight = 95 # 95% traffic
648
+ }
649
+
650
+ set_identifier = "stable"
651
+ records = ["192.0.2.10"]
652
+ ttl = 60
653
+ }
654
+
655
+ # Canary version
656
+ resource "aws_route53_record" "canary" {
657
+ zone_id = aws_route53_zone.primary.zone_id
658
+ name = "api.example.com"
659
+ type = "A"
660
+
661
+ weighted_routing_policy {
662
+ weight = 5 # 5% traffic for testing
663
+ }
664
+
665
+ set_identifier = "canary"
666
+ records = ["192.0.2.20"]
667
+ ttl = 60
668
+ }
669
+ ```
670
+
671
+ ### Split-View DNS (Internal/External)
672
+
673
+ ```
674
+ Internal Zone (10.0.0.0/8):
675
+ api.example.com → 10.0.1.10 (private IP)
676
+
677
+ External Zone (Internet):
678
+ api.example.com → 203.0.113.10 (public IP)
679
+ ```
680
+
681
+ **Implementation:**
682
+ ```hcl
683
+ # Private hosted zone
684
+ resource "aws_route53_zone" "private" {
685
+ name = "example.com"
686
+
687
+ vpc {
688
+ vpc_id = aws_vpc.main.id
689
+ }
690
+ }
691
+
692
+ resource "aws_route53_record" "internal_api" {
693
+ zone_id = aws_route53_zone.private.zone_id
694
+ name = "api.example.com"
695
+ type = "A"
696
+ ttl = 300
697
+ records = ["10.0.1.10"]
698
+ }
699
+
700
+ # Public hosted zone
701
+ resource "aws_route53_zone" "public" {
702
+ name = "example.com"
703
+ }
704
+
705
+ resource "aws_route53_record" "external_api" {
706
+ zone_id = aws_route53_zone.public.zone_id
707
+ name = "api.example.com"
708
+ type = "A"
709
+ ttl = 300
710
+ records = ["203.0.113.10"]
711
+ }
712
+ ```
713
+
714
+ ## Best Practices
715
+
716
+ 1. **Use appropriate TTL values** - Lower for records that change frequently, higher for stable records
717
+ 2. **Enable DNSSEC** - Prevent DNS spoofing and cache poisoning
718
+ 3. **Implement health checks** - For failover and routing decisions
719
+ 4. **Use alias records** - For AWS resources (no charge, automatic updates)
720
+ 5. **Monitor DNS queries** - Detect anomalies and attacks
721
+ 6. **Maintain multiple NS records** - At least two, preferably in different networks
722
+ 7. **Use CAA records** - Prevent unauthorized certificate issuance
723
+ 8. **Document zone changes** - Version control and change management
724
+ 9. **Test before going live** - Use dig/nslookup to verify records
725
+ 10. **Plan for migration** - Lower TTLs before DNS changes
726
+
727
+ ## Anti-Patterns
728
+
729
+ - **Very high TTL on changing records** - Slows down updates
730
+ - **Very low TTL unnecessarily** - Increases DNS query load and cost
731
+ - **No DNSSEC** - Vulnerable to DNS attacks
732
+ - **Single nameserver** - Single point of failure
733
+ - **Missing health checks** - Sends traffic to failed endpoints
734
+ - **No monitoring** - Can't detect DNS issues
735
+ - **Wildcard DNS without restrictions** - Security and performance issues
736
+ - **No DNS backup** - Risk of total outage
737
+ - **Ignoring propagation time** - Changes can take time to propagate
738
+ - **Hard-coded IP addresses** - Use DNS instead