Verbara.Sdk.Push.Webhooks
2.5.1
See the version list below for details.
dotnet add package Verbara.Sdk.Push.Webhooks --version 2.5.1
NuGet\Install-Package Verbara.Sdk.Push.Webhooks -Version 2.5.1
<PackageReference Include="Verbara.Sdk.Push.Webhooks" Version="2.5.1" />
<PackageVersion Include="Verbara.Sdk.Push.Webhooks" Version="2.5.1" />
<PackageReference Include="Verbara.Sdk.Push.Webhooks" />
paket add Verbara.Sdk.Push.Webhooks --version 2.5.1
#r "nuget: Verbara.Sdk.Push.Webhooks, 2.5.1"
#:package Verbara.Sdk.Push.Webhooks@2.5.1
#addin nuget:?package=Verbara.Sdk.Push.Webhooks&version=2.5.1
#tool nuget:?package=Verbara.Sdk.Push.Webhooks&version=2.5.1
Verbara.Sdk.Push.Webhooks
Outbound HTTP webhook delivery for Verbara.Sdk.Push. Consumes events from the in-process Push bus, matches them against WebhookSubscription topic patterns, and POSTs to configured URLs with HMAC-SHA256 signing and exponential retry/backoff.
Usage
using Verbara.Sdk.Push.Topics;
using Verbara.Sdk.Push.Webhooks;
builder.Services.AddVerbaraPush()
.AddVerbaraPushWebhooks(opts =>
{
opts.MaxRetries = 5;
opts.InitialDelay = TimeSpan.FromSeconds(1);
opts.MaxDelay = TimeSpan.FromSeconds(60);
opts.TimeoutPerAttempt = TimeSpan.FromSeconds(10);
});
// Runtime registration:
var store = app.Services.GetRequiredService<IWebhookSubscriptionStore>();
await store.AddAsync(new WebhookSubscription
{
Id = "crm-prod",
TopicPattern = TopicPattern.Parse("calls.**"),
TargetUrl = new("https://crm.example.com/hooks/calls"),
Secret = "<shared secret>"
});
Delivery headers
| Header | Value |
|---|---|
Content-Type |
application/json |
X-Signature |
sha256=<hex> (absent if subscription has no secret) |
X-Event-Type |
PushEvent.EventType |
User-Agent |
WebhookDeliveryOptions.UserAgent (default Verbara.Sdk.Push.Webhooks/1.0) |
traceparent |
PushEventMetadata.TraceContext (absent if null) |
Extra per-subscription headers are appended from WebhookSubscription.Headers.
Extension points
- Custom payload shape: implement
IWebhookPayloadSerializerand register as singleton beforeAddVerbaraPushWebhooks. - Custom signature: implement
IWebhookSigner(e.g., JWT, asymmetric signatures) and register as singleton. - Durable subscriptions: implement
IWebhookSubscriptionStore(SQL/Redis/Postgres) and register as singleton. The defaultInMemoryWebhookSubscriptionStoreis process-local.
Observability
Counters on Verbara.Sdk.Push.Webhooks meter:
asterisk.push.webhooks.deliveries.succeededasterisk.push.webhooks.deliveries.failedasterisk.push.webhooks.deliveries.retriedasterisk.push.webhooks.deliveries.dead_letter
Enroll via Verbara.Sdk.OpenTelemetry — WithAllSources() includes this meter automatically; it is already registered in VerbaraTelemetry.MeterNames.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.11)
- System.Reactive (>= 7.0.0)
- Verbara.Sdk.Push (>= 2.5.1)
- Verbara.Sdk.Resilience (>= 2.5.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.7.0 | 0 | 10/3/2026 |
| 2.6.1 | 415 | 9/30/2026 |
| 2.6.0 | 696 | 9/24/2026 |
| 2.5.3 | 590 | 9/13/2026 |
| 2.5.2 | 246 | 9/13/2026 |
| 2.5.1 | 238 | 9/12/2026 |
| 2.5.0 | 117 | 8/25/2026 |
| 2.4.0 | 666 | 7/27/2026 |
| 2.3.2 | 213 | 7/20/2026 |
| 2.3.1 | 193 | 7/14/2026 |
| 2.3.0 | 177 | 7/6/2026 |
| 2.2.1 | 236 | 5/23/2026 |
| 2.2.0 | 132 | 5/20/2026 |
| 2.1.2 | 115 | 5/8/2026 |
| 2.1.1 | 119 | 5/7/2026 |
| 2.1.0 | 109 | 5/7/2026 |
| 2.0.0 | 117 | 5/6/2026 |