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,600 @@
|
|
|
1
|
+
# Platform Architecture Overview
|
|
2
|
+
|
|
3
|
+
Comprehensive guide to platform architecture patterns, layering strategies, and decision frameworks for building scalable infrastructure.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
- [Architecture Patterns](#architecture-patterns)
|
|
7
|
+
- [Platform Layers](#platform-layers)
|
|
8
|
+
- [Reference Architectures](#reference-architectures)
|
|
9
|
+
- [Decision Frameworks](#decision-frameworks)
|
|
10
|
+
- [Design Principles](#design-principles)
|
|
11
|
+
|
|
12
|
+
## Architecture Patterns
|
|
13
|
+
|
|
14
|
+
### 1. Three-Tier Platform Architecture
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
┌────────────────────────────────────────────────────────────┐
|
|
18
|
+
│ PRESENTATION TIER │
|
|
19
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
20
|
+
│ │ Web Apps │ │ Mobile Apps │ │ APIs │ │
|
|
21
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
22
|
+
└────────────────────────────────────────────────────────────┘
|
|
23
|
+
│
|
|
24
|
+
┌────────────────────────────────────────────────────────────┐
|
|
25
|
+
│ APPLICATION TIER │
|
|
26
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
27
|
+
│ │ Services │ │ Business │ │ API Gateway │ │
|
|
28
|
+
│ │ │ │ Logic │ │ │ │
|
|
29
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
│
|
|
32
|
+
┌────────────────────────────────────────────────────────────┐
|
|
33
|
+
│ DATA TIER │
|
|
34
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
35
|
+
│ │ Databases │ │ Caches │ │ Queues │ │
|
|
36
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
37
|
+
└────────────────────────────────────────────────────────────┘
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**When to Use:**
|
|
41
|
+
- Traditional web applications
|
|
42
|
+
- Monolithic architecture migrations
|
|
43
|
+
- Clear separation of concerns needed
|
|
44
|
+
- Team boundaries align with tiers
|
|
45
|
+
|
|
46
|
+
### 2. Microservices Architecture
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
50
|
+
│ API Gateway / Ingress │
|
|
51
|
+
└─────────────────────────────────────────────────────────────┘
|
|
52
|
+
│ │ │ │
|
|
53
|
+
┌──────▼──────┐ ┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
|
|
54
|
+
│ Service │ │ Service │ │ Service │ │ Service │
|
|
55
|
+
│ A │ │ B │ │ C │ │ D │
|
|
56
|
+
└─────┬───────┘ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘
|
|
57
|
+
│ │ │ │
|
|
58
|
+
┌─────▼──────┐ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐
|
|
59
|
+
│ Database │ │ Database│ │ Database│ │ Database│
|
|
60
|
+
│ A │ │ B │ │ C │ │ D │
|
|
61
|
+
└────────────┘ └─────────┘ └─────────┘ └─────────┘
|
|
62
|
+
|
|
63
|
+
Service Mesh (Optional): Istio, Linkerd for service-to-service communication
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Characteristics:**
|
|
67
|
+
- Services own their data
|
|
68
|
+
- Independent deployment lifecycles
|
|
69
|
+
- Bounded contexts per domain
|
|
70
|
+
- Decentralized governance
|
|
71
|
+
|
|
72
|
+
**Trade-offs:**
|
|
73
|
+
- **Pros:** Scalability, team autonomy, technology diversity
|
|
74
|
+
- **Cons:** Complexity, distributed systems challenges, operational overhead
|
|
75
|
+
|
|
76
|
+
### 3. Platform Engineering Layered Model
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
┌────────────────────────────────────────────────────────────┐
|
|
80
|
+
│ Developer Interface Layer │
|
|
81
|
+
│ │
|
|
82
|
+
│ ┌──────────────┐ ┌───────────────┐ ┌────────────────┐ │
|
|
83
|
+
│ │ Developer │ │ Portal/UI │ │ CLI Tools │ │
|
|
84
|
+
│ │ Portal │ │ (Backstage) │ │ (kubectl,etc) │ │
|
|
85
|
+
│ └──────────────┘ └───────────────┘ └────────────────┘ │
|
|
86
|
+
└────────────────────────────────────────────────────────────┘
|
|
87
|
+
│
|
|
88
|
+
┌────────────────────────────────────────────────────────────┐
|
|
89
|
+
│ Platform Capabilities Layer │
|
|
90
|
+
│ │
|
|
91
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
|
|
92
|
+
│ │ CI/CD │ │ Secrets │ │ Observ. │ │ Service │ │
|
|
93
|
+
│ │ │ │ Mgmt │ │ │ │ Mesh │ │
|
|
94
|
+
│ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
|
|
95
|
+
└────────────────────────────────────────────────────────────┘
|
|
96
|
+
│
|
|
97
|
+
┌────────────────────────────────────────────────────────────┐
|
|
98
|
+
│ Orchestration Layer │
|
|
99
|
+
│ │
|
|
100
|
+
│ ┌────────────────────────────────────┐ │
|
|
101
|
+
│ │ Kubernetes Cluster │ │
|
|
102
|
+
│ │ (or ECS, Nomad, Cloud Run) │ │
|
|
103
|
+
│ └────────────────────────────────────┘ │
|
|
104
|
+
└────────────────────────────────────────────────────────────┘
|
|
105
|
+
│
|
|
106
|
+
┌────────────────────────────────────────────────────────────┐
|
|
107
|
+
│ Infrastructure Layer │
|
|
108
|
+
│ │
|
|
109
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
|
|
110
|
+
│ │ Compute │ │ Network │ │ Storage │ │ Security │ │
|
|
111
|
+
│ │ (VMs, │ │ (VPC, │ │ (EBS, │ │ (IAM, │ │
|
|
112
|
+
│ │ Nodes) │ │ LB,SG) │ │ PV) │ │ KMS) │ │
|
|
113
|
+
│ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
|
|
114
|
+
└────────────────────────────────────────────────────────────┘
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Layer Responsibilities:**
|
|
118
|
+
|
|
119
|
+
**Developer Interface:**
|
|
120
|
+
- Self-service portals and APIs
|
|
121
|
+
- Documentation and discovery
|
|
122
|
+
- Templates and scaffolding
|
|
123
|
+
- Developer workflows
|
|
124
|
+
|
|
125
|
+
**Platform Capabilities:**
|
|
126
|
+
- Shared services used by applications
|
|
127
|
+
- Policy enforcement
|
|
128
|
+
- Security and compliance
|
|
129
|
+
- Observability and monitoring
|
|
130
|
+
|
|
131
|
+
**Orchestration:**
|
|
132
|
+
- Container/workload scheduling
|
|
133
|
+
- Service discovery
|
|
134
|
+
- Load balancing
|
|
135
|
+
- Auto-scaling
|
|
136
|
+
|
|
137
|
+
**Infrastructure:**
|
|
138
|
+
- Compute resources (VMs, bare metal)
|
|
139
|
+
- Networking (VPC, subnets, routing)
|
|
140
|
+
- Storage (block, object, file)
|
|
141
|
+
- Security (identity, encryption, firewalls)
|
|
142
|
+
|
|
143
|
+
### 4. Hub and Spoke Network Architecture
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
┌──────────────────┐
|
|
147
|
+
│ Hub Network │
|
|
148
|
+
│ │
|
|
149
|
+
│ ┌────────────┐ │
|
|
150
|
+
│ │ Firewall │ │
|
|
151
|
+
│ │ / VPN │ │
|
|
152
|
+
│ └────────────┘ │
|
|
153
|
+
│ │
|
|
154
|
+
│ ┌────────────┐ │
|
|
155
|
+
│ │ Shared │ │
|
|
156
|
+
│ │ Services │ │
|
|
157
|
+
│ └────────────┘ │
|
|
158
|
+
└────┬────┬────┬───┘
|
|
159
|
+
│ │ │
|
|
160
|
+
┌─────────────┘ │ └─────────────┐
|
|
161
|
+
│ │ │
|
|
162
|
+
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐
|
|
163
|
+
│ Spoke 1 │ │ Spoke 2 │ │ Spoke 3 │
|
|
164
|
+
│ │ │ │ │ │
|
|
165
|
+
│ Production │ │ Staging │ │ Dev │
|
|
166
|
+
│ Workloads │ │ Workloads │ │ Workloads │
|
|
167
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Benefits:**
|
|
171
|
+
- Centralized security controls
|
|
172
|
+
- Simplified network management
|
|
173
|
+
- Cost-effective (shared egress)
|
|
174
|
+
- Environment isolation
|
|
175
|
+
|
|
176
|
+
### 5. Multi-Region Active-Active Architecture
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
180
|
+
│ Global Load Balancer │
|
|
181
|
+
│ (Route 53, Cloud DNS, Traffic Mgr) │
|
|
182
|
+
└──────────────────────┬──────────────────┬───────────────────┘
|
|
183
|
+
│ │
|
|
184
|
+
┌──────────────▼────────┐ ┌──────▼──────────────────┐
|
|
185
|
+
│ Region A (US) │ │ Region B (EU) │
|
|
186
|
+
│ │ │ │
|
|
187
|
+
│ ┌─────────────────┐ │ │ ┌─────────────────┐ │
|
|
188
|
+
│ │ Application │ │ │ │ Application │ │
|
|
189
|
+
│ │ Tier │ │ │ │ Tier │ │
|
|
190
|
+
│ └─────────────────┘ │ │ └─────────────────┘ │
|
|
191
|
+
│ │ │ │
|
|
192
|
+
│ ┌─────────────────┐ │ │ ┌─────────────────┐ │
|
|
193
|
+
│ │ Database │◄─┼──┼─►│ Database │ │
|
|
194
|
+
│ │ (Primary) │ │ │ │ (Replica) │ │
|
|
195
|
+
│ └─────────────────┘ │ │ └─────────────────┘ │
|
|
196
|
+
└───────────────────────┘ └─────────────────────────┘
|
|
197
|
+
│ │
|
|
198
|
+
└──────────┬─────────────────┘
|
|
199
|
+
│
|
|
200
|
+
Global Data Sync
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Considerations:**
|
|
204
|
+
- Data consistency (eventual vs strong)
|
|
205
|
+
- Conflict resolution strategies
|
|
206
|
+
- Latency optimization
|
|
207
|
+
- Disaster recovery
|
|
208
|
+
|
|
209
|
+
## Platform Layers
|
|
210
|
+
|
|
211
|
+
### Layer 1: Infrastructure (Foundation)
|
|
212
|
+
|
|
213
|
+
**Components:**
|
|
214
|
+
- Compute: EC2, Azure VMs, GCE, bare metal
|
|
215
|
+
- Network: VPC, subnets, security groups, load balancers
|
|
216
|
+
- Storage: EBS, S3, Azure Blob, Google Cloud Storage
|
|
217
|
+
- Identity: IAM, Azure AD, Google Cloud IAM
|
|
218
|
+
|
|
219
|
+
**IaC Example (Terraform):**
|
|
220
|
+
```hcl
|
|
221
|
+
# VPC Module
|
|
222
|
+
module "vpc" {
|
|
223
|
+
source = "../modules/vpc"
|
|
224
|
+
|
|
225
|
+
cidr_block = "10.0.0.0/16"
|
|
226
|
+
availability_zones = ["us-east-1a", "us-east-1b", "us-east-1c"]
|
|
227
|
+
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
|
|
228
|
+
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
|
|
229
|
+
|
|
230
|
+
enable_nat_gateway = true
|
|
231
|
+
enable_dns_hostnames = true
|
|
232
|
+
|
|
233
|
+
tags = {
|
|
234
|
+
Environment = "production"
|
|
235
|
+
ManagedBy = "terraform"
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Layer 2: Orchestration (Kubernetes)
|
|
241
|
+
|
|
242
|
+
**Cluster Architecture:**
|
|
243
|
+
```
|
|
244
|
+
┌────────────────────────────────────────────────────────┐
|
|
245
|
+
│ Control Plane │
|
|
246
|
+
│ (Managed: EKS, GKE, AKS OR Self-managed) │
|
|
247
|
+
└────────────────────────────────────────────────────────┘
|
|
248
|
+
│
|
|
249
|
+
┌────────────────────────────────────────────────────────┐
|
|
250
|
+
│ Node Groups │
|
|
251
|
+
│ │
|
|
252
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
253
|
+
│ │ System │ │ Application │ │ Stateful │ │
|
|
254
|
+
│ │ Nodes │ │ Nodes │ │ Nodes │ │
|
|
255
|
+
│ │ │ │ │ │ │ │
|
|
256
|
+
│ │ (Monitoring, │ │ (Services) │ │ (Databases) │ │
|
|
257
|
+
│ │ Ingress) │ │ │ │ │ │
|
|
258
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
259
|
+
└────────────────────────────────────────────────────────┘
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Node Group Strategy:**
|
|
263
|
+
- **System nodes:** Platform components (monitoring, ingress, DNS)
|
|
264
|
+
- **Application nodes:** User workloads with autoscaling
|
|
265
|
+
- **Stateful nodes:** Databases, queues (often separate clusters)
|
|
266
|
+
|
|
267
|
+
### Layer 3: Platform Services
|
|
268
|
+
|
|
269
|
+
**Core Services:**
|
|
270
|
+
|
|
271
|
+
1. **CI/CD Pipeline:**
|
|
272
|
+
- GitHub Actions, GitLab CI, Jenkins, CircleCI
|
|
273
|
+
- ArgoCD/Flux for GitOps deployment
|
|
274
|
+
- Image registry (ECR, Docker Hub, Harbor)
|
|
275
|
+
|
|
276
|
+
2. **Observability Stack:**
|
|
277
|
+
- Metrics: Prometheus + Thanos (long-term storage)
|
|
278
|
+
- Logs: Loki, ELK stack, Cloud Logging
|
|
279
|
+
- Tracing: Jaeger, Zipkin, Tempo
|
|
280
|
+
- Dashboards: Grafana
|
|
281
|
+
|
|
282
|
+
3. **Security Services:**
|
|
283
|
+
- Secrets: Vault, AWS Secrets Manager, Sealed Secrets
|
|
284
|
+
- Certificate management: cert-manager + Let's Encrypt
|
|
285
|
+
- Policy enforcement: OPA, Kyverno, Pod Security Standards
|
|
286
|
+
- Vulnerability scanning: Trivy, Snyk, Aqua
|
|
287
|
+
|
|
288
|
+
4. **Service Mesh (Optional):**
|
|
289
|
+
- Istio, Linkerd, Consul
|
|
290
|
+
- mTLS between services
|
|
291
|
+
- Traffic management and canary deployments
|
|
292
|
+
- Observability and tracing
|
|
293
|
+
|
|
294
|
+
### Layer 4: Developer Experience
|
|
295
|
+
|
|
296
|
+
**Self-Service Portal Features:**
|
|
297
|
+
```yaml
|
|
298
|
+
# Backstage software catalog example
|
|
299
|
+
apiVersion: backstage.io/v1alpha1
|
|
300
|
+
kind: Component
|
|
301
|
+
metadata:
|
|
302
|
+
name: payment-service
|
|
303
|
+
description: Payment processing microservice
|
|
304
|
+
annotations:
|
|
305
|
+
github.com/project-slug: company/payment-service
|
|
306
|
+
pagerduty.com/integration-key: abc123
|
|
307
|
+
spec:
|
|
308
|
+
type: service
|
|
309
|
+
lifecycle: production
|
|
310
|
+
owner: payments-team
|
|
311
|
+
system: payment-platform
|
|
312
|
+
|
|
313
|
+
# Self-service actions
|
|
314
|
+
providesApis:
|
|
315
|
+
- payment-api-v1
|
|
316
|
+
consumesApis:
|
|
317
|
+
- fraud-detection-api
|
|
318
|
+
dependsOn:
|
|
319
|
+
- resource:postgres-payment-db
|
|
320
|
+
- resource:redis-cache
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**Developer Portal Capabilities:**
|
|
324
|
+
- Service catalog and documentation
|
|
325
|
+
- Software templates for scaffolding
|
|
326
|
+
- CI/CD pipeline triggers
|
|
327
|
+
- Environment provisioning
|
|
328
|
+
- Cost visibility per service
|
|
329
|
+
- On-call schedules and runbooks
|
|
330
|
+
|
|
331
|
+
## Reference Architectures
|
|
332
|
+
|
|
333
|
+
### AWS EKS Platform
|
|
334
|
+
|
|
335
|
+
```
|
|
336
|
+
┌────────────────────────────────────────────────────────────┐
|
|
337
|
+
│ AWS Cloud │
|
|
338
|
+
│ │
|
|
339
|
+
│ ┌──────────────────────────────────────────────────────┐ │
|
|
340
|
+
│ │ Route 53 (DNS) │ │
|
|
341
|
+
│ └─────────────────────┬────────────────────────────────┘ │
|
|
342
|
+
│ │ │
|
|
343
|
+
│ ┌─────────────────────▼────────────────────────────────┐ │
|
|
344
|
+
│ │ Application Load Balancer (ALB) │ │
|
|
345
|
+
│ └─────────────────────┬────────────────────────────────┘ │
|
|
346
|
+
│ │ │
|
|
347
|
+
│ ┌─────────────────────▼────────────────────────────────┐ │
|
|
348
|
+
│ │ EKS Cluster (Control Plane) │ │
|
|
349
|
+
│ │ │ │
|
|
350
|
+
│ │ ┌────────────────────────────────────────────────┐ │ │
|
|
351
|
+
│ │ │ VPC (10.0.0.0/16) │ │ │
|
|
352
|
+
│ │ │ │ │ │
|
|
353
|
+
│ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │
|
|
354
|
+
│ │ │ │ Private │ │ Private │ │ │ │
|
|
355
|
+
│ │ │ │ Subnet AZ1 │ │ Subnet AZ2 │ │ │ │
|
|
356
|
+
│ │ │ │ │ │ │ │ │ │
|
|
357
|
+
│ │ │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ │ │
|
|
358
|
+
│ │ │ │ │ EKS Node │ │ │ │ EKS Node │ │ │ │ │
|
|
359
|
+
│ │ │ │ │ Group │ │ │ │ Group │ │ │ │ │
|
|
360
|
+
│ │ │ │ └──────────┘ │ │ └──────────┘ │ │ │ │
|
|
361
|
+
│ │ │ └──────────────┘ └──────────────┘ │ │ │
|
|
362
|
+
│ │ │ │ │ │
|
|
363
|
+
│ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │
|
|
364
|
+
│ │ │ │ Public │ │ Public │ │ │ │
|
|
365
|
+
│ │ │ │ Subnet AZ1 │ │ Subnet AZ2 │ │ │ │
|
|
366
|
+
│ │ │ │ (NAT Gateway)│ │ (NAT Gateway)│ │ │ │
|
|
367
|
+
│ │ │ └──────────────┘ └──────────────┘ │ │ │
|
|
368
|
+
│ │ └────────────────────────────────────────────────┘ │ │
|
|
369
|
+
│ └──────────────────────────────────────────────────────┘ │
|
|
370
|
+
│ │
|
|
371
|
+
│ ┌──────────────────────────────────────────────────────┐ │
|
|
372
|
+
│ │ Supporting Services │ │
|
|
373
|
+
│ │ - RDS (Postgres/MySQL) │ │
|
|
374
|
+
│ │ - ElastiCache (Redis) │ │
|
|
375
|
+
│ │ - S3 (Object Storage) │ │
|
|
376
|
+
│ │ - ECR (Container Registry) │ │
|
|
377
|
+
│ │ - Secrets Manager │ │
|
|
378
|
+
│ │ - CloudWatch (Monitoring) │ │
|
|
379
|
+
│ └──────────────────────────────────────────────────────┘ │
|
|
380
|
+
└────────────────────────────────────────────────────────────┘
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Google Cloud GKE Platform
|
|
384
|
+
|
|
385
|
+
```
|
|
386
|
+
┌────────────────────────────────────────────────────────────┐
|
|
387
|
+
│ Google Cloud Platform │
|
|
388
|
+
│ │
|
|
389
|
+
│ Cloud DNS → Cloud Load Balancer → GKE Cluster │
|
|
390
|
+
│ │
|
|
391
|
+
│ Services: │
|
|
392
|
+
│ - Cloud SQL (PostgreSQL) │
|
|
393
|
+
│ - Memorystore (Redis) │
|
|
394
|
+
│ - Cloud Storage (Objects) │
|
|
395
|
+
│ - Artifact Registry (Containers) │
|
|
396
|
+
│ - Secret Manager │
|
|
397
|
+
│ - Cloud Operations (Monitoring/Logging) │
|
|
398
|
+
│ │
|
|
399
|
+
│ Networking: │
|
|
400
|
+
│ - VPC with private Google access │
|
|
401
|
+
│ - Cloud NAT for egress │
|
|
402
|
+
│ - Private GKE cluster │
|
|
403
|
+
└────────────────────────────────────────────────────────────┘
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
## Decision Frameworks
|
|
407
|
+
|
|
408
|
+
### When to Use Kubernetes vs. Serverless
|
|
409
|
+
|
|
410
|
+
**Use Kubernetes when:**
|
|
411
|
+
- ✅ Running microservices architecture
|
|
412
|
+
- ✅ Need container portability across clouds
|
|
413
|
+
- ✅ Require fine-grained resource control
|
|
414
|
+
- ✅ Have stateful workloads (databases, caches)
|
|
415
|
+
- ✅ Long-running processes
|
|
416
|
+
- ✅ Batch processing jobs
|
|
417
|
+
- ✅ WebSocket or streaming connections
|
|
418
|
+
|
|
419
|
+
**Use Serverless when:**
|
|
420
|
+
- ✅ Event-driven architectures
|
|
421
|
+
- ✅ Variable/unpredictable traffic
|
|
422
|
+
- ✅ Simple stateless functions
|
|
423
|
+
- ✅ Want minimal operational overhead
|
|
424
|
+
- ✅ Short-lived request-response patterns
|
|
425
|
+
- ✅ Integrating with cloud-native services
|
|
426
|
+
|
|
427
|
+
**Hybrid Approach:**
|
|
428
|
+
- Kubernetes for core services
|
|
429
|
+
- Serverless for event processing, API transformations
|
|
430
|
+
- Example: API Gateway → Lambda → EKS services
|
|
431
|
+
|
|
432
|
+
### Multi-Cloud vs. Single Cloud
|
|
433
|
+
|
|
434
|
+
**Single Cloud (Recommended for most):**
|
|
435
|
+
- **Pros:** Deeper integration, simpler operations, lower cost
|
|
436
|
+
- **Cons:** Vendor lock-in, regional limitations
|
|
437
|
+
- **Use when:** Team expertise in one cloud, cost-sensitive, fast iteration
|
|
438
|
+
|
|
439
|
+
**Multi-Cloud:**
|
|
440
|
+
- **Pros:** Vendor independence, geographic coverage, risk mitigation
|
|
441
|
+
- **Cons:** Complexity, higher costs, split expertise
|
|
442
|
+
- **Use when:** Regulatory requirements, M&A integrations, true failover needs
|
|
443
|
+
|
|
444
|
+
**Abstraction Strategy:**
|
|
445
|
+
- Use Kubernetes for workload portability
|
|
446
|
+
- Terraform for infrastructure
|
|
447
|
+
- Avoid cloud-specific services in application code
|
|
448
|
+
|
|
449
|
+
### Build vs. Buy for Platform Services
|
|
450
|
+
|
|
451
|
+
| Service | Build | Buy |
|
|
452
|
+
|---------|-------|-----|
|
|
453
|
+
| CI/CD | GitHub Actions, GitLab CI | CircleCI, Jenkins X |
|
|
454
|
+
| Secrets | Vault (self-hosted) | AWS Secrets Manager, 1Password |
|
|
455
|
+
| Monitoring | Prometheus + Grafana | Datadog, New Relic |
|
|
456
|
+
| Service Mesh | Istio, Linkerd | AWS App Mesh, Google Traffic Director |
|
|
457
|
+
| Developer Portal | Backstage (self-hosted) | Port, Humanitec |
|
|
458
|
+
|
|
459
|
+
**Decision Criteria:**
|
|
460
|
+
1. **Team size:** <50 engineers → buy, >100 → consider build
|
|
461
|
+
2. **Customization needs:** High → build, Low → buy
|
|
462
|
+
3. **Operational capacity:** Limited → buy, Strong → build
|
|
463
|
+
4. **Budget:** Tight → open source + build, Flexible → buy
|
|
464
|
+
|
|
465
|
+
## Design Principles
|
|
466
|
+
|
|
467
|
+
### 1. Self-Service First
|
|
468
|
+
|
|
469
|
+
**Principle:** Developers should provision resources without filing tickets.
|
|
470
|
+
|
|
471
|
+
**Implementation:**
|
|
472
|
+
```yaml
|
|
473
|
+
# Example: Platform API for database provisioning
|
|
474
|
+
apiVersion: database.platform.company.com/v1
|
|
475
|
+
kind: PostgresDatabase
|
|
476
|
+
metadata:
|
|
477
|
+
name: payment-db
|
|
478
|
+
namespace: payments-team
|
|
479
|
+
spec:
|
|
480
|
+
size: small # Predefined t-shirt sizes
|
|
481
|
+
backup: enabled
|
|
482
|
+
highAvailability: true
|
|
483
|
+
version: "14"
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
**Benefits:**
|
|
487
|
+
- Faster developer velocity
|
|
488
|
+
- Reduced operational toil
|
|
489
|
+
- Standardized configurations
|
|
490
|
+
|
|
491
|
+
### 2. Everything as Code
|
|
492
|
+
|
|
493
|
+
**Scope:**
|
|
494
|
+
- Infrastructure (Terraform, Pulumi)
|
|
495
|
+
- Configuration (Kubernetes YAML, Helm)
|
|
496
|
+
- Policies (OPA Rego, Sentinel)
|
|
497
|
+
- Documentation (Markdown in Git)
|
|
498
|
+
- Runbooks (code + automation)
|
|
499
|
+
|
|
500
|
+
**Why:**
|
|
501
|
+
- Version control and audit trail
|
|
502
|
+
- Reproducibility
|
|
503
|
+
- Testability
|
|
504
|
+
- Automation-friendly
|
|
505
|
+
|
|
506
|
+
### 3. Progressive Delivery
|
|
507
|
+
|
|
508
|
+
**Deployment Strategy:**
|
|
509
|
+
```
|
|
510
|
+
Code Merge → CI Build → Deploy to Dev → Automated Tests
|
|
511
|
+
↓
|
|
512
|
+
Deploy to Staging (10% traffic)
|
|
513
|
+
↓
|
|
514
|
+
Monitor metrics for 1 hour
|
|
515
|
+
↓
|
|
516
|
+
Deploy to Prod (10% → 50% → 100%)
|
|
517
|
+
↓
|
|
518
|
+
Auto-rollback if error rate > 1%
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
**Techniques:**
|
|
522
|
+
- Blue-green deployments
|
|
523
|
+
- Canary releases
|
|
524
|
+
- Feature flags
|
|
525
|
+
- Automated rollbacks
|
|
526
|
+
|
|
527
|
+
### 4. Defense in Depth
|
|
528
|
+
|
|
529
|
+
**Security Layers:**
|
|
530
|
+
```
|
|
531
|
+
┌──────────────────────────────────────┐
|
|
532
|
+
│ 1. Perimeter: Firewall, WAF, DDoS │
|
|
533
|
+
├──────────────────────────────────────┤
|
|
534
|
+
│ 2. Network: VPC, Security Groups │
|
|
535
|
+
├──────────────────────────────────────┤
|
|
536
|
+
│ 3. Cluster: RBAC, Pod Security │
|
|
537
|
+
├──────────────────────────────────────┤
|
|
538
|
+
│ 4. Application: Input validation │
|
|
539
|
+
├──────────────────────────────────────┤
|
|
540
|
+
│ 5. Data: Encryption at rest/transit │
|
|
541
|
+
└──────────────────────────────────────┘
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
**No single layer failure compromises entire system.**
|
|
545
|
+
|
|
546
|
+
### 5. Observability Over Monitoring
|
|
547
|
+
|
|
548
|
+
**Three Pillars:**
|
|
549
|
+
1. **Metrics:** System health (CPU, memory, latency, errors)
|
|
550
|
+
2. **Logs:** Event streams for debugging
|
|
551
|
+
3. **Traces:** Request flow across services
|
|
552
|
+
|
|
553
|
+
**OpenTelemetry Standard:**
|
|
554
|
+
```yaml
|
|
555
|
+
# Instrument services with OTEL
|
|
556
|
+
instrumentation:
|
|
557
|
+
metrics: true
|
|
558
|
+
logs: true
|
|
559
|
+
traces: true
|
|
560
|
+
|
|
561
|
+
exporters:
|
|
562
|
+
- prometheus # Metrics
|
|
563
|
+
- loki # Logs
|
|
564
|
+
- tempo # Traces
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
### 6. Cost Awareness
|
|
568
|
+
|
|
569
|
+
**FinOps Practices:**
|
|
570
|
+
- Tag all resources (team, environment, service, cost-center)
|
|
571
|
+
- Set up billing alerts
|
|
572
|
+
- Right-size resources (don't over-provision)
|
|
573
|
+
- Use spot/preemptible instances for non-critical workloads
|
|
574
|
+
- Implement auto-scaling
|
|
575
|
+
- Review and cleanup unused resources monthly
|
|
576
|
+
|
|
577
|
+
**Example Tagging Strategy:**
|
|
578
|
+
```hcl
|
|
579
|
+
tags = {
|
|
580
|
+
Environment = "production"
|
|
581
|
+
Team = "payments"
|
|
582
|
+
Service = "payment-api"
|
|
583
|
+
CostCenter = "engineering"
|
|
584
|
+
ManagedBy = "terraform"
|
|
585
|
+
Owner = "payments-team@company.com"
|
|
586
|
+
}
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
## Summary
|
|
590
|
+
|
|
591
|
+
Platform architecture is about creating the foundation that enables teams to build, deploy, and operate services efficiently. Key takeaways:
|
|
592
|
+
|
|
593
|
+
1. **Layer appropriately:** Infrastructure → Orchestration → Platform Services → Developer Experience
|
|
594
|
+
2. **Choose patterns that match your scale:** Don't over-engineer for current needs, but plan for growth
|
|
595
|
+
3. **Prioritize developer experience:** Self-service, documentation, and automation
|
|
596
|
+
4. **Embrace IaC and GitOps:** Everything version controlled, automated, and reproducible
|
|
597
|
+
5. **Design for failure:** Multi-AZ, auto-scaling, automated recovery
|
|
598
|
+
6. **Make cost a first-class concern:** Tag, monitor, optimize continuously
|
|
599
|
+
|
|
600
|
+
For detailed implementation guidance, see the other resource files in this skill.
|