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,491 @@
|
|
|
1
|
+
# Team Organization Patterns
|
|
2
|
+
|
|
3
|
+
**Modern infrastructure and platform engineering team structures for managers.**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The Platform Engineering Model
|
|
8
|
+
|
|
9
|
+
**Core concept:** Treat infrastructure as a product, with internal developers as customers.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Organization Structure:
|
|
13
|
+
|
|
14
|
+
Product Teams (Stream-Aligned)
|
|
15
|
+
├── Build customer-facing features
|
|
16
|
+
├── Own end-to-end delivery
|
|
17
|
+
├── Self-service via platform
|
|
18
|
+
└── Fast, autonomous delivery
|
|
19
|
+
|
|
20
|
+
Platform Team (Enabling)
|
|
21
|
+
├── Build internal developer platform
|
|
22
|
+
├── IaC, K8s, CI/CD, observability
|
|
23
|
+
├── Enable product teams
|
|
24
|
+
└── Focus: Developer experience
|
|
25
|
+
|
|
26
|
+
SRE Team (Enabling)
|
|
27
|
+
├── Reliability, monitoring, incidents
|
|
28
|
+
├── SLO definition and tracking
|
|
29
|
+
├── Production support and on-call
|
|
30
|
+
└── Focus: System reliability
|
|
31
|
+
|
|
32
|
+
Security Team (Enabling)
|
|
33
|
+
├── Security automation and tooling
|
|
34
|
+
├── Compliance and auditing
|
|
35
|
+
├── Threat modeling and response
|
|
36
|
+
└── Focus: Security guardrails
|
|
37
|
+
|
|
38
|
+
Shared Services
|
|
39
|
+
├── Data Platform
|
|
40
|
+
├── ML Platform
|
|
41
|
+
├── Internal Tools
|
|
42
|
+
└── Focus: Specialized capabilities
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Team Types (Team Topologies Framework)
|
|
48
|
+
|
|
49
|
+
### 1. Stream-Aligned Teams
|
|
50
|
+
**Purpose:** Build and deliver features to customers
|
|
51
|
+
|
|
52
|
+
**Characteristics:**
|
|
53
|
+
- End-to-end ownership of services/features
|
|
54
|
+
- Autonomous decision-making
|
|
55
|
+
- Cross-functional (engineering, product, design)
|
|
56
|
+
- Long-lived (stable teams)
|
|
57
|
+
|
|
58
|
+
**Examples:**
|
|
59
|
+
- Product feature teams
|
|
60
|
+
- Service teams (payments, notifications, etc.)
|
|
61
|
+
- Customer-facing application teams
|
|
62
|
+
|
|
63
|
+
**Manager considerations:**
|
|
64
|
+
- Keep teams small (5-8 people)
|
|
65
|
+
- Minimize dependencies on other teams
|
|
66
|
+
- Provide clear product goals and metrics
|
|
67
|
+
|
|
68
|
+
### 2. Platform Teams
|
|
69
|
+
**Purpose:** Build internal products that enable stream-aligned teams
|
|
70
|
+
|
|
71
|
+
**Characteristics:**
|
|
72
|
+
- Treat internal developers as customers
|
|
73
|
+
- Build self-service capabilities
|
|
74
|
+
- Focus on developer experience
|
|
75
|
+
- Maintain platform services
|
|
76
|
+
|
|
77
|
+
**Examples:**
|
|
78
|
+
- Developer platform team (CI/CD, IaC, K8s)
|
|
79
|
+
- Data platform team (pipelines, warehouses, analytics)
|
|
80
|
+
- ML platform team (training, deployment, serving)
|
|
81
|
+
|
|
82
|
+
**Manager considerations:**
|
|
83
|
+
- Hire for product thinking + technical depth
|
|
84
|
+
- Measure success by adoption and developer satisfaction
|
|
85
|
+
- Balance new features vs. reliability
|
|
86
|
+
- Avoid "build everything" - curate, don't dictate
|
|
87
|
+
|
|
88
|
+
### 3. Enabling Teams
|
|
89
|
+
**Purpose:** Provide expertise and help other teams overcome obstacles
|
|
90
|
+
|
|
91
|
+
**Characteristics:**
|
|
92
|
+
- Temporary engagement with teams
|
|
93
|
+
- Transfer knowledge and skills
|
|
94
|
+
- Don't own long-term delivery
|
|
95
|
+
- Specialists in specific areas
|
|
96
|
+
|
|
97
|
+
**Examples:**
|
|
98
|
+
- SRE team (reliability engineering)
|
|
99
|
+
- Security team (security best practices)
|
|
100
|
+
- Data engineering team (data architecture)
|
|
101
|
+
- Cloud engineering team (cloud migration)
|
|
102
|
+
|
|
103
|
+
**Manager considerations:**
|
|
104
|
+
- Hire specialists with teaching ability
|
|
105
|
+
- Time-box engagements (3-6 months)
|
|
106
|
+
- Measure success by team capability improvement
|
|
107
|
+
- Avoid becoming a bottleneck
|
|
108
|
+
|
|
109
|
+
### 4. Complicated Subsystem Teams
|
|
110
|
+
**Purpose:** Build and maintain complex subsystems requiring specialized knowledge
|
|
111
|
+
|
|
112
|
+
**Characteristics:**
|
|
113
|
+
- Deep technical expertise
|
|
114
|
+
- Narrow focus area
|
|
115
|
+
- Long-lived teams
|
|
116
|
+
- Provide capability to other teams
|
|
117
|
+
|
|
118
|
+
**Examples:**
|
|
119
|
+
- Database engineering (complex query optimization)
|
|
120
|
+
- Video encoding team (specialized codecs)
|
|
121
|
+
- Security cryptography team (PKI, encryption)
|
|
122
|
+
- Payment processing team (PCI compliance)
|
|
123
|
+
|
|
124
|
+
**Manager considerations:**
|
|
125
|
+
- Hire deep specialists
|
|
126
|
+
- Keep team small (3-5 people)
|
|
127
|
+
- Provide clear interfaces for other teams
|
|
128
|
+
- Balance specialization vs. organizational knowledge silos
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Common Team Structures
|
|
133
|
+
|
|
134
|
+
### Small Company (< 50 engineers)
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Flat Structure:
|
|
138
|
+
├── Engineering Manager
|
|
139
|
+
├── Full-stack product engineers (6-8)
|
|
140
|
+
├── 1-2 platform/infra engineers
|
|
141
|
+
└── Shared on-call rotation
|
|
142
|
+
|
|
143
|
+
Pros: Simple, fast, everyone does everything
|
|
144
|
+
Cons: No specialists, scaling challenges
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Mid-Size Company (50-200 engineers)
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Functional Teams:
|
|
151
|
+
├── VP Engineering
|
|
152
|
+
├── Product Engineering (3-4 teams)
|
|
153
|
+
├── Platform Engineering (1 team)
|
|
154
|
+
├── SRE (1 team)
|
|
155
|
+
└── Security (1-2 engineers embedded)
|
|
156
|
+
|
|
157
|
+
Pros: Specialization emerging, clear ownership
|
|
158
|
+
Cons: Potential silos, coordination overhead
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Large Company (200+ engineers)
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
Hybrid Platform Model:
|
|
165
|
+
├── VP Engineering
|
|
166
|
+
├── Product Org (multiple VPs)
|
|
167
|
+
│ ├── Payments teams
|
|
168
|
+
│ ├── User experience teams
|
|
169
|
+
│ └── Growth teams
|
|
170
|
+
├── Platform Org (VP Platform)
|
|
171
|
+
│ ├── Developer Experience team
|
|
172
|
+
│ ├── Cloud Infrastructure team
|
|
173
|
+
│ ├── Data Platform team
|
|
174
|
+
│ └── ML Platform team
|
|
175
|
+
├── SRE Org (Director SRE)
|
|
176
|
+
│ ├── Production SRE team
|
|
177
|
+
│ ├── Observability team
|
|
178
|
+
│ └── Incident Management team
|
|
179
|
+
└── Security Org (CISO)
|
|
180
|
+
├── AppSec team
|
|
181
|
+
├── Infrastructure Security team
|
|
182
|
+
└── Compliance team
|
|
183
|
+
|
|
184
|
+
Pros: Clear specialization, scalable
|
|
185
|
+
Cons: Coordination complexity, potential ivory towers
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Platform Team Structure
|
|
191
|
+
|
|
192
|
+
**Typical platform team composition:**
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
Platform Engineering Team (8-12 people):
|
|
196
|
+
├── Team Lead / Staff Engineer (1)
|
|
197
|
+
│ └── Technical direction, architecture
|
|
198
|
+
├── Senior Engineers (3-4)
|
|
199
|
+
│ ├── IaC and cloud infrastructure
|
|
200
|
+
│ ├── Kubernetes and container orchestration
|
|
201
|
+
│ ├── CI/CD pipelines and automation
|
|
202
|
+
│ └── Observability and monitoring
|
|
203
|
+
├── Mid-level Engineers (3-4)
|
|
204
|
+
│ └── Feature development, maintenance
|
|
205
|
+
└── Product Manager (1, optional)
|
|
206
|
+
└── Roadmap, prioritization, developer experience
|
|
207
|
+
|
|
208
|
+
Responsibilities:
|
|
209
|
+
├── Internal developer platform (IDP)
|
|
210
|
+
├── Self-service infrastructure provisioning
|
|
211
|
+
├── CI/CD pipeline templates and tools
|
|
212
|
+
├── Kubernetes clusters and management
|
|
213
|
+
├── Observability stack (logs, metrics, traces)
|
|
214
|
+
├── Infrastructure as Code (Terraform, Pulumi)
|
|
215
|
+
└── Developer documentation and onboarding
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## SRE Team Structure
|
|
221
|
+
|
|
222
|
+
**Typical SRE team composition:**
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
SRE Team (6-10 people):
|
|
226
|
+
├── SRE Manager (1)
|
|
227
|
+
│ └── On-call management, incident process
|
|
228
|
+
├── Senior SREs (2-3)
|
|
229
|
+
│ ├── SLO definition and tracking
|
|
230
|
+
│ ├── Incident response and postmortems
|
|
231
|
+
│ ├── Capacity planning
|
|
232
|
+
│ └── Reliability architecture
|
|
233
|
+
├── SREs (3-4)
|
|
234
|
+
│ ├── Monitoring and alerting
|
|
235
|
+
│ ├── Automation and toil reduction
|
|
236
|
+
│ ├── Production support
|
|
237
|
+
│ └── On-call rotation
|
|
238
|
+
└── Observability Engineer (1, optional)
|
|
239
|
+
└── Tracing, metrics, logs infrastructure
|
|
240
|
+
|
|
241
|
+
Responsibilities:
|
|
242
|
+
├── Define and track SLOs
|
|
243
|
+
├── Incident response and management
|
|
244
|
+
├── Production on-call rotation
|
|
245
|
+
├── Capacity planning and scaling
|
|
246
|
+
├── Reliability improvements
|
|
247
|
+
├── Monitoring, alerting, observability
|
|
248
|
+
└── Postmortems and learning
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Security Team Structure
|
|
254
|
+
|
|
255
|
+
**Typical security team composition:**
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
Security Engineering Team (6-8 people):
|
|
259
|
+
├── Security Manager / CISO (1)
|
|
260
|
+
│ └── Strategy, compliance, risk management
|
|
261
|
+
├── AppSec Engineers (2-3)
|
|
262
|
+
│ ├── SAST/DAST scanning
|
|
263
|
+
│ ├── Vulnerability management
|
|
264
|
+
│ ├── Secure code review
|
|
265
|
+
│ └── Security testing
|
|
266
|
+
├── Infrastructure Security Engineers (2-3)
|
|
267
|
+
│ ├── Cloud security posture (CSPM)
|
|
268
|
+
│ ├── Container security
|
|
269
|
+
│ ├── Secrets management
|
|
270
|
+
│ └── Network security
|
|
271
|
+
└── Compliance Engineer (1)
|
|
272
|
+
└── FedRAMP, SOC2, ISO 27001, HIPAA
|
|
273
|
+
|
|
274
|
+
Responsibilities:
|
|
275
|
+
├── Security scanning and testing
|
|
276
|
+
├── Vulnerability management
|
|
277
|
+
├── Compliance automation
|
|
278
|
+
├── Security architecture review
|
|
279
|
+
├── Incident response (security)
|
|
280
|
+
├── Threat modeling
|
|
281
|
+
└── Security awareness training
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Reporting Structures
|
|
287
|
+
|
|
288
|
+
### Option 1: Centralized Platform Org
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
CTO
|
|
292
|
+
├── VP Product Engineering
|
|
293
|
+
│ └── Product teams
|
|
294
|
+
└── VP Platform Engineering
|
|
295
|
+
├── Platform team
|
|
296
|
+
├── SRE team
|
|
297
|
+
├── Security team
|
|
298
|
+
└── Data team
|
|
299
|
+
|
|
300
|
+
Pros: Clear platform ownership, shared roadmap
|
|
301
|
+
Cons: Potential disconnect from product needs
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Option 2: Embedded Model
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
CTO
|
|
308
|
+
├── VP Engineering (Product A)
|
|
309
|
+
│ ├── Product teams
|
|
310
|
+
│ └── Embedded platform engineers (2-3)
|
|
311
|
+
├── VP Engineering (Product B)
|
|
312
|
+
│ ├── Product teams
|
|
313
|
+
│ └── Embedded platform engineers (2-3)
|
|
314
|
+
└── Platform CoE (Center of Excellence)
|
|
315
|
+
└── Platform standards, tooling, best practices
|
|
316
|
+
|
|
317
|
+
Pros: Platform engineers close to product needs
|
|
318
|
+
Cons: Fragmentation, inconsistent standards
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Option 3: Hybrid (Recommended)
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
CTO
|
|
325
|
+
├── VP Product Engineering
|
|
326
|
+
│ └── Product teams (consume platform)
|
|
327
|
+
├── VP Platform Engineering
|
|
328
|
+
│ ├── Platform team (builds platform)
|
|
329
|
+
│ └── SRE team (reliability)
|
|
330
|
+
└── CISO
|
|
331
|
+
└── Security team (enables secure development)
|
|
332
|
+
|
|
333
|
+
+ Embedded Platform Liaisons in product orgs
|
|
334
|
+
|
|
335
|
+
Pros: Balance of centralization and embedded support
|
|
336
|
+
Cons: Requires strong communication and coordination
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Anti-Patterns to Avoid
|
|
342
|
+
|
|
343
|
+
### 1. The Ivory Tower Platform Team
|
|
344
|
+
**Problem:** Platform team builds what they think is cool, not what product teams need
|
|
345
|
+
|
|
346
|
+
**Symptoms:**
|
|
347
|
+
- Low adoption of platform tools
|
|
348
|
+
- Product teams build workarounds
|
|
349
|
+
- Platform team frustrated by "resistance"
|
|
350
|
+
|
|
351
|
+
**Fix:**
|
|
352
|
+
- Treat platform as a product
|
|
353
|
+
- Regular user research with product teams
|
|
354
|
+
- Measure adoption and satisfaction
|
|
355
|
+
|
|
356
|
+
### 2. The Ops Ticket Queue
|
|
357
|
+
**Problem:** Platform/SRE team becomes a ticket queue for product teams
|
|
358
|
+
|
|
359
|
+
**Symptoms:**
|
|
360
|
+
- Long wait times for infrastructure changes
|
|
361
|
+
- Platform team constantly reacting
|
|
362
|
+
- No time for strategic work
|
|
363
|
+
|
|
364
|
+
**Fix:**
|
|
365
|
+
- Build self-service capabilities
|
|
366
|
+
- Automate common requests
|
|
367
|
+
- Set clear boundaries on support
|
|
368
|
+
|
|
369
|
+
### 3. The "You Build It, You Run It" Extreme
|
|
370
|
+
**Problem:** Every team owns their infrastructure with no centralization
|
|
371
|
+
|
|
372
|
+
**Symptoms:**
|
|
373
|
+
- Inconsistent tooling and practices
|
|
374
|
+
- Duplicated effort across teams
|
|
375
|
+
- Security and compliance issues
|
|
376
|
+
|
|
377
|
+
**Fix:**
|
|
378
|
+
- Provide platform as a paved path
|
|
379
|
+
- Make it easy to do the right thing
|
|
380
|
+
- Balance autonomy with guardrails
|
|
381
|
+
|
|
382
|
+
### 4. The Matrix Organization
|
|
383
|
+
**Problem:** Engineers report to multiple managers (functional + product)
|
|
384
|
+
|
|
385
|
+
**Symptoms:**
|
|
386
|
+
- Conflicting priorities
|
|
387
|
+
- Unclear accountability
|
|
388
|
+
- Engineer confusion and stress
|
|
389
|
+
|
|
390
|
+
**Fix:**
|
|
391
|
+
- Clear single reporting line
|
|
392
|
+
- Dotted-line relationships documented
|
|
393
|
+
- Explicit priority-setting process
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Team Sizing Guidelines
|
|
398
|
+
|
|
399
|
+
**General rules:**
|
|
400
|
+
- **Small teams:** 5-8 people (optimal)
|
|
401
|
+
- **Manager span:** 6-10 direct reports (IC managers)
|
|
402
|
+
- **Manager of managers:** 4-7 managers (senior managers)
|
|
403
|
+
- **Cross-functional teams:** Include product, design, engineering
|
|
404
|
+
|
|
405
|
+
**Platform team sizing:**
|
|
406
|
+
- 1 platform engineer per 20-30 product engineers (rough ratio)
|
|
407
|
+
- Adjust based on complexity and maturity
|
|
408
|
+
|
|
409
|
+
**SRE team sizing:**
|
|
410
|
+
- 1 SRE per 50-100 engineers (mature organizations)
|
|
411
|
+
- 1 SRE per 20-40 engineers (growing organizations)
|
|
412
|
+
- Higher ratio for complex distributed systems
|
|
413
|
+
|
|
414
|
+
**Security team sizing:**
|
|
415
|
+
- 1 security engineer per 50-75 engineers
|
|
416
|
+
- Scale up for regulated industries (finance, healthcare)
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
## Organizational Maturity Levels
|
|
421
|
+
|
|
422
|
+
### Level 1: Ad Hoc (< 20 engineers)
|
|
423
|
+
- Everyone does everything
|
|
424
|
+
- No formal platform team
|
|
425
|
+
- Manual processes
|
|
426
|
+
|
|
427
|
+
**Focus:** Hire generalists, establish basic practices
|
|
428
|
+
|
|
429
|
+
### Level 2: Emerging (20-50 engineers)
|
|
430
|
+
- First platform engineers hired
|
|
431
|
+
- Basic automation in place
|
|
432
|
+
- Some team specialization
|
|
433
|
+
|
|
434
|
+
**Focus:** Build foundational platform capabilities
|
|
435
|
+
|
|
436
|
+
### Level 3: Structured (50-200 engineers)
|
|
437
|
+
- Dedicated platform team
|
|
438
|
+
- SRE function established
|
|
439
|
+
- Clear team boundaries
|
|
440
|
+
|
|
441
|
+
**Focus:** Scale platform, improve developer experience
|
|
442
|
+
|
|
443
|
+
### Level 4: Optimizing (200+ engineers)
|
|
444
|
+
- Multiple specialized teams
|
|
445
|
+
- Platform treated as product
|
|
446
|
+
- Self-service infrastructure
|
|
447
|
+
|
|
448
|
+
**Focus:** Continuous improvement, innovation
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Communication and Collaboration
|
|
453
|
+
|
|
454
|
+
**Cross-team coordination mechanisms:**
|
|
455
|
+
|
|
456
|
+
1. **Platform Council** (weekly/bi-weekly)
|
|
457
|
+
- Platform team + representatives from product teams
|
|
458
|
+
- Discuss priorities, blockers, feedback
|
|
459
|
+
- Make decisions on platform roadmap
|
|
460
|
+
|
|
461
|
+
2. **Architecture Review** (as needed)
|
|
462
|
+
- Proposed design presented
|
|
463
|
+
- Cross-team feedback
|
|
464
|
+
- Identify dependencies and risks
|
|
465
|
+
|
|
466
|
+
3. **Incident Reviews** (after major incidents)
|
|
467
|
+
- Blameless postmortem
|
|
468
|
+
- Cross-team participation
|
|
469
|
+
- Action items for improvement
|
|
470
|
+
|
|
471
|
+
4. **All-hands** (monthly)
|
|
472
|
+
- Share progress and wins
|
|
473
|
+
- Celebrate team achievements
|
|
474
|
+
- Build cross-team awareness
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
## Key Takeaways for Managers
|
|
479
|
+
|
|
480
|
+
1. **Choose the right team structure** for your org size and maturity
|
|
481
|
+
2. **Treat platform as a product** with internal customers
|
|
482
|
+
3. **Enable, don't control** - provide guardrails, not gates
|
|
483
|
+
4. **Keep teams small** (5-8 people) for maximum effectiveness
|
|
484
|
+
5. **Minimize dependencies** between teams
|
|
485
|
+
6. **Measure adoption and satisfaction**, not just output
|
|
486
|
+
7. **Avoid ivory towers** - stay close to customer needs
|
|
487
|
+
8. **Balance centralization and autonomy**
|
|
488
|
+
9. **Clear reporting lines** - no matrix management
|
|
489
|
+
10. **Invest in communication** across teams
|
|
490
|
+
|
|
491
|
+
Your team structure should enable fast, autonomous delivery while maintaining quality, security, and reliability.
|