Dry-run endpoint rules against a received email
Changed onEvaluates the endpoint's filtering rules against an already-received email WITHOUT delivering anything. The same shared matcher the live delivery paths use produces the verdict, so the response explains exactly why a webhook fired or was suppressed for that message.
When delivery would be suppressed, rule names the failing rule and reason carries a human-readable explanation; both are null when the message matches. evaluated echoes the message metadata the matcher compared (size, attachments, and the authenticated From identity versus the raw envelope sender), so a surprising verdict can be traced to its inputs.
Two independent gates are surfaced separately: subscribed_to_event reports the endpoint's event-type subscription (checked before message matching), and rules_valid reports whether the stored rules blob parsed at all. Delivery fails OPEN on an invalid blob (the message is delivered as if unfiltered), so rules_valid: false exposes a misconfiguration that is otherwise silent.
Request
- Base URL: https://api.primitive.dev/v1
- URL: https://api.primitive.dev/v1/endpoints/{id}/rules/test
- Auth: HTTP bearer
Request body
Response
Rule evaluation verdict
Changes
- info
removed the
invalid_signup_codeenum value from the/response property for the response status - info
removed the
invalid_signup_codeenum value from the/response property for the response status - info
removed the
invalid_signup_codeenum value from the/response property for the response status
- info
- warning
added the new
not_a_repeating_sendenum value to the/response property for the response status - warning
added the new
not_a_repeating_sendenum value to the/response property for the response status - warning
added the new
not_a_repeating_sendenum value to the/response property for the response status - warning
added the new
repeat_idle_requires_internal_recipientenum value to the/response property for the response status - warning
added the new
repeat_idle_requires_internal_recipientenum value to the/response property for the response status - warning
added the new
repeat_idle_requires_internal_recipientenum value to the/response property for the response status - warning
added the new
repeat_recipient_externalenum value to the/response property for the response status - warning
added the new
repeat_recipient_externalenum value to the/response property for the response status - warning
added the new
repeat_recipient_externalenum value to the/response property for the response status - warning
added the new
repeat_stop_not_allowedenum value to the/response property for the response status - warning
added the new
repeat_stop_not_allowedenum value to the/response property for the response status - warning
added the new
repeat_stop_not_allowedenum value to the/response property for the response status - warning
added the new
repeat_unsupportedenum value to the/response property for the response status - warning
added the new
repeat_unsupportedenum value to the/response property for the response status - warning
added the new
repeat_unsupportedenum value to the/response property for the response status
- warning