57 lines
2.0 KiB
Markdown
57 lines
2.0 KiB
Markdown
---
|
|
type: Entity
|
|
layer: wiki
|
|
tags: [stack, dashdescomplicar, backend, integracao, wordpress, monitorizacao]
|
|
title: "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-key` ou query param `key`
|
|
- **Determinação de Status**: Algoritmo que classifica o site como `ok`, `warning` ou `critical` baseado 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 ?test` para verificar conectividade
|
|
|
|
## Stack
|
|
|
|
- **Validação**: Zod (`wpMonitorSchema`) com `.passthrough()` para campos extra de plugins
|
|
- **Auth**: `WP_MONITOR_API_KEY` obrigató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`
|