Cada cambio de la configuración de una zona (registros, ajustes de borde, reglas) crea una versión numerada con su autor y su motivo. Las versiones se pueden comparar y restaurar, y la propagación muestra qué versión ha aplicado cada nodo del borde. Consulta Cambios de configuración.
Lista las versiones de configuración de una zona, de la más reciente a la más antigua, sin sus instantáneas. También funciona con una zona borrada, cuya última versión es zone.delete; el ETag es entonces su versión final.
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token de OPENWAF_TOKENconst result = await owf.listZoneVersions({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
limit: 20
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token de OPENWAF_TOKEN
result = owf.list_zone_versions(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d", limit=20)
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token de OPENWAF_TOKENconst result = await owf.getZoneVersion({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
version: 11
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token de OPENWAF_TOKEN
result = owf.get_zone_version(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d", version=11)
Restaura la configuración (registros, ajustes de borde y reglas) de to_version como una versión nueva; se deshacen los cambios posteriores. If-Match es obligatorio. Si algún sitio de la versión restaurada quedaría sin certificado válido, la respuesta es 409 missing_certs con los hostnames, salvo con allow_missing_certs a true.
Motivo del cambio: 1-500 caracteres UTF-8 tras recortar espacios, sin caracteres de control. Si falta o no es válido: 422 reason_required. De 1 a 500 caracteres.
If-Match
cabecera
string
Sí
Versión de configuración esperada, p. ej. "12". Obligatorio (428 if_match_required); si no es la actual: 412 version_conflict.
dry_run
consulta
string
No
1/true simula el cambio: responde 200 con el plan (Applied) y no guarda nada. Admite 0/false; otro valor: 400. Uno de 1, true, 0, false.
curl-X POST "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/zones/6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d/revert" \
-H"Authorization: Bearer $OPENWAF_TOKEN" \
-H"X-Change-Reason: Undo the last change" \
-H'If-Match: "12"' \
-H"Content-Type: application/json" \
--data '{
"to_version": 11
}'
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token de OPENWAF_TOKENconst result = await owf.revertZone({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
body: {
to_version: 11
}
}, {
reason: "Undo the last change",
ifMatch: 12
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token de OPENWAF_TOKEN
result = owf.revert_zone(
zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
body={
"to_version": 11
},
reason="Undo the last change",
if_match=12,
)
Muestra qué versión de configuración ha aplicado cada nodo del borde que sirve la zona, frente a la versión deseada (la actual) del ETag. Los nodos que están dejando de servir la zona aparecen con estado retiring hasta que aplican una configuración sin ella.
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token de OPENWAF_TOKENconst result = await owf.getZonePropagation({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d"
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token de OPENWAF_TOKEN
result = owf.get_zone_propagation(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d")