pub enum WorkflowWebhookOutcome {
Ran(String),
NotFound,
NoWebhookTrigger,
NoSecret,
BadSignature,
BadBody(String),
RunError(String),
Duplicate,
}Expand description
The outcome of delivering a per-workflow webhook. Rich enough that both the
axum workflow_webhook handler (→ HTTP status) and the relay dispatcher
(→ log line) map from the same decision, so their auth can never drift.
Variants§
Ran(String)
The signature verified and the workflow run started; carries its run id.
NotFound
No workflow with this id exists.
NoWebhookTrigger
The workflow exists but declares no Webhook trigger.
NoSecret
The webhook trigger exists but has no (non-empty) secret configured — fail-closed: an unauthenticated public trigger is a forgery vector.
BadSignature
The signature was missing or did not match.
BadBody(String)
The body was not valid UTF-8 / JSON. Carries a human-readable reason.
RunError(String)
The signature verified but starting the run failed. Carries the error.
Duplicate
The signature verified but delivery_id was already seen (at-least-once
retry) — the run already fired on the first delivery, so this one is a
no-op. Relay parity: mirrors ryu_relay.rs’s SeenDeliveries dedup for
the direct-HTTP path.