# Server Diagnostics Configuration
# Used by client.py for server inventory and security constraints

# Server inventory - SSH connection details
servers:
  paper-dynasty:
    hostname: 10.10.0.88
    ssh_user: cal
    ssh_key: ~/.ssh/claude_diagnostics_key
    description: "Paper Dynasty Discord bots and services"

# Docker containers to monitor
# restart_allowed: false prevents automatic remediation
docker_containers:
  - name: paper-dynasty_discord-app_1
    critical: true
    restart_allowed: true
    description: "Paper Dynasty Discord bot"

  - name: paper-dynasty_db_1
    critical: true
    restart_allowed: true
    description: "Paper Dynasty PostgreSQL database"

  - name: paper-dynasty_adminer_1
    critical: false
    restart_allowed: true
    description: "Database admin UI"

  - name: sba-website_sba-web_1
    critical: true
    restart_allowed: true
    description: "SBA website"

  - name: sba-ghost_sba-ghost_1
    critical: false
    restart_allowed: true
    description: "SBA Ghost CMS"

# Whitelisted diagnostic commands
diagnostic_commands:
  disk_usage: "df -h"
  memory_usage: "free -h"
  cpu_usage: "top -bn1 | head -20"
  cpu_load: "uptime"
  process_list: "ps aux --sort=-%mem | head -20"
  network_status: "ss -tuln"
  docker_ps: "docker ps -a --format 'table {{.Names}}\\t{{.Status}}\\t{{.Ports}}'"
  docker_stats: "docker stats --no-stream --format 'table {{.Name}}\\t{{.CPUPerc}}\\t{{.MemUsage}}'"
  journal_errors: "journalctl -p err -n 50 --no-pager"

# Remediation commands (low-risk only)
remediation_commands:
  docker_restart: "docker restart {container}"
  docker_logs: "docker logs --tail 500 {container}"

# DENIED patterns - commands containing these will be rejected
denied_patterns:
  - "rm -rf"
  - "rm -r /"
  - "dd if="
  - "mkfs"
  - ":(){:|:&};:"
  - "shutdown"
  - "reboot"
  - "init 0"
  - "init 6"
  - "systemctl stop"
  - "> /dev/sd"
  - "chmod 777"
  - "wget|sh"
  - "curl|sh"
