Capacidade

Motor de Expressões e Variáveis FX

Uma linguagem de expressões conduz regras, verificações de saúde, logs, gatilhos GTM, segurança e decisões de acesso em todos os módulos.

O Motor de Expressões e Variáveis FX do TR7 permite usar a mesma linguagem de decisão em todos os módulos da plataforma. Regras de tráfego, verificações de saúde, templates de log, políticas de segurança, gatilhos GTM e lógica ACL são todos definidos por meio de uma linguagem FX compartilhada — não por sintaxes separadas para cada módulo. O motor FX reúne 41 funções integradas, 173 variáveis e 14 grupos de variáveis cobrindo contexto de tráfego, usuário, conexão, corpo, SSL, WAAP e AAM sob um único modelo de expressão. JSONQUERY, XMLQUERY, JWTPAYLOAD, PARAM, MAP, LIST, DIGEST, IPMASK e funções de transformação de texto podem ser todas compostas na mesma árvore de expressões. A criação de expressões é orientada por schema: argumentos de função, escopos de variáveis, contextos de uso e tipos são validados antes de a regra ser salva. Os erros são detectados durante a criação — não enquanto estão afetando o tráfego de produção. O resultado: o TR7 torna prático gerenciar decisões complexas de tráfego e segurança por meio de uma única linguagem, um único modelo de variáveis e lógica compartilhada em todos os módulos.

41
Funções integradas — de conversores a consultas JWT
173
Variáveis integradas — contexto de tráfego e segurança em 14 grupos
6+
Módulos compartilhando a mesma linguagem FX: regras, verificações de saúde, logs, captcha, GTM, ACL

Quando cada módulo tem sua própria linguagem, a complexidade operacional cresce com a plataforma.

O gerenciamento de tráfego empresarial não é mais apenas regras de balanceamento de carga. Dentro da mesma plataforma, roteamento de tráfego, verificação de saúde, enriquecimento de log, decisões GTM, pontuação de segurança, política de captcha, ACL e contexto de acesso rodam todos juntos. O problema é que a maioria dos produtos gerencia esses módulos com linguagens de expressão separadas, nomes de variáveis separados e comportamentos de erro separados.

Essa fragmentação força os operadores a mudar de contexto mental constantemente. O mesmo valor é escrito de forma diferente em um módulo versus outro — país do cliente, IP de origem, path da requisição, claim JWT ou pontuação WAAP são todos tratados por lógica separada em cada lugar. O resultado é maior custo de aprendizado, duplicação multiplicada de regras e ciclos de debug mais longos.

Mais perigoso é quando a mesma regra de negócio é interpretada de forma diferente entre módulos. Se a condição de verificação de saúde diverge da condição de roteamento, o sistema pode marcar um serviço como saudável enquanto um caminho de lógica separado descarta tráfego para esse mesmo serviço. Quando o lado de log registra o mesmo contexto de forma incompleta, a investigação pós-incidente também é prejudicada.

A abordagem correta é tornar uma única linguagem de expressão a camada de decisão compartilhada. Essa linguagem deve definir funções, variáveis, verificação de tipos e escopo de uso centralmente, para que cada módulo consuma a mesma árvore de expressões dentro de seu próprio contexto operacional.

O Motor FX do TR7 atende a essa necessidade: ele unifica a lógica de decisão espalhada por módulos sob uma única linguagem de expressão, um único catálogo de variáveis e um modelo de validação com pré-registro.

Nossa abordagem

Em vez de dividir a lógica de decisão em sintaxes separadas por módulo, o TR7 compila e avalia tudo por uma árvore de expressões FX compartilhada.

Catálogo de funções e variáveis definido centralmente

O motor FX expõe 41 funções integradas e 173 variáveis organizadas em 14 grupos. Contextos de conexão, headers HTTP, corpo, SSL, timers, estatísticas, WAAP e AAM são todos selecionados do mesmo catálogo.

Expressões são compiladas para uma cadeia nativa de sample-fetch e conversor

Funções que podem ser tratadas nativamente rodam diretamente como uma cadeia de alta performance de sample-fetch e conversor. Por exemplo, um campo JSON do corpo da requisição pode ser lido, normalizado com um transformador de texto e vinculado a um único resultado de expressão.

Funções não-nativas são compiladas para ações Lua

Funções que requerem XPath XML, consultas JWT complexas ou processamento personalizado são emitidas como ações baseadas em Lua. A linguagem FX permanece unificada; o caminho de runtime é escolhido com base no que a função necessita.

O mesmo motor de expressões é consumido por todos os módulos

Regras de tráfego, verificações de saúde, formatos de log, gatilhos GTM, política de captcha e ACL compartilham o mesmo modelo de funções e variáveis. Essa uniformidade reduz a necessidade de os operadores aprenderem uma nova linguagem de decisão para cada módulo.

Capacidades

O Motor de Expressões e Variáveis FX transforma variáveis e funções de toda a plataforma em um modelo orientado por schema, validável e compilável.

173 variáveis em 14 grupos cobrem contexto de tráfego e segurança

O catálogo de variáveis FX é organizado em grupos de conexão, headers HTTP, corpo, cliente, linha de requisição, linha de resposta, SSL, estatísticas, timer, rastreamento, WAAP, AAM, VarBuilder e outros. Os operadores selecionam IP de origem, porta de destino, path de requisição, status de resposta, SNI, detalhes de certificado, pontuação WAAP, papel de usuário AAM ou variáveis personalizadas do mesmo modelo. Isso evita que o mesmo contexto seja escrito com nomes diferentes em módulos distintos, tornando a linguagem de regras mais consistente, mais legível e menos propensa a erros.

41 funções abrangem desde transformação de texto até consultas JSON e XML

O catálogo de funções cobre grupos de conversor, matemática, XML, JSON, JWT, IP, string, hash, FIX, MQTT, mapa/lista, parâmetro e seleção condicional. JSONQUERY, XMLQUERY, JWTHEADER, JWTPAYLOAD, PARAM, DIGEST, LOWERCASE, STRREPLACEALL, MAP_STR, LIST_REG e TERNARY podem ser todos compostos dentro de uma única expressão. Os operadores usam o mesmo modelo FX tanto para transformações de texto simples quanto para consultas profundas de campos de corpo, afastando a criação de regras da codificação ad-hoc em direção a uma definição de política gerenciável.

O caminho de compilação nativo é usado para expressões de baixa latência

Variáveis e funções com suporte nativo compilam diretamente para uma cadeia de sample-fetch e conversor. Esse caminho é adequado para decisões frequentemente necessárias como leituras de header, correspondência de path, transformação de texto, lookups de mapa e certas consultas de corpo. Como nenhuma camada de interpretação intermediária está envolvida, o desempenho permanece previsível. As regras de tráfego são traduzidas para o caminho de execução mais eficiente da plataforma sempre que possível.

O caminho de compilação Lua cobre funções complexas e personalizadas

Controles que não podem ser expressos pela cadeia nativa rodam como ações Lua. Consultas XPath XML, verificações JWT personalizadas e processamento condicional complexo são todos suportados dessa forma. A linguagem de expressão não muda da perspectiva do operador — o sistema seleciona o caminho de execução correto em segundo plano. Essa separação combina um caminho nativo de alta performance e um caminho Lua flexível em uma única experiência FX.

A verificação de tipos rejeita expressões inválidas antes de serem salvas

Cada argumento de função é definido com um tipo — inteiro, string, jsonPath, xmlPath, hash ou smartInput. A UI e a camada de gerenciamento validam esses tipos no momento do salvamento. Tipo de argumento errado, parâmetro ausente ou uso aninhado incompatível é detectado antes de chegar ao runtime, reduzindo falhas inesperadas de regras no tráfego de produção.

O escopo de uso é filtrado por módulo e contexto

Cada variável carrega metadados descrevendo em quais módulos, tipos de condição e fases de tráfego ela pode ser usada. Algumas variáveis são válidas apenas na fase de resposta; outras aparecem apenas em templates de log ou tipos de condição específicos. A UI usa essas informações para apresentar opções apropriadas ao contexto para o operador, evitando que variáveis inválidas sejam colocadas na posição errada.

O VarBuilder permite que os operadores criem suas próprias variáveis computadas

O grupo VarBuilder permite que os operadores produzam variáveis personalizadas que são computadas em runtime. Um valor é calculado por meio de uma expressão FX, armazenado no escopo da transação e reutilizado em regras subsequentes. Esse modelo reduz a necessidade de reescrever o mesmo cálculo em vários lugares. Em fluxos complexos, a lógica de decisão se torna mais modular e rastreável.

O autocomplete é alimentado por dados de schema para acelerar a criação

O console FX extrai informações de função, variável, argumento e escopo do schema central. À medida que o operador digita um nome de função ou variável, as opções apropriadas são sugeridas; argumentos que aceitam valores vazios e funções que requerem parênteses são orientados corretamente pela UI. Isso reduz a curva de aprendizado para novos usuários e permite que operadores experientes criem regras mais rapidamente. As expressões se tornam mais corretas antes mesmo de chegar à etapa de salvamento.

Profundidade operacional

O motor FX é projetado com validação, aplicação de escopo, auditoria, desempenho e comportamento em casos extremos em mente — não apenas a experiência de criação de expressões.

01

Validação de argumentos

A lista esperada de argumentos e tipos para cada função é mantida na definição central. Tanto a UI quanto a camada de gerenciamento verificam essas informações de forma independente. Como resultado, expressões inválidas são rejeitadas não apenas na tela, mas também no momento do salvamento.

02

Escopo de fase de resposta

Algumas variáveis são significativas apenas na fase de resposta. Essas variáveis são sinalizadas nos metadados e bloqueadas para uso em condições de fase de requisição. Essa distinção reduz erros em runtime causados por incompatibilidades de fase.

03

Aliases de variáveis ocultas

Algumas variáveis são mantidas no sistema para compatibilidade retroativa ou uso interno, mas não são expostas na UI. Isso permite que a plataforma continue executando expressões mais antigas enquanto apresenta aos operadores uma lista de variáveis limpa e precisa. O catálogo visível e o uso interno são mantidos separados.

04

Carregamento do conversor Lua

Funções como XMLQUERY, XMLPATHTYPE e XMLPATHEXISTS dependem de componentes de conversor Lua. Esses componentes são carregados quando o serviço inicia e são consumidos pelas funções FX relevantes. Estados de conversor ausentes devem ser detectados durante os processos de implantação e verificação de saúde.

05

Auditoria e versionamento

Cada árvore de expressões deve ser rastreável com um histórico de mudanças. Quem alterou qual expressão e quando é informação crítica para operações e revisões de segurança. Esses registros fornecem capacidade de rollback e rastreamento de responsabilidade, especialmente para regras que afetam o comportamento do tráfego.

06

Avisos de desempenho de regex

STRREPLACEALL e certas verificações baseadas em regex podem produzir alto custo de processamento se escritas descuidadamente. Padrões com muito backtracking podem representar riscos tanto de segurança quanto de desempenho. A UI deve avisar os operadores nesses casos e encorajar uma criação de padrões mais segura.

Quando usar

Expressão compartilhada em verificações de saúde e regras de tráfego

Equipes SaaS podem usar a mesma expressão FX — como `$.status == "OK"` no corpo da resposta — tanto na verificação de saúde quanto na regra de roteamento de tráfego. Como o mesmo estado de serviço não é escrito de forma diferente em cada módulo, a consistência operacional melhora.

Enriquecimento de log com claims JWT

Equipes SOC podem adicionar endereço de e-mail, papel ou informações de tenant do usuário ao formato de log via JWTPAYLOAD. A investigação de incidentes vai além de dados brutos de IP e URL, tornando o contexto do usuário visível em cada entrada de log.

Acionamento baseado em Geo e ASN em decisões GTM

Equipes de serviços globais podem avaliar dados de país, ASN ou latência por meio de expressões FX ao selecionar uma resposta DNS. A mesma lógica pode ser reutilizada em uma regra de roteamento de tráfego quando necessário.

Roteamento A/B controlado baseado em hash

Equipes de e-commerce podem desviar uma porcentagem definida de tráfego para uma nova variante com base em um hash derivado do identificador do usuário. A distribuição é determinística — o mesmo usuário é sempre direcionado para a mesma experiência em cada requisição.

Perguntas frequentes

Quantas funções e variáveis o motor FX fornece?
O motor FX inclui 41 funções integradas e 173 variáveis. As funções são organizadas em grupos de conversor, matemática, XML, JSON, JWT, IP, string, hash, FIX, MQTT, mapa/lista, parâmetro e seleção condicional. As variáveis são organizadas em 14 grupos incluindo conexão, headers HTTP, corpo, SSL, estatísticas, timers, WAAP, AAM e VarBuilder.
Quais módulos compartilham a mesma linguagem de expressões FX?
Regras de tráfego, verificações de saúde, templates de log, gatilhos GTM, política de captcha e ACL compartilham o mesmo modelo de funções e variáveis FX. Isso significa que os operadores não precisam aprender uma sintaxe diferente para cada módulo, e o risco de inconsistência entre limites de módulos é significativamente reduzido.
Como funciona a verificação de tipos com pré-registro?
Cada argumento de função é definido com um tipo — inteiro, string, jsonPath, xmlPath, hash ou smartInput. A UI e a camada de gerenciamento validam esses tipos antes de a expressão ser salva. Tipo errado, parâmetro ausente ou uso aninhado incompatível é rejeitado antes de poder chegar ao runtime.
Qual é a diferença entre o caminho de compilação nativo e o caminho Lua?
Variáveis e funções com suporte nativo compilam diretamente para uma cadeia de sample-fetch e conversor — ideal para leituras de header, correspondência de path e consultas de corpo comuns. Funções como XMLQUERY, verificações JWT personalizadas ou lógica condicional complexa que não podem ser expressas nativamente são emitidas como ações Lua. Da perspectiva do operador, a linguagem de expressão é a mesma em ambos os casos.
Para que o VarBuilder pode ser usado?
O grupo VarBuilder permite que os operadores definam variáveis personalizadas que são computadas em runtime por meio de expressões FX. O valor computado é armazenado no escopo da transação e pode ser referenciado diretamente em regras subsequentes. Isso elimina a necessidade de reescrever o mesmo cálculo múltiplas vezes em diferentes regras.
Como o escopo de variáveis é aplicado?
Cada variável carrega metadados descrevendo em quais módulos, tipos de condição e fases de tráfego ela é válida. Variáveis significativas apenas na fase de resposta não são mostradas em condições do lado da requisição. A UI usa essas informações de escopo para apresentar escolhas apropriadas ao contexto para o operador e evitar que variáveis inválidas sejam colocadas na posição errada.

Unifique as decisões da plataforma em uma única linguagem de expressões

Gerencie regras de tráfego, verificações de saúde, logs, GTM e decisões de segurança pelo mesmo modelo FX. Vamos percorrer uma configuração ao vivo no seu próprio ambiente.