{
  "schema": "castlepanel.ai.client_configuration.v1",
  "updated_at": "2026-06-19",
  "purpose": "Base segura para IA operacional consultar conceitos e fluxos de configuracao do cliente no CastlePanel.",
  "safety_rules": [
    "Nao executar shell livre.",
    "Usar apenas APIs internas seguras do CastlePanel.",
    "Validar usuario, permissao, cliente, dominio e plano.",
    "Exigir confirmacao humana para acao real.",
    "Registrar auditoria.",
    "Nunca registrar senha, token ou chave privada.",
    "Nunca enviar senha por WhatsApp, e-mail ou log."
  ],
  "entities": {
    "customer": "Dono do escopo tecnico.",
    "reseller": "Revenda com clientes vinculados.",
    "technical_plan": "Define limites de sites, dominios, e-mails, bancos, disco e backups.",
    "site": "Unidade principal de hospedagem.",
    "domain": "Dominio principal, alias, subdominio ou redirecionamento.",
    "dns_zone": "Zona DNS do dominio.",
    "mailbox": "Caixa postal vinculada a dominio e cliente.",
    "database": "Banco e usuario vinculados ao cliente/site.",
    "ssl_certificate": "Certificado emitido por dominio.",
    "backup": "Copia de arquivos e banco."
  },
  "intents": [
    {
      "name": "create_mailbox",
      "description": "Criar e-mail de cliente.",
      "requires_confirmation": true,
      "required_validations": [
        "cliente existe",
        "dominio pertence ao cliente",
        "usuario tem permissao",
        "limite do plano permite nova caixa",
        "mailbox nao existe"
      ],
      "required_outputs": [
        "endereco criado",
        "configuracoes IMAP/SMTP",
        "link do webmail",
        "auditoria registrada"
      ],
      "forbidden": [
        "enviar senha por WhatsApp",
        "registrar senha em log",
        "criar caixa em dominio de outro cliente"
      ]
    },
    {
      "name": "create_subdomain",
      "description": "Criar subdominio para um dominio existente.",
      "requires_confirmation": true,
      "required_validations": [
        "dominio principal pertence ao cliente",
        "subdominio tem formato valido",
        "document root esta dentro do escopo",
        "limite do plano permite",
        "usuario tem permissao"
      ],
      "steps": [
        "criar registro DNS",
        "criar estrutura/vhost pelo CastlePanel",
        "oferecer SSL",
        "registrar auditoria"
      ]
    },
    {
      "name": "create_dns_record",
      "description": "Adicionar registro DNS.",
      "requires_confirmation": true,
      "record_types": ["A", "AAAA", "CNAME", "MX", "TXT", "SPF", "DKIM", "DMARC"],
      "warning": "Alteracoes de DNS podem afetar site, e-mail e SSL."
    },
    {
      "name": "issue_ssl",
      "description": "Solicitar emissao de SSL.",
      "requires_confirmation": true,
      "required_validations": [
        "dominio pertence ao cliente",
        "DNS aponta corretamente",
        "site esta ativo",
        "nao existe operacao pendente"
      ]
    },
    {
      "name": "create_database",
      "description": "Criar banco e usuario de banco.",
      "requires_confirmation": true,
      "required_validations": [
        "cliente existe",
        "site/dominio pertence ao cliente",
        "limite do plano permite",
        "nome do banco e seguro",
        "usuario tem permissao"
      ],
      "secret_handling": "Senha deve ser tratada como segredo e nao deve ser exibida novamente fora do fluxo seguro."
    }
  ],
  "confirmation_template": "Vou executar esta acao no dominio {domain}, para o cliente {customer}. Isso pode afetar o funcionamento do servico. Deseja continuar?",
  "audit_fields": [
    "user_id",
    "role",
    "customer_id",
    "domain",
    "action",
    "non_sensitive_parameters",
    "result",
    "error",
    "ip",
    "user_agent",
    "created_at"
  ]
}
