Chimeway.Webhooks (chimeway v1.0.0)

Copy Markdown View Source

Pure function boundary for synchronously ingesting and verifying inbound webhooks.

Success returns ONLY when the ingress row and the ProcessFeedbackWorker job have both committed in a single transaction. Returning {:ok, ingress} is the host's acknowledgment cue — the host MAY return 2xx to the provider (Phase 33 D-03). Any error tuple means the host MUST return non-2xx so the provider retries.

Unauthorized signature failures and unparseable bodies do NOT create a durable ingress row (Phase 33 D-09). Only verified, parsed, normalized callbacks enter the durable inbound lifecycle.

Summary

Functions

process(adapter_module, raw_body, headers, config)

@spec process(module(), binary(), list(), keyword()) ::
  {:ok, Chimeway.Webhooks.Ingress.t()}
  | {:error, :unauthorized}
  | {:error, :unparseable_body}
  | {:error, :unresolvable_delivery}
  | {:error, :unnormalizable_feedback}
  | {:error, Ecto.Changeset.t()}
  | {:error, term()}