# Help system content - Data-driven help text for provisioning CLI # This file contains all help text organized by category # Color codes use Nushell ANSI formatting: (_ansi color)text(_ansi reset) { categories = { infrastructure = { title = "🏗️ INFRASTRUCTURE MANAGEMENT", color = "cyan", sections = [ { name = "Lifecycle", subtitle = "Server Management", items = [ { cmd = "server create", desc = "Create new servers [--infra ] [--check]" }, { cmd = "server delete", desc = "Delete servers [--yes] [--keepstorage]" }, { cmd = "server list", desc = "List all servers [--out json|yaml]" }, { cmd = "server ssh ", desc = "SSH into server" }, { cmd = "server price", desc = "Show server pricing" } ] }, { name = "Services", subtitle = "Task Service Management", items = [ { cmd = "taskserv create ", desc = "Install service [kubernetes, redis, postgres]" }, { cmd = "taskserv delete ", desc = "Remove service" }, { cmd = "taskserv list", desc = "List available services" }, { cmd = "taskserv generate ", desc = "Generate service configuration" }, { cmd = "taskserv validate ", desc = "Validate service before deployment" }, { cmd = "taskserv test ", desc = "Test service in sandbox" }, { cmd = "taskserv check-deps ", desc = "Check service dependencies" }, { cmd = "taskserv check-updates", desc = "Check for service updates" } ] }, { name = "Complete", subtitle = "Cluster Operations", items = [ { cmd = "cluster create", desc = "Create complete cluster" }, { cmd = "cluster delete", desc = "Delete cluster" }, { cmd = "cluster list", desc = "List cluster components" } ] }, { name = "Virtual Machines", subtitle = "VM Management", items = [ { cmd = "vm create [config]", desc = "Create new VM" }, { cmd = "vm list [--running]", desc = "List VMs" }, { cmd = "vm start ", desc = "Start VM" }, { cmd = "vm stop ", desc = "Stop VM" }, { cmd = "vm delete ", desc = "Delete VM" }, { cmd = "vm info ", desc = "VM information" }, { cmd = "vm ssh ", desc = "SSH into VM" }, { cmd = "vm hosts check", desc = "Check hypervisor capability" }, { cmd = "vm lifecycle list-temporary", desc = "List temporary VMs" }, { cmd = "shortcuts", note = "vmi=info, vmh=hosts, vml=lifecycle" } ] }, { name = "Management", subtitle = "Infrastructure", items = [ { cmd = "infra list", desc = "List infrastructures" }, { cmd = "infra validate", desc = "Validate infrastructure config" }, { cmd = "generate infra --new ", desc = "Create new infrastructure" } ] } ], tip = "Use --check flag for dry-run mode\n Example: provisioning server create --check" }, orchestration = { title = "⚡ ORCHESTRATION & WORKFLOWS", color = "purple", sections = [ { name = "Control", subtitle = "Orchestrator Management", items = [ { cmd = "orchestrator start", desc = "Start orchestrator [--background]" }, { cmd = "orchestrator stop", desc = "Stop orchestrator" }, { cmd = "orchestrator status", desc = "Check if running" }, { cmd = "orchestrator health", desc = "Health check" }, { cmd = "orchestrator logs", desc = "View logs [--follow]" } ] }, { name = "Workflows", subtitle = "Single Task Workflows", items = [ { cmd = "workflow list", desc = "List all workflows" }, { cmd = "workflow status ", desc = "Get workflow status" }, { cmd = "workflow monitor ", desc = "Monitor in real-time" }, { cmd = "workflow stats", desc = "Show statistics" }, { cmd = "workflow cleanup", desc = "Clean old workflows" } ] }, { name = "Batch", subtitle = "Multi-Provider Batch Operations", items = [ { cmd = "batch submit ", desc = "Submit Nickel workflow [--wait]" }, { cmd = "batch list", desc = "List batches [--status Running]" }, { cmd = "batch status ", desc = "Get batch status" }, { cmd = "batch monitor ", desc = "Real-time monitoring" }, { cmd = "batch rollback ", desc = "Rollback failed batch" }, { cmd = "batch cancel ", desc = "Cancel running batch" }, { cmd = "batch stats", desc = "Show statistics" } ] } ], tip = "Batch workflows support mixed providers: UpCloud, AWS, and local\n Example: provisioning batch submit deployment.ncl --wait" }, development = { title = "🧩 DEVELOPMENT TOOLS", color = "blue", sections = [ { name = "Discovery", subtitle = "Module System", items = [ { cmd = "module discover ", desc = "Find taskservs/providers/clusters" }, { cmd = "module load ", desc = "Load modules into workspace" }, { cmd = "module list ", desc = "List loaded modules" }, { cmd = "module unload ", desc = "Unload module" }, { cmd = "module sync-nickel ", desc = "Sync Nickel dependencies" } ] }, { name = "Architecture", subtitle = "Layer System (STRATEGIC)", items = [ { cmd = "layer explain", desc = "Explain layer concept" }, { cmd = "layer show ", desc = "Show layer resolution" }, { cmd = "layer test ", desc = "Test layer resolution" }, { cmd = "layer stats", desc = "Show statistics" } ] }, { name = "Maintenance", subtitle = "Version Management", items = [ { cmd = "version check", desc = "Check all versions" }, { cmd = "version show", desc = "Display status [--format table|json]" }, { cmd = "version updates", desc = "Check available updates" }, { cmd = "version apply", desc = "Apply config updates" }, { cmd = "version taskserv ", desc = "Show taskserv version" } ] }, { name = "Distribution", subtitle = "Packaging (Advanced)", items = [ { cmd = "pack core", desc = "Package core schemas" }, { cmd = "pack provider ", desc = "Package provider" }, { cmd = "pack list", desc = "List packages" }, { cmd = "pack clean", desc = "Clean old packages" } ] } ], tip = "The layer system is key to configuration inheritance\n Use 'provisioning layer explain' to understand it" }, workspace = { title = "📁 WORKSPACE & TEMPLATES", color = "green", sections = [ { name = "Management", subtitle = "Workspace Operations", items = [ { cmd = "workspace init ", desc = "Initialize workspace [--activate] [--interactive]" }, { cmd = "workspace create ", desc = "Create workspace structure [--activate]" }, { cmd = "workspace activate ", desc = "Activate existing workspace as default" }, { cmd = "workspace validate ", desc = "Validate structure" }, { cmd = "workspace info ", desc = "Show information" }, { cmd = "workspace list", desc = "List workspaces" }, { cmd = "workspace migrate [name]", desc = "Migrate workspace [--skip-backup] [--force]" }, { cmd = "workspace version [name]", desc = "Show workspace version information" }, { cmd = "workspace check-compatibility [name]", desc = "Check workspace compatibility" }, { cmd = "workspace list-backups [name]", desc = "List workspace backups" } ] }, { name = "Synchronization", subtitle = "Update Hidden Directories & Modules", items = [ { cmd = "workspace check-updates [name]", desc = "Check which directories need updating" }, { cmd = "workspace update [name] [FLAGS]", desc = "Update all hidden dirs and content\n \t\t\tUpdates: .providers, .clusters, .taskservs, .nickel" }, { cmd = "workspace sync-modules [name] [FLAGS]", desc = "Sync workspace modules" } ] }, { name = "Common Flags", items = [ { flag = "--check (-c)", desc = "Preview changes without applying them" }, { flag = "--force (-f)", desc = "Skip confirmation prompts" }, { flag = "--yes (-y)", desc = "Auto-confirm (same as --force)" }, { flag = "--verbose(-v)", desc = "Detailed operation information" } ] }, { name = "Creation Modes", items = [ { flag = "--activate(-a)", desc = "Activate workspace as default after creation" }, { flag = "--interactive(-I)", desc = "Interactive workspace creation wizard" } ] }, { name = "Configuration", subtitle = "Workspace Config Management", items = [ { cmd = "workspace config show [name]", desc = "Show workspace config [--format yaml|json|toml]" }, { cmd = "workspace config validate [name]", desc = "Validate all configs" }, { cmd = "workspace config generate provider ", desc = "Generate provider config" }, { cmd = "workspace config edit [name]", desc = "Edit config (main|provider|platform|kms)" }, { cmd = "workspace config hierarchy [name]", desc = "Show config loading order" }, { cmd = "workspace config list [name]", desc = "List config files [--type all|provider|platform|kms]" } ] }, { name = "Patterns", subtitle = "Infrastructure Templates", items = [ { cmd = "template list", desc = "List templates [--type taskservs|providers]" }, { cmd = "template types", desc = "Show template categories" }, { cmd = "template show ", desc = "Show template details" }, { cmd = "template apply ", desc = "Apply to infrastructure" }, { cmd = "template validate ", desc = "Validate template usage" } ] } ], note = "Optional workspace name [name] defaults to active workspace if not specified", examples = [ "provisioning --yes workspace update - Update active workspace with auto-confirm", "provisioning --verbose workspace update myws - Update 'myws' with detailed output", "provisioning --check workspace update - Preview changes before updating", "provisioning --yes --verbose workspace update myws - Combine flags" ], warning = "Nushell Flag Ordering: Nushell requires flags BEFORE positional arguments\n ✅ provisioning --yes workspace update [Correct - flags first]\n ❌ provisioning workspace update --yes [Wrong - parser error]", tip = "Config commands use active workspace if name not provided\n Example: provisioning workspace config show --format json" }, platform = { title = "🖥️ PLATFORM SERVICES", color = "red", sections = [ { name = "Control Center", subtitle = "🌐 Web UI + Policy Engine", items = [ { cmd = "control-center server", desc = "Start Cedar policy engine (--port 8080)" }, { cmd = "control-center policy validate", desc = "Validate Cedar policies" }, { cmd = "control-center policy test", desc = "Test policies with data" }, { cmd = "control-center compliance soc2", desc = "SOC2 compliance check" }, { cmd = "control-center compliance hipaa", desc = "HIPAA compliance check" } ], features = [ "Web-based UI - WASM-powered control center interface", "Policy Engine - Cedar policy evaluation and versioning", "Compliance - SOC2 Type II and HIPAA validation", "Security - JWT auth, MFA, RBAC, anomaly detection", "Audit Trail - Complete compliance audit logging" ] }, { name = "Orchestrator", subtitle = "Hybrid Rust/Nushell Coordination", items = [ { cmd = "orchestrator start", desc = "Start orchestrator [--background]" }, { cmd = "orchestrator stop", desc = "Stop orchestrator" }, { cmd = "orchestrator status", desc = "Check if running" }, { cmd = "orchestrator health", desc = "Health check with diagnostics" }, { cmd = "orchestrator logs", desc = "View logs [--follow]" } ] }, { name = "MCP Server", subtitle = "AI-Assisted DevOps Integration", items = [ { cmd = "mcp-server start", desc = "Start MCP server [--debug]" }, { cmd = "mcp-server status", desc = "Check server status" } ], features = [ "AI-Powered Parsing - Natural language to infrastructure", "Multi-Provider - AWS, UpCloud, Local support", "Ultra-Fast - Microsecond latency, 1000x faster than Python", "Type Safe - Compile-time guarantees with zero runtime errors" ] } ], tip = "Control Center provides a web-based UI for managing policies!\n Access at: http://localhost:8080 after starting the server\n Example: provisioning control-center server --port 8080" }, setup = { title = "⚙️ SYSTEM SETUP & CONFIGURATION", color = "magenta", sections = [ { name = "Initial Setup", subtitle = "First-Time System Configuration", items = [ { cmd = "provisioning setup system", desc = "Complete system setup wizard\n • Interactive TUI mode (default)\n • Detects OS and configures paths\n • Sets up platform services\n • Configures cloud providers\n • Initializes security (KMS, auth)\n Flags: --interactive, --config , --defaults" } ] }, { name = "Workspace Setup", subtitle = "Create and Configure Workspaces", items = [ { cmd = "provisioning setup workspace ", desc = "Create new workspace\n • Initialize workspace structure\n • Configure workspace-specific settings\n • Set active providers\n Flags: --activate, --config , --interactive" } ] }, { name = "Provider Setup", subtitle = "Cloud Provider Configuration", items = [ { cmd = "provisioning setup provider ", desc = "Configure cloud provider\n • upcloud - UpCloud provider (API key, zones)\n • aws - Amazon Web Services (access key, region)\n • hetzner - Hetzner Cloud (token, datacenter)\n • local - Local docker/podman provider\n Flags: --global, --workspace , --credentials" } ] }, { name = "Platform Setup", subtitle = "Infrastructure Services", items = [ { cmd = "provisioning setup platform", desc = "Setup platform services\n • Orchestrator (workflow coordination)\n • Control Center (policy engine, web UI)\n • KMS Service (encryption backend)\n • MCP Server (AI-assisted operations)\n Flags: --mode solo|multiuser|cicd|enterprise, --deployment docker|k8s|podman" } ] }, { name = "Update Configuration", subtitle = "Modify Existing Setup", items = [ { cmd = "provisioning setup update [category]", desc = "Update existing settings\n • provider - Update provider credentials\n • platform - Update platform service config\n • preferences - Update user preferences\n Flags: --workspace , --check" } ] } ], tip = "Most setup operations support --check for dry-run mode\n Example: provisioning setup platform --mode solo --check\n Use provisioning guide from-scratch for step-by-step walkthrough" }, concepts = { title = "💡 ARCHITECTURE & KEY CONCEPTS", color = "yellow", sections = [ { name = "Layer System", subtitle = "Configuration Inheritance", content = "The system uses a 3-layer architecture for configuration:\n\n Core Layer (100)\n └─ Base system extensions (provisioning/extensions/)\n • Standard provider implementations\n • Default taskserv configurations\n • Built-in cluster templates\n\n Workspace Layer (200)\n └─ Shared templates (provisioning/workspace/templates/)\n • Reusable infrastructure patterns\n • Organization-wide standards\n • Team conventions\n\n Infrastructure Layer (300)\n └─ Specific overrides (workspace/infra/{name}/)\n • Project-specific configurations\n • Environment customizations\n • Local overrides\n\n Resolution Order: Infrastructure (300) → Workspace (200) → Core (100)\n Higher numbers override lower numbers" }, { name = "Module System", subtitle = "Reusable Components", content = "Taskservs - Infrastructure services\n • kubernetes, containerd, cilium, redis, postgres\n • Installed on servers, configured per environment\n\n Providers - Cloud platforms\n • upcloud, aws, local with docker or podman\n • Provider-agnostic middleware supports multi-cloud\n\n Clusters - Complete configurations\n • buildkit, ci-cd, monitoring\n • Orchestrated deployments with dependencies" }, { name = "Workflow Types", content = "Single Workflows\n • Individual server/taskserv/cluster operations\n • Real-time monitoring, state management\n\n Batch Workflows\n • Multi-provider operations: UpCloud, AWS, and local\n • Dependency resolution, rollback support\n • Defined in Nickel workflow files" }, { name = "Typical Workflow", content = "1. Create workspace: workspace init my-project\n 2. Discover modules: module discover taskservs\n 3. Load modules: module load taskservs my-project kubernetes\n 4. Create servers: server create --infra my-project\n 5. Deploy taskservs: taskserv create kubernetes\n 6. Check layers: layer show my-project" } ], tip = "For more details:\n • provisioning layer explain - Layer system deep dive\n • provisioning help development - Module system commands" }, guides = { title = "📚 GUIDES & CHEATSHEETS", color = "magenta", sections = [ { name = "Quick Reference", subtitle = "Copy-Paste Ready Commands", items = [ { cmd = "sc", desc = "Quick command reference (fastest)" }, { cmd = "guide quickstart", desc = "Full command cheatsheet with examples" } ] }, { name = "Step-by-Step Guides", subtitle = "Complete Walkthroughs", items = [ { cmd = "guide from-scratch", desc = "Complete deployment from zero to production" }, { cmd = "guide update", desc = "Update existing infrastructure safely" }, { cmd = "guide customize", desc = "Customize with layers and templates" } ] }, { name = "Guide Topics", content = "Quickstart Cheatsheet:\n • All command shortcuts reference\n • Copy-paste ready commands\n • Common workflow examples\n\n From Scratch Guide:\n • Prerequisites and setup\n • Initialize workspace\n • Deploy complete infrastructure\n • Verify deployment\n\n Update Guide:\n • Check for updates\n • Update strategies\n • Rolling updates\n • Rollback procedures\n\n Customize Guide:\n • Layer system explained\n • Using templates\n • Creating custom modules\n • Advanced customization patterns" } ], tip = "All guides provide copy-paste ready commands that you can\n adjust and use immediately. Perfect for quick start!\n Example: provisioning guide quickstart | less" }, authentication = { title = "🔐 AUTHENTICATION & SECURITY", color = "yellow", sections = [ { name = "Session Management", subtitle = "JWT Token Authentication", items = [ { cmd = "auth login ", desc = "Login and store JWT tokens" }, { cmd = "auth logout", desc = "Logout and clear tokens" }, { cmd = "auth status", desc = "Show current authentication status" }, { cmd = "auth sessions", desc = "List active sessions" }, { cmd = "auth refresh", desc = "Verify/refresh token" } ] }, { name = "Multi-Factor Auth", subtitle = "TOTP and WebAuthn Support", items = [ { cmd = "auth mfa enroll ", desc = "Enroll in MFA [totp or webauthn]" }, { cmd = "auth mfa verify --code ", desc = "Verify MFA code" } ] }, { name = "Authentication Features", content = "• JWT tokens with RS256 asymmetric signing\n • 15-minute access tokens with 7-day refresh\n • TOTP MFA [Google Authenticator, Authy]\n • WebAuthn/FIDO2 [YubiKey, Touch ID, Windows Hello]\n • Role-based access [Admin, Developer, Operator, Viewer, Auditor]\n • HTTP fallback when nu_plugin_auth unavailable" } ], tip = "MFA is required for production and destructive operations\n Tokens stored securely in system keyring when plugin available\n Use 'provisioning help mfa' for detailed MFA information" }, mfa = { title = "🔐 MULTI-FACTOR AUTHENTICATION", color = "yellow", sections = [ { name = "MFA Types", content = "TOTP [Time-based One-Time Password]\n • 6-digit codes that change every 30 seconds\n • Works with Google Authenticator, Authy, 1Password, etc.\n • No internet required after setup\n • QR code for easy enrollment\n\n WebAuthn/FIDO2\n • Hardware security keys [YubiKey, Titan Key]\n • Biometric authentication [Touch ID, Face ID, Windows Hello]\n • Phishing-resistant\n • No codes to type" }, { name = "Enrollment Process", items = [ { step = "1. Login first:", cmd = "provisioning auth login" }, { step = "2. Enroll in MFA:", cmd = "provisioning auth mfa enroll totp" }, { step = "3. Scan QR code:", note = "Use authenticator app" }, { step = "4. Verify setup:", cmd = "provisioning auth mfa verify --code " }, { step = "5. Save backup codes:", note = "Store securely [shown after verification]" } ] }, { name = "MFA Requirements", items = [ { level = "Production Operations", desc = "MFA required for prod environment" }, { level = "Destructive Operations", desc = "MFA required for delete/destroy" }, { level = "Admin Operations", desc = "MFA recommended for all admins" } ] } ], tip = "MFA enrollment requires active authentication session\n Backup codes provided after verification - store securely!\n Can enroll multiple devices for redundancy" }, plugins = { title = "🔌 PLUGIN MANAGEMENT", color = "cyan", sections = [ { name = "Critical Provisioning Plugins", subtitle = "10-30x FASTER", content = "nu_plugin_auth (~10x faster)\n • JWT authentication with RS256 signing\n • Secure token storage in system keyring\n • TOTP and WebAuthn MFA support\n • Commands: auth login, logout, verify, sessions, mfa\n • HTTP fallback when unavailable\n\n nu_plugin_kms (~10x faster)\n • Multi-backend encryption: RustyVault, Age, AWS KMS, Vault, Cosmian\n • Envelope encryption and key rotation\n • Commands: kms encrypt, decrypt, generate-key, status, list-backends\n • HTTP fallback when unavailable\n\n nu_plugin_orchestrator (~30x faster)\n • Direct file-based state access (no HTTP)\n • Nickel workflow validation\n • Commands: orch status, tasks, validate, submit, monitor\n • Local task queue operations" }, { name = "Plugin Operations", items = [ { cmd = "plugin list", desc = "List all plugins with status" }, { cmd = "plugin register ", desc = "Register plugin with Nushell" }, { cmd = "plugin test ", desc = "Test plugin functionality" }, { cmd = "plugin status", desc = "Show plugin status and performance" } ] }, { name = "Additional Plugins", content = "nu_plugin_tera\n • Jinja2-compatible template rendering\n • Used for config generation\n\n nu_plugin_nickel\n • Nickel configuration language\n • Falls back to external Nickel CLI" } ], tip = "Plugins provide 10-30x performance improvement\n Graceful HTTP fallback when plugins unavailable\n Config: provisioning/config/plugins.toml" }, utilities = { title = "🛠️ UTILITIES & TOOLS", color = "green", sections = [ { name = "Cache Management", subtitle = "Configuration Caching", items = [ { cmd = "cache status", desc = "Show cache configuration and statistics" }, { cmd = "cache config show", desc = "Display all cache settings" }, { cmd = "cache config get ", desc = "Get specific cache setting [dot notation]" }, { cmd = "cache config set ", desc = "Set cache setting" }, { cmd = "cache list [--type ]", desc = "List cached items [all|nickel|sops|final]" }, { cmd = "cache clear [--type ]", desc = "Clear cache [default: all]" }, { cmd = "cache help", desc = "Show cache command help" } ], features = [ "Intelligent TTL management (Nickel: 30m, SOPS: 15m, Final: 5m)", "mtime-based validation for stale data detection", "SOPS cache with 0600 permissions", "Configurable cache size (default: 100 MB)", "Works without active workspace", "Performance: 95-98% faster config loading" ] }, { name = "Secrets Management", subtitle = "SOPS Encryption", items = [ { cmd = "sops ", desc = "Edit encrypted file with SOPS" }, { cmd = "encrypt ", desc = "Encrypt file (alias: kms encrypt)" }, { cmd = "decrypt ", desc = "Decrypt file (alias: kms decrypt)" } ] }, { name = "Provider Operations", subtitle = "Cloud & Local Providers", items = [ { cmd = "providers list [--nickel] [--format ]", desc = "List available providers" }, { cmd = "providers info [--nickel]", desc = "Show detailed provider info" }, { cmd = "providers install [--version ]", desc = "Install provider" }, { cmd = "providers remove [--force]", desc = "Remove provider" }, { cmd = "providers installed [--format ]", desc = "List installed" }, { cmd = "providers validate ", desc = "Validate installation" } ] }, { name = "Plugin Management", subtitle = "Native Performance", items = [ { cmd = "plugin list", desc = "List installed plugins" }, { cmd = "plugin register ", desc = "Register plugin with Nushell" }, { cmd = "plugin test ", desc = "Test plugin functionality" }, { cmd = "plugin status", desc = "Show all plugin status" } ] }, { name = "SSH Operations", subtitle = "Remote Access", items = [ { cmd = "ssh ", desc = "Connect to server via SSH" }, { cmd = "ssh-pool list", desc = "List SSH connection pool" }, { cmd = "ssh-pool clear", desc = "Clear SSH connection cache" } ] }, { name = "Miscellaneous", subtitle = "Utilities", items = [ { cmd = "nu", desc = "Start Nushell session with provisioning lib" }, { cmd = "nuinfo", desc = "Show Nushell version and information" }, { cmd = "list", desc = "Alias for resource listing" }, { cmd = "qr ", desc = "Generate QR code" } ] } ], tip = "Cache is enabled by default\n Disable with: provisioning cache config set enabled false\n Or use CLI flag: provisioning --no-cache command\n All commands work without active workspace" }, tools = { title = "🔧 TOOLS & DEPENDENCIES", color = "yellow", sections = [ { name = "Installation", subtitle = "Tool Setup", items = [ { cmd = "tools install", desc = "Install all tools" }, { cmd = "tools install ", desc = "Install specific tool [aws|hcloud|upctl]" }, { cmd = "tools install --update", desc = "Force reinstall all tools" } ] }, { name = "Version Management", subtitle = "Tool Versions", items = [ { cmd = "tools check", desc = "Check all tool versions" }, { cmd = "tools versions", desc = "Show configured versions" }, { cmd = "tools check-updates", desc = "Check for available updates" }, { cmd = "tools apply-updates", desc = "Apply configuration updates [--dry-run]" } ] }, { name = "Tool Information", subtitle = "Tool Details", items = [ { cmd = "tools show", desc = "Display tool information" }, { cmd = "tools show all", desc = "Show all tools and providers" }, { cmd = "tools show ", desc = "Tool-specific information" }, { cmd = "tools show provider", desc = "Show provider information" } ] }, { name = "Pinning & Configuration", subtitle = "Version Control", items = [ { cmd = "tools pin ", desc = "Pin tool to current version (prevent auto-update)" }, { cmd = "tools unpin ", desc = "Unpin tool (allow auto-update)" } ] }, { name = "Provider Tools", subtitle = "Cloud CLI Tools", items = [ { cmd = "tools check aws", desc = "Check AWS CLI status" }, { cmd = "tools check hcloud", desc = "Check Hetzner CLI status" }, { cmd = "tools check upctl", desc = "Check UpCloud CLI status" } ] } ], tip = "Use 'provisioning tools install' to set up all required tools\n Most tools are optional but recommended for specific cloud providers\n Pinning ensures version stability for production deployments" }, diagnostics = { title = "🔍 DIAGNOSTICS & SYSTEM HEALTH", color = "green", sections = [ { name = "System Status", subtitle = "Component Verification", items = [ { cmd = "status", desc = "Show comprehensive system status\n • Nushell version check (requires 0.109.0+)\n • Nickel CLI installation and version\n • Nushell plugins (auth, KMS, tera, nickel, orchestrator)\n • Active workspace configuration\n • Cloud providers availability\n • Orchestrator service status\n • Platform services (Control Center, MCP, API Gateway)\n • Documentation links for each component" }, { cmd = "status json", desc = "Machine-readable status output\n • Structured JSON output\n • Health percentage calculation\n • Ready-for-deployment flag" } ] }, { name = "Health Checks", subtitle = "Deep Validation", items = [ { cmd = "health", desc = "Run deep health validation\n • Configuration files (user_config.yaml, provisioning.yaml)\n • Workspace structure (infra/, config/, extensions/, runtime/)\n • Infrastructure state (servers, taskservs, clusters)\n • Platform services connectivity\n • Nickel schemas validity\n • Security configuration (KMS, auth, SOPS, Age)\n • Provider credentials (UpCloud, AWS)\n • Fix recommendations with doc links" }, { cmd = "health json", desc = "Machine-readable health output\n • Structured JSON output\n • Health score calculation\n • Production-ready flag" } ] }, { name = "Smart Guidance", subtitle = "Progressive Recommendations", items = [ { cmd = "next", desc = "Get intelligent next steps\n • Phase 1: No workspace → Create workspace\n • Phase 2: No infrastructure → Define infrastructure\n • Phase 3: No servers → Deploy servers\n • Phase 4: No taskservs → Install task services\n • Phase 5: No clusters → Deploy clusters\n • Production: Management and monitoring tips\n • Each step includes commands + documentation links" }, { cmd = "phase", desc = "Show current deployment phase\n • Current phase (initialization → production)\n • Progress percentage (step/total)\n • Deployment readiness status" } ] } ], tip = "Tip: Run `provisioning status` first to identify issues\n Then use `provisioning health` for detailed validation\n Finally, `provisioning next` shows you what to do" }, integrations = { title = "🌉 PROV-ECOSYSTEM & PROVCTL INTEGRATIONS", color = "yellow", sections = [ { name = "Runtime", subtitle = "Container Runtime Abstraction", items = [ { cmd = "integrations runtime detect", desc = "Detect available runtime (docker, podman, orbstack, colima, nerdctl)" }, { cmd = "integrations runtime exec", desc = "Execute command in detected runtime" }, { cmd = "integrations runtime compose", desc = "Adapt docker-compose file for runtime" }, { cmd = "integrations runtime info", desc = "Show runtime information" }, { cmd = "integrations runtime list", desc = "List all available runtimes" } ] }, { name = "SSH", subtitle = "Advanced SSH Operations with Pooling & Circuit Breaker", items = [ { cmd = "integrations ssh pool connect", desc = "Create SSH pool connection to host" }, { cmd = "integrations ssh pool exec", desc = "Execute command on SSH pool" }, { cmd = "integrations ssh pool status", desc = "Check pool status" }, { cmd = "integrations ssh strategies", desc = "List deployment strategies (rolling, blue-green, canary)" }, { cmd = "integrations ssh retry-config", desc = "Configure retry strategy" }, { cmd = "integrations ssh circuit-breaker", desc = "Check circuit breaker status" } ] }, { name = "Backup", subtitle = "Multi-Backend Backup Management", items = [ { cmd = "integrations backup create", desc = "Create backup job (restic, borg, tar, rsync)" }, { cmd = "integrations backup restore", desc = "Restore from snapshot" }, { cmd = "integrations backup list", desc = "List available snapshots" }, { cmd = "integrations backup schedule", desc = "Schedule regular backups with cron" }, { cmd = "integrations backup retention", desc = "Show retention policy" }, { cmd = "integrations backup status", desc = "Check backup status" } ] }, { name = "GitOps", subtitle = "Event-Driven Deployments from Git", items = [ { cmd = "integrations gitops rules", desc = "Load GitOps rules from config" }, { cmd = "integrations gitops watch", desc = "Watch for Git events (GitHub, GitLab, Gitea)" }, { cmd = "integrations gitops trigger", desc = "Manually trigger deployment" }, { cmd = "integrations gitops events", desc = "List supported events (push, PR, webhook, scheduled)" }, { cmd = "integrations gitops deployments", desc = "List active deployments" }, { cmd = "integrations gitops status", desc = "Show GitOps status" } ] }, { name = "Service", subtitle = "Cross-Platform Service Management", items = [ { cmd = "integrations service install", desc = "Install service (systemd, launchd, runit, openrc)" }, { cmd = "integrations service start", desc = "Start service" }, { cmd = "integrations service stop", desc = "Stop service" }, { cmd = "integrations service restart", desc = "Restart service" }, { cmd = "integrations service status", desc = "Check service status" }, { cmd = "integrations service list", desc = "List services" }, { cmd = "integrations service detect-init", desc = "Detect init system" } ] } ], tip = "Tip: Use --check flag for dry-run mode\n Example: provisioning runtime exec 'docker ps' --check" }, vm = { title = "🖥️ VIRTUAL MACHINE MANAGEMENT", color = "cyan", sections = [ { name = "Core", subtitle = "VM Operations", items = [ { cmd = "vm create [config]", desc = "Create new VM" }, { cmd = "vm list [--running]", desc = "List all VMs" }, { cmd = "vm start ", desc = "Start VM" }, { cmd = "vm stop ", desc = "Stop VM" }, { cmd = "vm delete ", desc = "Delete VM" }, { cmd = "vm info ", desc = "VM information" }, { cmd = "vm ssh ", desc = "SSH into VM" }, { cmd = "vm exec ", desc = "Execute command in VM" }, { cmd = "vm scp ", desc = "Copy files to/from VM" } ] }, { name = "Hosts", subtitle = "Host Management", items = [ { cmd = "vm hosts check", desc = "Check hypervisor capability" }, { cmd = "vm hosts prepare", desc = "Prepare host for VMs" }, { cmd = "vm hosts list", desc = "List available hosts" }, { cmd = "vm hosts status", desc = "Host status" }, { cmd = "vm hosts ensure", desc = "Ensure VM support" } ] }, { name = "Lifecycle", subtitle = "VM Persistence", items = [ { cmd = "vm lifecycle list-permanent", desc = "List permanent VMs" }, { cmd = "vm lifecycle list-temporary", desc = "List temporary VMs" }, { cmd = "vm lifecycle make-permanent", desc = "Mark VM as permanent" }, { cmd = "vm lifecycle make-temporary", desc = "Mark VM as temporary" }, { cmd = "vm lifecycle cleanup-now", desc = "Cleanup expired VMs" }, { cmd = "vm lifecycle extend-ttl", desc = "Extend VM TTL" }, { cmd = "vm lifecycle scheduler start", desc = "Start cleanup scheduler" }, { cmd = "vm lifecycle scheduler stop", desc = "Stop scheduler" }, { cmd = "vm lifecycle scheduler status", desc = "Scheduler status" } ] } ], note = "Destructive operations: delete, cleanup require auth\n Production operations: create, prepare may require auth\n Bypass with --check for dry-run mode", tip = "Tip: Use --check flag for dry-run mode\n Example: provisioning vm create web-01.yaml --check" } } }