docs(okf): entidades e relacionamentos OKF do DashDescomplicar
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
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`
|
||||
Reference in New Issue
Block a user