Capacidad

Reglas Conscientes del Contenido

Vaya más allá de los headers — permita que el contenido JSON, XML, multipart y GraphQL dé forma a cada decisión de tráfico.

TR7 Reglas Conscientes del Contenido reconocen que la señal decisiva en el tráfico moderno de aplicaciones ya no es solo la URL, el header o la IP de origen. En las cargas de trabajo de API actuales, el valor crítico suele estar dentro del cuerpo: un rol de usuario en JSON, un nombre de servicio en un sobre XML, un campo de tenant en un formulario multipart o un nombre de operación en una solicitud GraphQL. TR7 hace que estos payloads sean legibles, coincidibles y accionables a través de un único lenguaje de expresión FX. JSONPath, XPath, parámetros de formulario, claims JWT, búsquedas en map y list y comprobaciones regex coexisten en el mismo modelo de reglas, y la misma expresión puede dirigir tanto el enrutamiento de tráfico como el scoring WAAP. En modo ADC, el contenido del cuerpo puede inspeccionarse y, en casos seleccionados, reescribirse en el lado de la respuesta. En modo WAAP, se preserva la integridad del cuerpo — el contenido se lee y puntúa, y la solicitud se bloquea cuando se supera el umbral. El resultado: en un entorno de API donde las decisiones basadas solo en headers son insuficientes, TR7 convierte los datos dentro del cuerpo en una entrada de primer orden para el enrutamiento, la protección y la política.

4
Tipos de parser del cuerpo: JSON, XML, multipart, form-url-encoded
10+
Variantes de búsqueda en map y list
1
Lenguaje FX compartido para tráfico ADC y scoring WAAP

En el tráfico moderno de API, los datos de decisión reales están en el cuerpo — no en los headers.

La gestión de tráfico tradicional en la Capa 7 típicamente decide en función de la URL, el método, los headers y la dirección de origen. Ese modelo suele ser suficiente para las aplicaciones web clásicas, pero en las arquitecturas modernas de API la distinción crítica suele estar en campos dentro del cuerpo de la solicitud. La identidad del tenant, el rol del usuario, el tipo de transacción, el nombre del servicio o los metadatos de carga de archivos no están en los headers — están en los payloads JSON, XML, formulario o multipart.

Sin esa visibilidad, los operadores se ven empujados hacia opciones deficientes. O se coloca un gateway de API adicional frente a la gestión de tráfico — añadiendo un nuevo salto, una nueva licencia y una nueva carga operacional — o la aplicación misma se modifica para elevar el valor de decisión a los headers. Para backends heredados y críticos para el negocio, ese cambio a menudo no es factible.

Limitar la inspección del cuerpo solo a seguridad tampoco resuelve el problema. Si el WAAP puede leer el contenido pero el motor de enrutamiento no puede usar el mismo valor, la política de seguridad y la política de tráfico acaban en dos mundos separados. El resultado es lógica duplicada, reglas inconsistentes y mayor probabilidad de error.

El modelo correcto es hacer que las capacidades del parser del cuerpo sean una parte nativa del lenguaje de reglas. JSONPath, XPath, parámetros de formulario, claims JWT, regex y comprobaciones de map/list deben vivir en el mismo árbol de expresiones, y una única expresión debe dirigir tanto una acción de tráfico como un score WAAP.

TR7 Reglas Conscientes del Contenido cierran esta brecha: los campos dentro del cuerpo dejan de ser meramente datos inspeccionados y se convierten en señales que dirigen directamente la decisión.

Nuestro enfoque

TR7 no trata la conciencia del contenido como un complemento separado. Es una parte nativa del lenguaje de reglas de tráfico y seguridad.

Las funciones del parser del cuerpo están integradas directamente en el lenguaje de expresión FX

JSONQUERY, XMLQUERY, XMLPATHEXISTS, PARAM, JWTHEADER y JWTPAYLOAD son funciones de primera clase en el lenguaje de reglas. Los operadores convierten el contenido del cuerpo en condiciones sin escribir código personalizado y vinculan esas condiciones directamente a acciones de tráfico o seguridad.

Los parsers JSON, XML y multipart se ejecutan dentro del runtime

Los payloads JSON, XML y multipart se analizan en tiempo de ejecución y se exponen al motor de reglas como valores legibles. Los operadores deciden sobre campos significativos en lugar de ejecutar regex torpes sobre cada byte de la solicitud.

El mismo DSL dirige la gestión de tráfico y el scoring WAAP

En TR7, una expresión escrita contra un campo del cuerpo puede dirigir el enrutamiento, la manipulación de headers y el scoring de firmas WAAP por igual. Este modelo compartido reduce la lógica duplicada entre las reglas de tráfico y las reglas de seguridad.

Los modos ADC y WAAP siguen diferentes reglas de integridad

En modo ADC el cuerpo puede leerse y, en escenarios adecuados, reescribirse en el lado de la respuesta. En modo WAAP el cuerpo nunca se modifica — se lee, se puntúa y se bloquea cuando se supera el umbral de política.

Capacidades

Las Reglas Conscientes del Contenido convierten los datos de payload estructurados en condiciones legibles y acciones ejecutables.

Las consultas JSONPath escriben reglas directamente contra campos del cuerpo de la API

La función JSONQUERY evalúa los campos del cuerpo JSON usando semántica JSONPath estándar. Los operadores pueden usar valores como `$.user.role`, `$.items[0].sku` o `$.tenant_id` como condiciones y vincularlos al enrutamiento del vService, a la manipulación de headers o al scoring WAAP. El tráfico de API ya no se dirige solo por endpoint — se dirige por el significado de negocio real de la solicitud.

Las comprobaciones XPath XML hacen transparente el tráfico SOAP y de servicios empresariales

XMLQUERY, XMLPATHTYPE y XMLPATHEXISTS ejecutan consultas XPath contra cuerpos XML. El nombre del servicio, el nodo de acción o el campo de operación dentro de un sobre SOAP puede dirigir las decisiones de enrutamiento y seguridad. Esto es particularmente valioso para aplicar dispatch a nivel de servicio y política sin modificar los backends heredados. Los payloads XML se convierten en datos estructurados dentro del motor de reglas, reduciendo la dependencia de regex frágiles.

Los campos de formulario y multipart vinculan las decisiones de tenant, archivo y transacción

La función PARAM convierte las cadenas de consulta, los cuerpos form-encoded y los campos de formulario en condiciones de regla. El parser multipart expone los metadatos de carga de archivos — nombre de campo, tipo de contenido y tamaño — a la política. Este patrón es útil para portales SaaS, flujos de carga de documentos y lógica de transacciones específica del usuario. El tráfico puede enrutarse o bloquearse según el contexto de negocio que porta el formulario.

Los valores de header y payload JWT se consultan con una única función

JWTHEADER y JWTPAYLOAD exponen los campos de header y payload del token como valores consultables por JSONPath. El rol del usuario, el tenant, el nivel de autorización o los claims personalizados se convierten en entradas para las decisiones de tráfico y seguridad. Un claim requerido puede hacerse cumplir en el edge, los claims faltantes pueden fallar la solicitud, y el tráfico basado en roles puede dirigirse a grupos de backend dedicados — todo sin incluir la lógica de acceso en el código de la aplicación.

Las búsquedas en map y list escalan las reglas a través de grandes conjuntos de datos

MAP_STR, MAP_REG, MAP_SUB, MAP_IP, MAP_BEG y MAP_END proporcionan búsquedas rápidas contra grandes conjuntos de valores. LIST_STR, LIST_REG, LIST_SUB, LIST_IP, LIST_BEG y LIST_END ofrecen el mismo modelo para comprobaciones basadas en listas. Los listados de tenants, los nombres de servicios permitidos, los rangos IP y los grupos de patrones pueden gestionarse de forma centralizada en lugar de como condiciones individuales, manteniendo los conjuntos de reglas grandes manejables.

Los límites de tamaño, profundidad y conteo de campos del cuerpo controlan el parsing antes de comenzar

BODY_SIZE, JSON_DEPTH, XML_DEPTH, JSON_KEY_COUNT y XML_NODE_COUNT definen límites protectores antes de que el parser entre en acción. Los payloads sobredimensionados, profundamente anidados o inflados se rechazan antes de que lleguen al backend. JSON_DEPTH tiene un valor predeterminado de 32 y es ajustable a nivel de política. El mismo control rige tanto el consumo de recursos como el abuso a nivel de parser.

Los Args Permitidos y Obligatorios construyen un modelo de seguridad positivo

JSON_MUST_ARGS, JSON_ALLOWED_ARGS, FORM_MUST_ARGS y FORM_ALLOWED_ARGS verifican que los campos esperados están presentes y que los campos inesperados están ausentes. En lugar de solo buscar patrones malos, el modelo declara la forma de una solicitud aceptable. Los campos requeridos faltantes o los parámetros inesperados pueden rechazarse por política. Este enfoque consciente del contrato es especialmente valioso en endpoints de transacciones críticas.

La reescritura del cuerpo de respuesta permite el enmascaramiento y la transformación en modo ADC

En modo ADC, la acción modifyResponse aplica sustitución basada en regex a los cuerpos de respuesta. Se usa para enmascarar datos personales, reescribir enlaces o adaptar direcciones internas para consumidores externos. El modo WAAP nunca modifica el cuerpo — solo lo lee y puntúa. Esta separación equilibra la flexibilidad de tráfico con la integridad de seguridad en la misma plataforma.

Profundidad operacional

La conciencia del contenido no es solo sintaxis de reglas — también cubre la gestión de buffer, el almacenamiento en caché del parsing, la visibilidad de auditoría y el comportamiento en casos extremos.

01

Gestión de buffer del cuerpo

El contenido del cuerpo se almacena en buffer antes del parsing, y el parser JSON, XML o multipart relevante luego se ejecuta sobre ese buffer. El buffer de cuerpo predeterminado es 16 KB; los parámetros del sistema pueden aumentarse para payloads JSON o XML más grandes. Cuando se supera el límite, la solicitud se rechaza con 413 para que el backend no se cargue con payloads sobredimensionados.

02

Almacenamiento en caché del resultado del parsing

Los resultados de JSONPath y XPath leídos dentro de la misma solicitud se almacenan en caché en el espacio de variables con alcance de transacción. Una vez que una regla lee un campo del cuerpo, las reglas posteriores no vuelven a ejecutar el parser para el mismo campo. Esto reduce la latencia y el coste de procesamiento en cadenas de reglas largas.

03

Modelo de integridad WAAP

En modo WAAP el cuerpo se lee pero nunca se modifica. El contenido alimenta las firmas, el scoring y la lógica de umbral; una vez que se supera el umbral la solicitud se bloquea. La capa de seguridad puede actuar sobre señales conscientes del contenido mientras preserva la integridad de la solicitud de extremo a extremo.

04

Comportamiento de solicitudes chunked

El parsing de solicitudes POST chunked comienza después de que se completa el reensamblado de chunks, de modo que los campos del cuerpo se evalúan como un payload completo y coherente. El tráfico chunked puede incurrir en una pequeña latencia adicional, pero el backend está protegido de flujos de payload parciales y no controlados.

05

Visibilidad GraphQL

GraphQL se gestiona actualmente a través de JSONPath: campos como el nombre de operación y la lista de campos dentro del cuerpo pueden usarse en condiciones de regla. Esto permite decisiones prácticas en el edge como separar las mutations de las queries. La validación de schema profundo está fuera del alcance de esta capacidad.

06

Rastro de auditoría y SIEM

Qué regla leyó qué campo del cuerpo se registra en el log de auditoría. Los equipos de operaciones pueden rastrear por qué una solicitud específica fue enrutada, rechazada o puntuada en su SIEM. Esta trazabilidad evita que las reglas conscientes del contenido se comporten como una caja negra.

Cuándo usarlo

Enrutar por valor de tenant dentro de JSON

Los equipos SaaS pueden despachar tráfico a pools de backend separados basándose en el campo tenant_id dentro del cuerpo JSON. La separación por tenant ocurre sin cambiar el código de la aplicación, y la política de tráfico se gestiona en el edge.

Despachar servicios empresariales por acción SOAP

En sistemas bancarios y gubernamentales, el nodo de acción dentro de un sobre XML puede dirigir el dispatch a diferentes grupos de servicio. El contrato de servicio heredado se mantiene intacto mientras las decisiones de tráfico se vuelven conscientes del contenido.

Dividir el tráfico GraphQL por tipo de operación

Los equipos de ingeniería pueden dirigir las queries y las mutations a fuentes separadas basándose en el campo operationName. Las operaciones con muchas lecturas y las operaciones con muchas escrituras van a grupos de backend dedicados.

Hacer cumplir decisiones de acceso sobre claims JWT

Para aplicaciones críticas, los claims de rol y tenant dentro del payload JWT pueden hacerse cumplir en el edge. Las solicitudes sin claims requeridos nunca llegan al backend; las solicitudes con claims válidos se colocan bajo la política de tráfico apropiada.

Preguntas frecuentes

¿Qué tipos de contenido soportan los parsers del cuerpo?
Los payloads JSON, XML, multipart y form-url-encoded se analizan en tiempo de ejecución. JSONPath dirige el acceso JSON, XPath dirige el acceso XML, y la función PARAM cubre los campos de formulario y multipart directamente como expresiones FX. GraphQL se gestiona actualmente a través de JSONPath — el nombre de operación y la lista de campos dentro del cuerpo están disponibles para las condiciones de regla.
¿Puede la misma regla dirigir tanto el tráfico ADC como la política WAAP?
Sí. Una expresión escrita contra un campo del cuerpo puede dirigir el enrutamiento o la manipulación de headers, así como la lógica de firmas y scoring WAAP. Dado que el mismo DSL se aplica en ambas capas, la lógica duplicada entre las reglas de tráfico y las reglas de seguridad se reduce significativamente.
¿Cuál es la diferencia de integridad entre el modo ADC y el modo WAAP?
En modo ADC el cuerpo es legible y, cuando corresponda, el cuerpo de respuesta puede reescribirse. En modo WAAP el cuerpo nunca se modifica — se lee, se introduce en las firmas y el scoring, y la solicitud se bloquea una vez que se supera el umbral de política. Esta separación equilibra la flexibilidad de tráfico con la integridad de seguridad en la misma plataforma.
¿Cómo se usa el contenido JWT en las expresiones de reglas?
JWTHEADER y JWTPAYLOAD exponen el header y el payload del token como valores consultables por JSONPath. El rol del usuario, el tenant, el nivel de autorización o los claims personalizados pueden dirigir tanto las decisiones de tráfico como de seguridad. Las solicitudes con claims faltantes o inesperados pueden rechazarse antes de que lleguen al backend.
¿Cómo gestiona el sistema cuerpos muy grandes o profundamente anidados?
BODY_SIZE, JSON_DEPTH, XML_DEPTH, JSON_KEY_COUNT y XML_NODE_COUNT aplican límites protectores antes de que el parsing entre en acción. JSON_DEPTH tiene un valor predeterminado de 32; los payloads sobredimensionados o inflados se rechazan antes de llegar al backend. El buffer de cuerpo predeterminado es 16 KB y puede aumentarse mediante parámetros del sistema.
Si múltiples reglas leen el mismo campo del cuerpo, ¿el parsing se ejecuta más de una vez?
No. Los resultados de JSONPath y XPath leídos dentro de la misma solicitud se almacenan en caché en el espacio de variables con alcance de transacción. Una vez que una regla ha leído un campo del cuerpo, las reglas posteriores reutilizan el valor en caché en lugar de volver a ejecutar el parser. Esto mantiene baja la latencia y el coste de procesamiento en cadenas de reglas largas.

Tome decisiones sobre la API en el cuerpo — no en el header

Enrutamiento consciente del contenido y seguridad a través de campos JSON, XML, multipart y JWT. Permítanos guiarle por una configuración en vivo sobre sus propios servicios.