blockmine 1.21.0 → 1.23.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 +59 -0
- package/.claude/settings.local.json +36 -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 +102 -42
- package/CLAUDE.md +284 -0
- package/README.md +315 -71
- package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
- package/backend/jest.config.js +59 -0
- package/backend/package-lock.json +6801 -0
- package/backend/package.json +24 -4
- package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
- package/backend/prisma/migrations/20251116111851_add_execution_trace/migration.sql +22 -0
- package/backend/prisma/migrations/20251120154914_add_panel_api_keys/migration.sql +21 -0
- package/backend/prisma/migrations/20251121110241_add_proxy_table/migration.sql +45 -0
- package/backend/prisma/migrations/migration_lock.toml +2 -2
- package/backend/prisma/schema.prisma +103 -1
- 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 +416 -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/ai/plugin-assistant-system-prompt.md +788 -0
- package/backend/src/api/middleware/auth.js +27 -0
- package/backend/src/api/middleware/botAccess.js +7 -3
- package/backend/src/api/middleware/panelApiAuth.js +135 -0
- package/backend/src/api/routes/aiAssistant.js +995 -0
- package/backend/src/api/routes/apiKeys.js +181 -0
- package/backend/src/api/routes/auth.js +669 -633
- package/backend/src/api/routes/botCommands.js +107 -0
- package/backend/src/api/routes/botGroups.js +165 -0
- package/backend/src/api/routes/botHistory.js +108 -0
- package/backend/src/api/routes/botPermissions.js +99 -0
- package/backend/src/api/routes/botStatus.js +36 -0
- package/backend/src/api/routes/botUsers.js +162 -0
- package/backend/src/api/routes/bots.js +2451 -2360
- package/backend/src/api/routes/eventGraphs.js +4 -1
- package/backend/src/api/routes/logs.js +13 -3
- package/backend/src/api/routes/panel.js +66 -66
- package/backend/src/api/routes/panelApiKeys.js +179 -0
- package/backend/src/api/routes/pluginIde.js +1715 -135
- package/backend/src/api/routes/plugins.js +376 -218
- package/backend/src/api/routes/proxies.js +130 -0
- package/backend/src/api/routes/search.js +4 -0
- package/backend/src/api/routes/servers.js +20 -3
- package/backend/src/api/routes/settings.js +5 -0
- package/backend/src/api/routes/system.js +174 -0
- package/backend/src/api/routes/traces.js +131 -0
- package/backend/src/config/debug.config.js +36 -0
- package/backend/src/container.js +82 -0
- package/backend/src/core/BotHistoryStore.js +180 -0
- package/backend/src/core/BotManager.js +149 -868
- package/backend/src/core/BotManager.old.js +1093 -0
- package/backend/src/core/BotProcess.js +850 -191
- package/backend/src/core/EventGraphManager.js +194 -198
- package/backend/src/core/GraphExecutionEngine.js +709 -57
- package/backend/src/core/MessageQueue.js +39 -12
- package/backend/src/core/NodeRegistry.js +37 -1134
- package/backend/src/core/PluginLoader.js +99 -5
- package/backend/src/core/PluginManager.js +126 -15
- package/backend/src/core/PrismaService.js +32 -0
- package/backend/src/core/TaskScheduler.js +1 -1
- 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 +202 -0
- package/backend/src/core/node-registries/arrays.js +155 -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 +201 -0
- package/backend/src/core/node-registries/flow.js +139 -0
- package/backend/src/core/node-registries/logic.js +62 -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 +187 -0
- package/backend/src/core/node-registries/time.js +113 -0
- package/backend/src/core/node-registries/type.js +25 -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/actions/create_command.js +189 -0
- package/backend/src/core/nodes/actions/delete_command.js +92 -0
- 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/actions/update_command.js +133 -0
- package/backend/src/core/nodes/arrays/get_next.js +35 -0
- package/backend/src/core/nodes/arrays/join.js +28 -0
- package/backend/src/core/nodes/{data_cast.js → data/cast.js} +10 -1
- 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/logic/not.js +22 -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/{string_starts_with.js → strings/starts_with.js} +1 -1
- package/backend/src/core/nodes/strings/to_lower.js +22 -0
- package/backend/src/core/nodes/strings/to_upper.js +22 -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/type/to_string.js +32 -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 +835 -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 +430 -0
- package/backend/src/core/services/DebugSessionManager.js +347 -0
- package/backend/src/core/services/GraphCollaborationManager.js +501 -0
- package/backend/src/core/services/MinecraftBotManager.js +259 -0
- package/backend/src/core/services/MinecraftViewerService.js +216 -0
- package/backend/src/core/services/ResourceMonitorService.js +90 -0
- package/backend/src/core/services/TelemetryService.js +124 -0
- package/backend/src/core/services/TraceCollectorService.js +545 -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/RuntimeCommandRegistry.js +116 -0
- package/backend/src/core/system/Transport.js +74 -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 +65 -0
- package/backend/src/real-time/panelNamespace.js +387 -0
- package/backend/src/real-time/presence.js +7 -2
- package/backend/src/real-time/socketHandler.js +400 -5
- 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 +21 -0
- package/backend/src/test-refactor.js +85 -0
- package/frontend/dist/assets/index-B1serztM.js +11210 -0
- package/frontend/dist/assets/index-t6K1u4OV.css +32 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/package-lock.json +9437 -0
- package/frontend/package.json +8 -5
- package/package.json +3 -2
- package/screen/console.png +0 -0
- package/screen/dashboard.png +0 -0
- package/screen/graph_collabe.png +0 -0
- package/screen/graph_live_debug.png +0 -0
- package/screen/management_command.png +0 -0
- package/screen/node_debug_trace.png +0 -0
- package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
- package/screen/websocket.png +0 -0
- package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
- package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
- 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
|
@@ -0,0 +1,712 @@
|
|
|
1
|
+
# Asset Management
|
|
2
|
+
|
|
3
|
+
IT asset tracking, software licensing, hardware lifecycle management, and Configuration Management Database (CMDB) for managing IT assets effectively.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Asset Management Overview](#asset-management-overview)
|
|
8
|
+
- [Hardware Asset Management](#hardware-asset-management)
|
|
9
|
+
- [Software Asset Management](#software-asset-management)
|
|
10
|
+
- [CMDB (Configuration Management Database)](#cmdb-configuration-management-database)
|
|
11
|
+
- [Asset Lifecycle](#asset-lifecycle)
|
|
12
|
+
- [License Management](#license-management)
|
|
13
|
+
- [Best Practices](#best-practices)
|
|
14
|
+
|
|
15
|
+
## Asset Management Overview
|
|
16
|
+
|
|
17
|
+
### Purpose
|
|
18
|
+
|
|
19
|
+
IT Asset Management (ITAM) provides:
|
|
20
|
+
- Complete inventory of IT assets
|
|
21
|
+
- Cost tracking and optimization
|
|
22
|
+
- License compliance
|
|
23
|
+
- Security and risk management
|
|
24
|
+
- Lifecycle planning
|
|
25
|
+
- Financial planning
|
|
26
|
+
|
|
27
|
+
### Asset Categories
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
IT Assets
|
|
31
|
+
├── Hardware
|
|
32
|
+
│ ├── End-User Devices (laptops, desktops, phones)
|
|
33
|
+
│ ├── Servers (physical, virtual)
|
|
34
|
+
│ ├── Network Devices (routers, switches, firewalls)
|
|
35
|
+
│ ├── Storage (SAN, NAS, backup)
|
|
36
|
+
│ └── Peripherals (printers, monitors, accessories)
|
|
37
|
+
│
|
|
38
|
+
├── Software
|
|
39
|
+
│ ├── Operating Systems
|
|
40
|
+
│ ├── Applications (licensed, SaaS)
|
|
41
|
+
│ ├── Development Tools
|
|
42
|
+
│ └── Utilities
|
|
43
|
+
│
|
|
44
|
+
├── Cloud Services
|
|
45
|
+
│ ├── IaaS (EC2, VMs)
|
|
46
|
+
│ ├── PaaS (databases, platforms)
|
|
47
|
+
│ └── SaaS (applications)
|
|
48
|
+
│
|
|
49
|
+
└── Digital Assets
|
|
50
|
+
├── Certificates
|
|
51
|
+
├── Domains
|
|
52
|
+
├── IP Addresses
|
|
53
|
+
└── Data
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Hardware Asset Management
|
|
57
|
+
|
|
58
|
+
### Hardware Asset Tracking
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
Asset Record: LAPTOP-12345
|
|
62
|
+
|
|
63
|
+
Basic Information:
|
|
64
|
+
Asset Tag: LAPTOP-12345
|
|
65
|
+
Serial Number: ABC123XYZ789
|
|
66
|
+
Manufacturer: Dell
|
|
67
|
+
Model: Latitude 5520
|
|
68
|
+
Type: Laptop
|
|
69
|
+
|
|
70
|
+
Financial:
|
|
71
|
+
Purchase Date: 2024-01-15
|
|
72
|
+
Purchase Cost: $1,200
|
|
73
|
+
Supplier: Dell Direct
|
|
74
|
+
PO Number: PO-2024-001
|
|
75
|
+
Depreciation: 3 years (straight-line)
|
|
76
|
+
Current Value: $800 (8 months old)
|
|
77
|
+
Warranty Expiry: 2027-01-15
|
|
78
|
+
|
|
79
|
+
Technical:
|
|
80
|
+
CPU: Intel i7-11th Gen
|
|
81
|
+
RAM: 16GB DDR4
|
|
82
|
+
Storage: 512GB NVMe SSD
|
|
83
|
+
OS: Windows 11 Pro
|
|
84
|
+
Hostname: LAPTOP-JDOE
|
|
85
|
+
|
|
86
|
+
Assignment:
|
|
87
|
+
Status: Deployed
|
|
88
|
+
Assigned To: John Doe (john.doe@company.com)
|
|
89
|
+
Department: Sales
|
|
90
|
+
Location: Building A, Floor 3
|
|
91
|
+
Assignment Date: 2024-01-20
|
|
92
|
+
|
|
93
|
+
Lifecycle:
|
|
94
|
+
Stage: In Use
|
|
95
|
+
Next Review: 2026-01-15 (2 year mark)
|
|
96
|
+
Expected Refresh: 2027-01-15 (3 years)
|
|
97
|
+
Disposal Date: TBD
|
|
98
|
+
|
|
99
|
+
Maintenance History:
|
|
100
|
+
- 2024-06-10: Battery replaced
|
|
101
|
+
- 2024-08-15: RAM upgraded from 8GB to 16GB
|
|
102
|
+
|
|
103
|
+
Compliance:
|
|
104
|
+
- Security encryption: Enabled (BitLocker)
|
|
105
|
+
- Antivirus: Installed and current
|
|
106
|
+
- Patch level: Up to date
|
|
107
|
+
- MDM enrolled: Yes
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Hardware Inventory Methods
|
|
111
|
+
|
|
112
|
+
**1. Manual Tracking:**
|
|
113
|
+
```yaml
|
|
114
|
+
Pros:
|
|
115
|
+
- Low cost
|
|
116
|
+
- Simple to start
|
|
117
|
+
- Works for small organizations
|
|
118
|
+
|
|
119
|
+
Cons:
|
|
120
|
+
- Time-consuming
|
|
121
|
+
- Error-prone
|
|
122
|
+
- Difficult to scale
|
|
123
|
+
- Stale data
|
|
124
|
+
|
|
125
|
+
Best for: <50 assets
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**2. Barcode/RFID Scanning:**
|
|
129
|
+
```yaml
|
|
130
|
+
Pros:
|
|
131
|
+
- Quick data capture
|
|
132
|
+
- Reduces errors
|
|
133
|
+
- Supports physical audits
|
|
134
|
+
|
|
135
|
+
Cons:
|
|
136
|
+
- Requires scanning hardware
|
|
137
|
+
- Manual process
|
|
138
|
+
- Doesn't capture software
|
|
139
|
+
|
|
140
|
+
Best for: 50-500 assets
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**3. Automated Discovery:**
|
|
144
|
+
```yaml
|
|
145
|
+
Tools:
|
|
146
|
+
- Microsoft SCCM/Intune
|
|
147
|
+
- ServiceNow Discovery
|
|
148
|
+
- Lansweeper
|
|
149
|
+
- Snipe-IT
|
|
150
|
+
|
|
151
|
+
Pros:
|
|
152
|
+
- Automatic updates
|
|
153
|
+
- Software inventory included
|
|
154
|
+
- Real-time data
|
|
155
|
+
- Minimal manual work
|
|
156
|
+
|
|
157
|
+
Cons:
|
|
158
|
+
- Requires network access
|
|
159
|
+
- Initial setup complexity
|
|
160
|
+
- May miss offline devices
|
|
161
|
+
|
|
162
|
+
Best for: 500+ assets, distributed environments
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Hardware Procurement Process
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
Need Identified
|
|
169
|
+
↓
|
|
170
|
+
Request Submitted (ServiceNow/Portal)
|
|
171
|
+
↓
|
|
172
|
+
Manager Approval
|
|
173
|
+
↓
|
|
174
|
+
Budget Verification
|
|
175
|
+
↓
|
|
176
|
+
Vendor Selection
|
|
177
|
+
↓
|
|
178
|
+
Purchase Order Created
|
|
179
|
+
↓
|
|
180
|
+
Asset Received
|
|
181
|
+
↓
|
|
182
|
+
Asset Tagged and Recorded in CMDB
|
|
183
|
+
↓
|
|
184
|
+
Configuration/Setup
|
|
185
|
+
↓
|
|
186
|
+
Deployed to User
|
|
187
|
+
↓
|
|
188
|
+
Asset Record Updated (assignment, location)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Software Asset Management
|
|
192
|
+
|
|
193
|
+
### Software Inventory
|
|
194
|
+
|
|
195
|
+
```yaml
|
|
196
|
+
Software Asset: Microsoft Office 365 E3
|
|
197
|
+
|
|
198
|
+
Product Information:
|
|
199
|
+
Vendor: Microsoft
|
|
200
|
+
Product: Office 365 E3
|
|
201
|
+
Version: Current (cloud-based)
|
|
202
|
+
Category: Productivity Suite
|
|
203
|
+
|
|
204
|
+
Licensing:
|
|
205
|
+
License Type: Subscription (per user/month)
|
|
206
|
+
Agreement: Enterprise Agreement
|
|
207
|
+
Agreement Number: EA-123456
|
|
208
|
+
Purchased Licenses: 1,000
|
|
209
|
+
Deployed Licenses: 850
|
|
210
|
+
Available: 150
|
|
211
|
+
Cost per License: $20/user/month
|
|
212
|
+
Annual Cost: $240,000
|
|
213
|
+
|
|
214
|
+
Contract:
|
|
215
|
+
Start Date: 2024-01-01
|
|
216
|
+
End Date: 2026-12-31
|
|
217
|
+
Term: 3 years
|
|
218
|
+
Renewal Date: 2026-10-01 (notify 90 days prior)
|
|
219
|
+
Auto-Renewal: No
|
|
220
|
+
|
|
221
|
+
Usage Tracking:
|
|
222
|
+
Assigned Users: 850
|
|
223
|
+
Active Users (last 30 days): 780
|
|
224
|
+
Inactive Users: 70 (candidates for license reclaim)
|
|
225
|
+
Peak Usage: 810
|
|
226
|
+
|
|
227
|
+
Compliance:
|
|
228
|
+
Status: Compliant ✅
|
|
229
|
+
Last Audit: 2024-10-01
|
|
230
|
+
Next Audit: 2025-04-01
|
|
231
|
+
License Shortfall: 0
|
|
232
|
+
License Waste: 70 (inactive users)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Software License Types
|
|
236
|
+
|
|
237
|
+
**1. Per-User/Per-Device:**
|
|
238
|
+
```
|
|
239
|
+
Examples: Microsoft Office, Adobe Creative Cloud
|
|
240
|
+
Pricing: Fixed per user or device
|
|
241
|
+
Compliance: Track assignments vs licenses purchased
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**2. Concurrent/Floating:**
|
|
245
|
+
```
|
|
246
|
+
Examples: Engineering software, CAD tools
|
|
247
|
+
Pricing: Based on simultaneous users
|
|
248
|
+
Compliance: Monitor license server for peak usage
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**3. Subscription (SaaS):**
|
|
252
|
+
```
|
|
253
|
+
Examples: Salesforce, Slack, Google Workspace
|
|
254
|
+
Pricing: Per user/month
|
|
255
|
+
Compliance: Track active users, remove inactive
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**4. Enterprise Agreement:**
|
|
259
|
+
```
|
|
260
|
+
Examples: Microsoft EA, Oracle ULA
|
|
261
|
+
Pricing: Negotiated bulk pricing
|
|
262
|
+
Compliance: Regular true-ups, usage reporting
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**5. Open Source:**
|
|
266
|
+
```
|
|
267
|
+
Examples: Linux, Apache, PostgreSQL
|
|
268
|
+
Pricing: Free (may have support costs)
|
|
269
|
+
Compliance: License terms vary (GPL, MIT, Apache)
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Software Compliance
|
|
273
|
+
|
|
274
|
+
**License Compliance Checks:**
|
|
275
|
+
```yaml
|
|
276
|
+
Quarterly Compliance Review:
|
|
277
|
+
|
|
278
|
+
1. Inventory Installed Software:
|
|
279
|
+
Tool: SCCM/Lansweeper scan
|
|
280
|
+
Compare: Installed vs purchased licenses
|
|
281
|
+
|
|
282
|
+
2. Identify Gaps:
|
|
283
|
+
- Unlicensed software (remove or purchase)
|
|
284
|
+
- Over-licensed software (reclaim or reduce)
|
|
285
|
+
- Expired licenses (renew or remove)
|
|
286
|
+
|
|
287
|
+
3. Vendor Audits:
|
|
288
|
+
- Microsoft SAM engagement
|
|
289
|
+
- Oracle LMS audit
|
|
290
|
+
- Adobe compliance check
|
|
291
|
+
|
|
292
|
+
4. Corrective Actions:
|
|
293
|
+
- Purchase additional licenses
|
|
294
|
+
- Uninstall unauthorized software
|
|
295
|
+
- Reclaim unused licenses
|
|
296
|
+
- Update contracts
|
|
297
|
+
|
|
298
|
+
5. Documentation:
|
|
299
|
+
- Compliance report
|
|
300
|
+
- Purchase orders
|
|
301
|
+
- License certificates
|
|
302
|
+
- Audit responses
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## CMDB (Configuration Management Database)
|
|
306
|
+
|
|
307
|
+
### CMDB Purpose
|
|
308
|
+
|
|
309
|
+
The CMDB provides:
|
|
310
|
+
- Single source of truth for IT configuration
|
|
311
|
+
- Relationships between configuration items (CIs)
|
|
312
|
+
- Impact analysis for changes
|
|
313
|
+
- Service dependencies
|
|
314
|
+
- Asset inventory
|
|
315
|
+
|
|
316
|
+
### Configuration Items (CIs)
|
|
317
|
+
|
|
318
|
+
```yaml
|
|
319
|
+
CI Types:
|
|
320
|
+
|
|
321
|
+
Hardware:
|
|
322
|
+
- Servers
|
|
323
|
+
- Network devices
|
|
324
|
+
- End-user devices
|
|
325
|
+
- Storage arrays
|
|
326
|
+
|
|
327
|
+
Software:
|
|
328
|
+
- Applications
|
|
329
|
+
- Databases
|
|
330
|
+
- Middleware
|
|
331
|
+
- Operating systems
|
|
332
|
+
|
|
333
|
+
Services:
|
|
334
|
+
- Business services
|
|
335
|
+
- Technical services
|
|
336
|
+
- Cloud services
|
|
337
|
+
|
|
338
|
+
People:
|
|
339
|
+
- IT staff
|
|
340
|
+
- Vendors
|
|
341
|
+
- Service providers
|
|
342
|
+
|
|
343
|
+
Documentation:
|
|
344
|
+
- Runbooks
|
|
345
|
+
- Architecture diagrams
|
|
346
|
+
- Contracts
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### CI Relationships
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
Business Service: Customer Portal
|
|
353
|
+
│
|
|
354
|
+
├─── Uses ───> Application: Web Application
|
|
355
|
+
│ │
|
|
356
|
+
│ ├─── Runs On ───> Server: WEB-01
|
|
357
|
+
│ │ │
|
|
358
|
+
│ │ └─── Hosted In ───> Data Center: DC1
|
|
359
|
+
│ │
|
|
360
|
+
│ └─── Depends On ───> Application: API Service
|
|
361
|
+
│ │
|
|
362
|
+
│ └─── Uses ───> Database: PROD-DB
|
|
363
|
+
│
|
|
364
|
+
├─── Uses ───> Service: CDN
|
|
365
|
+
│
|
|
366
|
+
└─── Supports ───> Business Process: Online Sales
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### CMDB Example Record
|
|
370
|
+
|
|
371
|
+
```yaml
|
|
372
|
+
CI: WEB-01
|
|
373
|
+
|
|
374
|
+
Type: Physical Server
|
|
375
|
+
Class: Production
|
|
376
|
+
Environment: Production
|
|
377
|
+
|
|
378
|
+
Identification:
|
|
379
|
+
CI ID: CI-12345
|
|
380
|
+
Asset Tag: SRV-WEB-01
|
|
381
|
+
Serial: VMW-ABC-123
|
|
382
|
+
Hostname: web01.company.com
|
|
383
|
+
|
|
384
|
+
Technical:
|
|
385
|
+
OS: Ubuntu 22.04 LTS
|
|
386
|
+
CPU: 8 cores
|
|
387
|
+
RAM: 32 GB
|
|
388
|
+
Storage: 500 GB SSD
|
|
389
|
+
|
|
390
|
+
Network:
|
|
391
|
+
IP Address: 10.0.1.10
|
|
392
|
+
MAC: 00:50:56:9A:12:34
|
|
393
|
+
VLAN: VLAN-100-Web
|
|
394
|
+
Subnet: 10.0.1.0/24
|
|
395
|
+
|
|
396
|
+
Relationships:
|
|
397
|
+
Runs Applications:
|
|
398
|
+
- Customer Portal (app-portal-01)
|
|
399
|
+
- Admin Dashboard (app-admin-01)
|
|
400
|
+
|
|
401
|
+
Depends On:
|
|
402
|
+
- Load Balancer (lb-01)
|
|
403
|
+
- Database Server (db-01)
|
|
404
|
+
- Active Directory (ad-01)
|
|
405
|
+
|
|
406
|
+
Hosted In:
|
|
407
|
+
- Data Center: DC1
|
|
408
|
+
- Rack: R-15
|
|
409
|
+
- U Position: U20-U22
|
|
410
|
+
|
|
411
|
+
Ownership:
|
|
412
|
+
Technical Owner: Infrastructure Team
|
|
413
|
+
Business Owner: E-commerce Manager
|
|
414
|
+
Cost Center: 12345
|
|
415
|
+
|
|
416
|
+
Lifecycle:
|
|
417
|
+
Status: In Production
|
|
418
|
+
Deployed: 2023-01-15
|
|
419
|
+
Next Review: 2025-01-15
|
|
420
|
+
Retirement Date: 2026-01-15
|
|
421
|
+
|
|
422
|
+
Compliance:
|
|
423
|
+
- PCI DSS: Yes
|
|
424
|
+
- Encryption: Disk encrypted
|
|
425
|
+
- Patching: Current
|
|
426
|
+
- Backup: Daily
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
### CMDB Maintenance
|
|
430
|
+
|
|
431
|
+
**Keep CMDB Accurate:**
|
|
432
|
+
```yaml
|
|
433
|
+
Automated Updates:
|
|
434
|
+
- Discovery tools (daily scans)
|
|
435
|
+
- Integration with provisioning systems
|
|
436
|
+
- Change management updates
|
|
437
|
+
- Monitoring tool integration
|
|
438
|
+
|
|
439
|
+
Manual Updates:
|
|
440
|
+
- Quarterly reviews
|
|
441
|
+
- Annual audits
|
|
442
|
+
- Change implementation updates
|
|
443
|
+
- Decommissioning records
|
|
444
|
+
|
|
445
|
+
Reconciliation:
|
|
446
|
+
- Compare discovery vs CMDB
|
|
447
|
+
- Identify discrepancies
|
|
448
|
+
- Update or create CIs
|
|
449
|
+
- Archive decommissioned CIs
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
## Asset Lifecycle
|
|
453
|
+
|
|
454
|
+
### Hardware Lifecycle Stages
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
┌────────────────────────────────────────┐
|
|
458
|
+
│ 1. Planning │
|
|
459
|
+
│ - Identify need │
|
|
460
|
+
│ - Budget approval │
|
|
461
|
+
│ - Vendor selection │
|
|
462
|
+
└─────────┬──────────────────────────────┘
|
|
463
|
+
↓
|
|
464
|
+
┌────────────────────────────────────────┐
|
|
465
|
+
│ 2. Procurement │
|
|
466
|
+
│ - Purchase order │
|
|
467
|
+
│ - Delivery │
|
|
468
|
+
│ - Asset tag assignment │
|
|
469
|
+
└─────────┬──────────────────────────────┘
|
|
470
|
+
↓
|
|
471
|
+
┌────────────────────────────────────────┐
|
|
472
|
+
│ 3. Deployment │
|
|
473
|
+
│ - Configuration │
|
|
474
|
+
│ - Installation │
|
|
475
|
+
│ - User assignment │
|
|
476
|
+
│ - CMDB update │
|
|
477
|
+
└─────────┬──────────────────────────────┘
|
|
478
|
+
↓
|
|
479
|
+
┌────────────────────────────────────────┐
|
|
480
|
+
│ 4. Operations & Maintenance │
|
|
481
|
+
│ - Monitoring │
|
|
482
|
+
│ - Support │
|
|
483
|
+
│ - Updates │
|
|
484
|
+
│ - Repairs │
|
|
485
|
+
│ Duration: 2-5 years typically │
|
|
486
|
+
└─────────┬──────────────────────────────┘
|
|
487
|
+
↓
|
|
488
|
+
┌────────────────────────────────────────┐
|
|
489
|
+
│ 5. Refresh/Upgrade Decision │
|
|
490
|
+
│ - Performance review │
|
|
491
|
+
│ - Cost analysis │
|
|
492
|
+
│ - Technology assessment │
|
|
493
|
+
└─────────┬──────────────────────────────┘
|
|
494
|
+
↓
|
|
495
|
+
┌────────────────────────────────────────┐
|
|
496
|
+
│ 6. Retirement │
|
|
497
|
+
│ - Data sanitization │
|
|
498
|
+
│ - Decommissioning │
|
|
499
|
+
│ - Asset disposal │
|
|
500
|
+
│ - CMDB update (retired) │
|
|
501
|
+
└────────────────────────────────────────┘
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Refresh Cycles
|
|
505
|
+
|
|
506
|
+
```yaml
|
|
507
|
+
Typical Refresh Schedules:
|
|
508
|
+
|
|
509
|
+
End-User Devices:
|
|
510
|
+
Laptops: 3 years
|
|
511
|
+
Desktops: 4 years
|
|
512
|
+
Phones: 2 years
|
|
513
|
+
Monitors: 5 years
|
|
514
|
+
|
|
515
|
+
Servers:
|
|
516
|
+
Physical servers: 5 years
|
|
517
|
+
Storage arrays: 5 years
|
|
518
|
+
Network switches: 7 years
|
|
519
|
+
|
|
520
|
+
Reasons:
|
|
521
|
+
- Warranty expiration
|
|
522
|
+
- Performance degradation
|
|
523
|
+
- Technology obsolescence
|
|
524
|
+
- Lease end
|
|
525
|
+
- Security requirements
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
### Asset Disposal
|
|
529
|
+
|
|
530
|
+
**Secure Disposal Process:**
|
|
531
|
+
```yaml
|
|
532
|
+
1. Data Sanitization:
|
|
533
|
+
Laptops/Desktops:
|
|
534
|
+
- Boot to DBAN (Darik's Boot and Nuke)
|
|
535
|
+
- DoD 5220.22-M wipe (7-pass)
|
|
536
|
+
- Certificate of destruction
|
|
537
|
+
|
|
538
|
+
Servers:
|
|
539
|
+
- Remove all drives
|
|
540
|
+
- Dedicated drive shredding
|
|
541
|
+
- Physical destruction
|
|
542
|
+
|
|
543
|
+
Mobile Devices:
|
|
544
|
+
- Factory reset
|
|
545
|
+
- MDM wipe
|
|
546
|
+
- Remove SIM/SD cards
|
|
547
|
+
|
|
548
|
+
2. Physical Disposal:
|
|
549
|
+
Options:
|
|
550
|
+
- Trade-in (refurbished resale)
|
|
551
|
+
- E-waste recycling (certified vendor)
|
|
552
|
+
- Donation (after sanitization)
|
|
553
|
+
- Physical destruction (high-security)
|
|
554
|
+
|
|
555
|
+
3. Documentation:
|
|
556
|
+
- Certificate of data destruction
|
|
557
|
+
- Disposal receipt
|
|
558
|
+
- CMDB update (status: Disposed)
|
|
559
|
+
- Asset record retention (7 years for audit)
|
|
560
|
+
|
|
561
|
+
4. Environmental Compliance:
|
|
562
|
+
- WEEE Directive (EU)
|
|
563
|
+
- EPA regulations (US)
|
|
564
|
+
- R2 Certified recycler
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
## License Management
|
|
568
|
+
|
|
569
|
+
### License Optimization
|
|
570
|
+
|
|
571
|
+
**Reduce License Costs:**
|
|
572
|
+
```yaml
|
|
573
|
+
Strategies:
|
|
574
|
+
|
|
575
|
+
1. Identify Inactive Users:
|
|
576
|
+
Query:
|
|
577
|
+
SELECT user, last_login
|
|
578
|
+
FROM software_usage
|
|
579
|
+
WHERE product = 'Adobe Creative Cloud'
|
|
580
|
+
AND last_login < DATE_SUB(NOW(), INTERVAL 90 DAY)
|
|
581
|
+
|
|
582
|
+
Action: Reclaim 70 unused licenses
|
|
583
|
+
Savings: 70 × $55/month = $3,850/month
|
|
584
|
+
|
|
585
|
+
2. Right-Size License Types:
|
|
586
|
+
Example:
|
|
587
|
+
- 50 users have Office E5 ($35/month)
|
|
588
|
+
- Only use features in E3 ($20/month)
|
|
589
|
+
Action: Downgrade to E3
|
|
590
|
+
Savings: 50 × $15/month = $750/month
|
|
591
|
+
|
|
592
|
+
3. Consolidate Vendors:
|
|
593
|
+
Example:
|
|
594
|
+
- 3 different communication tools
|
|
595
|
+
- Standardize on one platform
|
|
596
|
+
Action: Eliminate redundant tools
|
|
597
|
+
Savings: $10,000/year
|
|
598
|
+
|
|
599
|
+
4. Negotiate Enterprise Agreements:
|
|
600
|
+
- Volume discounts
|
|
601
|
+
- Multi-year commitments
|
|
602
|
+
- Bundle purchasing
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
### Software Audit Preparation
|
|
606
|
+
|
|
607
|
+
```yaml
|
|
608
|
+
Vendor Audit Process:
|
|
609
|
+
|
|
610
|
+
1. Notification:
|
|
611
|
+
- Vendor requests audit (30-90 days notice)
|
|
612
|
+
- Identify audit scope
|
|
613
|
+
|
|
614
|
+
2. Preparation:
|
|
615
|
+
- Run discovery tools
|
|
616
|
+
- Compile license agreements
|
|
617
|
+
- Document deployments
|
|
618
|
+
- Calculate license position
|
|
619
|
+
|
|
620
|
+
3. Gap Analysis:
|
|
621
|
+
- Compare deployed vs licensed
|
|
622
|
+
- Identify shortfalls
|
|
623
|
+
- Calculate potential costs
|
|
624
|
+
|
|
625
|
+
4. Remediation (if needed):
|
|
626
|
+
- Purchase additional licenses
|
|
627
|
+
- Uninstall excess software
|
|
628
|
+
- Negotiate settlement
|
|
629
|
+
|
|
630
|
+
5. Audit Response:
|
|
631
|
+
- Submit documentation
|
|
632
|
+
- Provide deployment data
|
|
633
|
+
- Answer vendor questions
|
|
634
|
+
|
|
635
|
+
6. Post-Audit:
|
|
636
|
+
- Implement SAM process
|
|
637
|
+
- Regular compliance checks
|
|
638
|
+
- Improve tracking
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
## Best Practices
|
|
642
|
+
|
|
643
|
+
### 1. Automate Discovery
|
|
644
|
+
|
|
645
|
+
Use automated tools to maintain accurate inventory.
|
|
646
|
+
|
|
647
|
+
### 2. Standardize Asset Tagging
|
|
648
|
+
|
|
649
|
+
```yaml
|
|
650
|
+
Asset Tag Format: [TYPE]-[LOCATION]-[SEQUENCE]
|
|
651
|
+
|
|
652
|
+
Examples:
|
|
653
|
+
LAPTOP-NYC-00123
|
|
654
|
+
SRV-DC1-00045
|
|
655
|
+
NET-LON-00067
|
|
656
|
+
|
|
657
|
+
Benefits:
|
|
658
|
+
- Easy to identify asset type
|
|
659
|
+
- Know location at a glance
|
|
660
|
+
- Unique identifier
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
### 3. Regular Audits
|
|
664
|
+
|
|
665
|
+
```yaml
|
|
666
|
+
Audit Schedule:
|
|
667
|
+
- Physical inventory: Annually
|
|
668
|
+
- Software compliance: Quarterly
|
|
669
|
+
- CMDB reconciliation: Monthly
|
|
670
|
+
- High-value assets: Semi-annually
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
### 4. Lifecycle Planning
|
|
674
|
+
|
|
675
|
+
Budget for refresh cycles to avoid surprise costs.
|
|
676
|
+
|
|
677
|
+
### 5. Integration
|
|
678
|
+
|
|
679
|
+
Integrate ITAM with:
|
|
680
|
+
- Service desk (for requests and incidents)
|
|
681
|
+
- Procurement (for new assets)
|
|
682
|
+
- Financial systems (for depreciation)
|
|
683
|
+
- CMDB (for relationships)
|
|
684
|
+
- Change management (for updates)
|
|
685
|
+
|
|
686
|
+
### 6. Metrics and Reporting
|
|
687
|
+
|
|
688
|
+
```yaml
|
|
689
|
+
Key Metrics:
|
|
690
|
+
|
|
691
|
+
Financial:
|
|
692
|
+
- Total asset value
|
|
693
|
+
- Depreciation expense
|
|
694
|
+
- License compliance cost avoidance
|
|
695
|
+
|
|
696
|
+
Operational:
|
|
697
|
+
- Asset utilization rate
|
|
698
|
+
- Average asset age
|
|
699
|
+
- Refresh cycle adherence
|
|
700
|
+
|
|
701
|
+
Compliance:
|
|
702
|
+
- Software compliance %
|
|
703
|
+
- Audit findings (count)
|
|
704
|
+
- Unlicensed software instances
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
---
|
|
708
|
+
|
|
709
|
+
**Related Resources:**
|
|
710
|
+
- [itil-framework.md](itil-framework.md) - IT asset management practice
|
|
711
|
+
- [service-management.md](service-management.md) - Service catalog integration
|
|
712
|
+
- [it-governance.md](it-governance.md) - Asset management policies
|