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.
- package/.claude/agents/README.md +469 -0
- package/.claude/agents/auth-route-debugger.md +118 -0
- package/.claude/agents/auth-route-tester.md +93 -0
- package/.claude/agents/auto-error-resolver.md +97 -0
- package/.claude/agents/build-optimizer.md +236 -0
- package/.claude/agents/code-architecture-reviewer.md +83 -0
- package/.claude/agents/code-refactor-master.md +94 -0
- package/.claude/agents/cost-optimizer.md +134 -0
- package/.claude/agents/deployment-orchestrator.md +113 -0
- package/.claude/agents/documentation-architect.md +82 -0
- package/.claude/agents/frontend-error-fixer.md +77 -0
- package/.claude/agents/iac-code-generator.md +71 -0
- package/.claude/agents/incident-responder.md +346 -0
- package/.claude/agents/infrastructure-architect.md +31 -0
- package/.claude/agents/kubernetes-specialist.md +56 -0
- package/.claude/agents/migration-planner.md +181 -0
- package/.claude/agents/network-architect.md +196 -0
- package/.claude/agents/plan-reviewer.md +52 -0
- package/.claude/agents/refactor-planner.md +63 -0
- package/.claude/agents/security-scanner.md +102 -0
- package/.claude/agents/web-research-specialist.md +78 -0
- package/.claude/commands/cost-analysis.md +315 -0
- package/.claude/commands/dev-docs-update.md +55 -0
- package/.claude/commands/dev-docs.md +51 -0
- package/.claude/commands/incident-debug.md +247 -0
- package/.claude/commands/infra-plan.md +81 -0
- package/.claude/commands/migration-plan.md +478 -0
- package/.claude/commands/route-research-for-testing.md +37 -0
- package/.claude/commands/security-review.md +66 -0
- package/.claude/hooks/CONFIG.md +448 -0
- package/.claude/hooks/README.md +163 -0
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
- package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
- package/.claude/hooks/add-skill-activation-banners.ts +132 -0
- package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +222 -0
- package/.claude/hooks/k8s-manifest-validator.sh +56 -0
- package/.claude/hooks/package-lock.json +556 -0
- package/.claude/hooks/package.json +16 -0
- package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
- package/.claude/hooks/post-tool-use-tracker.sh +183 -0
- package/.claude/hooks/security-policy-check.sh +247 -0
- package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
- package/.claude/hooks/skill-activation-prompt.sh +10 -0
- package/.claude/hooks/skill-activation-prompt.ts +141 -0
- package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
- package/.claude/hooks/terraform-validator.sh +53 -0
- package/.claude/hooks/test-input.json +7 -0
- package/.claude/hooks/test-skill-activation.ts +427 -0
- package/.claude/hooks/trigger-build-resolver.sh +79 -0
- package/.claude/hooks/tsc-check.sh +173 -0
- package/.claude/hooks/tsconfig.json +19 -0
- package/.claude/settings.json +55 -0
- package/.claude/settings.local.json +27 -14
- package/.claude/skills/README.md +507 -0
- package/.claude/skills/api-engineering/SKILL.md +63 -0
- package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
- package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
- package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
- package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
- package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
- package/.claude/skills/build-engineering/SKILL.md +431 -0
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
- package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
- package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
- package/.claude/skills/build-engineering/resources/build-security.md +95 -0
- package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
- package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
- package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
- package/.claude/skills/cloud-engineering/SKILL.md +675 -0
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
- package/.claude/skills/cybersecurity/SKILL.md +409 -0
- package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
- package/.claude/skills/database-engineering/SKILL.md +61 -0
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
- package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
- package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
- package/.claude/skills/devsecops/SKILL.md +374 -0
- package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
- package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
- package/.claude/skills/devsecops/resources/container-security.md +915 -0
- package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
- package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
- package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
- package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
- package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
- package/.claude/skills/devsecops/resources/security-testing.md +203 -0
- package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
- package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
- package/.claude/skills/documentation-as-code/SKILL.md +323 -0
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
- package/.claude/skills/engineering-management/SKILL.md +356 -0
- package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
- package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
- package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
- package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
- package/.claude/skills/error-tracking/SKILL.md +379 -0
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
- package/.claude/skills/general-it-engineering/SKILL.md +393 -0
- package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
- package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
- package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
- package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
- package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
- package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
- package/.claude/skills/network-engineering/SKILL.md +385 -0
- package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
- package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
- package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
- package/.claude/skills/network-engineering/resources/network-security.md +921 -0
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
- package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
- package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
- package/.claude/skills/observability-engineering/SKILL.md +101 -0
- package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
- package/.claude/skills/platform-engineering/SKILL.md +555 -0
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
- package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
- package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
- package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
- package/.claude/skills/release-engineering/SKILL.md +393 -0
- package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
- package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
- package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
- package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
- package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
- package/.claude/skills/route-tester/SKILL.md +392 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +430 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +2940 -0
- package/.claude/skills/sre/SKILL.md +464 -0
- package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
- package/.claude/skills/sre/resources/capacity-planning.md +226 -0
- package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
- package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
- package/.claude/skills/sre/resources/incident-management.md +436 -0
- package/.claude/skills/sre/resources/observability-stack.md +240 -0
- package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
- package/.claude/skills/sre/resources/performance-optimization.md +108 -0
- package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
- package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
- package/.claude/skills/sre/resources/toil-reduction.md +145 -0
- package/.claude/skills/systems-engineering/SKILL.md +648 -0
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
- package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
- package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
- package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
- package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
- package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
- package/.claude/skills/technical-leadership/SKILL.md +728 -0
- package/CHANGELOG.md +90 -54
- package/README.md +94 -0
- package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
- package/backend/jest.config.js +59 -0
- package/backend/package-lock.json +6129 -0
- package/backend/package.json +16 -4
- package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
- package/backend/prisma/schema.prisma +33 -0
- package/backend/src/__tests__/core/DependencyService.test.js +336 -0
- package/backend/src/__tests__/core/UserService.test.js +875 -0
- package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
- package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
- package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
- package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
- package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
- package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
- package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
- package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
- package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
- package/backend/src/__tests__/secretsFilter.test.js +425 -0
- package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
- package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
- package/backend/src/__tests__/services/CacheManager.test.js +125 -0
- package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
- package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
- package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
- package/backend/src/__tests__/setup.js +25 -0
- package/backend/src/api/routes/apiKeys.js +181 -0
- package/backend/src/api/routes/bots.js +49 -7
- package/backend/src/api/routes/plugins.js +2 -1
- package/backend/src/api/routes/system.js +174 -0
- package/backend/src/container.js +82 -0
- package/backend/src/core/BotManager.js +142 -871
- package/backend/src/core/BotManager.old.js +1093 -0
- package/backend/src/core/BotProcess.js +1092 -858
- package/backend/src/core/EventGraphManager.js +280 -198
- package/backend/src/core/GraphExecutionEngine.js +321 -325
- package/backend/src/core/MessageQueue.js +27 -6
- package/backend/src/core/NodeRegistry.js +37 -1134
- package/backend/src/core/PluginManager.js +62 -12
- package/backend/src/core/PrismaService.js +32 -0
- package/backend/src/core/UserService.js +3 -3
- package/backend/src/core/__tests__/PrismaService.test.js +24 -0
- package/backend/src/core/commands/README.md +305 -0
- package/backend/src/core/commands/dev.js +13 -7
- package/backend/src/core/commands/ping.js +10 -4
- package/backend/src/core/commands/whois.js +63 -0
- package/backend/src/core/config/validation.js +27 -0
- package/backend/src/core/constants/graphTypes.js +21 -0
- package/backend/src/core/node-registries/actions.js +132 -0
- package/backend/src/core/node-registries/arrays.js +137 -0
- package/backend/src/core/node-registries/bot.js +23 -0
- package/backend/src/core/node-registries/data.js +290 -0
- package/backend/src/core/node-registries/debug.js +26 -0
- package/backend/src/core/node-registries/events.js +187 -0
- package/backend/src/core/node-registries/flow.js +139 -0
- package/backend/src/core/node-registries/logic.js +45 -0
- package/backend/src/core/node-registries/math.js +42 -0
- package/backend/src/core/node-registries/objects.js +98 -0
- package/backend/src/core/node-registries/strings.js +153 -0
- package/backend/src/core/node-registries/time.js +113 -0
- package/backend/src/core/node-registries/users.js +79 -0
- package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
- package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
- package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
- package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
- package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
- package/backend/src/core/nodes/arrays/get_next.js +35 -0
- package/backend/src/core/nodes/{data_cast.js → data/cast.js} +8 -0
- package/backend/src/core/nodes/data/datetime_literal.js +27 -0
- package/backend/src/core/nodes/data/entity_info.js +69 -0
- package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
- package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
- package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
- package/backend/src/core/nodes/data/type_check.js +53 -0
- package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
- package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
- package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
- package/backend/src/core/nodes/flow/delay.js +43 -0
- package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
- package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
- package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
- package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
- package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
- package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
- package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
- package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
- package/backend/src/core/nodes/time/add.js +33 -0
- package/backend/src/core/nodes/time/compare.js +35 -0
- package/backend/src/core/nodes/time/diff.js +29 -0
- package/backend/src/core/nodes/time/format.js +32 -0
- package/backend/src/core/nodes/time/now.js +18 -0
- package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
- package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
- package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
- package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
- package/backend/src/core/services/BotLifecycleService.js +596 -0
- package/backend/src/core/services/BotProcessManager.js +163 -0
- package/backend/src/core/services/CacheManager.js +111 -0
- package/backend/src/core/services/CommandExecutionService.js +351 -0
- package/backend/src/core/services/ResourceMonitorService.js +90 -0
- package/backend/src/core/services/TelemetryService.js +124 -0
- package/backend/src/core/services/ValidationService.js +132 -0
- package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
- package/backend/src/core/services.js +20 -5
- package/backend/src/core/system/CommandContext.js +84 -0
- package/backend/src/core/system/Transport.js +78 -0
- package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
- package/backend/src/core/utils/jsonParser.js +18 -0
- package/backend/src/core/utils/secretsFilter.js +262 -0
- package/backend/src/core/utils/variableParser.js +89 -0
- package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
- package/backend/src/core/validation/nodeSchemas.js +112 -0
- package/backend/src/lib/prisma.js +2 -4
- package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
- package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
- package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
- package/backend/src/real-time/botApi/handlers/index.js +43 -0
- package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
- package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
- package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
- package/backend/src/real-time/botApi/index.js +40 -0
- package/backend/src/real-time/botApi/middleware.js +79 -0
- package/backend/src/real-time/botApi/utils.js +54 -0
- package/backend/src/real-time/socketHandler.js +6 -2
- package/backend/src/repositories/BaseRepository.js +43 -0
- package/backend/src/repositories/BotRepository.js +42 -0
- package/backend/src/repositories/CommandRepository.js +53 -0
- package/backend/src/repositories/EventGraphRepository.js +40 -0
- package/backend/src/repositories/GroupRepository.js +69 -0
- package/backend/src/repositories/PermissionRepository.js +48 -0
- package/backend/src/repositories/PluginRepository.js +42 -0
- package/backend/src/repositories/ServerRepository.js +27 -0
- package/backend/src/repositories/UserRepository.js +48 -0
- package/backend/src/server.js +3 -0
- package/backend/src/test-refactor.js +85 -0
- package/frontend/dist/assets/index-CfTo92bP.css +1 -0
- package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/package.json +0 -5
- package/package.json +2 -1
- package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
- package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
- package/nul +0 -0
- /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
- /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
- /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
- /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
- /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
- /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
- /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
- /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
- /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
- /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
- /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
- /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
- /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
- /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
- /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
- /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
- /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
- /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
- /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
- /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
- /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
- /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
- /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
- /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
- /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
- /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
- /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
- /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
- /package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +0 -0
|
@@ -0,0 +1,715 @@
|
|
|
1
|
+
# Change Management
|
|
2
|
+
|
|
3
|
+
Change Advisory Board (CAB) processes, approval workflows, change types, risk assessment, and rollback procedures for managing IT changes safely.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Change Management Overview](#change-management-overview)
|
|
8
|
+
- [Change Types](#change-types)
|
|
9
|
+
- [Change Process](#change-process)
|
|
10
|
+
- [Change Advisory Board](#change-advisory-board)
|
|
11
|
+
- [Risk Assessment](#risk-assessment)
|
|
12
|
+
- [Rollback Procedures](#rollback-procedures)
|
|
13
|
+
- [Best Practices](#best-practices)
|
|
14
|
+
|
|
15
|
+
## Change Management Overview
|
|
16
|
+
|
|
17
|
+
### Purpose
|
|
18
|
+
|
|
19
|
+
Change management (or "Change Enablement" in ITIL 4) ensures:
|
|
20
|
+
- Maximum successful changes
|
|
21
|
+
- Minimum service disruption
|
|
22
|
+
- Proper assessment of risks
|
|
23
|
+
- Stakeholder communication
|
|
24
|
+
- Learning from changes
|
|
25
|
+
|
|
26
|
+
### Key Principles
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Balance: Speed vs Stability
|
|
30
|
+
Assessment: Risk vs Reward
|
|
31
|
+
Planning: Preparation vs Action
|
|
32
|
+
Review: Learn from every change
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Change Management Benefits
|
|
36
|
+
|
|
37
|
+
**Risk Mitigation:**
|
|
38
|
+
- Structured assessment process
|
|
39
|
+
- Impact analysis before implementation
|
|
40
|
+
- Rollback plans for failures
|
|
41
|
+
- Testing requirements
|
|
42
|
+
|
|
43
|
+
**Communication:**
|
|
44
|
+
- Stakeholders informed
|
|
45
|
+
- Scheduled maintenance windows
|
|
46
|
+
- Change calendars
|
|
47
|
+
- Status updates
|
|
48
|
+
|
|
49
|
+
**Compliance:**
|
|
50
|
+
- Audit trail
|
|
51
|
+
- Approval documentation
|
|
52
|
+
- Regulatory requirements
|
|
53
|
+
- Change records
|
|
54
|
+
|
|
55
|
+
## Change Types
|
|
56
|
+
|
|
57
|
+
### Standard Change
|
|
58
|
+
|
|
59
|
+
**Characteristics:**
|
|
60
|
+
```yaml
|
|
61
|
+
Definition: Pre-approved, low risk, well-understood change
|
|
62
|
+
|
|
63
|
+
Examples:
|
|
64
|
+
- Password reset
|
|
65
|
+
- Standard software installation
|
|
66
|
+
- User account creation/deletion
|
|
67
|
+
- Adding users to security groups
|
|
68
|
+
- Certificate renewal (routine)
|
|
69
|
+
|
|
70
|
+
Approval: Pre-authorized (no CAB needed)
|
|
71
|
+
Risk: Low
|
|
72
|
+
Documentation: Standardized procedure
|
|
73
|
+
Automation: Often automated
|
|
74
|
+
Timeline: Immediate or scheduled
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Standard Change Example:**
|
|
78
|
+
```yaml
|
|
79
|
+
Standard Change: New Employee Laptop Setup
|
|
80
|
+
|
|
81
|
+
Pre-Approved By: IT Management
|
|
82
|
+
Valid Until: 2025-12-31
|
|
83
|
+
Review Frequency: Annually
|
|
84
|
+
|
|
85
|
+
Procedure:
|
|
86
|
+
1. Receive new hire request
|
|
87
|
+
2. Verify manager approval
|
|
88
|
+
3. Select laptop from standard models
|
|
89
|
+
4. Install corporate image
|
|
90
|
+
5. Configure per role template
|
|
91
|
+
6. Test functionality
|
|
92
|
+
7. Ship to employee
|
|
93
|
+
8. Send setup instructions
|
|
94
|
+
|
|
95
|
+
Average Duration: 2 hours
|
|
96
|
+
Failure Rate: <1%
|
|
97
|
+
Rollback: Return to IT for rebuild
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Normal Change
|
|
101
|
+
|
|
102
|
+
**Characteristics:**
|
|
103
|
+
```yaml
|
|
104
|
+
Definition: Requires assessment and authorization
|
|
105
|
+
|
|
106
|
+
Examples:
|
|
107
|
+
- Server upgrades
|
|
108
|
+
- Network configuration changes
|
|
109
|
+
- Application deployments (non-standard)
|
|
110
|
+
- Database schema changes
|
|
111
|
+
- Firewall rule changes
|
|
112
|
+
|
|
113
|
+
Approval: CAB or Change Manager
|
|
114
|
+
Risk: Medium to High
|
|
115
|
+
Documentation: Detailed change proposal (RFC)
|
|
116
|
+
Testing: Required
|
|
117
|
+
Timeline: Scheduled in change window
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Normal Change Request Template:**
|
|
121
|
+
```yaml
|
|
122
|
+
Request for Change (RFC): CHG-12345
|
|
123
|
+
|
|
124
|
+
Requestor: John Smith (Application Team)
|
|
125
|
+
Date Submitted: 2024-11-01
|
|
126
|
+
Service: Customer Portal
|
|
127
|
+
Priority: Medium
|
|
128
|
+
|
|
129
|
+
Change Description:
|
|
130
|
+
Deploy Customer Portal v2.5.0 to production
|
|
131
|
+
- New payment processing feature
|
|
132
|
+
- Bug fixes for login issues
|
|
133
|
+
- Performance improvements
|
|
134
|
+
|
|
135
|
+
Business Justification:
|
|
136
|
+
- Support new payment providers (business requirement)
|
|
137
|
+
- Fix customer-reported login issues
|
|
138
|
+
- Improve page load times by 30%
|
|
139
|
+
|
|
140
|
+
Implementation Plan:
|
|
141
|
+
1. Backup current production database
|
|
142
|
+
2. Deploy new application version (Blue-Green deployment)
|
|
143
|
+
3. Run smoke tests
|
|
144
|
+
4. Switch traffic to new version
|
|
145
|
+
5. Monitor for 30 minutes
|
|
146
|
+
6. Decommission old version
|
|
147
|
+
|
|
148
|
+
Scheduled Time:
|
|
149
|
+
Start: 2024-11-10 02:00 AM
|
|
150
|
+
End: 2024-11-10 04:00 AM
|
|
151
|
+
Duration: 2 hours
|
|
152
|
+
Window: Sunday early morning (low traffic)
|
|
153
|
+
|
|
154
|
+
Impact:
|
|
155
|
+
Service Affected: Customer Portal
|
|
156
|
+
Downtime: 5 minutes (during traffic switch)
|
|
157
|
+
Users Affected: All customers (~50,000)
|
|
158
|
+
Blackout Period: Avoid
|
|
159
|
+
|
|
160
|
+
Risk Assessment:
|
|
161
|
+
Overall Risk: Medium
|
|
162
|
+
|
|
163
|
+
Risks:
|
|
164
|
+
- New payment feature may have bugs
|
|
165
|
+
Mitigation: Extensive testing in staging
|
|
166
|
+
Likelihood: Low
|
|
167
|
+
Impact: Medium
|
|
168
|
+
|
|
169
|
+
- Database migration may fail
|
|
170
|
+
Mitigation: Test migration in staging, have backup
|
|
171
|
+
Likelihood: Very Low
|
|
172
|
+
Impact: High
|
|
173
|
+
|
|
174
|
+
Testing:
|
|
175
|
+
- Unit tests: Passed (100% coverage)
|
|
176
|
+
- Integration tests: Passed
|
|
177
|
+
- UAT: Completed by business team
|
|
178
|
+
- Performance testing: Passed (meets targets)
|
|
179
|
+
- Security scan: Passed (no critical issues)
|
|
180
|
+
|
|
181
|
+
Rollback Plan:
|
|
182
|
+
1. Switch traffic back to old version (30 seconds)
|
|
183
|
+
2. Restore database from backup if needed (15 minutes)
|
|
184
|
+
3. Communicate to stakeholders
|
|
185
|
+
4. Investigate and reschedule
|
|
186
|
+
|
|
187
|
+
Communication Plan:
|
|
188
|
+
- T-7 days: Email to customers (maintenance notice)
|
|
189
|
+
- T-1 day: Status page update
|
|
190
|
+
- T-0: Status page (maintenance in progress)
|
|
191
|
+
- T+0: Status page (maintenance complete)
|
|
192
|
+
- T+incident: Incident communication if rollback needed
|
|
193
|
+
|
|
194
|
+
CAB Review: 2024-11-05
|
|
195
|
+
Approved By: Change Manager
|
|
196
|
+
Implementation Team: Application Team (3 engineers on call)
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Emergency Change
|
|
200
|
+
|
|
201
|
+
**Characteristics:**
|
|
202
|
+
```yaml
|
|
203
|
+
Definition: Must be implemented ASAP to resolve incident
|
|
204
|
+
|
|
205
|
+
Examples:
|
|
206
|
+
- Critical security patch
|
|
207
|
+
- Service restoration after outage
|
|
208
|
+
- Data corruption fix
|
|
209
|
+
- Security breach response
|
|
210
|
+
|
|
211
|
+
Approval: Expedited (Emergency CAB or authorized manager)
|
|
212
|
+
Risk: Variable (often high due to urgency)
|
|
213
|
+
Documentation: Can be completed retrospectively
|
|
214
|
+
Testing: Minimal (risk accepted)
|
|
215
|
+
Timeline: Immediate
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**Emergency Change Process:**
|
|
219
|
+
```
|
|
220
|
+
Incident Occurs
|
|
221
|
+
↓
|
|
222
|
+
Emergency Change Request Created
|
|
223
|
+
↓
|
|
224
|
+
Emergency CAB Convened (or authorized approver)
|
|
225
|
+
↓
|
|
226
|
+
Quick Risk Assessment
|
|
227
|
+
↓
|
|
228
|
+
Approval/Rejection
|
|
229
|
+
↓
|
|
230
|
+
Immediate Implementation
|
|
231
|
+
↓
|
|
232
|
+
Post-Implementation Review (within 24 hours)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Emergency Change Example:**
|
|
236
|
+
```yaml
|
|
237
|
+
Emergency Change: EMCHG-789
|
|
238
|
+
|
|
239
|
+
Trigger: Critical security vulnerability (CVE-2024-XXXXX)
|
|
240
|
+
Severity: Critical (CVSS 9.8)
|
|
241
|
+
Impact: Remote code execution possible
|
|
242
|
+
|
|
243
|
+
Description:
|
|
244
|
+
Apply emergency security patch to all web servers
|
|
245
|
+
|
|
246
|
+
Approval: Emergency CAB (CTO, CISO, Ops Manager)
|
|
247
|
+
Approved At: 2024-11-01 14:30
|
|
248
|
+
Implementation: Immediate
|
|
249
|
+
|
|
250
|
+
Implementation:
|
|
251
|
+
1. Patch staging servers (verify functionality)
|
|
252
|
+
2. Patch production servers (rolling update)
|
|
253
|
+
3. Verify patch applied
|
|
254
|
+
4. Monitor for issues
|
|
255
|
+
|
|
256
|
+
Risk Accepted:
|
|
257
|
+
- Minimal testing (patch from vendor)
|
|
258
|
+
- Potential service disruption
|
|
259
|
+
- Urgency outweighs standard testing
|
|
260
|
+
|
|
261
|
+
Post-Implementation Review:
|
|
262
|
+
Date: 2024-11-02 10:00
|
|
263
|
+
Outcome: Successful, no issues
|
|
264
|
+
Lessons: Need faster patch deployment process
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## Change Process
|
|
268
|
+
|
|
269
|
+
### RFC Lifecycle
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
Draft → Submitted → Assessment → CAB Review → Approved/Rejected
|
|
273
|
+
↓
|
|
274
|
+
Scheduled → Implemented → Review → Closed
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Detailed Process Steps
|
|
278
|
+
|
|
279
|
+
**1. Submit RFC:**
|
|
280
|
+
```
|
|
281
|
+
Change Requestor:
|
|
282
|
+
- Complete RFC form
|
|
283
|
+
- Provide all required information
|
|
284
|
+
- Attach supporting documents
|
|
285
|
+
- Submit for assessment
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**2. Assessment:**
|
|
289
|
+
```
|
|
290
|
+
Change Manager:
|
|
291
|
+
- Review completeness
|
|
292
|
+
- Validate technical details
|
|
293
|
+
- Assess impact and risk
|
|
294
|
+
- Check change calendar
|
|
295
|
+
- Add to CAB agenda
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**3. CAB Review:**
|
|
299
|
+
```
|
|
300
|
+
CAB Members:
|
|
301
|
+
- Review RFC details
|
|
302
|
+
- Ask clarifying questions
|
|
303
|
+
- Assess risks vs benefits
|
|
304
|
+
- Check resource availability
|
|
305
|
+
- Approve, reject, or request changes
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**4. Schedule:**
|
|
309
|
+
```
|
|
310
|
+
Change Scheduler:
|
|
311
|
+
- Coordinate with change calendar
|
|
312
|
+
- Avoid conflicts
|
|
313
|
+
- Reserve change window
|
|
314
|
+
- Notify stakeholders
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**5. Implement:**
|
|
318
|
+
```
|
|
319
|
+
Implementation Team:
|
|
320
|
+
- Follow implementation plan
|
|
321
|
+
- Update change status
|
|
322
|
+
- Document actual changes
|
|
323
|
+
- Report any deviations
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
**6. Review:**
|
|
327
|
+
```
|
|
328
|
+
Change Manager:
|
|
329
|
+
- Verify successful implementation
|
|
330
|
+
- Review any issues
|
|
331
|
+
- Update documentation
|
|
332
|
+
- Close change record
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
**7. PIR (Post-Implementation Review):**
|
|
336
|
+
```
|
|
337
|
+
For major changes:
|
|
338
|
+
- What went well?
|
|
339
|
+
- What could be improved?
|
|
340
|
+
- Lessons learned
|
|
341
|
+
- Process improvements
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
## Change Advisory Board
|
|
345
|
+
|
|
346
|
+
### CAB Purpose
|
|
347
|
+
|
|
348
|
+
The CAB:
|
|
349
|
+
- Reviews and authorizes changes
|
|
350
|
+
- Assesses risks and impacts
|
|
351
|
+
- Prioritizes changes
|
|
352
|
+
- Resolves scheduling conflicts
|
|
353
|
+
|
|
354
|
+
### CAB Membership
|
|
355
|
+
|
|
356
|
+
**Core Members:**
|
|
357
|
+
- Change Manager (chair)
|
|
358
|
+
- Service Owner representatives
|
|
359
|
+
- Technical experts (infrastructure, application, security)
|
|
360
|
+
- Business representatives
|
|
361
|
+
|
|
362
|
+
**Extended Members (as needed):**
|
|
363
|
+
- Vendors
|
|
364
|
+
- Compliance/audit
|
|
365
|
+
- External consultants
|
|
366
|
+
|
|
367
|
+
### CAB Meeting Cadence
|
|
368
|
+
|
|
369
|
+
```yaml
|
|
370
|
+
Weekly CAB:
|
|
371
|
+
Schedule: Every Wednesday 2pm
|
|
372
|
+
Duration: 1 hour
|
|
373
|
+
Agenda:
|
|
374
|
+
- Review upcoming changes (next 2 weeks)
|
|
375
|
+
- Assess new RFC submissions
|
|
376
|
+
- Review previous week's changes
|
|
377
|
+
- Update change calendar
|
|
378
|
+
|
|
379
|
+
Emergency CAB:
|
|
380
|
+
Schedule: As needed (emergency changes)
|
|
381
|
+
Duration: 15-30 minutes
|
|
382
|
+
Convened: Via email/chat
|
|
383
|
+
Decision: Expedited approval process
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### CAB Meeting Agenda Template
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
Change Advisory Board Meeting
|
|
390
|
+
Date: 2024-11-06 2:00 PM
|
|
391
|
+
|
|
392
|
+
1. Review of Previous Week's Changes (15 min)
|
|
393
|
+
- CHG-12340: Success
|
|
394
|
+
- CHG-12341: Rollback (database timeout)
|
|
395
|
+
- CHG-12342: Success
|
|
396
|
+
- Action: PIR scheduled for CHG-12341
|
|
397
|
+
|
|
398
|
+
2. New RFC Reviews (30 min)
|
|
399
|
+
- CHG-12345: Customer Portal v2.5.0 deployment
|
|
400
|
+
Status: Recommend approval
|
|
401
|
+
Schedule: 2024-11-10 2am
|
|
402
|
+
|
|
403
|
+
- CHG-12346: Firewall rule change
|
|
404
|
+
Status: Request more testing
|
|
405
|
+
|
|
406
|
+
- CHG-12347: Email server upgrade
|
|
407
|
+
Status: Approved
|
|
408
|
+
Schedule: 2024-11-12 6pm
|
|
409
|
+
|
|
410
|
+
3. Change Calendar Review (10 min)
|
|
411
|
+
- Week of Nov 11: 5 changes scheduled
|
|
412
|
+
- Thanksgiving freeze: Nov 25-29
|
|
413
|
+
- Year-end freeze: Dec 20 - Jan 5
|
|
414
|
+
|
|
415
|
+
4. Metrics Review (5 min)
|
|
416
|
+
- Success rate: 94% (target >90%)
|
|
417
|
+
- Emergency changes: 2 (target <5/month)
|
|
418
|
+
- Rolled back: 3 of 50 changes
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
## Risk Assessment
|
|
422
|
+
|
|
423
|
+
### Risk Factors
|
|
424
|
+
|
|
425
|
+
**Technical Risk:**
|
|
426
|
+
- Complexity of change
|
|
427
|
+
- Technology maturity
|
|
428
|
+
- Team experience
|
|
429
|
+
- Testing coverage
|
|
430
|
+
|
|
431
|
+
**Business Risk:**
|
|
432
|
+
- Number of users affected
|
|
433
|
+
- Business criticality
|
|
434
|
+
- Timing (busy period)
|
|
435
|
+
- Regulatory impact
|
|
436
|
+
|
|
437
|
+
**Implementation Risk:**
|
|
438
|
+
- Change window duration
|
|
439
|
+
- Rollback complexity
|
|
440
|
+
- Dependencies on other changes
|
|
441
|
+
- Resource availability
|
|
442
|
+
|
|
443
|
+
### Risk Matrix
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
┌───────────────────────────────────────────┐
|
|
447
|
+
│ Likelihood vs Impact │
|
|
448
|
+
├───────────────────────────────────────────┤
|
|
449
|
+
│ │ Low │ Med │ High │ Critical │
|
|
450
|
+
│─────────┼─────┼─────┼──────┼────────────│
|
|
451
|
+
│ Likely │ Med │ High│ High │ Critical │
|
|
452
|
+
│ Poss │ Low │ Med │ High │ High │
|
|
453
|
+
│ Unlikely│ Low │ Low │ Med │ High │
|
|
454
|
+
│ Rare │ Low │ Low │ Low │ Med │
|
|
455
|
+
└───────────────────────────────────────────┘
|
|
456
|
+
|
|
457
|
+
Risk Levels:
|
|
458
|
+
Critical: Requires executive approval
|
|
459
|
+
High: CAB escalation, extensive mitigation
|
|
460
|
+
Medium: Standard CAB review
|
|
461
|
+
Low: Change manager approval
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
### Risk Mitigation Strategies
|
|
465
|
+
|
|
466
|
+
```yaml
|
|
467
|
+
Risk: Database migration may corrupt data
|
|
468
|
+
|
|
469
|
+
Mitigation:
|
|
470
|
+
Before:
|
|
471
|
+
- Full database backup
|
|
472
|
+
- Test migration in staging
|
|
473
|
+
- Validate data integrity checks
|
|
474
|
+
- Document rollback procedure
|
|
475
|
+
|
|
476
|
+
During:
|
|
477
|
+
- Run in maintenance window
|
|
478
|
+
- Monitor migration progress
|
|
479
|
+
- Validate each step
|
|
480
|
+
- Ready rollback scripts
|
|
481
|
+
|
|
482
|
+
After:
|
|
483
|
+
- Verify data integrity
|
|
484
|
+
- Compare record counts
|
|
485
|
+
- Spot-check critical records
|
|
486
|
+
- Monitor application logs
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
## Rollback Procedures
|
|
490
|
+
|
|
491
|
+
### Rollback Planning
|
|
492
|
+
|
|
493
|
+
Every change must have a rollback plan:
|
|
494
|
+
- How to undo the change
|
|
495
|
+
- How long rollback takes
|
|
496
|
+
- Who can authorize rollback
|
|
497
|
+
- Data recovery procedures
|
|
498
|
+
|
|
499
|
+
### Rollback Decision Criteria
|
|
500
|
+
|
|
501
|
+
```yaml
|
|
502
|
+
Rollback Triggers:
|
|
503
|
+
- Critical functionality broken
|
|
504
|
+
- Data corruption detected
|
|
505
|
+
- Security vulnerability introduced
|
|
506
|
+
- Performance degradation >50%
|
|
507
|
+
- Error rate >10% above baseline
|
|
508
|
+
- Customer-facing service down
|
|
509
|
+
|
|
510
|
+
Decision Authority:
|
|
511
|
+
- Implementation team: Can initiate rollback
|
|
512
|
+
- Change Manager: Must approve rollback
|
|
513
|
+
- Incident Manager: Can require rollback
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### Rollback Examples
|
|
517
|
+
|
|
518
|
+
**Application Deployment Rollback:**
|
|
519
|
+
```bash
|
|
520
|
+
# Blue-Green Deployment Rollback
|
|
521
|
+
|
|
522
|
+
# 1. Switch load balancer back to blue (old version)
|
|
523
|
+
kubectl patch service customer-portal -p '{"spec":{"selector":{"version":"blue"}}}'
|
|
524
|
+
|
|
525
|
+
# 2. Verify traffic routing to old version
|
|
526
|
+
curl https://portal.company.com/health
|
|
527
|
+
|
|
528
|
+
# 3. Keep green (new version) running for investigation
|
|
529
|
+
# Scale down after issue identified
|
|
530
|
+
|
|
531
|
+
# 4. Notify stakeholders
|
|
532
|
+
./notify-rollback.sh CHG-12345
|
|
533
|
+
|
|
534
|
+
# Rollback Time: 30 seconds
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
**Database Change Rollback:**
|
|
538
|
+
```sql
|
|
539
|
+
-- Rollback procedure for schema change
|
|
540
|
+
|
|
541
|
+
-- 1. Restore from backup (if data changed)
|
|
542
|
+
pg_restore -d production backup_pre_chg12345.dump
|
|
543
|
+
|
|
544
|
+
-- 2. OR run rollback script (if reversible)
|
|
545
|
+
BEGIN TRANSACTION;
|
|
546
|
+
|
|
547
|
+
-- Undo schema changes
|
|
548
|
+
DROP INDEX idx_customer_email;
|
|
549
|
+
ALTER TABLE customers DROP COLUMN loyalty_points;
|
|
550
|
+
|
|
551
|
+
-- Verify
|
|
552
|
+
SELECT COUNT(*) FROM customers;
|
|
553
|
+
|
|
554
|
+
COMMIT;
|
|
555
|
+
|
|
556
|
+
-- Rollback Time: 15 minutes (backup restore)
|
|
557
|
+
-- : 2 minutes (SQL rollback)
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
**Infrastructure Rollback:**
|
|
561
|
+
```hcl
|
|
562
|
+
# Terraform infrastructure rollback
|
|
563
|
+
|
|
564
|
+
# 1. Revert to previous Terraform state
|
|
565
|
+
terraform state pull > current.tfstate
|
|
566
|
+
cp backup_chg12345.tfstate terraform.tfstate
|
|
567
|
+
|
|
568
|
+
# 2. Apply previous configuration
|
|
569
|
+
terraform apply -auto-approve
|
|
570
|
+
|
|
571
|
+
# 3. Verify infrastructure
|
|
572
|
+
terraform plan # Should show no changes
|
|
573
|
+
|
|
574
|
+
# Rollback Time: 10 minutes
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
## Best Practices
|
|
578
|
+
|
|
579
|
+
### 1. Change Windows
|
|
580
|
+
|
|
581
|
+
**Establish standard change windows:**
|
|
582
|
+
```yaml
|
|
583
|
+
Production Changes:
|
|
584
|
+
- Sunday 2am-6am (Preferred)
|
|
585
|
+
- Saturday 2am-6am (Alternative)
|
|
586
|
+
- Weekday 2am-4am (Emergency only)
|
|
587
|
+
|
|
588
|
+
Non-Production:
|
|
589
|
+
- Anytime during business hours
|
|
590
|
+
|
|
591
|
+
Blackout Periods:
|
|
592
|
+
- Black Friday (retail)
|
|
593
|
+
- Tax season (finance)
|
|
594
|
+
- Quarter-end close (all)
|
|
595
|
+
- Major holidays
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
### 2. Change Calendar
|
|
599
|
+
|
|
600
|
+
**Maintain visible change calendar:**
|
|
601
|
+
- Shows all scheduled changes
|
|
602
|
+
- Identifies conflicts
|
|
603
|
+
- Tracks change freezes
|
|
604
|
+
- Public to stakeholders
|
|
605
|
+
|
|
606
|
+
### 3. Automation
|
|
607
|
+
|
|
608
|
+
**Automate standard changes:**
|
|
609
|
+
```yaml
|
|
610
|
+
Automated Changes:
|
|
611
|
+
- Password resets
|
|
612
|
+
- User provisioning
|
|
613
|
+
- Certificate renewals
|
|
614
|
+
- Security patching (tested)
|
|
615
|
+
- Backup scheduling
|
|
616
|
+
- Report generation
|
|
617
|
+
|
|
618
|
+
Benefits:
|
|
619
|
+
- Faster execution
|
|
620
|
+
- Fewer errors
|
|
621
|
+
- Consistent process
|
|
622
|
+
- Reduced CAB burden
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### 4. Testing Requirements
|
|
626
|
+
|
|
627
|
+
```yaml
|
|
628
|
+
Change Testing Levels:
|
|
629
|
+
|
|
630
|
+
Low Risk (Standard):
|
|
631
|
+
- Basic functionality test
|
|
632
|
+
- Automated tests pass
|
|
633
|
+
|
|
634
|
+
Medium Risk:
|
|
635
|
+
- Full regression testing
|
|
636
|
+
- UAT by business
|
|
637
|
+
- Performance testing
|
|
638
|
+
- Security scan
|
|
639
|
+
|
|
640
|
+
High Risk:
|
|
641
|
+
- All medium risk tests
|
|
642
|
+
- Load testing
|
|
643
|
+
- Disaster recovery test
|
|
644
|
+
- Pilot deployment
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
### 5. Change Metrics
|
|
648
|
+
|
|
649
|
+
**Track and improve:**
|
|
650
|
+
```yaml
|
|
651
|
+
Change Management KPIs:
|
|
652
|
+
|
|
653
|
+
Success Metrics:
|
|
654
|
+
- Change success rate: >90%
|
|
655
|
+
- Rollback rate: <10%
|
|
656
|
+
- Emergency changes: <10% of total
|
|
657
|
+
- Changes completed on time: >95%
|
|
658
|
+
|
|
659
|
+
Efficiency:
|
|
660
|
+
- RFC to approval time: <5 days
|
|
661
|
+
- Standard change duration: <1 hour
|
|
662
|
+
- CAB meeting duration: <1 hour
|
|
663
|
+
|
|
664
|
+
Quality:
|
|
665
|
+
- Changes causing incidents: <5%
|
|
666
|
+
- Unauthorized changes: 0
|
|
667
|
+
- Documentation complete: 100%
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
### 6. Communication
|
|
671
|
+
|
|
672
|
+
**Stakeholder communication:**
|
|
673
|
+
```yaml
|
|
674
|
+
Before Change:
|
|
675
|
+
- T-7 days: Initial notification
|
|
676
|
+
- T-1 day: Reminder
|
|
677
|
+
- T-1 hour: Maintenance starting soon
|
|
678
|
+
|
|
679
|
+
During Change:
|
|
680
|
+
- Status page updates
|
|
681
|
+
- Progress notifications
|
|
682
|
+
- Issue escalation if needed
|
|
683
|
+
|
|
684
|
+
After Change:
|
|
685
|
+
- Completion notification
|
|
686
|
+
- Service restored
|
|
687
|
+
- Summary of changes
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
### 7. Continuous Improvement
|
|
691
|
+
|
|
692
|
+
**Learn from every change:**
|
|
693
|
+
- Post-implementation reviews for major changes
|
|
694
|
+
- Root cause analysis for failures
|
|
695
|
+
- Update standard procedures
|
|
696
|
+
- Refine risk assessments
|
|
697
|
+
- Share lessons learned
|
|
698
|
+
|
|
699
|
+
## Common Pitfalls
|
|
700
|
+
|
|
701
|
+
❌ **Skipping change management** - "Too urgent for process"
|
|
702
|
+
❌ **Incomplete RFC** - Missing critical information
|
|
703
|
+
❌ **No rollback plan** - Hope it works
|
|
704
|
+
❌ **Insufficient testing** - Test in production
|
|
705
|
+
❌ **Poor communication** - Surprise downtime
|
|
706
|
+
❌ **Conflicting changes** - Multiple changes same window
|
|
707
|
+
❌ **No approval** - Implement without authorization
|
|
708
|
+
❌ **Inadequate documentation** - Can't repeat or troubleshoot
|
|
709
|
+
|
|
710
|
+
---
|
|
711
|
+
|
|
712
|
+
**Related Resources:**
|
|
713
|
+
- [itil-framework.md](itil-framework.md) - ITIL change enablement practice
|
|
714
|
+
- [release-engineering](../../release-engineering/) - CI/CD and deployment strategies
|
|
715
|
+
- [incident-service-management.md](incident-service-management.md) - Handling change-related incidents
|