An agent to diagnose and report issues in web servers and projects.
Project description
DMG Diagnostic & Repair Agent
🚀 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:
- 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. - 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. - Execução do Comando: O comando de reparo associado à ação é executado. Qualquer falha na execução é capturada imediatamente.
- Validação Pós-Reparo: Após a execução, um motor de validação verifica se o problema foi realmente resolvido (ex:
nginx -tpara validar a configuração do Nginx). - 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:
- Agente Python (externo)
- Backend (integração + processamento)
- Painéis (Cliente e Admin)
🔄 Fluxo Completo
- Cliente executa o agente no servidor.
- O agente envia um JSON estruturado para o backend.
- O backend valida, armazena e processa o diagnóstico.
- Opcionalmente, o backend pode solicitar uma ação de reparo ao agente.
- O cliente visualiza resumo no painel.
- Após pagamento, relatório completo é desbloqueado.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35d89cadbc85e49288f4ad58bc472d18a0248ec4dfb1ebed6e7bcaf7b9dcfd7d
|
|
| MD5 |
58dd37331670bfbac5ed562a7f1c08e9
|
|
| BLAKE2b-256 |
4c223a268ff5f94f133fd4ce150ab11f2c0c976a469bb4e068e822aa9b235edd
|
File details
Details for the file dmg_diagnostic_agent-2.0.0-py3-none-any.whl.
File metadata
- Download URL: dmg_diagnostic_agent-2.0.0-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42068d16bcfe84b357b5e8cc6de75e84ba5605e5f2b111317bfa2e5d49f66a3a
|
|
| MD5 |
f469eeeaa842b5e03595d1079670904a
|
|
| BLAKE2b-256 |
a73bdea60638303ebb042fcce214b6756051c7c302223657cbebb92033651813
|