2.0 KiB
2.0 KiB
type, layer, tags, title
| type | layer | tags | title | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Entity | wiki |
|
Integracao-WordPress |
Integracao-WordPress
Ingestão de dados de monitorização de sites WordPress. Recebe dados do plugin "Descomplicar Monitor" instalado em cada site cliente e armazena na base de dados para o painel Monitor.
Responsabilidades
- Ingestão: Endpoint POST para receber dados dos plugins WP (versão WP, plugins, temas, health status)
- API Key Auth: Validação obrigatória via header
x-api-keyou query paramkey - Determinação de Status: Algoritmo que classifica o site como
ok,warningoucriticalbaseado em:- Core/plugins/themes desactualizados
- Erros de saúde (health check)
- Versão PHP
- Listagem: GET para listar todos os sites monitorizados
- Connection Test:
GET ?testpara verificar conectividade
Stack
- Validação: Zod (
wpMonitorSchema) com.passthrough()para campos extra de plugins - Auth:
WP_MONITOR_API_KEYobrigatória (crash ao iniciar se ausente) - DB: MySQL via
db.ts
Schema de Dados (Plugin WP → API)
Recebe: site_url, wp_version, php_version, plugins[], themes[], health_status, server_info
Rotas
| Método | Rota | Auth | Função |
|---|---|---|---|
GET |
/api/wp-monitor |
API Key | Listar sites monitorizados |
GET |
/api/wp-monitor?test |
API Key | Teste de conectividade |
POST |
/api/wp-monitor |
API Key + Zod | Receber dados do plugin WP |
Localizações
- Código:
api/routes/wp-monitor.ts(148 linhas) - DB:
tbl_eal_monitoring(category=wordpress) - Plugin: "Descomplicar Monitor" (instalado nos sites cliente)
Dependências
- MySQL-Pool: Armazenamento de dados
- WP_MONITOR_API_KEY: Chave de API em
.env - Plugins WP nos sites cliente: Enviam dados periodicamente
Fornece a
- Painel-Monitor: Secção "Sites WordPress" e "WP Updates"
- Express-API: Rota
/api/wp-monitor