# Ver el historial y comparar versiones

> Lista las versiones de una zona, lee la instantánea de una de ellas y mira qué cambió entre dos cualesquiera.

Cualquier miembro o token que ve una zona puede leer su historial.

## Listar las versiones

**Panel**

Abre el dominio y ve a **Cambios → Historial**. Cada fila muestra la versión, la fecha, el autor, el cambio y el motivo; la versión actual lleva la marca **Actual** y una vuelta atrás indica **Restaurada de vN**. **Cargar versiones anteriores** trae las 50 siguientes.
**CLI**

```sh
openwaf-cloud ctl zones history example.com
openwaf-cloud ctl zones history example.com --limit 20 --before 120
```
`--before V` solo lista las versiones anteriores a `V`. `--json` imprime la respuesta de la API tal cual.
**API**

```sh
curl -sS "https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/versions?limit=20" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"
```
De la más reciente a la más antigua, 50 por defecto y como mucho 500 por página. Pasa `before=<versión>` para las anteriores. El `ETag` de la respuesta es la versión actual de la zona.
**MCP**

Pide a tu asistente el historial de la zona; llama a `zone_history`.


## Leer una versión

**Panel**

Elige **Instantánea** en una fila para ver la configuración guardada en esa versión, con su SHA-256 y un botón **Copiar JSON**.
**CLI**

```sh
openwaf-cloud ctl zones history example.com 42
```
Imprime la fecha, el autor, la acción, el motivo y el SHA-256 de la versión, y después su instantánea.
**API**

```sh
curl -sS "https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/versions/42" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"
```


## Comparar dos versiones

**Panel**

En **Comparar versiones**, elige **Desde** y **Hasta** y pulsa **Comparar**. **Cambios** en una fila compara esa versión con la anterior.
**CLI**

```sh
openwaf-cloud ctl zones diff example.com 40 42   # de la 40 a la 42
openwaf-cloud ctl zones diff example.com 40      # de la 40 a la actual
```
Cada línea es `+ ruta: valor` (añadido), `- ruta: valor` (quitado) o `~ ruta: antes → después` (cambiado). Los cambios de certificados se listan aparte, como información: su material no se versiona.
**API**

```sh
curl -sS "https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/diff?from=40&to=42" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"
```
`to` es por defecto la versión actual y `from`, la anterior a `to`.
**MCP**

Pregunta qué cambió entre dos versiones; el asistente llama a `zone_diff` (por defecto, la versión actual frente a la anterior).


## Historial de una zona borrada

Una zona borrada ya no aparece en la lista de zonas, pero su historial se conserva y termina con una versión `zone.delete`. Nómbrala por su id:

```sh
openwaf-cloud ctl zones history 3f1c2a9e-0000-4000-8000-000000000000
openwaf-cloud ctl zones diff 3f1c2a9e-0000-4000-8000-000000000000 11 12
```

La herramienta MCP `zone_history` también acepta el id de una zona borrada.
