Gates (beta)
Rules & Conditions
A Gate is a stack of rules. Each rule checks one or more conditions and suggests an action. The engine evaluates rules from top to bottom and chooses the outcome as follows:
- Keep evaluating through the list. The last matching rule sets the final decision
- If a matching rule has
stop: true
, evaluation ends immediately and that rule’s action is final
Anatomy of a rule
Each rule has these fields:
Field | Type | Required | Description | |
---|---|---|---|---|
name |
string | yes | Short, descriptive label shown in the UI and logs | |
description |
string | no | Why this rule exists or what it targets | |
message |
string | no | Message to return when the rule matches | |
match |
enum all | any |
yes | all = AND all conditions, any = OR across conditions |
|
action |
enum allow block challenge |
yes | Suggested outcome when the rule matches | |
stop |
boolean | no | If true , stop evaluating further rules when this one matches |
|
enabled |
boolean | no | If false , the rule is ignored |
|
conditions |
array<Condition> | yes | One or more field comparisons |
Evaluation model
- Rules are processed top → bottom
- For each rule, conditions are evaluated using the rule’s
match
mode (all
orany
) - If the rule matches:
- Its
action
becomes the current decision - If
stop: true
, evaluation ends and this action is final
- Its
- If multiple rules match and none had
stop: true
, the last matching rule wins
Supported fields
Below are the fields most rules use. All string comparisons are case‑insensitive unless noted.
Email fields
Field | Type | Details |
---|---|---|
email.disposable |
boolean | Email is disposable while domain is not. For providers offering disposable aliases on legit domains (e.g. Gmail or Outlook). |
email.role_account |
boolean | Local part is a role account (admin@ , support@ ). |
Domain fields
Field | Type | Details |
---|---|---|
domain.name |
string | The domain name. Use sparingly for one‑off allow/block. |
domain.mx |
boolean | Domain has valid MX records. |
domain.mx_records.*.hostname |
string[] | Hostnames of MX records. Useful for filtering based on MX record hostnames. |
domain.disposable |
boolean | Domain is a disposable provider. |
domain.relay_domain |
boolean | Domain forwards to another mailbox. |
domain.public_domain |
boolean | Domain is a public mailbox provider (gmail.com, outlook.com, yahoo.com…). |
domain.spam |
boolean | Domain flagged as spam by our system. |
domain.age_days |
integer | Approximate age in days. |
domain.blocklisted |
boolean | Domain is present in your account blocklist. |