La configuración de una zona (registros, ajustes del borde, reglas y cliente) tiene un número de versión. Cada cambio crea la versión siguiente, con su autor, su motivo y las diferencias con la anterior. Las versiones son la forma en que los cambios llegan al borde y la forma de deshacerlos.
Esta página cubre lo que importa para el DNS; Control de cambios trata a fondo el historial, las diferencias, la propagación y la marcha atrás.
Un cambio, una versión
- Crear, cambiar o borrar un registro es una versión.
- Un lote (hasta 500 operaciones), un cambio de proxy masivo en el panel, una importación BIND o el asistente de correo son una versión, que se aplica entera o no se aplica.
- Dar de alta una zona crea la versión 1; los registros importados del DNS público justo después son la versión 2.
- Borrar una zona deja una última versión en su historial, que sigue pudiendo consultarse por su id.
Cada cambio necesita un motivo
Cada cambio lleva un motivo de 1 a 500 caracteres, que se guarda en la versión y en la auditoría.
| Interfaz | Cómo |
|---|---|
| Panel | Lo rellena por ti a partir del cambio (por ejemplo «Añadir registro A www») |
| API | Cabecera X-Change-Reason. Si falta: 422 reason_required |
| CLI | --reason "…" |
| MCP | Argumento reason |
Simular y luego aplicar
Cualquier cambio se puede simular antes: misma validación, nada aplicado. La simulación devuelve las versiones (from_version, to_version), las diferencias (diff) y los avisos (warnings).
# 1. Simular
curl -X POST "https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/records?dry_run=1" \
-H "Authorization: Bearer $OPENWAF_TOKEN" -H "Content-Type: application/json" \
-H "X-Change-Reason: Alta de www" \
-d '{"type": "A", "name": "www", "content": "203.0.113.10", "proxied": true}'
# 2. Aplicar, solo si la zona sigue en la versión que simulaste
curl -X POST "https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/records" \
-H "Authorization: Bearer $OPENWAF_TOKEN" -H "Content-Type: application/json" \
-H "X-Change-Reason: Alta de www" -H 'If-Match: "41"' \
-d '{"type": "A", "name": "www", "content": "203.0.113.10", "proxied": true}'- Un cambio aplicado responde con la versión nueva en
X-Config-Versiony enETag. - Con
If-Match, el cambio se rechaza con412 version_conflict(y lacurrent_version) si alguien ha cambiado la zona entretanto: vuelve a simular y revisa las nuevas diferencias. - La CLI simula, enseña las diferencias y pide confirmación antes de cada cambio (
--dry-runse queda en la simulación y--yesno pregunta). Las herramientas MCP de escritura simulan conconfirm: falsey aplican conconfirm: trueyexpected_version.
Historial y marcha atrás
Cambios › Historial del dominio lista cada versión con sus diferencias. Volver a una versión anterior crea una versión nueva con esa configuración, registros incluidos, así que la vuelta atrás también queda en el historial.
openwaf-cloud ctl zones history example.com
openwaf-cloud ctl zones diff example.com 40 41
openwaf-cloud ctl zones revert example.com 40 --reason "Deshacer el cambio de www"En Control de cambios tienes la propagación al borde y los detalles de la vuelta atrás.