A Stripe planeja lançar melhorias nas regras do Radar no final de maio de 2024 para facilitar a compreensão e gerenciar o comportamento quando faltam valores de atributos.
Atualmente, se você escrever a regra Block if :email_domain: != 'notfraud.com'
e :email_domain:
estiver ausente, ela não será correspondente. Isso ocorre porque a Stripe interpreta != 'notfraud.com'
como o atributo que tem algum valor explícito diferente de 'notfraud.com'
, ao que um atributo ausente não satisfaz. Por outro lado, se você escrever uma regra semelhante a Block if NOT(:email_domain: = 'notfraud.com')
e o :email_domain:
estiver ausente, essa regra será correspondente. Isso ocorre porque a instrução associada :email_domain: = 'notfraud.com'
seria avaliada como falsa e, quando negada pela operação NOT
, seria avaliada como verdadeira.
No entanto, no novo intérprete, ambas as regras resultariam na não correspondência da regra. Isso ocorre porque qualquer comparação (por exemplo, =, !=, >, <, IN
) de um atributo ausente com outro valor ou atributo estático (ausente ou presente) respeita os dados ausentes. Da mesma forma, qualquer operação lógica (como AND, OR, NOT
) com valores ausentes resulta em um atributo ausente, a menos que seja definido explicitamente. Qualquer regra que resulte em um valor ausente ser respeitado em toda a avaliação não será correspondida.
Você pode identificar as regras que serão afetadas por essa mudança revisando os predicados que usam a negação NOT
com um atributo associado que pode estar ausente. Se quiser manter o mesmo comportamento de correspondência de Block if NOT(:email_domain: = 'notfraud.com')
, será preciso alterar explicitamente o predicado de regra para lidar com valores ausentes: Block if is_missing(:email_domain:)OR NOT(:email_domain: = ‘notfraud.com’)
. Caso contrário, a regra adotará automaticamente o comportamento atualizado quando a Stripe implementar a alteração de maio de 2024.