Reglas de borde
Las reglas de borde se crean con POST /v1/orgs/{org}/zones/{zone}/rules (rules add en la CLI, add_rule en MCP) y se borran con DELETE …/rules/{rule} (rules rm, remove_rule). No se editan: se borran y se vuelven a crear. Solo se aplican los campos del tipo de la regla.
| Campo | Tipos | Reglas |
|---|---|---|
kind | todos | ip, geo, waf_exception o rate_limit. Obligatorio. |
ip | ip | Dirección IPv4 o IPv6, o rango CIDR. Se guarda en forma canónica. |
action | ip, geo | block o allow. |
country_code | geo | ISO 3166-1 alfa-2; se guarda en mayúsculas. |
rule_id | waf_exception | Entero ≥ 0. 0 = todas las reglas del WAF; 1001–1008 = un escudo. Obligatorio. |
path_pattern | waf_exception, rate_limit | Vacío o * = cualquier ruta; acabado en * = prefijo; si no, exacta. En otro caso tiene que empezar por /. |
method | rate_limit | Método HTTP en mayúsculas; vacío = cualquiera. |
rpm | rate_limit | Peticiones por minuto y por IP, ≥ 0. 0 bloquea todas las peticiones que casan. Obligatorio. |
burst | rate_limit | Peticiones de más por minuto, ≥ 0. Por defecto 0. |
note | todos | Hasta 500 caracteres. |
hosts | todos | Nombres de la zona (la zona o por debajo) a los que se aplica la regla. Ausente o vacío = todos. |
La respuesta añade id, zone_id y created_at. GET …/rules las lista por orden de identificador.
Campos de las reglas de límite de peticiones
Las reglas de límite de peticiones viven en el ajuste de borde rate_rules (y en hosts.<nombre>.rate_rules).
| Campo | Por defecto | Reglas |
|---|---|---|
id | a partir de name | a-z, 0-9 y -, hasta 40 caracteres, único en la lista. Login pasa a login; uno repetido, a login-2. Los eventos nombran la regla rate_rule:<id>. |
name | — | Hasta 100 caracteres. |
enabled | true | Una regla desactivada se guarda, pero no se envía al borde. |
hosts | [] | Nombres de la zona; [] = todos. Siempre [] en la lista propia de un nombre. |
path_prefix / path_exact | — | Exactamente uno. Un prefijo casa en un límite de segmento (/auth/login casa con /auth/login y /auth/login/x, no con /auth/loginx; / = todo). Una ruta exacta ignora la / final. Los dos ignoran mayúsculas y se guardan en minúsculas. |
methods | [] | P. ej. ["POST"]; [] = cualquiera. |
header_present | — | Solo las peticiones que llevan esa cabecera (nombre en minúsculas). |
query_present | — | Solo las peticiones que llevan ese parámetro en la query. |
key | ip | ip, header, cookie o body_field. |
key_name | — | Nombre de la cabecera, de la cookie o ruta JSON (a.b, hasta 4 niveles). Vacío para ip. |
requests | — | 1–1 000 000. Obligatorio. |
period | — | Segundos, 1–86 400. Obligatorio. |
algorithm | sliding_window | sliding_window o gcra. |
action | block | block, challenge o log. |
mitigation_timeout | 0 | Segundos, 0–86 400. |
per_node_divisor | true | Repartir requests entre los nodos de borde que sirven el sitio. |