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.
Metadata
Release files for dmg-diagnostic-agent 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dmg_diagnostic_agent-2.0.0.tar.gz | 5.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dmg_diagnostic_agent-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.6 kB
Release files / dmg_diagnostic_agent-2.0.0.tar.gz
| Download URL | dmg_diagnostic_agent-2.0.0.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35d89cadbc85e49288f4ad58bc472d18a0248ec4dfb1ebed6e7bcaf7b9dcfd7d
|
|
BLAKE2b-256 checksum How to use checksums |
4c223a268ff5f94f133fd4ce150ab11f2c0c976a469bb4e068e822aa9b235edd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.10
|
Release files / dmg_diagnostic_agent-2.0.0-py3-none-any.whl
| Download URL | dmg_diagnostic_agent-2.0.0-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42068d16bcfe84b357b5e8cc6de75e84ba5605e5f2b111317bfa2e5d49f66a3a
|
|
BLAKE2b-256 checksum How to use checksums |
a73bdea60638303ebb042fcce214b6756051c7c302223657cbebb92033651813
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.10
|
Security for dmg-diagnostic-agent 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.