Class MailgunInvitationDeliveryAspNetCoreOptions
Namespace: Cephalon.MultiTenancy.Governance.MailgunDelivery.AspNetCore.Configuration
Assembly: Cephalon.MultiTenancy.Governance.MailgunDelivery.AspNetCore.dll
Configures ASP.NET Core Mailgun webhook callback translation for tenant-invitation delivery status updates.
public sealed class MailgunInvitationDeliveryAspNetCoreOptionsInheritance
Section titled “Inheritance”object ← MailgunInvitationDeliveryAspNetCoreOptions
Inherited Members
Section titled “Inherited Members”object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object?, object?), object.ToString()
Remarks
Section titled “Remarks”This adapter translates Mailgun webhook payloads and can require Mailgun HMAC-SHA256 webhook signature verification before reconciliation. It can also reject duplicate signed webhook tokens inside a bounded process-local replay window and skip duplicate Mailgun event identifiers already present in the delivery-status observation store. Durable callback inboxes and provider polling are intentionally separate slices.
Constructors
Section titled “Constructors”MailgunInvitationDeliveryAspNetCoreOptions()
Section titled “ MailgunInvitationDeliveryAspNetCoreOptions()”Initializes a new instance of the
public MailgunInvitationDeliveryAspNetCoreOptions()Properties
Section titled “Properties”AcceptParentSignature
Section titled “ AcceptParentSignature”Gets or sets a value indicating whether Mailgun parent-signature should be accepted for subaccount
webhook events.
public bool AcceptParentSignature { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”Mailgun includes parent-signature for subaccount events so receivers can validate with the parent account
signing key. Disable this only when a host deliberately requires the child account signature field.
Gets or sets the actor value recorded on translated Mailgun delivery status observations.
public string Actor { get; set; }Property Value
Section titled “Property Value”EnableSignedWebhookReplayProtection
Section titled “ EnableSignedWebhookReplayProtection”Gets or sets a value indicating whether verified Mailgun signed webhook tokens should be protected against replay inside the current process.
public bool EnableSignedWebhookReplayProtection { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”Replay protection is active only when
EnableStatusCallbackEndpoint
Section titled “ EnableStatusCallbackEndpoint”Gets or sets a value indicating whether the Mailgun webhook callback endpoint should be mapped.
public bool EnableStatusCallbackEndpoint { get; set; }Property Value
Section titled “Property Value”EnableWebhookEventIdIdempotency
Section titled “ EnableWebhookEventIdIdempotency”Gets or sets a value indicating whether Mailgun webhook event identifiers should be used to skip duplicate translated events that are already present in the delivery-status observation store.
public bool EnableWebhookEventIdIdempotency { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The endpoint uses the stable event-data.id-backed observation id generated by the Mailgun mapper. This is
observation-store-backed idempotency, not a durable raw callback inbox or distributed event ledger.
ExcludeStatusCallbackEndpointFromDescription
Section titled “ ExcludeStatusCallbackEndpointFromDescription”Gets or sets a value indicating whether the Mailgun callback endpoint should be excluded from OpenAPI descriptions.
public bool ExcludeStatusCallbackEndpointFromDescription { get; set; }Property Value
Section titled “Property Value”MapEngagementEventsAsDelivered
Section titled “ MapEngagementEventsAsDelivered”Gets or sets a value indicating whether Mailgun engagement events such as opened and clicked should be recorded as delivered.
public bool MapEngagementEventsAsDelivered { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The default is false so the endpoint records deliverability events only. Enable this when a host deliberately wants engagement events to update invitation delivery status.
MaxEventsPerRequest
Section titled “ MaxEventsPerRequest”Gets or sets the maximum number of Mailgun events accepted in one callback request.
public int MaxEventsPerRequest { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”Mailgun posts one JSON event object by default. The endpoint also accepts a JSON array for controlled replay and test harness scenarios while keeping the same bounded parsing posture.
MaxRequestBodyBytes
Section titled “ MaxRequestBodyBytes”Gets or sets the maximum request body size accepted by the Mailgun callback endpoint, in bytes.
public int MaxRequestBodyBytes { get; set; }Property Value
Section titled “Property Value”NormalizeProviderMessageIdWithAngleBrackets
Section titled “ NormalizeProviderMessageIdWithAngleBrackets”Gets or sets a value indicating whether Mailgun message.headers.message-id values should be wrapped in angle brackets.
public bool NormalizeProviderMessageIdWithAngleBrackets { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”Mailgun Messages API responses commonly return an angle-bracketed message id, while webhook headers may surface the same id without brackets. This normalization keeps Cephalon’s provider-message guard useful.
RecordStatus
Section titled “ RecordStatus”Gets or sets a value indicating whether translated delivery status should be recorded on the invitation.
public bool RecordStatus { get; set; }Property Value
Section titled “Property Value”RequireProviderMessageMatch
Section titled “ RequireProviderMessageMatch”Gets or sets a value indicating whether translated Mailgun events must match an existing provider message id.
public bool RequireProviderMessageMatch { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”Mailgun webhook payloads expose the message identifier through message.headers.message-id. The default
keeps provider-message guarding enabled and wraps header values in angle brackets to match the Messages API
response id shape used by the sender package.
RequireSignedWebhook
Section titled “ RequireSignedWebhook”Gets or sets a value indicating whether Mailgun webhook requests must carry a valid Mailgun signature before payload translation and reconciliation can run.
public bool RequireSignedWebhook { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”When enabled, the endpoint verifies the Mailgun HMAC-SHA256 hex digest over timestamp + token using the
configured webhook signing key. Signature verification is separate from replay-token caching so hosts can adopt
authentication first without claiming durable inbox or distributed replay ownership.
RequireStatusCallbackAuthorization
Section titled “ RequireStatusCallbackAuthorization”Gets or sets a value indicating whether the Mailgun callback endpoint should require authorization.
public bool RequireStatusCallbackAuthorization { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The endpoint performs an in-handler authorization check by default. Hosts can satisfy it with ASP.NET Core authentication, a gateway, or deliberately disable it for trusted test hosts.
SignedWebhookReplayCacheLimit
Section titled “ SignedWebhookReplayCacheLimit”Gets or sets the maximum number of verified Mailgun webhook token fingerprints retained in the current process.
public int SignedWebhookReplayCacheLimit { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”When the bounded cache is full, the oldest token fingerprint is evicted before recording a new accepted signed callback.
SignedWebhookReplayRetentionSeconds
Section titled “ SignedWebhookReplayRetentionSeconds”Gets or sets the process-local retention window, in seconds, for verified Mailgun webhook token fingerprints.
public int SignedWebhookReplayRetentionSeconds { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The endpoint clamps the effective retention to at least one second. The default matches the signature timestamp tolerance.
SignedWebhookSignatureToleranceSeconds
Section titled “ SignedWebhookSignatureToleranceSeconds”Gets or sets the allowed clock skew, in seconds, for signed Mailgun webhook timestamps.
public int SignedWebhookSignatureToleranceSeconds { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The endpoint clamps the effective tolerance to at least one second. The default is five minutes.
Source
Section titled “ Source”Gets or sets the source value recorded on translated Mailgun delivery status observations.
public string Source { get; set; }Property Value
Section titled “Property Value”StatusCallbackAuthorizationPolicy
Section titled “ StatusCallbackAuthorizationPolicy”Gets or sets the optional ASP.NET Core authorization policy required by the Mailgun callback endpoint.
public string? StatusCallbackAuthorizationPolicy { get; set; }Property Value
Section titled “Property Value”StatusCallbackRoutePattern
Section titled “ StatusCallbackRoutePattern”Gets or sets the ASP.NET Core route pattern used for Mailgun webhook callbacks.
public string StatusCallbackRoutePattern { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The default route stays under /engine because this endpoint is a provider-adapter ingress surface, not an
application-owned onboarding API.
WebhookSigningKey
Section titled “ WebhookSigningKey”Gets or sets the Mailgun webhook signing key used for HMAC-SHA256 verification.
public string? WebhookSigningKey { get; set; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”This is the Mailgun Send webhook signing key, not the Mailgun API key or an Alerts webhook signing key.
Methods
Section titled “Methods”FromConfiguration(IConfiguration?, string)
Section titled “ FromConfiguration(IConfiguration?, string)”Reads Mailgun ASP.NET Core callback options from configuration.
public static MailgunInvitationDeliveryAspNetCoreOptions FromConfiguration(IConfiguration? configuration, string sectionPath = "Engine")Parameters
Section titled “Parameters”configuration IConfiguration?
The root configuration that contains the engine section.
sectionPath string
The engine root section path to read from.
Returns
Section titled “Returns”MailgunInvitationDeliveryAspNetCoreOptions
The parsed Mailgun ASP.NET Core callback options.