@nestarc/webhook
Classes
FetchHttpClient
Defined in: src/adapters/fetch-http-client.ts:21
Implements
Constructors
Constructor
new FetchHttpClient(): FetchHttpClient;Returns
Methods
post()
post(
url,
headers,
body,
timeout,
options?): Promise<DeliveryResult>;Defined in: src/adapters/fetch-http-client.ts:22
Parameters
| Parameter | Type | Description |
|---|---|---|
url | string | - |
headers | Record<string, string> | - |
body | string | - |
timeout | number | milliseconds before the request is aborted. |
options? | WebhookHttpClientRequestOptions | - |
Returns
Promise<DeliveryResult>
DeliveryResult with success false on timeout/network failure; implementations should not throw for HTTP failures.
Implementation of
PlaintextSecretVault
Defined in: src/adapters/plaintext-secret-vault.ts:9
Default no-op vault — secrets are stored and retrieved as-is. Replace with a real implementation (e.g. AES-256-GCM) for production.
Implements
Constructors
Constructor
new PlaintextSecretVault(): PlaintextSecretVault;Returns
Methods
decrypt()
decrypt(secret): Promise<string>;Defined in: src/adapters/plaintext-secret-vault.ts:14
Parameters
| Parameter | Type |
|---|---|
secret | string |
Returns
Promise<string>
Implementation of
encrypt()
encrypt(secret): Promise<string>;Defined in: src/adapters/plaintext-secret-vault.ts:10
Parameters
| Parameter | Type |
|---|---|
secret | string |
Returns
Promise<string>
Implementation of
PrismaDeliveryRepository
Defined in: src/adapters/prisma-delivery.repository.ts:100
Implements
Constructors
Constructor
new PrismaDeliveryRepository(
prisma,
vault?,
redaction?): PrismaDeliveryRepository;Defined in: src/adapters/prisma-delivery.repository.ts:101
Parameters
| Parameter | Type |
|---|---|
prisma | any |
vault? | WebhookSecretVault |
redaction? | WebhookRedactionOptions |
Returns
Methods
claimPendingDeliveries()
claimPendingDeliveries(batchSize): Promise<ClaimedDelivery[]>;Defined in: src/adapters/prisma-delivery.repository.ts:157
Atomically claims pending rows and returns the minimal delivery identity needed for enrichment.
Parameters
| Parameter | Type |
|---|---|
batchSize | number |
Returns
Promise<ClaimedDelivery[]>
Implementation of
WebhookDeliveryRepository.claimPendingDeliveries
createDeliveriesInTransaction()
createDeliveriesInTransaction(
tx,
eventId,
endpointIds,
maxAttempts): Promise<void>;Defined in: src/adapters/prisma-delivery.repository.ts:107
Creates queued delivery rows inside the provided transaction. No-op when endpointIds is empty.
Parameters
| Parameter | Type |
|---|---|
tx | any |
eventId | string |
endpointIds | string[] |
maxAttempts | number |
Returns
Promise<void>
Implementation of
WebhookDeliveryRepository.createDeliveriesInTransaction
createTestDelivery()
createTestDelivery(eventId, endpointId): Promise<void>;Defined in: src/adapters/prisma-delivery.repository.ts:713
Parameters
| Parameter | Type |
|---|---|
eventId | string |
endpointId | string |
Returns
Promise<void>
Implementation of
WebhookDeliveryRepository.createTestDelivery
enrichDeliveries()
enrichDeliveries(deliveryIds): Promise<PendingDelivery[]>;Defined in: src/adapters/prisma-delivery.repository.ts:178
Parameters
| Parameter | Type |
|---|---|
deliveryIds | string[] |
Returns
Promise<PendingDelivery[]>
Implementation of
WebhookDeliveryRepository.enrichDeliveries
getBacklogSummary()
getBacklogSummary(): Promise<DeliveryBacklogSummary>;Defined in: src/adapters/prisma-delivery.repository.ts:334
Returns
Promise<DeliveryBacklogSummary>
Implementation of
WebhookDeliveryRepository.getBacklogSummary
getDeliveryAttempts()
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;Defined in: src/adapters/prisma-delivery.repository.ts:460
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
Returns
Promise<DeliveryAttemptRecord[]>
attempts sorted by attemptNumber ASC.
Implementation of
WebhookDeliveryRepository.getDeliveryAttempts
getDeliveryLogs()
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;Defined in: src/adapters/prisma-delivery.repository.ts:406
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
filters? | DeliveryLogFilters |
Returns
Promise<DeliveryRecord[]>
Implementation of
WebhookDeliveryRepository.getDeliveryLogs
markFailed()
markFailed(
deliveryId,
attempts,
result): Promise<void>;Defined in: src/adapters/prisma-delivery.repository.ts:237
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
attempts | number |
result | DeliveryResult |
Returns
Promise<void>
Implementation of
WebhookDeliveryRepository.markFailed
markRetry()
markRetry(
deliveryId,
attempts,
nextAt,
result): Promise<void>;Defined in: src/adapters/prisma-delivery.repository.ts:254
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
attempts | number |
nextAt | Date |
result | DeliveryResult |
Returns
Promise<void>
Implementation of
WebhookDeliveryRepository.markRetry
markSent()
markSent(
deliveryId,
attempts,
result): Promise<void>;Defined in: src/adapters/prisma-delivery.repository.ts:222
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
attempts | number |
result | DeliveryResult |
Returns
Promise<void>
Implementation of
WebhookDeliveryRepository.markSent
purgeExpiredData()
purgeExpiredData(options, now?): Promise<WebhookRetentionPurgeResult>;Defined in: src/adapters/prisma-delivery.repository.ts:643
Parameters
| Parameter | Type |
|---|---|
options | WebhookRetentionOptions |
now | Date |
Returns
Promise<WebhookRetentionPurgeResult>
Implementation of
WebhookDeliveryRepository.purgeExpiredData
recoverStaleSending()
recoverStaleSending(stalenessMinutes): Promise<number>;Defined in: src/adapters/prisma-delivery.repository.ts:275
Parameters
| Parameter | Type |
|---|---|
stalenessMinutes | number |
Returns
Promise<number>
number of stale SENDING deliveries recovered or failed.
Implementation of
WebhookDeliveryRepository.recoverStaleSending
replayEvent()
replayEvent(eventId, options?): Promise<ReplayEventResult>;Defined in: src/adapters/prisma-delivery.repository.ts:562
Parameters
| Parameter | Type |
|---|---|
eventId | string |
options? | ReplayEventOptions |
Returns
Promise<ReplayEventResult>
Implementation of
WebhookDeliveryRepository.replayEvent
retryDelivery()
retryDelivery(deliveryId, _options?): Promise<boolean>;Defined in: src/adapters/prisma-delivery.repository.ts:478
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
_options? | RetryDeliveryOptions |
Returns
Promise<boolean>
Implementation of
WebhookDeliveryRepository.retryDelivery
retryFailedDeliveries()
retryFailedDeliveries(filters, _options?): Promise<RetryFailedDeliveriesResult>;Defined in: src/adapters/prisma-delivery.repository.ts:491
Parameters
| Parameter | Type |
|---|---|
filters | RetryFailedDeliveriesFilters |
_options? | RetryDeliveryOptions |
Returns
Promise<RetryFailedDeliveriesResult>
Implementation of
WebhookDeliveryRepository.retryFailedDeliveries
runInTransaction()
runInTransaction<T>(fn): Promise<T>;Defined in: src/adapters/prisma-delivery.repository.ts:153
Runs the callback in one repository transaction. Pass the tx only to other *InTransaction port methods.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
fn | (tx) => Promise<T> |
Returns
Promise<T>
Implementation of
WebhookDeliveryRepository.runInTransaction
PrismaEndpointRepository
Defined in: src/adapters/prisma-endpoint.repository.ts:38
Implements
Constructors
Constructor
new PrismaEndpointRepository(prisma, vault?): PrismaEndpointRepository;Defined in: src/adapters/prisma-endpoint.repository.ts:39
Parameters
| Parameter | Type |
|---|---|
prisma | any |
vault? | WebhookSecretVault |
Returns
Methods
createEndpoint()
createEndpoint(input): Promise<EndpointRecordWithSecret>;Defined in: src/adapters/prisma-endpoint.repository.ts:91
Parameters
| Parameter | Type |
|---|---|
input | ResolvedCreateEndpointInput |
Returns
Promise<EndpointRecordWithSecret>
Implementation of
WebhookEndpointRepository.createEndpoint
deleteEndpoint()
deleteEndpoint(id): Promise<boolean>;Defined in: src/adapters/prisma-endpoint.repository.ts:197
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<boolean>
true if a row was deleted, false if the endpoint did not exist. May reject when existing delivery rows still reference the endpoint.
Implementation of
WebhookEndpointRepository.deleteEndpoint
disableEndpoint()
disableEndpoint(endpointId, reason): Promise<boolean>;Defined in: src/adapters/prisma-endpoint.repository.ts:239
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
reason | string |
Returns
Promise<boolean>
true when the endpoint transitioned from active to inactive.
Implementation of
WebhookEndpointRepository.disableEndpoint
findMatchingEndpoints()
findMatchingEndpoints(eventType, tenantId): Promise<EndpointRecord[]>;Defined in: src/adapters/prisma-endpoint.repository.ts:44
Parameters
| Parameter | Type |
|---|---|
eventType | string |
tenantId | string | undefined |
Returns
Promise<EndpointRecord[]>
Implementation of
WebhookEndpointRepository.findMatchingEndpoints
findMatchingEndpointsInTransaction()
findMatchingEndpointsInTransaction(
tx,
eventType,
tenantId): Promise<EndpointRecord[]>;Defined in: src/adapters/prisma-endpoint.repository.ts:67
Use only with a transaction object received from WebhookDeliveryRepository.runInTransaction().
Parameters
| Parameter | Type |
|---|---|
tx | any |
eventType | string |
tenantId | string | undefined |
Returns
Promise<EndpointRecord[]>
Implementation of
WebhookEndpointRepository.findMatchingEndpointsInTransaction
getEndpoint()
getEndpoint(id): Promise<EndpointRecord | null>;Defined in: src/adapters/prisma-endpoint.repository.ts:111
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<EndpointRecord | null>
Implementation of
WebhookEndpointRepository.getEndpoint
incrementFailures()
incrementFailures(endpointId): Promise<number>;Defined in: src/adapters/prisma-endpoint.repository.ts:230
Atomically increments consecutive failures and returns the new value.
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<number>
Implementation of
WebhookEndpointRepository.incrementFailures
listEndpoints()
listEndpoints(tenantId?): Promise<EndpointRecord[]>;Defined in: src/adapters/prisma-endpoint.repository.ts:119
Parameters
| Parameter | Type |
|---|---|
tenantId? | string |
Returns
Promise<EndpointRecord[]>
Implementation of
WebhookEndpointRepository.listEndpoints
recoverEligibleEndpoints()
recoverEligibleEndpoints(cooldownMinutes): Promise<number>;Defined in: src/adapters/prisma-endpoint.repository.ts:247
Parameters
| Parameter | Type |
|---|---|
cooldownMinutes | number |
Returns
Promise<number>
number of endpoints recovered after cooldown.
Implementation of
WebhookEndpointRepository.recoverEligibleEndpoints
resetFailures()
resetFailures(endpointId): Promise<void>;Defined in: src/adapters/prisma-endpoint.repository.ts:203
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<void>
Implementation of
WebhookEndpointRepository.resetFailures
rotateSecret()
rotateSecret(id, input): Promise<EndpointRecord | null>;Defined in: src/adapters/prisma-endpoint.repository.ts:174
Parameters
| Parameter | Type |
|---|---|
id | string |
input | ResolvedRotateEndpointSecretInput |
Returns
Promise<EndpointRecord | null>
Implementation of
WebhookEndpointRepository.rotateSecret
updateEndpoint()
updateEndpoint(id, dto): Promise<EndpointRecord | null>;Defined in: src/adapters/prisma-endpoint.repository.ts:134
Parameters
| Parameter | Type |
|---|---|
id | string |
dto | UpdateEndpointDto |
Returns
Promise<EndpointRecord | null>
Implementation of
WebhookEndpointRepository.updateEndpoint
PrismaEventRepository
Defined in: src/adapters/prisma-event.repository.ts:9
Implements
Constructors
Constructor
new PrismaEventRepository(prisma): PrismaEventRepository;Defined in: src/adapters/prisma-event.repository.ts:10
Parameters
| Parameter | Type |
|---|---|
prisma | any |
Returns
Methods
saveEvent()
saveEvent(
eventType,
payload,
tenantId): Promise<string>;Defined in: src/adapters/prisma-event.repository.ts:12
Parameters
| Parameter | Type |
|---|---|
eventType | string |
payload | Record<string, unknown> |
tenantId | string | null |
Returns
Promise<string>
Implementation of
WebhookEventRepository.saveEvent
saveEventInTransaction()
saveEventInTransaction(
tx,
eventType,
payload,
tenantId): Promise<string>;Defined in: src/adapters/prisma-event.repository.ts:24
Use only with a transaction object received from WebhookDeliveryRepository.runInTransaction().
Parameters
| Parameter | Type |
|---|---|
tx | any |
eventType | string |
payload | Record<string, unknown> |
tenantId | string | null |
Returns
Promise<string>
Implementation of
WebhookEventRepository.saveEventInTransaction
saveEventOnceInTransaction()
saveEventOnceInTransaction(
tx,
eventType,
payload,
tenantId,
options): Promise<SavedWebhookEvent>;Defined in: src/adapters/prisma-event.repository.ts:37
Parameters
| Parameter | Type |
|---|---|
tx | any |
eventType | string |
payload | Record<string, unknown> |
tenantId | string | null |
options | Required<Pick<WebhookPublishOptions, "idempotencyKey">> & Pick<WebhookPublishOptions, "correlationId"> |
Returns
Promise<SavedWebhookEvent>
Implementation of
WebhookEventRepository.saveEventOnceInTransaction
WebhookAdminService
Defined in: src/webhook.admin.service.ts:27
Deprecated
since v0.2.0. Will be removed in v1.0.0. Use WebhookEndpointAdminService and WebhookDeliveryAdminService directly.
Constructors
Constructor
new WebhookAdminService(endpoints, deliveries): WebhookAdminService;Defined in: src/webhook.admin.service.ts:28
Parameters
| Parameter | Type |
|---|---|
endpoints | WebhookEndpointAdminService |
deliveries | WebhookDeliveryAdminService |
Returns
Methods
createEndpoint()
createEndpoint(dto): Promise<EndpointRecordWithSecret>;Defined in: src/webhook.admin.service.ts:33
Parameters
| Parameter | Type |
|---|---|
dto | CreateEndpointDto |
Returns
Promise<EndpointRecordWithSecret>
deleteEndpoint()
deleteEndpoint(endpointId): Promise<boolean>;Defined in: src/webhook.admin.service.ts:59
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<boolean>
getDeliveryAttempts()
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;Defined in: src/webhook.admin.service.ts:70
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
Returns
Promise<DeliveryAttemptRecord[]>
getDeliveryLogs()
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;Defined in: src/webhook.admin.service.ts:63
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
filters? | DeliveryLogFilters |
Returns
Promise<DeliveryRecord[]>
getEndpoint()
getEndpoint(endpointId): Promise<EndpointRecord | null>;Defined in: src/webhook.admin.service.ts:41
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<EndpointRecord | null>
listEndpoints()
listEndpoints(tenantId?): Promise<EndpointRecord[]>;Defined in: src/webhook.admin.service.ts:37
Parameters
| Parameter | Type |
|---|---|
tenantId? | string |
Returns
Promise<EndpointRecord[]>
replayEvent()
replayEvent(eventId, options?): Promise<ReplayEventResult>;Defined in: src/webhook.admin.service.ts:88
Parameters
| Parameter | Type |
|---|---|
eventId | string |
options? | ReplayEventOptions |
Returns
Promise<ReplayEventResult>
retryDelivery()
retryDelivery(deliveryId, options?): Promise<boolean>;Defined in: src/webhook.admin.service.ts:74
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
options? | RetryDeliveryOptions |
Returns
Promise<boolean>
retryFailedDeliveries()
retryFailedDeliveries(filters, options?): Promise<RetryFailedDeliveriesResult>;Defined in: src/webhook.admin.service.ts:81
Parameters
| Parameter | Type |
|---|---|
filters | RetryFailedDeliveriesFilters |
options? | RetryDeliveryOptions |
Returns
Promise<RetryFailedDeliveriesResult>
rotateSecret()
rotateSecret(endpointId, dto): Promise<EndpointRecordWithSecret | null>;Defined in: src/webhook.admin.service.ts:52
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
dto | RotateEndpointSecretDto |
Returns
Promise<EndpointRecordWithSecret | null>
sendTestEvent()
sendTestEvent(endpointId): Promise<string | null>;Defined in: src/webhook.admin.service.ts:95
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<string | null>
updateEndpoint()
updateEndpoint(endpointId, dto): Promise<EndpointRecord | null>;Defined in: src/webhook.admin.service.ts:45
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
dto | UpdateEndpointDto |
Returns
Promise<EndpointRecord | null>
WebhookDeliveryAdminService
Defined in: src/webhook.delivery-admin.service.ts:16
Constructors
Constructor
new WebhookDeliveryAdminService(deliveryRepo): WebhookDeliveryAdminService;Defined in: src/webhook.delivery-admin.service.ts:17
Parameters
| Parameter | Type |
|---|---|
deliveryRepo | WebhookDeliveryRepository |
Returns
Methods
getDeliveryAttempts()
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;Defined in: src/webhook.delivery-admin.service.ts:29
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
Returns
Promise<DeliveryAttemptRecord[]>
getDeliveryLogs()
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;Defined in: src/webhook.delivery-admin.service.ts:22
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
filters? | DeliveryLogFilters |
Returns
Promise<DeliveryRecord[]>
replayEvent()
replayEvent(eventId, options?): Promise<ReplayEventResult>;Defined in: src/webhook.delivery-admin.service.ts:53
Parameters
| Parameter | Type |
|---|---|
eventId | string |
options? | ReplayEventOptions |
Returns
Promise<ReplayEventResult>
retryDelivery()
retryDelivery(deliveryId, options?): Promise<boolean>;Defined in: src/webhook.delivery-admin.service.ts:33
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
options? | RetryDeliveryOptions |
Returns
Promise<boolean>
retryFailedDeliveries()
retryFailedDeliveries(filters, options?): Promise<RetryFailedDeliveriesResult>;Defined in: src/webhook.delivery-admin.service.ts:40
Parameters
| Parameter | Type |
|---|---|
filters | RetryFailedDeliveriesFilters |
options? | RetryDeliveryOptions |
Returns
Promise<RetryFailedDeliveriesResult>
WebhookEndpointAdminService
Defined in: src/webhook.endpoint-admin.service.ts:23
Constructors
Constructor
new WebhookEndpointAdminService(
endpointRepo,
eventRepo,
deliveryRepo,
signer,
options): WebhookEndpointAdminService;Defined in: src/webhook.endpoint-admin.service.ts:27
Parameters
| Parameter | Type |
|---|---|
endpointRepo | WebhookEndpointRepository |
eventRepo | WebhookEventRepository |
deliveryRepo | WebhookDeliveryRepository |
signer | WebhookSigner |
options | WebhookModuleOptions |
Returns
Methods
createEndpoint()
createEndpoint(dto): Promise<EndpointRecordWithSecret>;Defined in: src/webhook.endpoint-admin.service.ts:41
Parameters
| Parameter | Type |
|---|---|
dto | CreateEndpointDto |
Returns
Promise<EndpointRecordWithSecret>
deleteEndpoint()
deleteEndpoint(endpointId): Promise<boolean>;Defined in: src/webhook.endpoint-admin.service.ts:96
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<boolean>
getEndpoint()
getEndpoint(endpointId): Promise<EndpointRecord | null>;Defined in: src/webhook.endpoint-admin.service.ts:65
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<EndpointRecord | null>
listEndpoints()
listEndpoints(tenantId?): Promise<EndpointRecord[]>;Defined in: src/webhook.endpoint-admin.service.ts:61
Parameters
| Parameter | Type |
|---|---|
tenantId? | string |
Returns
Promise<EndpointRecord[]>
rotateSecret()
rotateSecret(endpointId, dto): Promise<EndpointRecordWithSecret | null>;Defined in: src/webhook.endpoint-admin.service.ts:79
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
dto | RotateEndpointSecretDto |
Returns
Promise<EndpointRecordWithSecret | null>
sendTestEvent()
sendTestEvent(endpointId): Promise<string | null>;Defined in: src/webhook.endpoint-admin.service.ts:100
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<string | null>
updateEndpoint()
updateEndpoint(endpointId, dto): Promise<EndpointRecord | null>;Defined in: src/webhook.endpoint-admin.service.ts:69
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
dto | UpdateEndpointDto |
Returns
Promise<EndpointRecord | null>
abstract WebhookEvent
Defined in: src/webhook.event.ts:1
Constructors
Constructor
new WebhookEvent(): WebhookEvent;Returns
Properties
eventType
readonly static eventType: string;Defined in: src/webhook.event.ts:2
Accessors
eventType
Get Signature
get eventType(): string;Defined in: src/webhook.event.ts:4
Returns
string
Methods
toPayload()
toPayload(): Record<string, unknown>;Defined in: src/webhook.event.ts:14
Returns
Record<string, unknown>
WebhookModule
Defined in: src/webhook.module.ts:139
Implements
OnModuleInitOnModuleDestroy
Constructors
Constructor
new WebhookModule(
schedulerRegistry,
deliveryWorker,
options): WebhookModule;Defined in: src/webhook.module.ts:140
Parameters
| Parameter | Type |
|---|---|
schedulerRegistry | SchedulerRegistry |
deliveryWorker | WebhookDeliveryWorker |
options | WebhookModuleOptions |
Returns
Methods
forRoot()
static forRoot(options): DynamicModule;Defined in: src/webhook.module.ts:147
Parameters
| Parameter | Type |
|---|---|
options | WebhookModuleOptions |
Returns
DynamicModule
forRootAsync()
static forRootAsync(asyncOptions): DynamicModule;Defined in: src/webhook.module.ts:160
Parameters
| Parameter | Type |
|---|---|
asyncOptions | WebhookModuleAsyncOptions |
Returns
DynamicModule
onModuleDestroy()
onModuleDestroy(): void;Defined in: src/webhook.module.ts:209
Returns
void
Implementation of
OnModuleDestroy.onModuleDestroyonModuleInit()
onModuleInit(): void;Defined in: src/webhook.module.ts:200
Returns
void
Implementation of
OnModuleInit.onModuleInitWebhookRetentionAdminService
Defined in: src/webhook.retention-admin.service.ts:17
Constructors
Constructor
new WebhookRetentionAdminService(deliveryRepo, options): WebhookRetentionAdminService;Defined in: src/webhook.retention-admin.service.ts:18
Parameters
| Parameter | Type |
|---|---|
deliveryRepo | WebhookDeliveryRepository |
options | WebhookModuleOptions |
Returns
Methods
purgeExpiredData()
purgeExpiredData(now?): Promise<WebhookRetentionPurgeResult>;Defined in: src/webhook.retention-admin.service.ts:25
Parameters
| Parameter | Type |
|---|---|
now? | Date |
Returns
Promise<WebhookRetentionPurgeResult>
WebhookService
Defined in: src/webhook.service.ts:22
Constructors
Constructor
new WebhookService(
eventRepo,
endpointRepo,
deliveryRepo,
options): WebhookService;Defined in: src/webhook.service.ts:27
Parameters
| Parameter | Type |
|---|---|
eventRepo | WebhookEventRepository |
endpointRepo | WebhookEndpointRepository |
deliveryRepo | WebhookDeliveryRepository |
options | WebhookModuleOptions |
Returns
Methods
send()
send(event, options?): Promise<string>;Defined in: src/webhook.service.ts:41
Parameters
| Parameter | Type |
|---|---|
event | WebhookEvent |
options? | WebhookPublishOptions |
Returns
Promise<string>
sendToEndpoints()
sendToEndpoints(
endpointIds,
event,
tenantIdOrOptions?,
options?): Promise<string>;Defined in: src/webhook.service.ts:53
Parameters
| Parameter | Type |
|---|---|
endpointIds | string[] |
event | WebhookEvent |
tenantIdOrOptions? | string | WebhookPublishOptions |
options? | WebhookPublishOptions |
Returns
Promise<string>
sendToTenant()
sendToTenant(
tenantId,
event,
options?): Promise<string>;Defined in: src/webhook.service.ts:45
Parameters
| Parameter | Type |
|---|---|
tenantId | string |
event | WebhookEvent |
options? | WebhookPublishOptions |
Returns
Promise<string>
WebhookSigner
Defined in: src/webhook.signer.ts:17
Constructors
Constructor
new WebhookSigner(): WebhookSigner;Returns
Methods
generateSecret()
generateSecret(): string;Defined in: src/webhook.signer.ts:95
Returns
string
sign()
sign(
eventId,
timestamp,
body,
secret): SignatureHeaders;Defined in: src/webhook.signer.ts:39
Parameters
| Parameter | Type |
|---|---|
eventId | string |
timestamp | number |
body | string |
secret | string |
Returns
signAll()
signAll(
eventId,
timestamp,
body,
secrets): SignatureHeaders;Defined in: src/webhook.signer.ts:18
Parameters
| Parameter | Type |
|---|---|
eventId | string |
timestamp | number |
body | string |
secrets | string[] |
Returns
verify()
verify(
eventId,
timestamp,
body,
secret,
signature): boolean;Defined in: src/webhook.signer.ts:48
Parameters
| Parameter | Type |
|---|---|
eventId | string |
timestamp | number |
body | string |
secret | string |
signature | string |
Returns
boolean
verifyWithTolerance()
verifyWithTolerance(
eventId,
timestamp,
body,
secret,
signature,
options): boolean;Defined in: src/webhook.signer.ts:68
Parameters
| Parameter | Type |
|---|---|
eventId | string |
timestamp | number |
body | string |
secret | string |
signature | string |
options | WebhookVerificationOptions |
Returns
boolean
WebhookUrlValidationError
Defined in: src/webhook.url-validator.ts:59
Extends
Error
Constructors
Constructor
new WebhookUrlValidationError(
message,
reason,
url?,
resolvedIp?): WebhookUrlValidationError;Defined in: src/webhook.url-validator.ts:65
Parameters
| Parameter | Type |
|---|---|
message | string |
reason | WebhookUrlValidationReason |
url? | string |
resolvedIp? | string |
Returns
Overrides
Error.constructorProperties
cause?
optional cause?: unknown;Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:26
Inherited from
Error.causemessage
message: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077
Inherited from
Error.messagename
readonly name: "WebhookUrlValidationError" = 'WebhookUrlValidationError';Defined in: src/webhook.url-validator.ts:60
Overrides
Error.namereason
readonly reason: WebhookUrlValidationReason;Defined in: src/webhook.url-validator.ts:61
resolvedIp?
readonly optional resolvedIp?: string;Defined in: src/webhook.url-validator.ts:63
stack?
optional stack?: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078
Inherited from
Error.stackstackTraceLimit
static stackTraceLimit: number;Defined in: node_modules/@types/node/globals.d.ts:67
The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Inherited from
Error.stackTraceLimiturl?
readonly optional url?: string;Defined in: src/webhook.url-validator.ts:62
Methods
captureStackTrace()
static captureStackTrace(targetObject, constructorOpt?): void;Defined in: node_modules/@types/node/globals.d.ts:51
Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.
The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();Parameters
| Parameter | Type |
|---|---|
targetObject | object |
constructorOpt? | Function |
Returns
void
Inherited from
Error.captureStackTraceprepareStackTrace()
static prepareStackTrace(err, stackTraces): any;Defined in: node_modules/@types/node/globals.d.ts:55
Parameters
| Parameter | Type |
|---|---|
err | Error |
stackTraces | CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Error.prepareStackTraceInterfaces
CircuitBreakerOptions
Defined in: src/interfaces/webhook-options.interface.ts:52
Properties
cooldownMinutes?
optional cooldownMinutes?: number;Defined in: src/interfaces/webhook-options.interface.ts:55
degradedThreshold?
optional degradedThreshold?: number;Defined in: src/interfaces/webhook-options.interface.ts:54
failureThreshold?
optional failureThreshold?: number;Defined in: src/interfaces/webhook-options.interface.ts:53
ClaimedDelivery
Defined in: src/ports/webhook-delivery.repository.ts:23
A delivery row claimed by the worker but not yet enriched with endpoint/event data.
Extended by
Properties
attempts
attempts: number;Defined in: src/ports/webhook-delivery.repository.ts:27
endpointId
endpointId: string;Defined in: src/ports/webhook-delivery.repository.ts:26
eventId
eventId: string;Defined in: src/ports/webhook-delivery.repository.ts:25
id
id: string;Defined in: src/ports/webhook-delivery.repository.ts:24
maxAttempts
maxAttempts: number;Defined in: src/ports/webhook-delivery.repository.ts:28
CreateEndpointDto
Defined in: src/interfaces/webhook-endpoint.interface.ts:22
Properties
description?
optional description?: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:27
events
events: string[];Defined in: src/interfaces/webhook-endpoint.interface.ts:24
metadata?
optional metadata?: Record<string, unknown>;Defined in: src/interfaces/webhook-endpoint.interface.ts:29
JSON-serializable metadata stored as jsonb. Dates become strings; BigInt is not supported.
secret?
optional secret?: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:26
Pass 'auto' or omit the field to generate a secure base64 signing secret.
tenantId?
optional tenantId?: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:30
url
url: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:23
DeliveryAttemptRecord
Defined in: src/interfaces/webhook-delivery.interface.ts:24
Properties
attemptNumber
attemptNumber: number;Defined in: src/interfaces/webhook-delivery.interface.ts:27
createdAt
createdAt: Date;Defined in: src/interfaces/webhook-delivery.interface.ts:34
deliveryId
deliveryId: string;Defined in: src/interfaces/webhook-delivery.interface.ts:26
id
id: string;Defined in: src/interfaces/webhook-delivery.interface.ts:25
lastError
lastError: string | null;Defined in: src/interfaces/webhook-delivery.interface.ts:33
latencyMs
latencyMs: number | null;Defined in: src/interfaces/webhook-delivery.interface.ts:32
responseBody
responseBody: string | null;Defined in: src/interfaces/webhook-delivery.interface.ts:30
responseBodyTruncated
responseBodyTruncated: boolean;Defined in: src/interfaces/webhook-delivery.interface.ts:31
responseStatus
responseStatus: number | null;Defined in: src/interfaces/webhook-delivery.interface.ts:29
status
status: DeliveryAttemptStatus;Defined in: src/interfaces/webhook-delivery.interface.ts:28
DeliveryBacklogSummary
Defined in: src/ports/webhook-delivery.repository.ts:41
Properties
oldestPendingAgeMs
oldestPendingAgeMs: number | null;Defined in: src/ports/webhook-delivery.repository.ts:45
oldestRunnableAgeMs
oldestRunnableAgeMs: number | null;Defined in: src/ports/webhook-delivery.repository.ts:46
pendingCount
pendingCount: number;Defined in: src/ports/webhook-delivery.repository.ts:42
runnablePendingCount
runnablePendingCount: number;Defined in: src/ports/webhook-delivery.repository.ts:44
sendingCount
sendingCount: number;Defined in: src/ports/webhook-delivery.repository.ts:43
DeliveryFailedContext
Defined in: src/interfaces/webhook-options.interface.ts:131
Properties
attempts
attempts: number;Defined in: src/interfaces/webhook-options.interface.ts:137
deliveryId
deliveryId: string;Defined in: src/interfaces/webhook-options.interface.ts:132
endpointId
endpointId: string;Defined in: src/interfaces/webhook-options.interface.ts:133
eventId
eventId: string;Defined in: src/interfaces/webhook-options.interface.ts:134
failureKind?
optional failureKind?: DeliveryFailureKind;Defined in: src/interfaces/webhook-options.interface.ts:143
High-level classification. Built-in workers set this in v0.8.0+; optional for custom/legacy producers.
lastError
lastError: string | null;Defined in: src/interfaces/webhook-options.interface.ts:139
maxAttempts
maxAttempts: number;Defined in: src/interfaces/webhook-options.interface.ts:138
resolvedIp?
optional resolvedIp?: string;Defined in: src/interfaces/webhook-options.interface.ts:149
Set only when failureKind === 'url_validation' and DNS resolution was involved.
responseStatus
responseStatus: number | null;Defined in: src/interfaces/webhook-options.interface.ts:140
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-options.interface.ts:136
Null when the endpoint is not scoped to a tenant.
validationReason?
optional validationReason?: WebhookUrlValidationReason;Defined in: src/interfaces/webhook-options.interface.ts:145
Set only when failureKind === 'url_validation' — structured reason from WebhookUrlValidationError.
validationUrl?
optional validationUrl?: string;Defined in: src/interfaces/webhook-options.interface.ts:147
Set only when failureKind === 'url_validation' — URL that triggered validation failure.
DeliveryLogFilters
Defined in: src/interfaces/webhook-delivery.interface.ts:53
Extended by
Properties
eventType?
optional eventType?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:55
limit?
optional limit?: number;Defined in: src/interfaces/webhook-delivery.interface.ts:58
offset?
optional offset?: number;Defined in: src/interfaces/webhook-delivery.interface.ts:59
since?
optional since?: Date;Defined in: src/interfaces/webhook-delivery.interface.ts:56
status?
optional status?: DeliveryStatus;Defined in: src/interfaces/webhook-delivery.interface.ts:54
until?
optional until?: Date;Defined in: src/interfaces/webhook-delivery.interface.ts:57
DeliveryOptions
Defined in: src/interfaces/webhook-options.interface.ts:15
Properties
backoff?
optional backoff?: "exponential";Defined in: src/interfaces/webhook-options.interface.ts:19
Deprecated
Retry backoff is currently fixed to the default exponential schedule.
jitter?
optional jitter?: boolean;Defined in: src/interfaces/webhook-options.interface.ts:20
maxRetries?
optional maxRetries?: number;Defined in: src/interfaces/webhook-options.interface.ts:17
timeout?
optional timeout?: number;Defined in: src/interfaces/webhook-options.interface.ts:16
DeliveryRecord
Defined in: src/interfaces/webhook-delivery.interface.ts:4
Properties
attempts
attempts: number;Defined in: src/interfaces/webhook-delivery.interface.ts:13
completedAt
completedAt: Date | null;Defined in: src/interfaces/webhook-delivery.interface.ts:17
destinationUrl
destinationUrl: string;Defined in: src/interfaces/webhook-delivery.interface.ts:9
Destination URL used for this delivery. Uses the queued snapshot when available.
endpointId
endpointId: string;Defined in: src/interfaces/webhook-delivery.interface.ts:7
eventId
eventId: string;Defined in: src/interfaces/webhook-delivery.interface.ts:6
id
id: string;Defined in: src/interfaces/webhook-delivery.interface.ts:5
lastAttemptAt
lastAttemptAt: Date | null;Defined in: src/interfaces/webhook-delivery.interface.ts:16
lastError
lastError: string | null;Defined in: src/interfaces/webhook-delivery.interface.ts:21
latencyMs
latencyMs: number | null;Defined in: src/interfaces/webhook-delivery.interface.ts:20
maxAttempts
maxAttempts: number;Defined in: src/interfaces/webhook-delivery.interface.ts:14
nextAttemptAt
nextAttemptAt: Date | null;Defined in: src/interfaces/webhook-delivery.interface.ts:15
responseBody
responseBody: string | null;Defined in: src/interfaces/webhook-delivery.interface.ts:19
responseStatus
responseStatus: number | null;Defined in: src/interfaces/webhook-delivery.interface.ts:18
status
status: DeliveryStatus;Defined in: src/interfaces/webhook-delivery.interface.ts:12
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-delivery.interface.ts:11
Null when the endpoint is global rather than tenant-scoped.
DeliveryResult
Defined in: src/interfaces/webhook-delivery.interface.ts:45
Properties
body?
optional body?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:48
error?
optional error?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:50
latencyMs
latencyMs: number;Defined in: src/interfaces/webhook-delivery.interface.ts:49
statusCode?
optional statusCode?: number;Defined in: src/interfaces/webhook-delivery.interface.ts:47
success
success: boolean;Defined in: src/interfaces/webhook-delivery.interface.ts:46
DeliveryRetryScheduledContext
Defined in: src/interfaces/webhook-options.interface.ts:152
Properties
attempts
attempts: number;Defined in: src/interfaces/webhook-options.interface.ts:158
deliveryId
deliveryId: string;Defined in: src/interfaces/webhook-options.interface.ts:153
endpointId
endpointId: string;Defined in: src/interfaces/webhook-options.interface.ts:154
eventId
eventId: string;Defined in: src/interfaces/webhook-options.interface.ts:155
failureKind?
optional failureKind?: DeliveryFailureKind;Defined in: src/interfaces/webhook-options.interface.ts:165
High-level classification for the failed attempt that scheduled the retry.
lastError
lastError: string | null;Defined in: src/interfaces/webhook-options.interface.ts:161
maxAttempts
maxAttempts: number;Defined in: src/interfaces/webhook-options.interface.ts:159
nextAttemptAt
nextAttemptAt: Date;Defined in: src/interfaces/webhook-options.interface.ts:160
resolvedIp?
optional resolvedIp?: string;Defined in: src/interfaces/webhook-options.interface.ts:171
Set only when failureKind === 'url_validation' and DNS resolution was involved.
responseStatus
responseStatus: number | null;Defined in: src/interfaces/webhook-options.interface.ts:162
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-options.interface.ts:157
Null when the endpoint is not scoped to a tenant.
validationReason?
optional validationReason?: WebhookUrlValidationReason;Defined in: src/interfaces/webhook-options.interface.ts:167
Set only when failureKind === 'url_validation' — structured reason from WebhookUrlValidationError.
validationUrl?
optional validationUrl?: string;Defined in: src/interfaces/webhook-options.interface.ts:169
Set only when failureKind === 'url_validation' — URL that triggered validation failure.
EndpointDegradedContext
Defined in: src/interfaces/webhook-options.interface.ts:183
Properties
consecutiveFailures
consecutiveFailures: number;Defined in: src/interfaces/webhook-options.interface.ts:189
degradedThreshold
degradedThreshold: number;Defined in: src/interfaces/webhook-options.interface.ts:190
endpointId
endpointId: string;Defined in: src/interfaces/webhook-options.interface.ts:184
failureThreshold
failureThreshold: number;Defined in: src/interfaces/webhook-options.interface.ts:191
reason
reason: "consecutive_failures_degraded";Defined in: src/interfaces/webhook-options.interface.ts:188
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-options.interface.ts:186
Null when the endpoint is not scoped to a tenant.
url
url: string;Defined in: src/interfaces/webhook-options.interface.ts:187
EndpointDisabledContext
Defined in: src/interfaces/webhook-options.interface.ts:174
Properties
consecutiveFailures
consecutiveFailures: number;Defined in: src/interfaces/webhook-options.interface.ts:180
endpointId
endpointId: string;Defined in: src/interfaces/webhook-options.interface.ts:175
reason
reason: "consecutive_failures_exceeded";Defined in: src/interfaces/webhook-options.interface.ts:179
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-options.interface.ts:177
Null when the endpoint is not scoped to a tenant.
url
url: string;Defined in: src/interfaces/webhook-options.interface.ts:178
EndpointRecord
Defined in: src/interfaces/webhook-endpoint.interface.ts:1
Extended by
Properties
active
active: boolean;Defined in: src/interfaces/webhook-endpoint.interface.ts:5
consecutiveFailures
consecutiveFailures: number;Defined in: src/interfaces/webhook-endpoint.interface.ts:9
createdAt
createdAt: Date;Defined in: src/interfaces/webhook-endpoint.interface.ts:13
description
description: string | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:6
disabledAt
disabledAt: Date | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:10
disabledReason
disabledReason: string | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:11
events
events: string[];Defined in: src/interfaces/webhook-endpoint.interface.ts:4
id
id: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:2
metadata
metadata: Record<string, unknown> | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:7
previousSecretExpiresAt
previousSecretExpiresAt: Date | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:12
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:8
updatedAt
updatedAt: Date;Defined in: src/interfaces/webhook-endpoint.interface.ts:14
url
url: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:3
EndpointRecordWithSecret
Defined in: src/interfaces/webhook-endpoint.interface.ts:18
Internal record that includes the signing secret. Only used for endpoint creation response and delivery enrichment.
Extends
Properties
active
active: boolean;Defined in: src/interfaces/webhook-endpoint.interface.ts:5
Inherited from
consecutiveFailures
consecutiveFailures: number;Defined in: src/interfaces/webhook-endpoint.interface.ts:9
Inherited from
EndpointRecord.consecutiveFailures
createdAt
createdAt: Date;Defined in: src/interfaces/webhook-endpoint.interface.ts:13
Inherited from
description
description: string | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:6
Inherited from
disabledAt
disabledAt: Date | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:10
Inherited from
disabledReason
disabledReason: string | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:11
Inherited from
events
events: string[];Defined in: src/interfaces/webhook-endpoint.interface.ts:4
Inherited from
id
id: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:2
Inherited from
metadata
metadata: Record<string, unknown> | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:7
Inherited from
previousSecretExpiresAt
previousSecretExpiresAt: Date | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:12
Inherited from
EndpointRecord.previousSecretExpiresAt
secret
secret: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:19
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-endpoint.interface.ts:8
Inherited from
updatedAt
updatedAt: Date;Defined in: src/interfaces/webhook-endpoint.interface.ts:14
Inherited from
url
url: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:3
Inherited from
EventRecord
Defined in: src/interfaces/webhook-delivery.interface.ts:37
Properties
createdAt
createdAt: Date;Defined in: src/interfaces/webhook-delivery.interface.ts:42
eventType
eventType: string;Defined in: src/interfaces/webhook-delivery.interface.ts:39
id
id: string;Defined in: src/interfaces/webhook-delivery.interface.ts:38
payload
payload: Record<string, unknown>;Defined in: src/interfaces/webhook-delivery.interface.ts:40
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-delivery.interface.ts:41
PendingDelivery
Defined in: src/ports/webhook-delivery.repository.ts:32
A claimed delivery enriched with endpoint URL, signing secrets, and event payload. Ready to dispatch.
Extends
Properties
additionalSecrets
additionalSecrets: string[];Defined in: src/ports/webhook-delivery.repository.ts:36
attempts
attempts: number;Defined in: src/ports/webhook-delivery.repository.ts:27
Inherited from
endpointId
endpointId: string;Defined in: src/ports/webhook-delivery.repository.ts:26
Inherited from
eventId
eventId: string;Defined in: src/ports/webhook-delivery.repository.ts:25
Inherited from
eventType
eventType: string;Defined in: src/ports/webhook-delivery.repository.ts:37
id
id: string;Defined in: src/ports/webhook-delivery.repository.ts:24
Inherited from
maxAttempts
maxAttempts: number;Defined in: src/ports/webhook-delivery.repository.ts:28
Inherited from
payload
payload: Record<string, unknown>;Defined in: src/ports/webhook-delivery.repository.ts:38
secret
secret: string;Defined in: src/ports/webhook-delivery.repository.ts:35
tenantId
tenantId: string | null;Defined in: src/ports/webhook-delivery.repository.ts:33
url
url: string;Defined in: src/ports/webhook-delivery.repository.ts:34
PollingOptions
Defined in: src/interfaces/webhook-options.interface.ts:58
Properties
batchSize?
optional batchSize?: number;Defined in: src/interfaces/webhook-options.interface.ts:62
drainLoopDelayMs?
optional drainLoopDelayMs?: number;Defined in: src/interfaces/webhook-options.interface.ts:72
Optional sleep between continuous drain loops. Default: 0
drainWhileBacklogged?
optional drainWhileBacklogged?: boolean;Defined in: src/interfaces/webhook-options.interface.ts:68
When true, one poll cycle keeps claiming while backlog and capacity remain. Default: false
enabled?
optional enabled?: boolean;Defined in: src/interfaces/webhook-options.interface.ts:60
Set to false to disable the polling loop. Useful for API-only processes where a separate worker handles delivery. Default: true
interval?
optional interval?: number;Defined in: src/interfaces/webhook-options.interface.ts:61
maxConcurrency?
optional maxConcurrency?: number;Defined in: src/interfaces/webhook-options.interface.ts:66
Maximum delivery dispatches in flight per worker process. Default: batchSize
maxDrainLoopsPerPoll?
optional maxDrainLoopsPerPoll?: number;Defined in: src/interfaces/webhook-options.interface.ts:70
Maximum claim/drain loops inside one poll cycle. Default: 1, or 10 when drainWhileBacklogged is true
staleSendingMinutes?
optional staleSendingMinutes?: number;Defined in: src/interfaces/webhook-options.interface.ts:64
Minutes before a SENDING delivery is considered stale and reset to PENDING. Default: 5
ReplayEventOptions
Defined in: src/interfaces/webhook-delivery.interface.ts:76
Properties
endpointIds?
optional endpointIds?: string[];Defined in: src/interfaces/webhook-delivery.interface.ts:77
reason?
optional reason?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:79
tenantId?
optional tenantId?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:78
ReplayEventResult
Defined in: src/interfaces/webhook-delivery.interface.ts:82
Properties
deliveriesCreated
deliveriesCreated: number;Defined in: src/interfaces/webhook-delivery.interface.ts:84
endpointIds
endpointIds: string[];Defined in: src/interfaces/webhook-delivery.interface.ts:85
eventId
eventId: string;Defined in: src/interfaces/webhook-delivery.interface.ts:83
ResolvedCreateEndpointInput
Defined in: src/ports/webhook-endpoint.repository.ts:9
Properties
description
description: string | null;Defined in: src/ports/webhook-endpoint.repository.ts:13
events
events: string[];Defined in: src/ports/webhook-endpoint.repository.ts:12
metadata
metadata: Record<string, unknown> | null;Defined in: src/ports/webhook-endpoint.repository.ts:14
secret
secret: string;Defined in: src/ports/webhook-endpoint.repository.ts:11
tenantId
tenantId: string | null;Defined in: src/ports/webhook-endpoint.repository.ts:15
url
url: string;Defined in: src/ports/webhook-endpoint.repository.ts:10
ResolvedRotateEndpointSecretInput
Defined in: src/ports/webhook-endpoint.repository.ts:18
Extends
Required<RotateEndpointSecretDto>
Properties
previousSecretExpiresAt
previousSecretExpiresAt: Date;Defined in: src/interfaces/webhook-endpoint.interface.ts:46
Keep the previous secret valid until this timestamp so queued receivers can overlap during rotation.
Inherited from
RotateEndpointSecretDto.previousSecretExpiresAt
secret
secret: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:44
Pass 'auto' or omit the field to generate a secure base64 signing secret.
Inherited from
RotateEndpointSecretDto.secret
RetryDeliveryOptions
Defined in: src/interfaces/webhook-delivery.interface.ts:62
Properties
reason?
optional reason?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:63
RetryFailedDeliveriesFilters
Defined in: src/interfaces/webhook-delivery.interface.ts:66
Extends
Properties
endpointId?
optional endpointId?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:67
eventType?
optional eventType?: string;Defined in: src/interfaces/webhook-delivery.interface.ts:55
Inherited from
limit?
optional limit?: number;Defined in: src/interfaces/webhook-delivery.interface.ts:58
Inherited from
offset?
optional offset?: number;Defined in: src/interfaces/webhook-delivery.interface.ts:59
Inherited from
since?
optional since?: Date;Defined in: src/interfaces/webhook-delivery.interface.ts:56
Inherited from
status?
optional status?: DeliveryStatus;Defined in: src/interfaces/webhook-delivery.interface.ts:54
Inherited from
until?
optional until?: Date;Defined in: src/interfaces/webhook-delivery.interface.ts:57
Inherited from
RetryFailedDeliveriesResult
Defined in: src/interfaces/webhook-delivery.interface.ts:70
Properties
matched
matched: number;Defined in: src/interfaces/webhook-delivery.interface.ts:71
retried
retried: number;Defined in: src/interfaces/webhook-delivery.interface.ts:72
skipped
skipped: number;Defined in: src/interfaces/webhook-delivery.interface.ts:73
RotateEndpointSecretDto
Defined in: src/interfaces/webhook-endpoint.interface.ts:42
Properties
previousSecretExpiresAt
previousSecretExpiresAt: Date;Defined in: src/interfaces/webhook-endpoint.interface.ts:46
Keep the previous secret valid until this timestamp so queued receivers can overlap during rotation.
secret?
optional secret?: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:44
Pass 'auto' or omit the field to generate a secure base64 signing secret.
SavedWebhookEvent
Defined in: src/ports/webhook-event.repository.ts:4
Properties
created
created: boolean;Defined in: src/ports/webhook-event.repository.ts:6
id
id: string;Defined in: src/ports/webhook-event.repository.ts:5
SignatureHeaders
Defined in: src/webhook.signer.ts:4
Indexable
[key: string]: stringProperties
webhook-id
webhook-id: string;Defined in: src/webhook.signer.ts:6
webhook-signature
webhook-signature: string;Defined in: src/webhook.signer.ts:8
webhook-timestamp
webhook-timestamp: string;Defined in: src/webhook.signer.ts:7
UpdateEndpointDto
Defined in: src/interfaces/webhook-endpoint.interface.ts:33
Properties
active?
optional active?: boolean;Defined in: src/interfaces/webhook-endpoint.interface.ts:39
description?
optional description?: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:36
events?
optional events?: string[];Defined in: src/interfaces/webhook-endpoint.interface.ts:35
metadata?
optional metadata?: Record<string, unknown>;Defined in: src/interfaces/webhook-endpoint.interface.ts:38
JSON-serializable metadata stored as jsonb. Dates become strings; BigInt is not supported.
url?
optional url?: string;Defined in: src/interfaces/webhook-endpoint.interface.ts:34
WebhookDeliveryProcessingResult
Defined in: src/interfaces/webhook-options.interface.ts:97
Properties
attempts
attempts: number;Defined in: src/interfaces/webhook-options.interface.ts:102
deliveryId
deliveryId: string;Defined in: src/interfaces/webhook-options.interface.ts:98
endpointId
endpointId: string;Defined in: src/interfaces/webhook-options.interface.ts:99
eventId
eventId: string;Defined in: src/interfaces/webhook-options.interface.ts:100
failureKind?
optional failureKind?: DeliveryFailureKind;Defined in: src/interfaces/webhook-options.interface.ts:109
lastError
lastError: string | null;Defined in: src/interfaces/webhook-options.interface.ts:106
latencyMs
latencyMs: number | null;Defined in: src/interfaces/webhook-options.interface.ts:107
maxAttempts
maxAttempts: number;Defined in: src/interfaces/webhook-options.interface.ts:103
nextAttemptAt?
optional nextAttemptAt?: Date;Defined in: src/interfaces/webhook-options.interface.ts:108
resolvedIp?
optional resolvedIp?: string;Defined in: src/interfaces/webhook-options.interface.ts:112
responseStatus
responseStatus: number | null;Defined in: src/interfaces/webhook-options.interface.ts:105
status
status: WebhookDeliveryProcessingStatus;Defined in: src/interfaces/webhook-options.interface.ts:104
tenantId
tenantId: string | null;Defined in: src/interfaces/webhook-options.interface.ts:101
validationReason?
optional validationReason?: WebhookUrlValidationReason;Defined in: src/interfaces/webhook-options.interface.ts:110
validationUrl?
optional validationUrl?: string;Defined in: src/interfaces/webhook-options.interface.ts:111
WebhookDeliveryRepository
Defined in: src/ports/webhook-delivery.repository.ts:49
Methods
claimPendingDeliveries()
claimPendingDeliveries(batchSize): Promise<ClaimedDelivery[]>;Defined in: src/ports/webhook-delivery.repository.ts:65
Atomically claims pending rows and returns the minimal delivery identity needed for enrichment.
Parameters
| Parameter | Type |
|---|---|
batchSize | number |
Returns
Promise<ClaimedDelivery[]>
createDeliveriesInTransaction()
createDeliveriesInTransaction(
tx,
eventId,
endpointIds,
maxAttempts): Promise<void>;Defined in: src/ports/webhook-delivery.repository.ts:54
Creates queued delivery rows inside the provided transaction. No-op when endpointIds is empty.
Parameters
| Parameter | Type |
|---|---|
tx | WebhookTransaction |
eventId | string |
endpointIds | string[] |
maxAttempts | number |
Returns
Promise<void>
createTestDelivery()
createTestDelivery(eventId, endpointId): Promise<void>;Defined in: src/ports/webhook-delivery.repository.ts:91
Parameters
| Parameter | Type |
|---|---|
eventId | string |
endpointId | string |
Returns
Promise<void>
enrichDeliveries()
enrichDeliveries(deliveryIds): Promise<PendingDelivery[]>;Defined in: src/ports/webhook-delivery.repository.ts:66
Parameters
| Parameter | Type |
|---|---|
deliveryIds | string[] |
Returns
Promise<PendingDelivery[]>
getBacklogSummary()?
optional getBacklogSummary(): Promise<DeliveryBacklogSummary>;Defined in: src/ports/webhook-delivery.repository.ts:74
Returns
Promise<DeliveryBacklogSummary>
getDeliveryAttempts()
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;Defined in: src/ports/webhook-delivery.repository.ts:77
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
Returns
Promise<DeliveryAttemptRecord[]>
attempts sorted by attemptNumber ASC.
getDeliveryLogs()
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;Defined in: src/ports/webhook-delivery.repository.ts:75
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
filters? | DeliveryLogFilters |
Returns
Promise<DeliveryRecord[]>
markFailed()
markFailed(
deliveryId,
attempts,
result): Promise<void>;Defined in: src/ports/webhook-delivery.repository.ts:69
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
attempts | number |
result | DeliveryResult |
Returns
Promise<void>
markRetry()
markRetry(
deliveryId,
attempts,
nextAt,
result): Promise<void>;Defined in: src/ports/webhook-delivery.repository.ts:70
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
attempts | number |
nextAt | Date |
result | DeliveryResult |
Returns
Promise<void>
markSent()
markSent(
deliveryId,
attempts,
result): Promise<void>;Defined in: src/ports/webhook-delivery.repository.ts:68
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
attempts | number |
result | DeliveryResult |
Returns
Promise<void>
purgeExpiredData()?
optional purgeExpiredData(options, now?): Promise<WebhookRetentionPurgeResult>;Defined in: src/ports/webhook-delivery.repository.ts:87
Parameters
| Parameter | Type |
|---|---|
options | WebhookRetentionOptions |
now? | Date |
Returns
Promise<WebhookRetentionPurgeResult>
recoverStaleSending()
recoverStaleSending(stalenessMinutes): Promise<number>;Defined in: src/ports/webhook-delivery.repository.ts:73
Parameters
| Parameter | Type |
|---|---|
stalenessMinutes | number |
Returns
Promise<number>
number of stale SENDING deliveries recovered or failed.
replayEvent()?
optional replayEvent(eventId, options?): Promise<ReplayEventResult>;Defined in: src/ports/webhook-delivery.repository.ts:83
Parameters
| Parameter | Type |
|---|---|
eventId | string |
options? | ReplayEventOptions |
Returns
Promise<ReplayEventResult>
retryDelivery()
retryDelivery(deliveryId, options?): Promise<boolean>;Defined in: src/ports/webhook-delivery.repository.ts:78
Parameters
| Parameter | Type |
|---|---|
deliveryId | string |
options? | RetryDeliveryOptions |
Returns
Promise<boolean>
retryFailedDeliveries()?
optional retryFailedDeliveries(filters, options?): Promise<RetryFailedDeliveriesResult>;Defined in: src/ports/webhook-delivery.repository.ts:79
Parameters
| Parameter | Type |
|---|---|
filters | RetryFailedDeliveriesFilters |
options? | RetryDeliveryOptions |
Returns
Promise<RetryFailedDeliveriesResult>
runInTransaction()
runInTransaction<T>(fn): Promise<T>;Defined in: src/ports/webhook-delivery.repository.ts:62
Runs the callback in one repository transaction. Pass the tx only to other *InTransaction port methods.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
fn | (tx) => Promise<T> |
Returns
Promise<T>
WebhookEndpointRepository
Defined in: src/ports/webhook-endpoint.repository.ts:21
Methods
createEndpoint()
createEndpoint(input): Promise<EndpointRecordWithSecret>;Defined in: src/ports/webhook-endpoint.repository.ts:34
Parameters
| Parameter | Type |
|---|---|
input | ResolvedCreateEndpointInput |
Returns
Promise<EndpointRecordWithSecret>
deleteEndpoint()
deleteEndpoint(id): Promise<boolean>;Defined in: src/ports/webhook-endpoint.repository.ts:47
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<boolean>
true if a row was deleted, false if the endpoint did not exist. May reject when existing delivery rows still reference the endpoint.
disableEndpoint()
disableEndpoint(endpointId, reason): Promise<boolean>;Defined in: src/ports/webhook-endpoint.repository.ts:53
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
reason | string |
Returns
Promise<boolean>
true when the endpoint transitioned from active to inactive.
findMatchingEndpoints()
findMatchingEndpoints(eventType, tenantId): Promise<EndpointRecord[]>;Defined in: src/ports/webhook-endpoint.repository.ts:22
Parameters
| Parameter | Type |
|---|---|
eventType | string |
tenantId | string | undefined |
Returns
Promise<EndpointRecord[]>
findMatchingEndpointsInTransaction()
findMatchingEndpointsInTransaction(
tx,
eventType,
tenantId): Promise<EndpointRecord[]>;Defined in: src/ports/webhook-endpoint.repository.ts:28
Use only with a transaction object received from WebhookDeliveryRepository.runInTransaction().
Parameters
| Parameter | Type |
|---|---|
tx | WebhookTransaction |
eventType | string |
tenantId | string | undefined |
Returns
Promise<EndpointRecord[]>
getEndpoint()
getEndpoint(id): Promise<EndpointRecord | null>;Defined in: src/ports/webhook-endpoint.repository.ts:36
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<EndpointRecord | null>
incrementFailures()
incrementFailures(endpointId): Promise<number>;Defined in: src/ports/webhook-endpoint.repository.ts:51
Atomically increments consecutive failures and returns the new value.
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<number>
listEndpoints()
listEndpoints(tenantId?): Promise<EndpointRecord[]>;Defined in: src/ports/webhook-endpoint.repository.ts:37
Parameters
| Parameter | Type |
|---|---|
tenantId? | string |
Returns
Promise<EndpointRecord[]>
recoverEligibleEndpoints()
recoverEligibleEndpoints(cooldownMinutes): Promise<number>;Defined in: src/ports/webhook-endpoint.repository.ts:55
Parameters
| Parameter | Type |
|---|---|
cooldownMinutes | number |
Returns
Promise<number>
number of endpoints recovered after cooldown.
resetFailures()
resetFailures(endpointId): Promise<void>;Defined in: src/ports/webhook-endpoint.repository.ts:49
Parameters
| Parameter | Type |
|---|---|
endpointId | string |
Returns
Promise<void>
rotateSecret()
rotateSecret(id, input): Promise<EndpointRecord | null>;Defined in: src/ports/webhook-endpoint.repository.ts:39
Parameters
| Parameter | Type |
|---|---|
id | string |
input | ResolvedRotateEndpointSecretInput |
Returns
Promise<EndpointRecord | null>
updateEndpoint()
updateEndpoint(id, dto): Promise<EndpointRecord | null>;Defined in: src/ports/webhook-endpoint.repository.ts:38
Parameters
| Parameter | Type |
|---|---|
id | string |
dto | UpdateEndpointDto |
Returns
Promise<EndpointRecord | null>
WebhookEventRepository
Defined in: src/ports/webhook-event.repository.ts:9
Methods
saveEvent()
saveEvent(
eventType,
payload,
tenantId): Promise<string>;Defined in: src/ports/webhook-event.repository.ts:10
Parameters
| Parameter | Type |
|---|---|
eventType | string |
payload | Record<string, unknown> |
tenantId | string | null |
Returns
Promise<string>
saveEventInTransaction()
saveEventInTransaction(
tx,
eventType,
payload,
tenantId): Promise<string>;Defined in: src/ports/webhook-event.repository.ts:17
Use only with a transaction object received from WebhookDeliveryRepository.runInTransaction().
Parameters
| Parameter | Type |
|---|---|
tx | WebhookTransaction |
eventType | string |
payload | Record<string, unknown> |
tenantId | string | null |
Returns
Promise<string>
saveEventOnceInTransaction()?
optional saveEventOnceInTransaction(
tx,
eventType,
payload,
tenantId,
options): Promise<SavedWebhookEvent>;Defined in: src/ports/webhook-event.repository.ts:24
Parameters
| Parameter | Type |
|---|---|
tx | WebhookTransaction |
eventType | string |
payload | Record<string, unknown> |
tenantId | string | null |
options | Required<Pick<WebhookPublishOptions, "idempotencyKey">> & Pick<WebhookPublishOptions, "correlationId"> |
Returns
Promise<SavedWebhookEvent>
WebhookHttpClient
Defined in: src/ports/webhook-http-client.ts:11
Methods
post()
post(
url,
headers,
body,
timeout,
options?): Promise<DeliveryResult>;Defined in: src/ports/webhook-http-client.ts:16
Parameters
| Parameter | Type | Description |
|---|---|---|
url | string | - |
headers | Record<string, string> | - |
body | string | - |
timeout | number | milliseconds before the request is aborted. |
options? | WebhookHttpClientRequestOptions | - |
Returns
Promise<DeliveryResult>
DeliveryResult with success false on timeout/network failure; implementations should not throw for HTTP failures.
WebhookModuleAsyncOptions
Defined in: src/interfaces/webhook-options.interface.ts:235
Extends
Pick<ModuleMetadata,"imports">
Properties
imports?
optional imports?: (
| DynamicModule
| Type<any>
| Promise<DynamicModule>
| ForwardReference<any>)[];Defined in: node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts:18
Optional list of imported modules that export the providers which are required in this module.
Inherited from
Pick.importsinject?
optional inject?: (InjectionToken | OptionalFactoryDependency)[];Defined in: src/interfaces/webhook-options.interface.ts:237
useClass?
optional useClass?: Type<WebhookOptionsFactory>;Defined in: src/interfaces/webhook-options.interface.ts:238
useExisting?
optional useExisting?: Type<WebhookOptionsFactory>;Defined in: src/interfaces/webhook-options.interface.ts:239
useFactory?
optional useFactory?: (...args) =>
| WebhookModuleOptions<unknown>
| Promise<WebhookModuleOptions<unknown>>;Defined in: src/interfaces/webhook-options.interface.ts:236
Parameters
| Parameter | Type |
|---|---|
...args | any[] |
Returns
| WebhookModuleOptions<unknown> | Promise<WebhookModuleOptions<unknown>>
WebhookModuleOptions
Defined in: src/interfaces/webhook-options.interface.ts:194
Type Parameters
| Type Parameter | Default type |
|---|---|
TPrisma | unknown |
Properties
allowPrivateUrls?
optional allowPrivateUrls?: boolean;Defined in: src/interfaces/webhook-options.interface.ts:203
Allow private/internal URLs for endpoints. Only enable in development/testing. Default: false
circuitBreaker?
optional circuitBreaker?: CircuitBreakerOptions;Defined in: src/interfaces/webhook-options.interface.ts:198
delivery?
optional delivery?: DeliveryOptions;Defined in: src/interfaces/webhook-options.interface.ts:197
deliveryRepository?
optional deliveryRepository?: WebhookDeliveryRepository;Defined in: src/interfaces/webhook-options.interface.ts:207
endpointRepository?
optional endpointRepository?: WebhookEndpointRepository;Defined in: src/interfaces/webhook-options.interface.ts:206
eventRepository?
optional eventRepository?: WebhookEventRepository;Defined in: src/interfaces/webhook-options.interface.ts:205
Custom port overrides — provide these to replace default Prisma/fetch adapters.
httpClient?
optional httpClient?: WebhookHttpClient;Defined in: src/interfaces/webhook-options.interface.ts:208
onDeliveryFailed?
optional onDeliveryFailed?: (context) => void | Promise<void>;Defined in: src/interfaces/webhook-options.interface.ts:217
Called when a delivery exhausts retry attempts or receives a non-retryable response. Fire-and-forget — errors are logged, not propagated.
Parameters
| Parameter | Type |
|---|---|
context | DeliveryFailedContext |
Returns
void | Promise<void>
onDeliveryRetryScheduled?
optional onDeliveryRetryScheduled?: (context) => void | Promise<void>;Defined in: src/interfaces/webhook-options.interface.ts:220
Called after a retriable failed attempt is persisted with a next attempt time. Fire-and-forget — errors are logged, not propagated.
Parameters
| Parameter | Type |
|---|---|
context | DeliveryRetryScheduledContext |
Returns
void | Promise<void>
onEndpointDegraded?
optional onEndpointDegraded?: (context) => void | Promise<void>;Defined in: src/interfaces/webhook-options.interface.ts:225
Called when consecutive failures reach the configured degraded threshold before endpoint disablement. Fire-and-forget — errors are logged, not propagated.
Parameters
| Parameter | Type |
|---|---|
context | EndpointDegradedContext |
Returns
void | Promise<void>
onEndpointDisabled?
optional onEndpointDisabled?: (context) => void | Promise<void>;Defined in: src/interfaces/webhook-options.interface.ts:228
Called when the circuit breaker disables an endpoint. Fire-and-forget — errors are logged, not propagated.
Parameters
| Parameter | Type |
|---|---|
context | EndpointDisabledContext |
Returns
void | Promise<void>
polling?
optional polling?: PollingOptions;Defined in: src/interfaces/webhook-options.interface.ts:199
prisma?
optional prisma?: TPrisma;Defined in: src/interfaces/webhook-options.interface.ts:196
PrismaClient instance — used by default Prisma adapters. Not needed if all custom repositories are provided.
redaction?
optional redaction?: WebhookRedactionOptions;Defined in: src/interfaces/webhook-options.interface.ts:214
Optional minimization hooks applied before webhook data is persisted.
retention?
optional retention?: WebhookRetentionOptions;Defined in: src/interfaces/webhook-options.interface.ts:212
Optional retention purge policy. Disabled when omitted.
secretVault?
optional secretVault?: WebhookSecretVault;Defined in: src/interfaces/webhook-options.interface.ts:210
Custom secret vault for encrypting/decrypting endpoint signing secrets at rest. Default: PlaintextSecretVault (no-op).
workerObserver?
optional workerObserver?: WebhookWorkerObserver;Defined in: src/interfaces/webhook-options.interface.ts:201
Best-effort worker lifecycle and delivery metrics observer. Observer errors are logged and ignored.
WebhookOptionsFactory
Defined in: src/interfaces/webhook-options.interface.ts:231
Methods
createWebhookOptions()
createWebhookOptions():
| WebhookModuleOptions<unknown>
| Promise<WebhookModuleOptions<unknown>>;Defined in: src/interfaces/webhook-options.interface.ts:232
Returns
| WebhookModuleOptions<unknown> | Promise<WebhookModuleOptions<unknown>>
WebhookPollContext
Defined in: src/interfaces/webhook-options.interface.ts:75
Properties
activeDeliveries
activeDeliveries: number;Defined in: src/interfaces/webhook-options.interface.ts:81
batchSize
batchSize: number;Defined in: src/interfaces/webhook-options.interface.ts:76
drainLoopDelayMs
drainLoopDelayMs: number;Defined in: src/interfaces/webhook-options.interface.ts:80
drainWhileBacklogged
drainWhileBacklogged: boolean;Defined in: src/interfaces/webhook-options.interface.ts:78
maxConcurrency
maxConcurrency: number;Defined in: src/interfaces/webhook-options.interface.ts:77
maxDrainLoopsPerPoll
maxDrainLoopsPerPoll: number;Defined in: src/interfaces/webhook-options.interface.ts:79
WebhookPollResult
Defined in: src/interfaces/webhook-options.interface.ts:84
Properties
claimed
claimed: number;Defined in: src/interfaces/webhook-options.interface.ts:85
durationMs
durationMs: number;Defined in: src/interfaces/webhook-options.interface.ts:91
enriched
enriched: number;Defined in: src/interfaces/webhook-options.interface.ts:86
failed
failed: number;Defined in: src/interfaces/webhook-options.interface.ts:88
loops
loops: number;Defined in: src/interfaces/webhook-options.interface.ts:92
recoveredStale
recoveredStale: number;Defined in: src/interfaces/webhook-options.interface.ts:90
retried
retried: number;Defined in: src/interfaces/webhook-options.interface.ts:89
sent
sent: number;Defined in: src/interfaces/webhook-options.interface.ts:87
WebhookPublishOptions
Defined in: src/interfaces/webhook-options.interface.ts:23
Properties
correlationId?
optional correlationId?: string;Defined in: src/interfaces/webhook-options.interface.ts:27
Optional caller correlation ID stored with the event for diagnostics.
idempotencyKey?
optional idempotencyKey?: string;Defined in: src/interfaces/webhook-options.interface.ts:25
Application-provided key used to deduplicate publish attempts.
WebhookRedactionOptions
Defined in: src/interfaces/webhook-options.interface.ts:36
Properties
sanitizePayload?
optional sanitizePayload?: (payload, context) => Record<string, unknown>;Defined in: src/interfaces/webhook-options.interface.ts:37
Parameters
| Parameter | Type |
|---|---|
payload | Record<string, unknown> |
context | { eventType: string; tenantId: string | null; } |
context.eventType | string |
context.tenantId | string | null |
Returns
Record<string, unknown>
sanitizeResponseBody?
optional sanitizeResponseBody?: (body, context) => string | null;Defined in: src/interfaces/webhook-options.interface.ts:41
Parameters
| Parameter | Type |
|---|---|
body | string |
context | { deliveryId: string; endpointId: string | null; eventId: string | null; statusCode: number | null; } |
context.deliveryId | string |
context.endpointId | string | null |
context.eventId | string | null |
context.statusCode | number | null |
Returns
string | null
WebhookRetentionOptions
Defined in: src/interfaces/webhook-options.interface.ts:30
Properties
attemptResponseBodyRetentionDays?
optional attemptResponseBodyRetentionDays?: number;Defined in: src/interfaces/webhook-options.interface.ts:33
deliveryResponseBodyRetentionDays?
optional deliveryResponseBodyRetentionDays?: number;Defined in: src/interfaces/webhook-options.interface.ts:32
eventPayloadRetentionDays?
optional eventPayloadRetentionDays?: number;Defined in: src/interfaces/webhook-options.interface.ts:31
WebhookRetentionPurgeResult
Defined in: src/interfaces/webhook-delivery.interface.ts:88
Properties
attemptsPurged
attemptsPurged: number;Defined in: src/interfaces/webhook-delivery.interface.ts:91
deliveriesPurged
deliveriesPurged: number;Defined in: src/interfaces/webhook-delivery.interface.ts:90
eventsPurged
eventsPurged: number;Defined in: src/interfaces/webhook-delivery.interface.ts:89
WebhookSecretVault
Defined in: src/ports/webhook-secret-vault.ts:7
Port for encrypting/decrypting endpoint signing secrets at rest. Implement this interface to provide custom encryption (e.g. AES-256-GCM). The default PlaintextSecretVault passes values through unchanged. Throws are propagated to callers; implementations should retry transient KMS/network failures internally.
Methods
decrypt()
decrypt(encryptedSecret): Promise<string>;Defined in: src/ports/webhook-secret-vault.ts:9
Parameters
| Parameter | Type |
|---|---|
encryptedSecret | string |
Returns
Promise<string>
encrypt()
encrypt(plainSecret): Promise<string>;Defined in: src/ports/webhook-secret-vault.ts:8
Parameters
| Parameter | Type |
|---|---|
plainSecret | string |
Returns
Promise<string>
WebhookVerificationOptions
Defined in: src/webhook.signer.ts:11
Properties
now?
optional now?: Date;Defined in: src/webhook.signer.ts:13
toleranceSeconds
toleranceSeconds: number;Defined in: src/webhook.signer.ts:12
WebhookWorkerObserver
Defined in: src/interfaces/webhook-options.interface.ts:115
Methods
onDeliveryComplete()?
optional onDeliveryComplete(result): void;Defined in: src/interfaces/webhook-options.interface.ts:118
Parameters
| Parameter | Type |
|---|---|
result | WebhookDeliveryProcessingResult |
Returns
void
onPollComplete()?
optional onPollComplete(result): void;Defined in: src/interfaces/webhook-options.interface.ts:117
Parameters
| Parameter | Type |
|---|---|
result | WebhookPollResult |
Returns
void
onPollError()?
optional onPollError(error): void;Defined in: src/interfaces/webhook-options.interface.ts:119
Parameters
| Parameter | Type |
|---|---|
error | unknown |
Returns
void
onPollStart()?
optional onPollStart(context): void;Defined in: src/interfaces/webhook-options.interface.ts:116
Parameters
| Parameter | Type |
|---|---|
context | WebhookPollContext |
Returns
void
Type Aliases
DeliveryAttemptStatus
type DeliveryAttemptStatus = Exclude<DeliveryStatus, "SENDING">;Defined in: src/interfaces/webhook-delivery.interface.ts:2
DeliveryFailureKind
type DeliveryFailureKind = "url_validation" | "dispatch_error" | "http_error";Defined in: src/interfaces/webhook-options.interface.ts:129
Category of failure that caused the delivery to stop after retry exhaustion or after a non-retryable receiver response.
url_validation: SSRF defense rejected the URL (private/loopback/link-local/etc.)dispatch_error: dispatcher threw an exception (timeout, ECONNREFUSED, etc.)http_error: endpoint responded with a non-2xx status code
DeliveryStatus
type DeliveryStatus = "PENDING" | "SENDING" | "SENT" | "FAILED";Defined in: src/interfaces/webhook-delivery.interface.ts:1
EndpointDisabledReason
type EndpointDisabledReason = typeof ENDPOINT_DISABLED_REASON_CONSECUTIVE_FAILURES_EXCEEDED;Defined in: src/webhook.constants.ts:28
WebhookDeliveryProcessingStatus
type WebhookDeliveryProcessingStatus = "sent" | "failed" | "retried";Defined in: src/interfaces/webhook-options.interface.ts:95
WebhookTransaction
type WebhookTransaction = {
[webhookTransactionBrand]: "WebhookTransaction";
};Defined in: src/ports/webhook-delivery.repository.ts:18
Opaque transaction token created by repository adapters.
Properties
[webhookTransactionBrand]
readonly [webhookTransactionBrand]: "WebhookTransaction";Defined in: src/ports/webhook-delivery.repository.ts:19
WebhookUrlValidationReason
type WebhookUrlValidationReason =
| "parse"
| "scheme"
| "blocked_hostname"
| "loopback"
| "private"
| "link_local"
| "invalid_target";Defined in: src/webhook.url-validator.ts:18
Variables
DEFAULT_BACKOFF_SCHEDULE
const DEFAULT_BACKOFF_SCHEDULE: readonly [30, 300, 1800, 7200, 86400];Defined in: src/webhook.constants.ts:12
Svix/Stripe-style exponential backoff schedule (seconds)
DEFAULT_CIRCUIT_BREAKER_COOLDOWN_MINUTES
const DEFAULT_CIRCUIT_BREAKER_COOLDOWN_MINUTES: 60 = 60;Defined in: src/webhook.constants.ts:25
DEFAULT_CIRCUIT_BREAKER_THRESHOLD
const DEFAULT_CIRCUIT_BREAKER_THRESHOLD: 5 = 5;Defined in: src/webhook.constants.ts:24
DEFAULT_DELIVERY_TIMEOUT
const DEFAULT_DELIVERY_TIMEOUT: 10000 = 10_000;Defined in: src/webhook.constants.ts:20
DEFAULT_MAX_RETRIES
const DEFAULT_MAX_RETRIES: 5 = 5;Defined in: src/webhook.constants.ts:21
DEFAULT_POLLING_BATCH_SIZE
const DEFAULT_POLLING_BATCH_SIZE: 50 = 50;Defined in: src/webhook.constants.ts:32
DEFAULT_POLLING_INTERVAL
const DEFAULT_POLLING_INTERVAL: 5000 = 5_000;Defined in: src/webhook.constants.ts:31
DEFAULT_STALE_SENDING_MINUTES
const DEFAULT_STALE_SENDING_MINUTES: 5 = 5;Defined in: src/webhook.constants.ts:33
ENDPOINT_DISABLED_REASON_CONSECUTIVE_FAILURES_EXCEEDED
const ENDPOINT_DISABLED_REASON_CONSECUTIVE_FAILURES_EXCEEDED: "consecutive_failures_exceeded";Defined in: src/webhook.constants.ts:26
WEBHOOK_DELIVERY_REPOSITORY
const WEBHOOK_DELIVERY_REPOSITORY: "WEBHOOK_DELIVERY_REPOSITORY" = 'WEBHOOK_DELIVERY_REPOSITORY';Defined in: src/webhook.constants.ts:5
WEBHOOK_ENDPOINT_REPOSITORY
const WEBHOOK_ENDPOINT_REPOSITORY: "WEBHOOK_ENDPOINT_REPOSITORY" = 'WEBHOOK_ENDPOINT_REPOSITORY';Defined in: src/webhook.constants.ts:4
WEBHOOK_EVENT_REPOSITORY
const WEBHOOK_EVENT_REPOSITORY: "WEBHOOK_EVENT_REPOSITORY" = 'WEBHOOK_EVENT_REPOSITORY';Defined in: src/webhook.constants.ts:3
WEBHOOK_HTTP_CLIENT
const WEBHOOK_HTTP_CLIENT: "WEBHOOK_HTTP_CLIENT" = 'WEBHOOK_HTTP_CLIENT';Defined in: src/webhook.constants.ts:6
WEBHOOK_MODULE_OPTIONS
const WEBHOOK_MODULE_OPTIONS: "WEBHOOK_MODULE_OPTIONS" = 'WEBHOOK_MODULE_OPTIONS';Defined in: src/webhook.constants.ts:1
WEBHOOK_SECRET_VAULT
const WEBHOOK_SECRET_VAULT: "WEBHOOK_SECRET_VAULT" = 'WEBHOOK_SECRET_VAULT';Defined in: src/webhook.constants.ts:7
Functions
resolveAndValidateHost()
function resolveAndValidateHost(hostname, url?): Promise<string[]>;Defined in: src/webhook.url-validator.ts:166
Parameters
| Parameter | Type |
|---|---|
hostname | string |
url? | string |
Returns
Promise<string[]>
validateWebhookUrl()
function validateWebhookUrl(url): Promise<void>;Defined in: src/webhook.url-validator.ts:79
Parameters
| Parameter | Type |
|---|---|
url | string |
Returns
Promise<void>