Stripe prévoit d'apporter des améliorations aux règles Radar à la fin du mois de mai 2024 afin de faciliter la compréhension et la gestion du comportement lorsque des valeurs d'attributs sont manquantes.
Actuellement, si vous écrivez une règle telle que Block if :email_domain: != ‘notfraud.com’
et que :email_domain:
est manquant, cette règle ne correspondra pas. En effet, Stripe interprète != 'notfraud.com'
comme un attribut ayant une valeur explicite autre que 'notfraud.com'
, ce qui n'est pas le cas d'un attribut manquant. Inversement, si vous écrivez une règle similaire comme Block if NOT(:email_domain: = ‘notfraud.com’)
et que :email_domain:
est manquant, cette règle correspondra. En effet, l'instruction imbriquée :email_domain: = ‘notfraud.com’
vaudrait false, ce qui, une fois annulé par l'opération NOT
, vaudrait true.
Toutefois, dans le nouvel interpréteur, les deux règles aboutiraient à la non-concordance de la règle. En effet, toute comparaison (par exemple, =, !=, >, <, IN
) d'un attribut manquant avec une autre valeur ou un autre attribut statique (manquant ou présent) respecte le fait que les données sont manquantes. De même, toute opération logique (comme AND, OR, NOT
) avec des valeurs manquantes se traduit par un attribut manquant, à moins qu'il ne soit explicitement défini. Toute règle qui entraîne le respect d'une valeur manquante tout au long de l'évaluation ne correspondra pas.
Vous pouvez identifier les règles qui seront affectées par ce changement en examinant les prédicats qui utilisent une négation NOT
avec un attribut imbriqué qui pourrait potentiellement être manquant. Si vous souhaitez conserver le même comportement de correspondance de Block if NOT(:email_domain: = ‘notfraud.com’)
, vous devez modifier explicitement le prédicat de votre règle pour gérer les valeurs manquantes : Block if is_missing(:email_domain:)OR NOT(:email_domain: = ‘notfraud.com’)
. Sinon, votre règle adoptera automatiquement le comportement mis à jour une fois que Stripe aura mis en place le changement de mai 2024.