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,738 @@
1
+ # Windows Administration
2
+
3
+ Comprehensive guide to Windows Server administration covering Active Directory, Group Policy, Windows services, IIS, WSUS, security hardening, and operational management.
4
+
5
+ ## Windows Server Architecture
6
+
7
+ ### Server Roles and Features
8
+
9
+ ```
10
+ ┌─────────────────────────────────────────────────────────────┐
11
+ │ Windows Server Roles │
12
+ ├─────────────────────────────────────────────────────────────┤
13
+ │ Active Directory Domain Services (AD DS) │
14
+ │ DNS Server │
15
+ │ DHCP Server │
16
+ │ File and Storage Services │
17
+ │ Web Server (IIS) │
18
+ │ Hyper-V │
19
+ │ Remote Desktop Services │
20
+ │ Windows Server Update Services (WSUS) │
21
+ └─────────────────────────────────────────────────────────────┘
22
+ ```
23
+
24
+ **Installing Roles with PowerShell:**
25
+ ```powershell
26
+ # Install AD Domain Services
27
+ Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
28
+
29
+ # Install DNS Server
30
+ Install-WindowsFeature -Name DNS -IncludeManagementTools
31
+
32
+ # Install IIS with common features
33
+ Install-WindowsFeature -Name Web-Server -IncludeAllSubFeature -IncludeManagementTools
34
+
35
+ # Install WSUS
36
+ Install-WindowsFeature -Name UpdateServices -IncludeManagementTools
37
+
38
+ # List all available roles and features
39
+ Get-WindowsFeature
40
+
41
+ # Remove a role
42
+ Uninstall-WindowsFeature -Name Web-Server -Remove
43
+ ```
44
+
45
+ ## Active Directory Domain Services
46
+
47
+ ### Domain Controller Setup
48
+
49
+ **Promote Server to Domain Controller:**
50
+ ```powershell
51
+ # Install AD DS role first
52
+ Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
53
+
54
+ # Create new forest
55
+ $domainName = "company.local"
56
+ $netbiosName = "COMPANY"
57
+ $safeModePwd = ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force
58
+
59
+ Install-ADDSForest `
60
+ -DomainName $domainName `
61
+ -DomainNetbiosName $netbiosName `
62
+ -ForestMode "WinThreshold" `
63
+ -DomainMode "WinThreshold" `
64
+ -InstallDns `
65
+ -SafeModeAdministratorPassword $safeModePwd `
66
+ -Force
67
+
68
+ # Add additional domain controller to existing domain
69
+ $credential = Get-Credential "COMPANY\Administrator"
70
+
71
+ Install-ADDSDomainController `
72
+ -DomainName "company.local" `
73
+ -Credential $credential `
74
+ -InstallDns `
75
+ -SafeModeAdministratorPassword $safeModePwd `
76
+ -Force
77
+ ```
78
+
79
+ ### Active Directory User Management
80
+
81
+ **Creating and Managing Users:**
82
+ ```powershell
83
+ # Import AD module
84
+ Import-Module ActiveDirectory
85
+
86
+ # Create new user
87
+ New-ADUser `
88
+ -Name "John Smith" `
89
+ -GivenName "John" `
90
+ -Surname "Smith" `
91
+ -SamAccountName "jsmith" `
92
+ -UserPrincipalName "jsmith@company.local" `
93
+ -Path "OU=Users,OU=IT,DC=company,DC=local" `
94
+ -AccountPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force) `
95
+ -Enabled $true `
96
+ -ChangePasswordAtLogon $true `
97
+ -Description "IT Administrator" `
98
+ -Department "IT" `
99
+ -Title "System Administrator"
100
+
101
+ # Bulk user creation from CSV
102
+ $users = Import-Csv "C:\users.csv"
103
+ foreach ($user in $users) {
104
+ New-ADUser `
105
+ -Name "$($user.FirstName) $($user.LastName)" `
106
+ -GivenName $user.FirstName `
107
+ -Surname $user.LastName `
108
+ -SamAccountName $user.Username `
109
+ -UserPrincipalName "$($user.Username)@company.local" `
110
+ -Path $user.OU `
111
+ -AccountPassword (ConvertTo-SecureString $user.Password -AsPlainText -Force) `
112
+ -Enabled $true `
113
+ -Department $user.Department
114
+ }
115
+
116
+ # Modify user properties
117
+ Set-ADUser -Identity "jsmith" -Title "Senior System Administrator" -Department "IT"
118
+
119
+ # Disable user account
120
+ Disable-ADAccount -Identity "jsmith"
121
+
122
+ # Enable user account
123
+ Enable-ADAccount -Identity "jsmith"
124
+
125
+ # Reset password
126
+ Set-ADAccountPassword -Identity "jsmith" -Reset -NewPassword (ConvertTo-SecureString "NewP@ssw0rd!" -AsPlainText -Force)
127
+
128
+ # Find inactive users (not logged in for 90 days)
129
+ $inactiveDays = 90
130
+ $cutoffDate = (Get-Date).AddDays(-$inactiveDays)
131
+ Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $inactiveDays |
132
+ Select-Object Name, SamAccountName, LastLogonDate
133
+
134
+ # Find locked accounts
135
+ Search-ADAccount -LockedOut | Select-Object Name, SamAccountName, LockedOut
136
+
137
+ # Unlock account
138
+ Unlock-ADAccount -Identity "jsmith"
139
+ ```
140
+
141
+ ### Organizational Units (OUs) and Groups
142
+
143
+ **OU Management:**
144
+ ```powershell
145
+ # Create OU structure
146
+ New-ADOrganizationalUnit -Name "IT" -Path "DC=company,DC=local"
147
+ New-ADOrganizationalUnit -Name "Users" -Path "OU=IT,DC=company,DC=local"
148
+ New-ADOrganizationalUnit -Name "Computers" -Path "OU=IT,DC=company,DC=local"
149
+
150
+ # Move user to different OU
151
+ Move-ADObject -Identity "CN=John Smith,OU=Users,DC=company,DC=local" `
152
+ -TargetPath "OU=Users,OU=IT,DC=company,DC=local"
153
+
154
+ # Delete OU (must be empty or use -Recursive)
155
+ Remove-ADOrganizationalUnit -Identity "OU=OldOU,DC=company,DC=local" -Recursive -Confirm:$false
156
+ ```
157
+
158
+ **Group Management:**
159
+ ```powershell
160
+ # Create security group
161
+ New-ADGroup `
162
+ -Name "IT-Administrators" `
163
+ -SamAccountName "IT-Admins" `
164
+ -GroupCategory Security `
165
+ -GroupScope Global `
166
+ -Path "OU=Groups,OU=IT,DC=company,DC=local" `
167
+ -Description "IT Department Administrators"
168
+
169
+ # Add user to group
170
+ Add-ADGroupMember -Identity "IT-Administrators" -Members "jsmith"
171
+
172
+ # Add multiple users
173
+ Add-ADGroupMember -Identity "IT-Administrators" -Members @("jsmith", "jdoe", "aadams")
174
+
175
+ # Remove user from group
176
+ Remove-ADGroupMember -Identity "IT-Administrators" -Members "jsmith" -Confirm:$false
177
+
178
+ # List group members
179
+ Get-ADGroupMember -Identity "IT-Administrators" | Select-Object Name, SamAccountName
180
+
181
+ # List groups user belongs to
182
+ Get-ADPrincipalGroupMembership -Identity "jsmith" | Select-Object Name
183
+ ```
184
+
185
+ ## Group Policy (GPO)
186
+
187
+ ### Creating and Managing GPOs
188
+
189
+ **PowerShell GPO Management:**
190
+ ```powershell
191
+ # Import Group Policy module
192
+ Import-Module GroupPolicy
193
+
194
+ # Create new GPO
195
+ New-GPO -Name "Security-Baseline" -Comment "Corporate security baseline settings"
196
+
197
+ # Link GPO to OU
198
+ New-GPLink -Name "Security-Baseline" -Target "OU=IT,DC=company,DC=local" -LinkEnabled Yes
199
+
200
+ # Set GPO registry value (example: disable guest account)
201
+ Set-GPRegistryValue -Name "Security-Baseline" `
202
+ -Key "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" `
203
+ -ValueName "AutoAdminLogon" `
204
+ -Type String `
205
+ -Value "0"
206
+
207
+ # Backup GPO
208
+ Backup-GPO -Name "Security-Baseline" -Path "C:\GPO-Backups"
209
+
210
+ # Backup all GPOs
211
+ Backup-GPO -All -Path "C:\GPO-Backups"
212
+
213
+ # Restore GPO
214
+ Restore-GPO -Name "Security-Baseline" -Path "C:\GPO-Backups"
215
+
216
+ # Generate GPO report
217
+ Get-GPOReport -Name "Security-Baseline" -ReportType Html -Path "C:\Reports\SecurityBaseline.html"
218
+
219
+ # List all GPOs
220
+ Get-GPO -All | Select-Object DisplayName, GpoStatus, CreationTime
221
+
222
+ # Force Group Policy update on client
223
+ gpupdate /force
224
+
225
+ # Force Group Policy update remotely
226
+ Invoke-Command -ComputerName "WS01" -ScriptBlock { gpupdate /force }
227
+ ```
228
+
229
+ ### Common GPO Settings
230
+
231
+ **Security Policies via GPO:**
232
+ ```powershell
233
+ # Password Policy (via Set-ADDefaultDomainPasswordPolicy)
234
+ Set-ADDefaultDomainPasswordPolicy -Identity "company.local" `
235
+ -MinPasswordLength 14 `
236
+ -PasswordHistoryCount 24 `
237
+ -MaxPasswordAge (New-TimeSpan -Days 90) `
238
+ -MinPasswordAge (New-TimeSpan -Days 1) `
239
+ -ComplexityEnabled $true `
240
+ -LockoutDuration (New-TimeSpan -Minutes 30) `
241
+ -LockoutThreshold 5 `
242
+ -LockoutObservationWindow (New-TimeSpan -Minutes 30)
243
+
244
+ # Account Lockout Policy via LGPO
245
+ # Note: Complex GPO settings typically done via GUI or LGPO tool
246
+ # Example: Deploy Security Template
247
+ secedit /configure /db secedit.sdb /cfg "C:\SecurityTemplates\baseline.inf"
248
+ ```
249
+
250
+ ## Windows Services
251
+
252
+ ### Service Management
253
+
254
+ **Managing Services with PowerShell:**
255
+ ```powershell
256
+ # List all services
257
+ Get-Service | Select-Object Name, DisplayName, Status, StartType
258
+
259
+ # Get specific service
260
+ Get-Service -Name "W3SVC" # IIS
261
+
262
+ # Start service
263
+ Start-Service -Name "W3SVC"
264
+
265
+ # Stop service
266
+ Stop-Service -Name "W3SVC"
267
+
268
+ # Restart service
269
+ Restart-Service -Name "W3SVC"
270
+
271
+ # Set service startup type
272
+ Set-Service -Name "W3SVC" -StartupType Automatic
273
+
274
+ # Create new service (example: run PowerShell script as service)
275
+ New-Service -Name "CustomMonitor" `
276
+ -BinaryPathName "C:\Scripts\monitor.exe" `
277
+ -DisplayName "Custom Monitoring Service" `
278
+ -Description "Monitors system resources" `
279
+ -StartupType Automatic
280
+
281
+ # Delete service
282
+ Remove-Service -Name "CustomMonitor" # PowerShell 6+
283
+ # For PowerShell 5.1 and earlier:
284
+ sc.exe delete "CustomMonitor"
285
+
286
+ # Get service dependencies
287
+ Get-Service -Name "W3SVC" -DependentServices
288
+ Get-Service -Name "W3SVC" -RequiredServices
289
+
290
+ # Filter running services
291
+ Get-Service | Where-Object { $_.Status -eq "Running" }
292
+
293
+ # Monitor service and restart if stopped
294
+ $serviceName = "W3SVC"
295
+ $service = Get-Service -Name $serviceName
296
+ if ($service.Status -ne "Running") {
297
+ Start-Service -Name $serviceName
298
+ Write-Host "Service $serviceName was stopped and has been restarted"
299
+ }
300
+ ```
301
+
302
+ ### Creating Windows Service with NSSM
303
+
304
+ **NSSM (Non-Sucking Service Manager):**
305
+ ```powershell
306
+ # Download and install NSSM
307
+ # Example: Install PowerShell script as service
308
+
309
+ # Install service using NSSM
310
+ nssm install MyAppService "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" `
311
+ "-ExecutionPolicy Bypass -NoProfile -File C:\Scripts\MyApp.ps1"
312
+
313
+ # Set service description
314
+ nssm set MyAppService Description "My Application Service"
315
+
316
+ # Set service startup directory
317
+ nssm set MyAppService AppDirectory "C:\Scripts"
318
+
319
+ # Set service log file
320
+ nssm set MyAppService AppStdout "C:\Logs\MyApp-output.log"
321
+ nssm set MyAppService AppStderr "C:\Logs\MyApp-error.log"
322
+
323
+ # Set service restart behavior
324
+ nssm set MyAppService AppExit Default Restart
325
+
326
+ # Start service
327
+ nssm start MyAppService
328
+
329
+ # Remove service
330
+ nssm remove MyAppService confirm
331
+ ```
332
+
333
+ ## Windows Registry
334
+
335
+ ### Registry Operations
336
+
337
+ **PowerShell Registry Management:**
338
+ ```powershell
339
+ # Registry is accessed like filesystem with PSDrive
340
+
341
+ # Read registry value
342
+ Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "ProgramFilesDir"
343
+
344
+ # Set registry value
345
+ Set-ItemProperty -Path "HKLM:\SOFTWARE\MyApp" -Name "ConfigPath" -Value "C:\Config"
346
+
347
+ # Create new registry key
348
+ New-Item -Path "HKLM:\SOFTWARE\MyCompany"
349
+
350
+ # Create registry value
351
+ New-ItemProperty -Path "HKLM:\SOFTWARE\MyCompany" -Name "Version" -Value "1.0" -PropertyType String
352
+
353
+ # Delete registry key
354
+ Remove-Item -Path "HKLM:\SOFTWARE\MyCompany" -Recurse
355
+
356
+ # Delete registry value
357
+ Remove-ItemProperty -Path "HKLM:\SOFTWARE\MyCompany" -Name "Version"
358
+
359
+ # Check if registry key exists
360
+ Test-Path "HKLM:\SOFTWARE\MyCompany"
361
+
362
+ # Backup registry key
363
+ reg export "HKLM\SOFTWARE\MyCompany" "C:\Backups\MyCompany.reg"
364
+
365
+ # Restore registry key
366
+ reg import "C:\Backups\MyCompany.reg"
367
+
368
+ # Remote registry operations
369
+ $computer = "Server01"
370
+ Invoke-Command -ComputerName $computer -ScriptBlock {
371
+ Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "ProgramFilesDir"
372
+ }
373
+ ```
374
+
375
+ ## IIS Web Server
376
+
377
+ ### IIS Management
378
+
379
+ **IIS PowerShell Administration:**
380
+ ```powershell
381
+ # Import IIS module
382
+ Import-Module WebAdministration
383
+
384
+ # List all websites
385
+ Get-Website | Select-Object Name, State, PhysicalPath, Bindings
386
+
387
+ # Create new website
388
+ New-Website -Name "MyWebsite" `
389
+ -Port 80 `
390
+ -PhysicalPath "C:\inetpub\wwwroot\mysite" `
391
+ -ApplicationPool "DefaultAppPool"
392
+
393
+ # Create website with HTTPS binding
394
+ New-Website -Name "SecureWebsite" `
395
+ -Port 443 `
396
+ -PhysicalPath "C:\inetpub\wwwroot\securesite" `
397
+ -Ssl `
398
+ -ApplicationPool "DefaultAppPool"
399
+
400
+ # Add website binding
401
+ New-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 8080 -Protocol http
402
+
403
+ # Start/Stop website
404
+ Start-Website -Name "MyWebsite"
405
+ Stop-Website -Name "MyWebsite"
406
+
407
+ # Create application pool
408
+ New-WebAppPool -Name "MyAppPool"
409
+
410
+ # Configure application pool
411
+ Set-ItemProperty -Path "IIS:\AppPools\MyAppPool" -Name processModel.identityType -Value 4 # ApplicationPoolIdentity
412
+ Set-ItemProperty -Path "IIS:\AppPools\MyAppPool" -Name recycling.periodicRestart.time -Value "00:00:00"
413
+
414
+ # Start/Stop application pool
415
+ Start-WebAppPool -Name "MyAppPool"
416
+ Stop-WebAppPool -Name "MyAppPool"
417
+ Restart-WebAppPool -Name "MyAppPool"
418
+
419
+ # Create virtual directory
420
+ New-WebVirtualDirectory -Site "MyWebsite" -Name "images" -PhysicalPath "C:\images"
421
+
422
+ # List application pools
423
+ Get-IISAppPool | Select-Object Name, Status, ManagedRuntimeVersion
424
+
425
+ # Get website bindings
426
+ Get-WebBinding -Name "MyWebsite"
427
+
428
+ # Remove website
429
+ Remove-Website -Name "MyWebsite"
430
+ ```
431
+
432
+ ### IIS SSL Certificate Management
433
+
434
+ **SSL Certificate Operations:**
435
+ ```powershell
436
+ # Import certificate to certificate store
437
+ $certPassword = ConvertTo-SecureString -String "P@ssw0rd" -Force -AsPlainText
438
+ Import-PfxCertificate -FilePath "C:\Certificates\mycert.pfx" `
439
+ -CertStoreLocation Cert:\LocalMachine\My `
440
+ -Password $certPassword
441
+
442
+ # List certificates
443
+ Get-ChildItem -Path Cert:\LocalMachine\My | Select-Object Thumbprint, Subject, NotAfter
444
+
445
+ # Bind SSL certificate to website
446
+ $cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*mysite.com*" }
447
+ New-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 443 -Protocol https
448
+ $binding = Get-WebBinding -Name "MyWebsite" -Protocol https
449
+ $binding.AddSslCertificate($cert.Thumbprint, "my")
450
+
451
+ # Remove certificate binding
452
+ Remove-Item -Path "IIS:\SslBindings\0.0.0.0!443"
453
+ ```
454
+
455
+ ## WSUS (Windows Server Update Services)
456
+
457
+ ### WSUS Configuration
458
+
459
+ **PowerShell WSUS Management:**
460
+ ```powershell
461
+ # Load WSUS assembly
462
+ [reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | Out-Null
463
+
464
+ # Connect to WSUS server
465
+ $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("WSUSServer", $false, 8530)
466
+
467
+ # Get WSUS configuration
468
+ $wsusConfig = $wsus.GetConfiguration()
469
+ $wsusConfig.SyncFromMicrosoftUpdate = $true
470
+ $wsusConfig.Save()
471
+
472
+ # Get subscription and sync
473
+ $subscription = $wsus.GetSubscription()
474
+ $subscription.StartSynchronization()
475
+
476
+ # Check sync status
477
+ $subscription.GetSynchronizationStatus()
478
+
479
+ # Get update categories
480
+ $wsus.GetUpdateCategories() | Select-Object Title, Type
481
+
482
+ # Approve updates for specific group
483
+ $targetGroup = $wsus.GetComputerTargetGroups() | Where-Object { $_.Name -eq "Production Servers" }
484
+ $updates = $wsus.GetUpdates() | Where-Object { $_.IsApproved -eq $false -and $_.IsSuperseded -eq $false }
485
+
486
+ foreach ($update in $updates) {
487
+ $update.Approve("Install", $targetGroup)
488
+ }
489
+
490
+ # Get computer targets
491
+ $wsus.GetComputerTargets() | Select-Object FullDomainName, LastReportedStatusTime, LastSyncTime
492
+
493
+ # Decline superseded updates
494
+ $wsus.GetUpdates() | Where-Object { $_.IsSuperseded -eq $true } | ForEach-Object {
495
+ $_.Decline()
496
+ }
497
+ ```
498
+
499
+ ## Windows Security Hardening
500
+
501
+ ### Security Baseline
502
+
503
+ **Security Configuration Script:**
504
+ ```powershell
505
+ # Disable unnecessary services
506
+ $servicesToDisable = @(
507
+ "RemoteRegistry",
508
+ "RemoteAccess",
509
+ "HomeGroupListener",
510
+ "HomeGroupProvider"
511
+ )
512
+
513
+ foreach ($service in $servicesToDisable) {
514
+ if (Get-Service -Name $service -ErrorAction SilentlyContinue) {
515
+ Stop-Service -Name $service -Force
516
+ Set-Service -Name $service -StartupType Disabled
517
+ }
518
+ }
519
+
520
+ # Configure Windows Firewall
521
+ Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True
522
+
523
+ # Disable SMBv1
524
+ Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
525
+
526
+ # Enable Windows Defender real-time protection
527
+ Set-MpPreference -DisableRealtimeMonitoring $false
528
+
529
+ # Configure UAC (User Account Control)
530
+ Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
531
+ -Name "EnableLUA" -Value 1
532
+ Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
533
+ -Name "ConsentPromptBehaviorAdmin" -Value 2 # Prompt for consent
534
+
535
+ # Disable guest account
536
+ Disable-LocalUser -Name "Guest"
537
+
538
+ # Configure audit policy
539
+ auditpol /set /subcategory:"Logon" /success:enable /failure:enable
540
+ auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable
541
+ auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
542
+ ```
543
+
544
+ ## Windows Event Logs
545
+
546
+ ### Event Log Management
547
+
548
+ **PowerShell Event Log Operations:**
549
+ ```powershell
550
+ # Get event logs
551
+ Get-EventLog -List
552
+
553
+ # Get recent system errors
554
+ Get-EventLog -LogName System -EntryType Error -Newest 50
555
+
556
+ # Get security events (logon failures)
557
+ Get-EventLog -LogName Security -InstanceId 4625 -Newest 100
558
+
559
+ # Filter by time range
560
+ Get-EventLog -LogName System -After (Get-Date).AddDays(-1) -Before (Get-Date)
561
+
562
+ # Using Get-WinEvent (more powerful, supports newer logs)
563
+ Get-WinEvent -LogName Application -MaxEvents 100
564
+
565
+ # Query with FilterHashTable
566
+ Get-WinEvent -FilterHashtable @{
567
+ LogName = 'Security'
568
+ ID = 4624 # Successful logon
569
+ StartTime = (Get-Date).AddDays(-7)
570
+ }
571
+
572
+ # Query with XPath
573
+ Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4625]]"
574
+
575
+ # Export events to CSV
576
+ Get-EventLog -LogName System -Newest 1000 |
577
+ Export-Csv -Path "C:\Logs\SystemEvents.csv" -NoTypeInformation
578
+
579
+ # Clear event log
580
+ Clear-EventLog -LogName Application
581
+
582
+ # Configure log size and retention
583
+ Limit-EventLog -LogName Application -MaximumSize 512MB -OverflowAction OverwriteAsNeeded
584
+
585
+ # Monitor event log in real-time
586
+ Get-EventLog -LogName System -Newest 10 -AsBaseObject |
587
+ Select-Object TimeGenerated, EntryType, Source, Message
588
+ ```
589
+
590
+ ## Remote Desktop and WinRM
591
+
592
+ ### Remote Management
593
+
594
+ **WinRM Configuration:**
595
+ ```powershell
596
+ # Enable WinRM
597
+ Enable-PSRemoting -Force
598
+
599
+ # Configure TrustedHosts (for non-domain environments)
600
+ Set-Item WSMan:\localhost\Client\TrustedHosts -Value "Server01,Server02" -Force
601
+
602
+ # Test WinRM connectivity
603
+ Test-WSMan -ComputerName "Server01"
604
+
605
+ # Remote command execution
606
+ Invoke-Command -ComputerName "Server01" -ScriptBlock {
607
+ Get-Service -Name "W3SVC"
608
+ }
609
+
610
+ # Remote command with credentials
611
+ $cred = Get-Credential
612
+ Invoke-Command -ComputerName "Server01" -Credential $cred -ScriptBlock {
613
+ Get-Process
614
+ }
615
+
616
+ # Interactive remote session
617
+ Enter-PSSession -ComputerName "Server01"
618
+
619
+ # Run command on multiple computers
620
+ Invoke-Command -ComputerName "Server01", "Server02", "Server03" -ScriptBlock {
621
+ Get-EventLog -LogName System -Newest 10
622
+ }
623
+
624
+ # Copy files to remote computer
625
+ $session = New-PSSession -ComputerName "Server01"
626
+ Copy-Item -Path "C:\Scripts\script.ps1" -Destination "C:\Scripts\" -ToSession $session
627
+ Remove-PSSession $session
628
+ ```
629
+
630
+ **Remote Desktop Configuration:**
631
+ ```powershell
632
+ # Enable Remote Desktop
633
+ Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" `
634
+ -Name "fDenyTSConnections" -Value 0
635
+
636
+ # Enable Network Level Authentication
637
+ Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
638
+ -Name "UserAuthentication" -Value 1
639
+
640
+ # Configure firewall for RDP
641
+ Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
642
+
643
+ # Get RDP sessions
644
+ qwinsta
645
+
646
+ # Disconnect RDP session
647
+ logoff <session-id>
648
+ ```
649
+
650
+ ## Windows Clustering and Failover
651
+
652
+ ### Failover Clustering
653
+
654
+ **Cluster Management:**
655
+ ```powershell
656
+ # Install Failover Clustering feature
657
+ Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
658
+
659
+ # Test cluster configuration
660
+ Test-Cluster -Node "Node1", "Node2"
661
+
662
+ # Create new cluster
663
+ New-Cluster -Name "MyCluster" -Node "Node1", "Node2" -StaticAddress "192.168.1.100"
664
+
665
+ # Add node to cluster
666
+ Add-ClusterNode -Name "Node3" -Cluster "MyCluster"
667
+
668
+ # Remove node from cluster
669
+ Remove-ClusterNode -Name "Node3" -Cluster "MyCluster"
670
+
671
+ # Get cluster resources
672
+ Get-ClusterResource
673
+
674
+ # Get cluster status
675
+ Get-Cluster | Select-Object Name, Domain, QuorumType
676
+
677
+ # Create clustered role (example: file server)
678
+ Add-ClusterFileServerRole -Name "FileServer01" -Storage "Cluster Disk 1" -StaticAddress "192.168.1.101"
679
+
680
+ # Move cluster group to different node
681
+ Move-ClusterGroup -Name "FileServer01" -Node "Node2"
682
+
683
+ # Get cluster events
684
+ Get-ClusterLog -Destination "C:\Logs"
685
+ ```
686
+
687
+ ## Best Practices
688
+
689
+ ### Windows Administration Best Practices
690
+
691
+ 1. **Security:**
692
+ - Implement least privilege access (RBAC)
693
+ - Regular security updates via WSUS
694
+ - Enable BitLocker on sensitive servers
695
+ - Use strong password policies
696
+ - Enable audit logging
697
+ - Disable unnecessary services and protocols
698
+
699
+ 2. **Active Directory:**
700
+ - Regular AD backups (System State)
701
+ - Multiple domain controllers for redundancy
702
+ - Proper OU structure for GPO application
703
+ - Regular AD health checks (dcdiag, repadmin)
704
+ - Implement fine-grained password policies
705
+
706
+ 3. **Monitoring:**
707
+ - Configure event log forwarding
708
+ - Monitor critical services
709
+ - Track failed login attempts
710
+ - Monitor disk space and performance
711
+ - Set up alerts for critical events
712
+
713
+ 4. **Automation:**
714
+ - Use PowerShell for repetitive tasks
715
+ - Document all scripts and procedures
716
+ - Implement scheduled tasks for maintenance
717
+ - Use configuration management tools
718
+ - Version control for scripts
719
+
720
+ 5. **Backup and Recovery:**
721
+ - Regular system state backups
722
+ - Test restore procedures
723
+ - Document recovery procedures
724
+ - Offsite backup storage
725
+ - Verify backup integrity
726
+
727
+ ## Anti-Patterns to Avoid
728
+
729
+ ❌ **Using GUI for repetitive tasks** - Automate with PowerShell
730
+ ❌ **Running everything as Domain Admin** - Use least privilege
731
+ ❌ **No GPO testing** - Test in development OU first
732
+ ❌ **Ignoring Windows updates** - Security vulnerabilities
733
+ ❌ **Single domain controller** - No redundancy
734
+ ❌ **Default administrator account enabled** - Security risk
735
+ ❌ **No audit logging** - Cannot track security events
736
+ ❌ **Complex OU structure** - Hard to manage GPOs
737
+ ❌ **No documentation** - Tribal knowledge
738
+ ❌ **Direct registry edits in production** - Use GPO when possible