Skip to main content

WebhookSubscriber

Struct WebhookSubscriber 

Source
pub struct WebhookSubscriber {
    pub id: String,
    pub url: String,
    pub event_pattern: String,
    pub headers: HashMap<String, String>,
    pub retry_count: u32,
    pub timeout_ms: u64,
    pub retry: EventRetryConfig,
}
Expand description

Delivers events via HTTP POST to a webhook URL.

Delivery contract (spec docs/features/event-system.md §Event Delivery Semantics, Issue #61): on_event performs a single HTTP attempt and returns Err(ModuleError) on 5xx or network errors so that the surrounding EventEmitter retry+DLQ policy (configured via retry) applies uniformly across subscriber types. 4xx responses are non-retryable client errors — they are logged at WARN and reported as Ok to suppress the spec retry loop.

Requires the events cargo feature for actual HTTP delivery.

Fields§

§id: String§url: String§event_pattern: String§headers: HashMap<String, String>§retry_count: u32

Deprecated alias for retry.max_attempts. Retained as a public field for backward-compatible construction; new code should configure retry instead. When both are present in YAML the spec requires retry.max_attempts to win — that resolution happens in build_webhook_subscriber.

§timeout_ms: u64§retry: EventRetryConfig

Retry policy applied by EventEmitter — see spec §Event Delivery Semantics (#61).

Implementations§

Source§

impl WebhookSubscriber

Source

pub fn new( id: impl Into<String>, url: impl Into<String>, event_pattern: impl Into<String>, ) -> Self

Source

pub fn with_retry(self, retry: EventRetryConfig) -> Self

Override the retry policy applied by EventEmitter.

Trait Implementations§

Source§

impl Clone for WebhookSubscriber

Source§

fn clone(&self) -> WebhookSubscriber

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WebhookSubscriber

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl EventSubscriber for WebhookSubscriber

Source§

fn subscriber_id(&self) -> &str

Unique ID for this subscriber (used by unsubscribe). Read more
Source§

fn subscriber_type(&self) -> &str

Declared subscriber type, surfaced in apcore.event.delivery_failed DLQ payloads as subscriber_type (sync finding A-D-029). Read more
Source§

fn event_pattern(&self) -> &str

The event type pattern this subscriber is interested in. Read more
Source§

fn retry(&self) -> EventRetryConfig

Retry configuration for delivery of events to this subscriber. Read more
Source§

fn on_event<'life0, 'life1, 'async_trait>( &'life0 self, event: &'life1 ApCoreEvent, ) -> Pin<Box<dyn Future<Output = Result<(), ModuleError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle an incoming event.
Source§

fn event_type_filter(&self) -> Option<&str>

The bound event-type string for bulk unsubscription, if set. Read more
Source§

fn on_failure<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _event: &'life1 ApCoreEvent, _error: &'life2 ModuleError, _attempt_count: u32, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after all retry attempts are exhausted for a single event. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more