Skip to main content

An agent to diagnose and report issues in web servers and projects.

Project description

Capa do Projeto

DMG Diagnostic & Repair Agent

Agent Simulation

🚀 Instalação

Este pacote está publicado no PyPI (Python Package Index) e pode ser instalado facilmente usando pip.

pip install dmg-diagnostic-agent

💻 Como Usar

Após a instalação, você pode executar o agente de diagnóstico diretamente do seu terminal. O agente precisa de duas informações para funcionar: a URL do seu painel para onde ele enviará o diagnóstico e um token de autenticação.

dmg-diagnostic-agent --upload-url <URL_PARA_UPLOAD> --token <SEU_TOKEN_DE_API>

Argumentos:

  • --upload-url: A URL completa do endpoint no seu painel de controle que foi projetado para receber os dados do diagnóstico (Ex: https://seusite.com/api/diagnostic/upload).
  • --token: O token de API seguro para autenticar o agente no seu backend.

📌 Visão Geral

O DMG Diagnostic & Repair Agent é uma ferramenta poderosa que, integrada a um painel de controle, permite:

  • Diagnosticar: Executar uma análise completa no ambiente do servidor, identificando problemas de sistema, configuração, segurança e projeto.
  • Reportar: Enviar um relatório detalhado para uma plataforma centralizada.
  • Reparar (Novo!): Executar ações de correção de forma segura e controlada para resolver problemas comuns, com um sistema de rollback automático para garantir a integridade do sistema.

Este módulo não altera a arquitetura existente do seu painel, apenas adiciona novas rotas, lógica de negócio e interfaces para gerenciar diagnósticos e reparos.

⚙️ Novo: O Safe Repair Engine

A versão 2.0 introduz o Safe Repair Engine, um orquestrador robusto para aplicar correções automaticamente. Ele opera com um fluxo de trabalho que prioriza a segurança e a estabilidade:

  1. Validação de Ação (Whitelist): Antes de qualquer ação, o motor verifica se o reparo solicitado (restart_nginx, renew_ssl, etc.) está em uma lista de comandos permitidos. Ações não autorizadas são bloqueadas.
  2. Criação de Snapshot: Se a ação for permitida, o motor cria um snapshot do estado atual do sistema. A estratégia primária é usar git, criando um commit que serve como ponto de restauração atômico.
  3. Execução do Comando: O comando de reparo associado à ação é executado. Qualquer falha na execução é capturada imediatamente.
  4. Validação Pós-Reparo: Após a execução, um motor de validação verifica se o problema foi realmente resolvido (ex: nginx -t para validar a configuração do Nginx).
  5. Rollback Automático: Se a execução do comando ou a validação pós-reparo falharem, o motor aciona o Rollback Manager, que reverte o sistema para o snapshot criado no passo 2, garantindo que o ambiente retorne ao seu estado original e funcional.

Este ciclo garante que as tentativas de reparo ou sucedem e são validadas, ou falham e não deixam nenhum impacto negativo no sistema.

🏗️ Arquitetura

O fluxo é dividido em três camadas:

  1. Agente Python (externo)
  2. Backend (integração + processamento)
  3. Painéis (Cliente e Admin)

🔄 Fluxo Completo

  1. Cliente executa o agente no servidor.
  2. O agente envia um JSON estruturado para o backend.
  3. O backend valida, armazena e processa o diagnóstico.
  4. Opcionalmente, o backend pode solicitar uma ação de reparo ao agente.
  5. O cliente visualiza resumo no painel.
  6. Após pagamento, relatório completo é desbloqueado.
  7. Admin pode visualizar, gerenciar e iniciar reparos.

🧩 Endpoints Criados

POST /api/diagnostic/upload

Recebe o relatório do agente.

  • Ações: Processa, calcula health score, classifica e salva.

GET /api/diagnostic/my-reports

Lista relatórios do cliente autenticado.

GET /api/diagnostic/:id

Retorna relatório específico (resumo ou completo, dependendo do pagamento).

POST /api/repair/:id/initiate (Exemplo)

Inicia uma ação de reparo para um diagnóstico específico.

GET /api/admin/diagnostic/all

Lista todos os relatórios para o administrador.

🗄️ Estrutura do Banco

Tabela: diagnostics (sem alterações nesta versão)

Campo Tipo Descrição
id UUID Identificador único
user_id UUID Cliente
project_name string Nome do projeto
scan_type string basic/deep
health_score int 0–100
severity_level string low/medium/high/critical
summary_json JSON Resumo
full_report_json JSON Relatório completo
is_unlocked boolean Liberado após pagamento
payment_status string pending/paid
admin_notes text Observações internas
created_at timestamp Data

🔐 Segurança

  • Token obrigatório no upload.
  • Rate limit e limite de payload.
  • Logs de auditoria.
  • Relatórios armazenados com segurança.
  • Modificações no servidor do cliente são realizadas exclusivamente através do Safe Repair Engine, que opera com uma lista de permissões, snapshots e rollback automático para garantir a integridade do sistema.

📡 Estrutura do JSON Recebido

{
  "agent_version": "2.0.0",
  "scan_type": "deep",
  "system": {},
  "ssl": {},
  "nginx": {},
  "project": {},
  "build": {},
  "security": {},
  "errors_summary": [],
  "timestamp": ""
}

🎯 Resultado Final

O sistema passa a oferecer:

  • Diagnóstico automatizado.
  • Reparo Automatizado e Seguro.
  • Classificação inteligente de problemas.
  • Monetização integrada.
  • Gestão técnica centralizada.
  • Base sólida para um produto SaaS DevOps.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dmg_diagnostic_agent-2.0.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dmg_diagnostic_agent-2.0.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file dmg_diagnostic_agent-2.0.0.tar.gz.

File metadata

  • Download URL: dmg_diagnostic_agent-2.0.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for dmg_diagnostic_agent-2.0.0.tar.gz
Algorithm Hash digest
SHA256 35d89cadbc85e49288f4ad58bc472d18a0248ec4dfb1ebed6e7bcaf7b9dcfd7d
MD5 58dd37331670bfbac5ed562a7f1c08e9
BLAKE2b-256 4c223a268ff5f94f133fd4ce150ab11f2c0c976a469bb4e068e822aa9b235edd

See more details on using hashes here.

File details

Details for the file dmg_diagnostic_agent-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dmg_diagnostic_agent-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42068d16bcfe84b357b5e8cc6de75e84ba5605e5f2b111317bfa2e5d49f66a3a
MD5 f469eeeaa842b5e03595d1079670904a
BLAKE2b-256 a73bdea60638303ebb042fcce214b6756051c7c302223657cbebb92033651813

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page