# Feature Specification: Integrações externas — Wazuh (002)

**Branch**: `002-wazuh-integration` | **Created**: 2026-06-08

## Objetivo

Permitir que **qualquer serviço de infra** envie eventos para o Ligbox Ops Desk via webhook genérico. Primeira integração: **Wazuh VM104** (alertas nível ≥ 10).

## User Stories

### P1 — Webhook genérico por origem
Ops recebe `POST /api/v1/webhooks/ingress/{source}` com secret por integração; regista evento e cria ticket conforme regras da origem.

### P1 — Wazuh → Desk
Alertas de segurança (level ≥ 10) no Wazuh manager aparecem como tickets no Desk com agente, regra, severidade e IP.

### P2 — UI por origem
Filtro de eventos/tickets por origem (`vm112-onboard`, `wazuh`) e badge de severidade Wazuh.

## Functional Requirements

- FR-001: Endpoint `POST /api/v1/webhooks/ingress/{source}` com auth por secret
- FR-002: Secrets configuráveis: `WEBHOOK_SECRET` (onboard), `WAZUH_WEBHOOK_SECRET`
- FR-003: Wazuh envia alert JSON nativo; API normaliza para evento `wazuh.alert`
- FR-004: Tickets Wazuh apenas se `rule.level >= 10`
- FR-005: LAN-only (`10.10.10.122:8080`)
- FR-006: UI filtra eventos por `source`
- FR-007: Tenant VM104 Wazuh registado

## Out of Scope

- Poll Wazuh API (fase posterior)
- Expor webhook ingress na internet pública
