blockmine 1.21.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/README.md +469 -0
- package/.claude/agents/auth-route-debugger.md +118 -0
- package/.claude/agents/auth-route-tester.md +93 -0
- package/.claude/agents/auto-error-resolver.md +97 -0
- package/.claude/agents/build-optimizer.md +236 -0
- package/.claude/agents/code-architecture-reviewer.md +83 -0
- package/.claude/agents/code-refactor-master.md +94 -0
- package/.claude/agents/cost-optimizer.md +134 -0
- package/.claude/agents/deployment-orchestrator.md +113 -0
- package/.claude/agents/documentation-architect.md +82 -0
- package/.claude/agents/frontend-error-fixer.md +77 -0
- package/.claude/agents/iac-code-generator.md +71 -0
- package/.claude/agents/incident-responder.md +346 -0
- package/.claude/agents/infrastructure-architect.md +31 -0
- package/.claude/agents/kubernetes-specialist.md +56 -0
- package/.claude/agents/migration-planner.md +181 -0
- package/.claude/agents/network-architect.md +196 -0
- package/.claude/agents/plan-reviewer.md +52 -0
- package/.claude/agents/refactor-planner.md +63 -0
- package/.claude/agents/security-scanner.md +102 -0
- package/.claude/agents/web-research-specialist.md +78 -0
- package/.claude/commands/cost-analysis.md +315 -0
- package/.claude/commands/dev-docs-update.md +55 -0
- package/.claude/commands/dev-docs.md +51 -0
- package/.claude/commands/incident-debug.md +247 -0
- package/.claude/commands/infra-plan.md +81 -0
- package/.claude/commands/migration-plan.md +478 -0
- package/.claude/commands/route-research-for-testing.md +37 -0
- package/.claude/commands/security-review.md +66 -0
- package/.claude/hooks/CONFIG.md +448 -0
- package/.claude/hooks/README.md +163 -0
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
- package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
- package/.claude/hooks/add-skill-activation-banners.ts +132 -0
- package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +222 -0
- package/.claude/hooks/k8s-manifest-validator.sh +56 -0
- package/.claude/hooks/package-lock.json +556 -0
- package/.claude/hooks/package.json +16 -0
- package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
- package/.claude/hooks/post-tool-use-tracker.sh +183 -0
- package/.claude/hooks/security-policy-check.sh +247 -0
- package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
- package/.claude/hooks/skill-activation-prompt.sh +10 -0
- package/.claude/hooks/skill-activation-prompt.ts +141 -0
- package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
- package/.claude/hooks/terraform-validator.sh +53 -0
- package/.claude/hooks/test-input.json +7 -0
- package/.claude/hooks/test-skill-activation.ts +427 -0
- package/.claude/hooks/trigger-build-resolver.sh +79 -0
- package/.claude/hooks/tsc-check.sh +173 -0
- package/.claude/hooks/tsconfig.json +19 -0
- package/.claude/settings.json +55 -0
- package/.claude/settings.local.json +27 -14
- package/.claude/skills/README.md +507 -0
- package/.claude/skills/api-engineering/SKILL.md +63 -0
- package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
- package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
- package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
- package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
- package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
- package/.claude/skills/build-engineering/SKILL.md +431 -0
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
- package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
- package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
- package/.claude/skills/build-engineering/resources/build-security.md +95 -0
- package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
- package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
- package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
- package/.claude/skills/cloud-engineering/SKILL.md +675 -0
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
- package/.claude/skills/cybersecurity/SKILL.md +409 -0
- package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
- package/.claude/skills/database-engineering/SKILL.md +61 -0
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
- package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
- package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
- package/.claude/skills/devsecops/SKILL.md +374 -0
- package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
- package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
- package/.claude/skills/devsecops/resources/container-security.md +915 -0
- package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
- package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
- package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
- package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
- package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
- package/.claude/skills/devsecops/resources/security-testing.md +203 -0
- package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
- package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
- package/.claude/skills/documentation-as-code/SKILL.md +323 -0
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
- package/.claude/skills/engineering-management/SKILL.md +356 -0
- package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
- package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
- package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
- package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
- package/.claude/skills/error-tracking/SKILL.md +379 -0
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
- package/.claude/skills/general-it-engineering/SKILL.md +393 -0
- package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
- package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
- package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
- package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
- package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
- package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
- package/.claude/skills/network-engineering/SKILL.md +385 -0
- package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
- package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
- package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
- package/.claude/skills/network-engineering/resources/network-security.md +921 -0
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
- package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
- package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
- package/.claude/skills/observability-engineering/SKILL.md +101 -0
- package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
- package/.claude/skills/platform-engineering/SKILL.md +555 -0
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
- package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
- package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
- package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
- package/.claude/skills/release-engineering/SKILL.md +393 -0
- package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
- package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
- package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
- package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
- package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
- package/.claude/skills/route-tester/SKILL.md +392 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +430 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +2940 -0
- package/.claude/skills/sre/SKILL.md +464 -0
- package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
- package/.claude/skills/sre/resources/capacity-planning.md +226 -0
- package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
- package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
- package/.claude/skills/sre/resources/incident-management.md +436 -0
- package/.claude/skills/sre/resources/observability-stack.md +240 -0
- package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
- package/.claude/skills/sre/resources/performance-optimization.md +108 -0
- package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
- package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
- package/.claude/skills/sre/resources/toil-reduction.md +145 -0
- package/.claude/skills/systems-engineering/SKILL.md +648 -0
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
- package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
- package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
- package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
- package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
- package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
- package/.claude/skills/technical-leadership/SKILL.md +728 -0
- package/CHANGELOG.md +90 -54
- package/README.md +94 -0
- package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
- package/backend/jest.config.js +59 -0
- package/backend/package-lock.json +6129 -0
- package/backend/package.json +16 -4
- package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
- package/backend/prisma/schema.prisma +33 -0
- package/backend/src/__tests__/core/DependencyService.test.js +336 -0
- package/backend/src/__tests__/core/UserService.test.js +875 -0
- package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
- package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
- package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
- package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
- package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
- package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
- package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
- package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
- package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
- package/backend/src/__tests__/secretsFilter.test.js +425 -0
- package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
- package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
- package/backend/src/__tests__/services/CacheManager.test.js +125 -0
- package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
- package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
- package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
- package/backend/src/__tests__/setup.js +25 -0
- package/backend/src/api/routes/apiKeys.js +181 -0
- package/backend/src/api/routes/bots.js +49 -7
- package/backend/src/api/routes/plugins.js +2 -1
- package/backend/src/api/routes/system.js +174 -0
- package/backend/src/container.js +82 -0
- package/backend/src/core/BotManager.js +142 -871
- package/backend/src/core/BotManager.old.js +1093 -0
- package/backend/src/core/BotProcess.js +1092 -858
- package/backend/src/core/EventGraphManager.js +280 -198
- package/backend/src/core/GraphExecutionEngine.js +321 -325
- package/backend/src/core/MessageQueue.js +27 -6
- package/backend/src/core/NodeRegistry.js +37 -1134
- package/backend/src/core/PluginManager.js +62 -12
- package/backend/src/core/PrismaService.js +32 -0
- package/backend/src/core/UserService.js +3 -3
- package/backend/src/core/__tests__/PrismaService.test.js +24 -0
- package/backend/src/core/commands/README.md +305 -0
- package/backend/src/core/commands/dev.js +13 -7
- package/backend/src/core/commands/ping.js +10 -4
- package/backend/src/core/commands/whois.js +63 -0
- package/backend/src/core/config/validation.js +27 -0
- package/backend/src/core/constants/graphTypes.js +21 -0
- package/backend/src/core/node-registries/actions.js +132 -0
- package/backend/src/core/node-registries/arrays.js +137 -0
- package/backend/src/core/node-registries/bot.js +23 -0
- package/backend/src/core/node-registries/data.js +290 -0
- package/backend/src/core/node-registries/debug.js +26 -0
- package/backend/src/core/node-registries/events.js +187 -0
- package/backend/src/core/node-registries/flow.js +139 -0
- package/backend/src/core/node-registries/logic.js +45 -0
- package/backend/src/core/node-registries/math.js +42 -0
- package/backend/src/core/node-registries/objects.js +98 -0
- package/backend/src/core/node-registries/strings.js +153 -0
- package/backend/src/core/node-registries/time.js +113 -0
- package/backend/src/core/node-registries/users.js +79 -0
- package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
- package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
- package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
- package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
- package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
- package/backend/src/core/nodes/arrays/get_next.js +35 -0
- package/backend/src/core/nodes/{data_cast.js → data/cast.js} +8 -0
- package/backend/src/core/nodes/data/datetime_literal.js +27 -0
- package/backend/src/core/nodes/data/entity_info.js +69 -0
- package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
- package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
- package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
- package/backend/src/core/nodes/data/type_check.js +53 -0
- package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
- package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
- package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
- package/backend/src/core/nodes/flow/delay.js +43 -0
- package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
- package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
- package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
- package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
- package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
- package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
- package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
- package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
- package/backend/src/core/nodes/time/add.js +33 -0
- package/backend/src/core/nodes/time/compare.js +35 -0
- package/backend/src/core/nodes/time/diff.js +29 -0
- package/backend/src/core/nodes/time/format.js +32 -0
- package/backend/src/core/nodes/time/now.js +18 -0
- package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
- package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
- package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
- package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
- package/backend/src/core/services/BotLifecycleService.js +596 -0
- package/backend/src/core/services/BotProcessManager.js +163 -0
- package/backend/src/core/services/CacheManager.js +111 -0
- package/backend/src/core/services/CommandExecutionService.js +351 -0
- package/backend/src/core/services/ResourceMonitorService.js +90 -0
- package/backend/src/core/services/TelemetryService.js +124 -0
- package/backend/src/core/services/ValidationService.js +132 -0
- package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
- package/backend/src/core/services.js +20 -5
- package/backend/src/core/system/CommandContext.js +84 -0
- package/backend/src/core/system/Transport.js +78 -0
- package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
- package/backend/src/core/utils/jsonParser.js +18 -0
- package/backend/src/core/utils/secretsFilter.js +262 -0
- package/backend/src/core/utils/variableParser.js +89 -0
- package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
- package/backend/src/core/validation/nodeSchemas.js +112 -0
- package/backend/src/lib/prisma.js +2 -4
- package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
- package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
- package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
- package/backend/src/real-time/botApi/handlers/index.js +43 -0
- package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
- package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
- package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
- package/backend/src/real-time/botApi/index.js +40 -0
- package/backend/src/real-time/botApi/middleware.js +79 -0
- package/backend/src/real-time/botApi/utils.js +54 -0
- package/backend/src/real-time/socketHandler.js +6 -2
- package/backend/src/repositories/BaseRepository.js +43 -0
- package/backend/src/repositories/BotRepository.js +42 -0
- package/backend/src/repositories/CommandRepository.js +53 -0
- package/backend/src/repositories/EventGraphRepository.js +40 -0
- package/backend/src/repositories/GroupRepository.js +69 -0
- package/backend/src/repositories/PermissionRepository.js +48 -0
- package/backend/src/repositories/PluginRepository.js +42 -0
- package/backend/src/repositories/ServerRepository.js +27 -0
- package/backend/src/repositories/UserRepository.js +48 -0
- package/backend/src/server.js +3 -0
- package/backend/src/test-refactor.js +85 -0
- package/frontend/dist/assets/index-CfTo92bP.css +1 -0
- package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/package.json +0 -5
- package/package.json +2 -1
- package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
- package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
- package/nul +0 -0
- /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
- /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
- /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
- /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
- /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
- /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
- /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
- /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
- /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
- /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
- /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
- /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
- /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
- /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
- /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
- /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
- /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
- /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
- /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
- /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
- /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
- /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
- /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
- /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
- /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
- /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
- /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
- /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
- /package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +0 -0
|
@@ -0,0 +1,749 @@
|
|
|
1
|
+
# Network Troubleshooting
|
|
2
|
+
|
|
3
|
+
Comprehensive guide to network troubleshooting covering debugging tools, packet analysis, latency issues, connectivity problems, and systematic troubleshooting methodologies.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Overview](#overview)
|
|
8
|
+
- [Troubleshooting Methodology](#troubleshooting-methodology)
|
|
9
|
+
- [Basic Network Tools](#basic-network-tools)
|
|
10
|
+
- [Packet Analysis](#packet-analysis)
|
|
11
|
+
- [DNS Troubleshooting](#dns-troubleshooting)
|
|
12
|
+
- [Connection Issues](#connection-issues)
|
|
13
|
+
- [Latency and Performance](#latency-and-performance)
|
|
14
|
+
- [Cloud Network Debugging](#cloud-network-debugging)
|
|
15
|
+
- [Kubernetes Network Troubleshooting](#kubernetes-network-troubleshooting)
|
|
16
|
+
- [Common Issues](#common-issues)
|
|
17
|
+
- [Best Practices](#best-practices)
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Systematic network troubleshooting requires understanding network layers, using appropriate tools, and following a methodical approach to isolate and resolve issues.
|
|
22
|
+
|
|
23
|
+
**OSI Model Troubleshooting Approach:**
|
|
24
|
+
```
|
|
25
|
+
Layer 7 - Application → Check application logs, API responses
|
|
26
|
+
Layer 4 - Transport → Verify TCP/UDP connectivity, port access
|
|
27
|
+
Layer 3 - Network → Test IP routing, ping, traceroute
|
|
28
|
+
Layer 2 - Data Link → Check ARP, MAC addresses, switches
|
|
29
|
+
Layer 1 - Physical → Verify cables, interfaces, link status
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Troubleshooting Methodology
|
|
33
|
+
|
|
34
|
+
### Step-by-Step Process
|
|
35
|
+
|
|
36
|
+
1. **Define the problem** - What exactly isn't working?
|
|
37
|
+
2. **Gather information** - When did it start? What changed?
|
|
38
|
+
3. **Identify the scope** - Single user, subnet, or entire network?
|
|
39
|
+
4. **Develop hypothesis** - What layer/component might be failing?
|
|
40
|
+
5. **Test hypothesis** - Use tools to verify or disprove
|
|
41
|
+
6. **Implement solution** - Fix the root cause
|
|
42
|
+
7. **Verify resolution** - Confirm problem is resolved
|
|
43
|
+
8. **Document** - Record issue and resolution
|
|
44
|
+
|
|
45
|
+
### Divide and Conquer
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Problem: Can't access website
|
|
49
|
+
|
|
50
|
+
Test 1: Can you reach the internet?
|
|
51
|
+
├─ No → Check local network, gateway
|
|
52
|
+
└─ Yes → Continue
|
|
53
|
+
|
|
54
|
+
Test 2: Can you resolve DNS?
|
|
55
|
+
├─ No → Check DNS servers, resolv.conf
|
|
56
|
+
└─ Yes → Continue
|
|
57
|
+
|
|
58
|
+
Test 3: Can you reach the IP?
|
|
59
|
+
├─ No → Check routing, firewall
|
|
60
|
+
└─ Yes → Continue
|
|
61
|
+
|
|
62
|
+
Test 4: Can you connect to the port?
|
|
63
|
+
├─ No → Check firewall, service status
|
|
64
|
+
└─ Yes → Check application layer
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Basic Network Tools
|
|
68
|
+
|
|
69
|
+
### ping
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Basic ping
|
|
73
|
+
ping 8.8.8.8
|
|
74
|
+
|
|
75
|
+
# Limited count
|
|
76
|
+
ping -c 4 google.com
|
|
77
|
+
|
|
78
|
+
# Larger packet size
|
|
79
|
+
ping -s 1400 google.com
|
|
80
|
+
|
|
81
|
+
# Flood ping (root required)
|
|
82
|
+
sudo ping -f 192.168.1.1
|
|
83
|
+
|
|
84
|
+
# Set TTL
|
|
85
|
+
ping -t 10 example.com
|
|
86
|
+
|
|
87
|
+
# IPv6
|
|
88
|
+
ping6 2001:4860:4860::8888
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### traceroute / tracepath
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Trace route to destination
|
|
95
|
+
traceroute google.com
|
|
96
|
+
|
|
97
|
+
# Use ICMP instead of UDP
|
|
98
|
+
traceroute -I google.com
|
|
99
|
+
|
|
100
|
+
# Set max hops
|
|
101
|
+
traceroute -m 20 google.com
|
|
102
|
+
|
|
103
|
+
# No DNS resolution (faster)
|
|
104
|
+
traceroute -n 8.8.8.8
|
|
105
|
+
|
|
106
|
+
# tracepath (no root required)
|
|
107
|
+
tracepath google.com
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### mtr (My TraceRoute)
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Interactive view
|
|
114
|
+
mtr google.com
|
|
115
|
+
|
|
116
|
+
# Report mode (50 packets)
|
|
117
|
+
mtr -r -c 50 google.com
|
|
118
|
+
|
|
119
|
+
# Both TCP and ICMP
|
|
120
|
+
mtr --tcp -P 443 google.com
|
|
121
|
+
|
|
122
|
+
# CSV output
|
|
123
|
+
mtr --csv google.com
|
|
124
|
+
|
|
125
|
+
# No DNS resolution
|
|
126
|
+
mtr -n 8.8.8.8
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### netstat / ss
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Show all listening ports
|
|
133
|
+
netstat -tuln
|
|
134
|
+
ss -tuln
|
|
135
|
+
|
|
136
|
+
# Show all connections
|
|
137
|
+
netstat -tan
|
|
138
|
+
ss -tan
|
|
139
|
+
|
|
140
|
+
# Show process using port
|
|
141
|
+
netstat -tulnp
|
|
142
|
+
ss -tulnp
|
|
143
|
+
|
|
144
|
+
# Show routing table
|
|
145
|
+
netstat -r
|
|
146
|
+
ip route show
|
|
147
|
+
|
|
148
|
+
# Show statistics
|
|
149
|
+
netstat -s
|
|
150
|
+
ss -s
|
|
151
|
+
|
|
152
|
+
# Show specific protocol
|
|
153
|
+
ss -t # TCP only
|
|
154
|
+
ss -u # UDP only
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### ip commands
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# Show all interfaces
|
|
161
|
+
ip addr show
|
|
162
|
+
ip a
|
|
163
|
+
|
|
164
|
+
# Show specific interface
|
|
165
|
+
ip addr show eth0
|
|
166
|
+
|
|
167
|
+
# Show routing table
|
|
168
|
+
ip route show
|
|
169
|
+
ip route get 8.8.8.8
|
|
170
|
+
|
|
171
|
+
# Show ARP table
|
|
172
|
+
ip neigh show
|
|
173
|
+
|
|
174
|
+
# Show link status
|
|
175
|
+
ip link show
|
|
176
|
+
|
|
177
|
+
# Show statistics
|
|
178
|
+
ip -s link show eth0
|
|
179
|
+
|
|
180
|
+
# Add route
|
|
181
|
+
ip route add 192.168.1.0/24 via 10.0.0.1
|
|
182
|
+
|
|
183
|
+
# Delete route
|
|
184
|
+
ip route del 192.168.1.0/24
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### nmap
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Scan common ports
|
|
191
|
+
nmap example.com
|
|
192
|
+
|
|
193
|
+
# Scan specific ports
|
|
194
|
+
nmap -p 80,443 example.com
|
|
195
|
+
|
|
196
|
+
# Scan port range
|
|
197
|
+
nmap -p 1-1000 example.com
|
|
198
|
+
|
|
199
|
+
# Service version detection
|
|
200
|
+
nmap -sV example.com
|
|
201
|
+
|
|
202
|
+
# OS detection
|
|
203
|
+
sudo nmap -O example.com
|
|
204
|
+
|
|
205
|
+
# Scan subnet
|
|
206
|
+
nmap 192.168.1.0/24
|
|
207
|
+
|
|
208
|
+
# Fast scan (top 100 ports)
|
|
209
|
+
nmap -F example.com
|
|
210
|
+
|
|
211
|
+
# Scan with no ping (if ICMP blocked)
|
|
212
|
+
nmap -Pn example.com
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Packet Analysis
|
|
216
|
+
|
|
217
|
+
### tcpdump
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Capture on interface
|
|
221
|
+
tcpdump -i eth0
|
|
222
|
+
|
|
223
|
+
# Capture to file
|
|
224
|
+
tcpdump -i eth0 -w capture.pcap
|
|
225
|
+
|
|
226
|
+
# Read from file
|
|
227
|
+
tcpdump -r capture.pcap
|
|
228
|
+
|
|
229
|
+
# Filter by host
|
|
230
|
+
tcpdump host 192.168.1.100
|
|
231
|
+
|
|
232
|
+
# Filter by port
|
|
233
|
+
tcpdump port 80
|
|
234
|
+
|
|
235
|
+
# Filter by protocol
|
|
236
|
+
tcpdump tcp
|
|
237
|
+
tcpdump udp
|
|
238
|
+
tcpdump icmp
|
|
239
|
+
|
|
240
|
+
# Complex filter
|
|
241
|
+
tcpdump 'tcp port 80 and (host 192.168.1.100 or host 192.168.1.101)'
|
|
242
|
+
|
|
243
|
+
# Show packet contents (hex and ASCII)
|
|
244
|
+
tcpdump -X
|
|
245
|
+
|
|
246
|
+
# Verbose output
|
|
247
|
+
tcpdump -v
|
|
248
|
+
tcpdump -vv
|
|
249
|
+
tcpdump -vvv
|
|
250
|
+
|
|
251
|
+
# Don't resolve hostnames (faster)
|
|
252
|
+
tcpdump -n
|
|
253
|
+
|
|
254
|
+
# Capture specific number of packets
|
|
255
|
+
tcpdump -c 100
|
|
256
|
+
|
|
257
|
+
# Capture only SYN packets
|
|
258
|
+
tcpdump 'tcp[tcpflags] & (tcp-syn) != 0'
|
|
259
|
+
|
|
260
|
+
# Capture HTTP GET requests
|
|
261
|
+
tcpdump -s 0 -A 'tcp dst port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Wireshark Filters
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
# Display filters
|
|
268
|
+
http
|
|
269
|
+
http.request.method == "POST"
|
|
270
|
+
tcp.port == 443
|
|
271
|
+
ip.src == 192.168.1.100
|
|
272
|
+
ip.dst == 10.0.0.1
|
|
273
|
+
|
|
274
|
+
# Filter by protocol
|
|
275
|
+
dns
|
|
276
|
+
tls
|
|
277
|
+
ssh
|
|
278
|
+
|
|
279
|
+
# Filter TCP flags
|
|
280
|
+
tcp.flags.syn == 1
|
|
281
|
+
tcp.flags.reset == 1
|
|
282
|
+
|
|
283
|
+
# Follow TCP stream
|
|
284
|
+
Right-click packet → Follow → TCP Stream
|
|
285
|
+
|
|
286
|
+
# Filter retransmissions
|
|
287
|
+
tcp.analysis.retransmission
|
|
288
|
+
|
|
289
|
+
# Filter slow connections
|
|
290
|
+
tcp.time_delta > 0.1
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### tshark (Wireshark CLI)
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
# Capture and display
|
|
297
|
+
tshark -i eth0
|
|
298
|
+
|
|
299
|
+
# Capture to file
|
|
300
|
+
tshark -i eth0 -w capture.pcap
|
|
301
|
+
|
|
302
|
+
# Read and filter
|
|
303
|
+
tshark -r capture.pcap -Y "http.request.method == GET"
|
|
304
|
+
|
|
305
|
+
# Show specific fields
|
|
306
|
+
tshark -r capture.pcap -T fields -e ip.src -e ip.dst -e tcp.port
|
|
307
|
+
|
|
308
|
+
# Statistics
|
|
309
|
+
tshark -r capture.pcap -q -z io,stat,1
|
|
310
|
+
|
|
311
|
+
# Protocol hierarchy
|
|
312
|
+
tshark -r capture.pcap -q -z io,phs
|
|
313
|
+
|
|
314
|
+
# Conversations
|
|
315
|
+
tshark -r capture.pcap -q -z conv,tcp
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## DNS Troubleshooting
|
|
319
|
+
|
|
320
|
+
### dig
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# Basic query
|
|
324
|
+
dig example.com
|
|
325
|
+
|
|
326
|
+
# Query specific record type
|
|
327
|
+
dig example.com A
|
|
328
|
+
dig example.com AAAA
|
|
329
|
+
dig example.com MX
|
|
330
|
+
dig example.com NS
|
|
331
|
+
dig example.com TXT
|
|
332
|
+
|
|
333
|
+
# Query specific DNS server
|
|
334
|
+
dig @8.8.8.8 example.com
|
|
335
|
+
|
|
336
|
+
# Short answer
|
|
337
|
+
dig +short example.com
|
|
338
|
+
|
|
339
|
+
# Reverse DNS lookup
|
|
340
|
+
dig -x 8.8.8.8
|
|
341
|
+
|
|
342
|
+
# Trace DNS resolution
|
|
343
|
+
dig +trace example.com
|
|
344
|
+
|
|
345
|
+
# No recursion (query authoritative only)
|
|
346
|
+
dig +norecurse example.com
|
|
347
|
+
|
|
348
|
+
# Show TTL
|
|
349
|
+
dig +ttlid example.com
|
|
350
|
+
|
|
351
|
+
# Check DNSSEC
|
|
352
|
+
dig +dnssec example.com
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### nslookup
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# Basic lookup
|
|
359
|
+
nslookup example.com
|
|
360
|
+
|
|
361
|
+
# Query specific server
|
|
362
|
+
nslookup example.com 8.8.8.8
|
|
363
|
+
|
|
364
|
+
# Interactive mode
|
|
365
|
+
nslookup
|
|
366
|
+
> server 8.8.8.8
|
|
367
|
+
> example.com
|
|
368
|
+
> set type=MX
|
|
369
|
+
> example.com
|
|
370
|
+
> exit
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
### host
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
# Basic query
|
|
377
|
+
host example.com
|
|
378
|
+
|
|
379
|
+
# Specific record type
|
|
380
|
+
host -t MX example.com
|
|
381
|
+
host -t NS example.com
|
|
382
|
+
|
|
383
|
+
# Reverse lookup
|
|
384
|
+
host 8.8.8.8
|
|
385
|
+
|
|
386
|
+
# Verbose output
|
|
387
|
+
host -v example.com
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## Connection Issues
|
|
391
|
+
|
|
392
|
+
### telnet
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
# Test TCP connection
|
|
396
|
+
telnet example.com 80
|
|
397
|
+
telnet 192.168.1.100 3306
|
|
398
|
+
|
|
399
|
+
# If successful, you can send commands
|
|
400
|
+
# For HTTP:
|
|
401
|
+
GET / HTTP/1.1
|
|
402
|
+
Host: example.com
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### nc (netcat)
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
# Test TCP connection
|
|
409
|
+
nc -zv example.com 80
|
|
410
|
+
|
|
411
|
+
# Scan port range
|
|
412
|
+
nc -zv example.com 20-100
|
|
413
|
+
|
|
414
|
+
# Test UDP
|
|
415
|
+
nc -zuv example.com 53
|
|
416
|
+
|
|
417
|
+
# Listen on port (server)
|
|
418
|
+
nc -l 8080
|
|
419
|
+
|
|
420
|
+
# Connect to port (client)
|
|
421
|
+
nc localhost 8080
|
|
422
|
+
|
|
423
|
+
# Transfer file
|
|
424
|
+
# Receiver:
|
|
425
|
+
nc -l 9999 > received_file
|
|
426
|
+
# Sender:
|
|
427
|
+
nc receiver_ip 9999 < file_to_send
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### curl
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
# Test HTTP connection
|
|
434
|
+
curl -I https://example.com
|
|
435
|
+
|
|
436
|
+
# Verbose output
|
|
437
|
+
curl -v https://example.com
|
|
438
|
+
|
|
439
|
+
# Show timing
|
|
440
|
+
curl -w "@curl-format.txt" -o /dev/null -s https://example.com
|
|
441
|
+
|
|
442
|
+
# curl-format.txt content:
|
|
443
|
+
# time_namelookup: %{time_namelookup}s
|
|
444
|
+
# time_connect: %{time_connect}s
|
|
445
|
+
# time_appconnect: %{time_appconnect}s
|
|
446
|
+
# time_pretransfer: %{time_pretransfer}s
|
|
447
|
+
# time_redirect: %{time_redirect}s
|
|
448
|
+
# time_starttransfer: %{time_starttransfer}s
|
|
449
|
+
# time_total: %{time_total}s
|
|
450
|
+
|
|
451
|
+
# Test with specific source IP
|
|
452
|
+
curl --interface 192.168.1.100 https://example.com
|
|
453
|
+
|
|
454
|
+
# Follow redirects
|
|
455
|
+
curl -L https://example.com
|
|
456
|
+
|
|
457
|
+
# Test SSL/TLS
|
|
458
|
+
curl -v --tlsv1.2 https://example.com
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
## Latency and Performance
|
|
462
|
+
|
|
463
|
+
### iperf3
|
|
464
|
+
|
|
465
|
+
```bash
|
|
466
|
+
# Server mode
|
|
467
|
+
iperf3 -s
|
|
468
|
+
|
|
469
|
+
# Client mode (default TCP)
|
|
470
|
+
iperf3 -c server_ip
|
|
471
|
+
|
|
472
|
+
# UDP test
|
|
473
|
+
iperf3 -c server_ip -u -b 1G
|
|
474
|
+
|
|
475
|
+
# Reverse mode (server sends)
|
|
476
|
+
iperf3 -c server_ip -R
|
|
477
|
+
|
|
478
|
+
# Bidirectional test
|
|
479
|
+
iperf3 -c server_ip --bidir
|
|
480
|
+
|
|
481
|
+
# Specify duration
|
|
482
|
+
iperf3 -c server_ip -t 60
|
|
483
|
+
|
|
484
|
+
# JSON output
|
|
485
|
+
iperf3 -c server_ip -J
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### hping3
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
# ICMP ping
|
|
492
|
+
sudo hping3 -1 example.com
|
|
493
|
+
|
|
494
|
+
# SYN flood test (for testing firewalls)
|
|
495
|
+
sudo hping3 -S -p 80 --flood example.com
|
|
496
|
+
|
|
497
|
+
# Traceroute with TCP
|
|
498
|
+
sudo hping3 -S -p 80 --traceroute example.com
|
|
499
|
+
|
|
500
|
+
# Test firewall
|
|
501
|
+
sudo hping3 -S -p 22 192.168.1.1
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
## Cloud Network Debugging
|
|
505
|
+
|
|
506
|
+
### AWS VPC Flow Logs
|
|
507
|
+
|
|
508
|
+
```bash
|
|
509
|
+
# Query Flow Logs with AWS CLI
|
|
510
|
+
aws ec2 describe-flow-logs
|
|
511
|
+
|
|
512
|
+
# Enable VPC Flow Logs
|
|
513
|
+
aws ec2 create-flow-logs \
|
|
514
|
+
--resource-type VPC \
|
|
515
|
+
--resource-ids vpc-xxxxx \
|
|
516
|
+
--traffic-type ALL \
|
|
517
|
+
--log-destination-type cloud-watch-logs \
|
|
518
|
+
--log-group-name /aws/vpc/flowlogs
|
|
519
|
+
|
|
520
|
+
# Query with CloudWatch Insights
|
|
521
|
+
fields @timestamp, srcAddr, dstAddr, srcPort, dstPort, protocol, bytes
|
|
522
|
+
| filter dstPort = 443
|
|
523
|
+
| sort @timestamp desc
|
|
524
|
+
| limit 100
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
### AWS Reachability Analyzer
|
|
528
|
+
|
|
529
|
+
```bash
|
|
530
|
+
# Create network path analysis
|
|
531
|
+
aws ec2 create-network-insights-path \
|
|
532
|
+
--source eni-xxxxx \
|
|
533
|
+
--destination eni-yyyyy \
|
|
534
|
+
--protocol tcp \
|
|
535
|
+
--destination-port 443
|
|
536
|
+
|
|
537
|
+
# Analyze path
|
|
538
|
+
aws ec2 start-network-insights-analysis \
|
|
539
|
+
--network-insights-path-id nip-xxxxx
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
### GCP Network Monitoring
|
|
543
|
+
|
|
544
|
+
```bash
|
|
545
|
+
# VPC Flow Logs query
|
|
546
|
+
gcloud logging read "resource.type=gce_subnetwork" \
|
|
547
|
+
--limit 50 \
|
|
548
|
+
--format json
|
|
549
|
+
|
|
550
|
+
# Connectivity test
|
|
551
|
+
gcloud network-management connectivity-tests create test-name \
|
|
552
|
+
--source-instance=instance-1 \
|
|
553
|
+
--destination-ip-address=10.0.0.100 \
|
|
554
|
+
--protocol=TCP \
|
|
555
|
+
--destination-port=443
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
## Kubernetes Network Troubleshooting
|
|
559
|
+
|
|
560
|
+
### Pod Connectivity
|
|
561
|
+
|
|
562
|
+
```bash
|
|
563
|
+
# Execute in pod
|
|
564
|
+
kubectl exec -it pod-name -- /bin/sh
|
|
565
|
+
|
|
566
|
+
# Test DNS
|
|
567
|
+
kubectl exec pod-name -- nslookup kubernetes.default
|
|
568
|
+
|
|
569
|
+
# Test service connectivity
|
|
570
|
+
kubectl exec pod-name -- curl http://service-name
|
|
571
|
+
|
|
572
|
+
# Debug with temporary pod
|
|
573
|
+
kubectl run tmp-shell --rm -i --tty --image nicolaka/netshoot -- /bin/bash
|
|
574
|
+
|
|
575
|
+
# Inside debug pod:
|
|
576
|
+
ping service-name
|
|
577
|
+
curl http://service-name
|
|
578
|
+
nslookup service-name
|
|
579
|
+
traceroute service-name
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
### Network Policies
|
|
583
|
+
|
|
584
|
+
```bash
|
|
585
|
+
# List network policies
|
|
586
|
+
kubectl get networkpolicies
|
|
587
|
+
|
|
588
|
+
# Describe policy
|
|
589
|
+
kubectl describe networkpolicy policy-name
|
|
590
|
+
|
|
591
|
+
# Test connectivity with netshoot
|
|
592
|
+
kubectl run test-$RANDOM --rm -i -t --image=nicolaka/netshoot -- /bin/bash
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
### Service Debugging
|
|
596
|
+
|
|
597
|
+
```bash
|
|
598
|
+
# Check service
|
|
599
|
+
kubectl get svc service-name
|
|
600
|
+
|
|
601
|
+
# Check endpoints
|
|
602
|
+
kubectl get endpoints service-name
|
|
603
|
+
|
|
604
|
+
# Describe service
|
|
605
|
+
kubectl describe svc service-name
|
|
606
|
+
|
|
607
|
+
# Check if service has endpoints
|
|
608
|
+
kubectl get endpoints service-name -o jsonpath='{.subsets[*].addresses[*].ip}'
|
|
609
|
+
|
|
610
|
+
# Port forward for testing
|
|
611
|
+
kubectl port-forward svc/service-name 8080:80
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### DNS Debugging
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
# Check CoreDNS pods
|
|
618
|
+
kubectl get pods -n kube-system -l k8s-app=kube-dns
|
|
619
|
+
|
|
620
|
+
# CoreDNS logs
|
|
621
|
+
kubectl logs -n kube-system -l k8s-app=kube-dns
|
|
622
|
+
|
|
623
|
+
# Test DNS from pod
|
|
624
|
+
kubectl run -it --rm debug --image=busybox --restart=Never -- nslookup kubernetes.default
|
|
625
|
+
|
|
626
|
+
# Check DNS config
|
|
627
|
+
kubectl exec pod-name -- cat /etc/resolv.conf
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
## Common Issues
|
|
631
|
+
|
|
632
|
+
### Issue: Cannot ping host
|
|
633
|
+
|
|
634
|
+
```bash
|
|
635
|
+
# Check if host is up
|
|
636
|
+
ping 192.168.1.100
|
|
637
|
+
|
|
638
|
+
# Check routing
|
|
639
|
+
ip route get 192.168.1.100
|
|
640
|
+
|
|
641
|
+
# Check ARP
|
|
642
|
+
ip neigh show
|
|
643
|
+
|
|
644
|
+
# Check firewall
|
|
645
|
+
sudo iptables -L -n
|
|
646
|
+
sudo ufw status
|
|
647
|
+
|
|
648
|
+
# Check if ICMP is blocked
|
|
649
|
+
sudo hping3 -1 192.168.1.100
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
### Issue: DNS not resolving
|
|
653
|
+
|
|
654
|
+
```bash
|
|
655
|
+
# Check DNS servers
|
|
656
|
+
cat /etc/resolv.conf
|
|
657
|
+
|
|
658
|
+
# Test with different DNS server
|
|
659
|
+
dig @8.8.8.8 example.com
|
|
660
|
+
|
|
661
|
+
# Check DNS resolution
|
|
662
|
+
nslookup example.com
|
|
663
|
+
|
|
664
|
+
# Test with specific record type
|
|
665
|
+
dig example.com A
|
|
666
|
+
dig example.com AAAA
|
|
667
|
+
|
|
668
|
+
# Flush DNS cache
|
|
669
|
+
# Ubuntu:
|
|
670
|
+
sudo systemd-resolve --flush-caches
|
|
671
|
+
# macOS:
|
|
672
|
+
sudo dscacheutil -flushcache
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
### Issue: Connection timeout
|
|
676
|
+
|
|
677
|
+
```bash
|
|
678
|
+
# Check if port is open
|
|
679
|
+
telnet example.com 80
|
|
680
|
+
nc -zv example.com 80
|
|
681
|
+
|
|
682
|
+
# Check firewall
|
|
683
|
+
sudo iptables -L -n | grep 80
|
|
684
|
+
|
|
685
|
+
# Check if service is listening
|
|
686
|
+
sudo netstat -tulnp | grep :80
|
|
687
|
+
|
|
688
|
+
# Trace route
|
|
689
|
+
traceroute example.com
|
|
690
|
+
|
|
691
|
+
# Check for packet loss
|
|
692
|
+
mtr example.com
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
### Issue: Intermittent connectivity
|
|
696
|
+
|
|
697
|
+
```bash
|
|
698
|
+
# Continuous ping
|
|
699
|
+
ping -i 0.2 8.8.8.8
|
|
700
|
+
|
|
701
|
+
# Monitor with mtr
|
|
702
|
+
mtr --report-cycles 1000 example.com
|
|
703
|
+
|
|
704
|
+
# Check for high latency
|
|
705
|
+
ping -c 100 example.com | tail -1
|
|
706
|
+
|
|
707
|
+
# Monitor interface errors
|
|
708
|
+
watch -n 1 'ip -s link show eth0'
|
|
709
|
+
|
|
710
|
+
# Check system logs
|
|
711
|
+
journalctl -u NetworkManager
|
|
712
|
+
dmesg | grep -i network
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
### Issue: Slow network performance
|
|
716
|
+
|
|
717
|
+
```bash
|
|
718
|
+
# Test bandwidth
|
|
719
|
+
iperf3 -c server_ip
|
|
720
|
+
|
|
721
|
+
# Check interface speed
|
|
722
|
+
ethtool eth0
|
|
723
|
+
|
|
724
|
+
# Check for duplex mismatch
|
|
725
|
+
ethtool eth0 | grep -i duplex
|
|
726
|
+
|
|
727
|
+
# Monitor bandwidth usage
|
|
728
|
+
iftop -i eth0
|
|
729
|
+
nethogs
|
|
730
|
+
|
|
731
|
+
# Check MTU
|
|
732
|
+
ip link show eth0 | grep mtu
|
|
733
|
+
|
|
734
|
+
# Test with different packet sizes
|
|
735
|
+
ping -s 1400 -M do example.com # Test MTU
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
## Best Practices
|
|
739
|
+
|
|
740
|
+
1. **Use systematic approach** - Follow OSI model, bottom-up or top-down
|
|
741
|
+
2. **Document baseline** - Know normal network behavior
|
|
742
|
+
3. **Check recent changes** - Often the cause of issues
|
|
743
|
+
4. **Use appropriate tools** - Don't use ping for everything
|
|
744
|
+
5. **Check both sides** - Client and server perspectives
|
|
745
|
+
6. **Verify DNS first** - Common source of issues
|
|
746
|
+
7. **Check firewalls** - Security groups, iptables, cloud FW
|
|
747
|
+
8. **Monitor continuously** - Don't wait for issues
|
|
748
|
+
9. **Keep logs** - Enable flow logs, connection logs
|
|
749
|
+
10. **Test incrementally** - Isolate the problem layer by layer
|