Skip to content

@nestarc/webhook ​

Classes ​

FetchHttpClient ​

Defined in: src/adapters/fetch-http-client.ts:21

Implements ​

Constructors ​

Constructor ​
ts
new FetchHttpClient(): FetchHttpClient;
Returns ​

FetchHttpClient

Methods ​

post() ​
ts
post(
   url,
   headers,
   body,
   timeout,
options?): Promise<DeliveryResult>;

Defined in: src/adapters/fetch-http-client.ts:22

Parameters ​
ParameterTypeDescription
urlstring-
headersRecord<string, string>-
bodystring-
timeoutnumbermilliseconds 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 ​

WebhookHttpClient.post


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 ​
ts
new PlaintextSecretVault(): PlaintextSecretVault;
Returns ​

PlaintextSecretVault

Methods ​

decrypt() ​
ts
decrypt(secret): Promise<string>;

Defined in: src/adapters/plaintext-secret-vault.ts:14

Parameters ​
ParameterType
secretstring
Returns ​

Promise<string>

Implementation of ​

WebhookSecretVault.decrypt

encrypt() ​
ts
encrypt(secret): Promise<string>;

Defined in: src/adapters/plaintext-secret-vault.ts:10

Parameters ​
ParameterType
secretstring
Returns ​

Promise<string>

Implementation of ​

WebhookSecretVault.encrypt


PrismaDeliveryRepository ​

Defined in: src/adapters/prisma-delivery.repository.ts:100

Implements ​

Constructors ​

Constructor ​
ts
new PrismaDeliveryRepository(
   prisma,
   vault?,
   redaction?): PrismaDeliveryRepository;

Defined in: src/adapters/prisma-delivery.repository.ts:101

Parameters ​
ParameterType
prismaany
vault?WebhookSecretVault
redaction?WebhookRedactionOptions
Returns ​

PrismaDeliveryRepository

Methods ​

claimPendingDeliveries() ​
ts
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 ​
ParameterType
batchSizenumber
Returns ​

Promise<ClaimedDelivery[]>

Implementation of ​

WebhookDeliveryRepository.claimPendingDeliveries

createDeliveriesInTransaction() ​
ts
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 ​
ParameterType
txany
eventIdstring
endpointIdsstring[]
maxAttemptsnumber
Returns ​

Promise<void>

Implementation of ​

WebhookDeliveryRepository.createDeliveriesInTransaction

createTestDelivery() ​
ts
createTestDelivery(eventId, endpointId): Promise<void>;

Defined in: src/adapters/prisma-delivery.repository.ts:713

Parameters ​
ParameterType
eventIdstring
endpointIdstring
Returns ​

Promise<void>

Implementation of ​

WebhookDeliveryRepository.createTestDelivery

enrichDeliveries() ​
ts
enrichDeliveries(deliveryIds): Promise<PendingDelivery[]>;

Defined in: src/adapters/prisma-delivery.repository.ts:178

Parameters ​
ParameterType
deliveryIdsstring[]
Returns ​

Promise<PendingDelivery[]>

Implementation of ​

WebhookDeliveryRepository.enrichDeliveries

getBacklogSummary() ​
ts
getBacklogSummary(): Promise<DeliveryBacklogSummary>;

Defined in: src/adapters/prisma-delivery.repository.ts:334

Returns ​

Promise<DeliveryBacklogSummary>

Implementation of ​

WebhookDeliveryRepository.getBacklogSummary

getDeliveryAttempts() ​
ts
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;

Defined in: src/adapters/prisma-delivery.repository.ts:460

Parameters ​
ParameterType
deliveryIdstring
Returns ​

Promise<DeliveryAttemptRecord[]>

attempts sorted by attemptNumber ASC.

Implementation of ​

WebhookDeliveryRepository.getDeliveryAttempts

getDeliveryLogs() ​
ts
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;

Defined in: src/adapters/prisma-delivery.repository.ts:406

Parameters ​
ParameterType
endpointIdstring
filters?DeliveryLogFilters
Returns ​

Promise<DeliveryRecord[]>

Implementation of ​

WebhookDeliveryRepository.getDeliveryLogs

markFailed() ​
ts
markFailed(
   deliveryId,
   attempts,
result): Promise<void>;

Defined in: src/adapters/prisma-delivery.repository.ts:237

Parameters ​
ParameterType
deliveryIdstring
attemptsnumber
resultDeliveryResult
Returns ​

Promise<void>

Implementation of ​

WebhookDeliveryRepository.markFailed

markRetry() ​
ts
markRetry(
   deliveryId,
   attempts,
   nextAt,
result): Promise<void>;

Defined in: src/adapters/prisma-delivery.repository.ts:254

Parameters ​
ParameterType
deliveryIdstring
attemptsnumber
nextAtDate
resultDeliveryResult
Returns ​

Promise<void>

Implementation of ​

WebhookDeliveryRepository.markRetry

markSent() ​
ts
markSent(
   deliveryId,
   attempts,
result): Promise<void>;

Defined in: src/adapters/prisma-delivery.repository.ts:222

Parameters ​
ParameterType
deliveryIdstring
attemptsnumber
resultDeliveryResult
Returns ​

Promise<void>

Implementation of ​

WebhookDeliveryRepository.markSent

purgeExpiredData() ​
ts
purgeExpiredData(options, now?): Promise<WebhookRetentionPurgeResult>;

Defined in: src/adapters/prisma-delivery.repository.ts:643

Parameters ​
ParameterType
optionsWebhookRetentionOptions
nowDate
Returns ​

Promise<WebhookRetentionPurgeResult>

Implementation of ​

WebhookDeliveryRepository.purgeExpiredData

recoverStaleSending() ​
ts
recoverStaleSending(stalenessMinutes): Promise<number>;

Defined in: src/adapters/prisma-delivery.repository.ts:275

Parameters ​
ParameterType
stalenessMinutesnumber
Returns ​

Promise<number>

number of stale SENDING deliveries recovered or failed.

Implementation of ​

WebhookDeliveryRepository.recoverStaleSending

replayEvent() ​
ts
replayEvent(eventId, options?): Promise<ReplayEventResult>;

Defined in: src/adapters/prisma-delivery.repository.ts:562

Parameters ​
ParameterType
eventIdstring
options?ReplayEventOptions
Returns ​

Promise<ReplayEventResult>

Implementation of ​

WebhookDeliveryRepository.replayEvent

retryDelivery() ​
ts
retryDelivery(deliveryId, _options?): Promise<boolean>;

Defined in: src/adapters/prisma-delivery.repository.ts:478

Parameters ​
ParameterType
deliveryIdstring
_options?RetryDeliveryOptions
Returns ​

Promise<boolean>

Implementation of ​

WebhookDeliveryRepository.retryDelivery

retryFailedDeliveries() ​
ts
retryFailedDeliveries(filters, _options?): Promise<RetryFailedDeliveriesResult>;

Defined in: src/adapters/prisma-delivery.repository.ts:491

Parameters ​
ParameterType
filtersRetryFailedDeliveriesFilters
_options?RetryDeliveryOptions
Returns ​

Promise<RetryFailedDeliveriesResult>

Implementation of ​

WebhookDeliveryRepository.retryFailedDeliveries

runInTransaction() ​
ts
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 ​
ParameterType
fn(tx) => Promise<T>
Returns ​

Promise<T>

Implementation of ​

WebhookDeliveryRepository.runInTransaction


PrismaEndpointRepository ​

Defined in: src/adapters/prisma-endpoint.repository.ts:38

Implements ​

Constructors ​

Constructor ​
ts
new PrismaEndpointRepository(prisma, vault?): PrismaEndpointRepository;

Defined in: src/adapters/prisma-endpoint.repository.ts:39

Parameters ​
ParameterType
prismaany
vault?WebhookSecretVault
Returns ​

PrismaEndpointRepository

Methods ​

createEndpoint() ​
ts
createEndpoint(input): Promise<EndpointRecordWithSecret>;

Defined in: src/adapters/prisma-endpoint.repository.ts:91

Parameters ​
ParameterType
inputResolvedCreateEndpointInput
Returns ​

Promise<EndpointRecordWithSecret>

Implementation of ​

WebhookEndpointRepository.createEndpoint

deleteEndpoint() ​
ts
deleteEndpoint(id): Promise<boolean>;

Defined in: src/adapters/prisma-endpoint.repository.ts:197

Parameters ​
ParameterType
idstring
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() ​
ts
disableEndpoint(endpointId, reason): Promise<boolean>;

Defined in: src/adapters/prisma-endpoint.repository.ts:239

Parameters ​
ParameterType
endpointIdstring
reasonstring
Returns ​

Promise<boolean>

true when the endpoint transitioned from active to inactive.

Implementation of ​

WebhookEndpointRepository.disableEndpoint

findMatchingEndpoints() ​
ts
findMatchingEndpoints(eventType, tenantId): Promise<EndpointRecord[]>;

Defined in: src/adapters/prisma-endpoint.repository.ts:44

Parameters ​
ParameterType
eventTypestring
tenantIdstring | undefined
Returns ​

Promise<EndpointRecord[]>

Implementation of ​

WebhookEndpointRepository.findMatchingEndpoints

findMatchingEndpointsInTransaction() ​
ts
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 ​
ParameterType
txany
eventTypestring
tenantIdstring | undefined
Returns ​

Promise<EndpointRecord[]>

Implementation of ​

WebhookEndpointRepository.findMatchingEndpointsInTransaction

getEndpoint() ​
ts
getEndpoint(id): Promise<EndpointRecord | null>;

Defined in: src/adapters/prisma-endpoint.repository.ts:111

Parameters ​
ParameterType
idstring
Returns ​

Promise<EndpointRecord | null>

Implementation of ​

WebhookEndpointRepository.getEndpoint

incrementFailures() ​
ts
incrementFailures(endpointId): Promise<number>;

Defined in: src/adapters/prisma-endpoint.repository.ts:230

Atomically increments consecutive failures and returns the new value.

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<number>

Implementation of ​

WebhookEndpointRepository.incrementFailures

listEndpoints() ​
ts
listEndpoints(tenantId?): Promise<EndpointRecord[]>;

Defined in: src/adapters/prisma-endpoint.repository.ts:119

Parameters ​
ParameterType
tenantId?string
Returns ​

Promise<EndpointRecord[]>

Implementation of ​

WebhookEndpointRepository.listEndpoints

recoverEligibleEndpoints() ​
ts
recoverEligibleEndpoints(cooldownMinutes): Promise<number>;

Defined in: src/adapters/prisma-endpoint.repository.ts:247

Parameters ​
ParameterType
cooldownMinutesnumber
Returns ​

Promise<number>

number of endpoints recovered after cooldown.

Implementation of ​

WebhookEndpointRepository.recoverEligibleEndpoints

resetFailures() ​
ts
resetFailures(endpointId): Promise<void>;

Defined in: src/adapters/prisma-endpoint.repository.ts:203

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<void>

Implementation of ​

WebhookEndpointRepository.resetFailures

rotateSecret() ​
ts
rotateSecret(id, input): Promise<EndpointRecord | null>;

Defined in: src/adapters/prisma-endpoint.repository.ts:174

Parameters ​
ParameterType
idstring
inputResolvedRotateEndpointSecretInput
Returns ​

Promise<EndpointRecord | null>

Implementation of ​

WebhookEndpointRepository.rotateSecret

updateEndpoint() ​
ts
updateEndpoint(id, dto): Promise<EndpointRecord | null>;

Defined in: src/adapters/prisma-endpoint.repository.ts:134

Parameters ​
ParameterType
idstring
dtoUpdateEndpointDto
Returns ​

Promise<EndpointRecord | null>

Implementation of ​

WebhookEndpointRepository.updateEndpoint


PrismaEventRepository ​

Defined in: src/adapters/prisma-event.repository.ts:9

Implements ​

Constructors ​

Constructor ​
ts
new PrismaEventRepository(prisma): PrismaEventRepository;

Defined in: src/adapters/prisma-event.repository.ts:10

Parameters ​
ParameterType
prismaany
Returns ​

PrismaEventRepository

Methods ​

saveEvent() ​
ts
saveEvent(
   eventType,
   payload,
tenantId): Promise<string>;

Defined in: src/adapters/prisma-event.repository.ts:12

Parameters ​
ParameterType
eventTypestring
payloadRecord<string, unknown>
tenantIdstring | null
Returns ​

Promise<string>

Implementation of ​

WebhookEventRepository.saveEvent

saveEventInTransaction() ​
ts
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 ​
ParameterType
txany
eventTypestring
payloadRecord<string, unknown>
tenantIdstring | null
Returns ​

Promise<string>

Implementation of ​

WebhookEventRepository.saveEventInTransaction

saveEventOnceInTransaction() ​
ts
saveEventOnceInTransaction(
   tx,
   eventType,
   payload,
   tenantId,
options): Promise<SavedWebhookEvent>;

Defined in: src/adapters/prisma-event.repository.ts:37

Parameters ​
ParameterType
txany
eventTypestring
payloadRecord<string, unknown>
tenantIdstring | null
optionsRequired<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 ​
ts
new WebhookAdminService(endpoints, deliveries): WebhookAdminService;

Defined in: src/webhook.admin.service.ts:28

Parameters ​
ParameterType
endpointsWebhookEndpointAdminService
deliveriesWebhookDeliveryAdminService
Returns ​

WebhookAdminService

Methods ​

createEndpoint() ​
ts
createEndpoint(dto): Promise<EndpointRecordWithSecret>;

Defined in: src/webhook.admin.service.ts:33

Parameters ​
ParameterType
dtoCreateEndpointDto
Returns ​

Promise<EndpointRecordWithSecret>

deleteEndpoint() ​
ts
deleteEndpoint(endpointId): Promise<boolean>;

Defined in: src/webhook.admin.service.ts:59

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<boolean>

getDeliveryAttempts() ​
ts
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;

Defined in: src/webhook.admin.service.ts:70

Parameters ​
ParameterType
deliveryIdstring
Returns ​

Promise<DeliveryAttemptRecord[]>

getDeliveryLogs() ​
ts
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;

Defined in: src/webhook.admin.service.ts:63

Parameters ​
ParameterType
endpointIdstring
filters?DeliveryLogFilters
Returns ​

Promise<DeliveryRecord[]>

getEndpoint() ​
ts
getEndpoint(endpointId): Promise<EndpointRecord | null>;

Defined in: src/webhook.admin.service.ts:41

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<EndpointRecord | null>

listEndpoints() ​
ts
listEndpoints(tenantId?): Promise<EndpointRecord[]>;

Defined in: src/webhook.admin.service.ts:37

Parameters ​
ParameterType
tenantId?string
Returns ​

Promise<EndpointRecord[]>

replayEvent() ​
ts
replayEvent(eventId, options?): Promise<ReplayEventResult>;

Defined in: src/webhook.admin.service.ts:88

Parameters ​
ParameterType
eventIdstring
options?ReplayEventOptions
Returns ​

Promise<ReplayEventResult>

retryDelivery() ​
ts
retryDelivery(deliveryId, options?): Promise<boolean>;

Defined in: src/webhook.admin.service.ts:74

Parameters ​
ParameterType
deliveryIdstring
options?RetryDeliveryOptions
Returns ​

Promise<boolean>

retryFailedDeliveries() ​
ts
retryFailedDeliveries(filters, options?): Promise<RetryFailedDeliveriesResult>;

Defined in: src/webhook.admin.service.ts:81

Parameters ​
ParameterType
filtersRetryFailedDeliveriesFilters
options?RetryDeliveryOptions
Returns ​

Promise<RetryFailedDeliveriesResult>

rotateSecret() ​
ts
rotateSecret(endpointId, dto): Promise<EndpointRecordWithSecret | null>;

Defined in: src/webhook.admin.service.ts:52

Parameters ​
ParameterType
endpointIdstring
dtoRotateEndpointSecretDto
Returns ​

Promise<EndpointRecordWithSecret | null>

sendTestEvent() ​
ts
sendTestEvent(endpointId): Promise<string | null>;

Defined in: src/webhook.admin.service.ts:95

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<string | null>

updateEndpoint() ​
ts
updateEndpoint(endpointId, dto): Promise<EndpointRecord | null>;

Defined in: src/webhook.admin.service.ts:45

Parameters ​
ParameterType
endpointIdstring
dtoUpdateEndpointDto
Returns ​

Promise<EndpointRecord | null>


WebhookDeliveryAdminService ​

Defined in: src/webhook.delivery-admin.service.ts:16

Constructors ​

Constructor ​
ts
new WebhookDeliveryAdminService(deliveryRepo): WebhookDeliveryAdminService;

Defined in: src/webhook.delivery-admin.service.ts:17

Parameters ​
ParameterType
deliveryRepoWebhookDeliveryRepository
Returns ​

WebhookDeliveryAdminService

Methods ​

getDeliveryAttempts() ​
ts
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;

Defined in: src/webhook.delivery-admin.service.ts:29

Parameters ​
ParameterType
deliveryIdstring
Returns ​

Promise<DeliveryAttemptRecord[]>

getDeliveryLogs() ​
ts
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;

Defined in: src/webhook.delivery-admin.service.ts:22

Parameters ​
ParameterType
endpointIdstring
filters?DeliveryLogFilters
Returns ​

Promise<DeliveryRecord[]>

replayEvent() ​
ts
replayEvent(eventId, options?): Promise<ReplayEventResult>;

Defined in: src/webhook.delivery-admin.service.ts:53

Parameters ​
ParameterType
eventIdstring
options?ReplayEventOptions
Returns ​

Promise<ReplayEventResult>

retryDelivery() ​
ts
retryDelivery(deliveryId, options?): Promise<boolean>;

Defined in: src/webhook.delivery-admin.service.ts:33

Parameters ​
ParameterType
deliveryIdstring
options?RetryDeliveryOptions
Returns ​

Promise<boolean>

retryFailedDeliveries() ​
ts
retryFailedDeliveries(filters, options?): Promise<RetryFailedDeliveriesResult>;

Defined in: src/webhook.delivery-admin.service.ts:40

Parameters ​
ParameterType
filtersRetryFailedDeliveriesFilters
options?RetryDeliveryOptions
Returns ​

Promise<RetryFailedDeliveriesResult>


WebhookEndpointAdminService ​

Defined in: src/webhook.endpoint-admin.service.ts:23

Constructors ​

Constructor ​
ts
new WebhookEndpointAdminService(
   endpointRepo,
   eventRepo,
   deliveryRepo,
   signer,
   options): WebhookEndpointAdminService;

Defined in: src/webhook.endpoint-admin.service.ts:27

Parameters ​
ParameterType
endpointRepoWebhookEndpointRepository
eventRepoWebhookEventRepository
deliveryRepoWebhookDeliveryRepository
signerWebhookSigner
optionsWebhookModuleOptions
Returns ​

WebhookEndpointAdminService

Methods ​

createEndpoint() ​
ts
createEndpoint(dto): Promise<EndpointRecordWithSecret>;

Defined in: src/webhook.endpoint-admin.service.ts:41

Parameters ​
ParameterType
dtoCreateEndpointDto
Returns ​

Promise<EndpointRecordWithSecret>

deleteEndpoint() ​
ts
deleteEndpoint(endpointId): Promise<boolean>;

Defined in: src/webhook.endpoint-admin.service.ts:96

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<boolean>

getEndpoint() ​
ts
getEndpoint(endpointId): Promise<EndpointRecord | null>;

Defined in: src/webhook.endpoint-admin.service.ts:65

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<EndpointRecord | null>

listEndpoints() ​
ts
listEndpoints(tenantId?): Promise<EndpointRecord[]>;

Defined in: src/webhook.endpoint-admin.service.ts:61

Parameters ​
ParameterType
tenantId?string
Returns ​

Promise<EndpointRecord[]>

rotateSecret() ​
ts
rotateSecret(endpointId, dto): Promise<EndpointRecordWithSecret | null>;

Defined in: src/webhook.endpoint-admin.service.ts:79

Parameters ​
ParameterType
endpointIdstring
dtoRotateEndpointSecretDto
Returns ​

Promise<EndpointRecordWithSecret | null>

sendTestEvent() ​
ts
sendTestEvent(endpointId): Promise<string | null>;

Defined in: src/webhook.endpoint-admin.service.ts:100

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<string | null>

updateEndpoint() ​
ts
updateEndpoint(endpointId, dto): Promise<EndpointRecord | null>;

Defined in: src/webhook.endpoint-admin.service.ts:69

Parameters ​
ParameterType
endpointIdstring
dtoUpdateEndpointDto
Returns ​

Promise<EndpointRecord | null>


abstract WebhookEvent ​

Defined in: src/webhook.event.ts:1

Constructors ​

Constructor ​
ts
new WebhookEvent(): WebhookEvent;
Returns ​

WebhookEvent

Properties ​

eventType ​
ts
readonly static eventType: string;

Defined in: src/webhook.event.ts:2

Accessors ​

eventType ​
Get Signature ​
ts
get eventType(): string;

Defined in: src/webhook.event.ts:4

Returns ​

string

Methods ​

toPayload() ​
ts
toPayload(): Record<string, unknown>;

Defined in: src/webhook.event.ts:14

Returns ​

Record<string, unknown>


WebhookModule ​

Defined in: src/webhook.module.ts:139

Implements ​

  • OnModuleInit
  • OnModuleDestroy

Constructors ​

Constructor ​
ts
new WebhookModule(
   schedulerRegistry,
   deliveryWorker,
   options): WebhookModule;

Defined in: src/webhook.module.ts:140

Parameters ​
ParameterType
schedulerRegistrySchedulerRegistry
deliveryWorkerWebhookDeliveryWorker
optionsWebhookModuleOptions
Returns ​

WebhookModule

Methods ​

forRoot() ​
ts
static forRoot(options): DynamicModule;

Defined in: src/webhook.module.ts:147

Parameters ​
ParameterType
optionsWebhookModuleOptions
Returns ​

DynamicModule

forRootAsync() ​
ts
static forRootAsync(asyncOptions): DynamicModule;

Defined in: src/webhook.module.ts:160

Parameters ​
ParameterType
asyncOptionsWebhookModuleAsyncOptions
Returns ​

DynamicModule

onModuleDestroy() ​
ts
onModuleDestroy(): void;

Defined in: src/webhook.module.ts:209

Returns ​

void

Implementation of ​
ts
OnModuleDestroy.onModuleDestroy

onModuleInit() ​
ts
onModuleInit(): void;

Defined in: src/webhook.module.ts:200

Returns ​

void

Implementation of ​
ts
OnModuleInit.onModuleInit

WebhookRetentionAdminService ​

Defined in: src/webhook.retention-admin.service.ts:17

Constructors ​

Constructor ​
ts
new WebhookRetentionAdminService(deliveryRepo, options): WebhookRetentionAdminService;

Defined in: src/webhook.retention-admin.service.ts:18

Parameters ​
ParameterType
deliveryRepoWebhookDeliveryRepository
optionsWebhookModuleOptions
Returns ​

WebhookRetentionAdminService

Methods ​

purgeExpiredData() ​
ts
purgeExpiredData(now?): Promise<WebhookRetentionPurgeResult>;

Defined in: src/webhook.retention-admin.service.ts:25

Parameters ​
ParameterType
now?Date
Returns ​

Promise<WebhookRetentionPurgeResult>


WebhookService ​

Defined in: src/webhook.service.ts:22

Constructors ​

Constructor ​
ts
new WebhookService(
   eventRepo,
   endpointRepo,
   deliveryRepo,
   options): WebhookService;

Defined in: src/webhook.service.ts:27

Parameters ​
ParameterType
eventRepoWebhookEventRepository
endpointRepoWebhookEndpointRepository
deliveryRepoWebhookDeliveryRepository
optionsWebhookModuleOptions
Returns ​

WebhookService

Methods ​

send() ​
ts
send(event, options?): Promise<string>;

Defined in: src/webhook.service.ts:41

Parameters ​
ParameterType
eventWebhookEvent
options?WebhookPublishOptions
Returns ​

Promise<string>

sendToEndpoints() ​
ts
sendToEndpoints(
   endpointIds,
   event,
   tenantIdOrOptions?,
options?): Promise<string>;

Defined in: src/webhook.service.ts:53

Parameters ​
ParameterType
endpointIdsstring[]
eventWebhookEvent
tenantIdOrOptions?string | WebhookPublishOptions
options?WebhookPublishOptions
Returns ​

Promise<string>

sendToTenant() ​
ts
sendToTenant(
   tenantId,
   event,
options?): Promise<string>;

Defined in: src/webhook.service.ts:45

Parameters ​
ParameterType
tenantIdstring
eventWebhookEvent
options?WebhookPublishOptions
Returns ​

Promise<string>


WebhookSigner ​

Defined in: src/webhook.signer.ts:17

Constructors ​

Constructor ​
ts
new WebhookSigner(): WebhookSigner;
Returns ​

WebhookSigner

Methods ​

generateSecret() ​
ts
generateSecret(): string;

Defined in: src/webhook.signer.ts:95

Returns ​

string

sign() ​
ts
sign(
   eventId,
   timestamp,
   body,
   secret): SignatureHeaders;

Defined in: src/webhook.signer.ts:39

Parameters ​
ParameterType
eventIdstring
timestampnumber
bodystring
secretstring
Returns ​

SignatureHeaders

signAll() ​
ts
signAll(
   eventId,
   timestamp,
   body,
   secrets): SignatureHeaders;

Defined in: src/webhook.signer.ts:18

Parameters ​
ParameterType
eventIdstring
timestampnumber
bodystring
secretsstring[]
Returns ​

SignatureHeaders

verify() ​
ts
verify(
   eventId,
   timestamp,
   body,
   secret,
   signature): boolean;

Defined in: src/webhook.signer.ts:48

Parameters ​
ParameterType
eventIdstring
timestampnumber
bodystring
secretstring
signaturestring
Returns ​

boolean

verifyWithTolerance() ​
ts
verifyWithTolerance(
   eventId,
   timestamp,
   body,
   secret,
   signature,
   options): boolean;

Defined in: src/webhook.signer.ts:68

Parameters ​
ParameterType
eventIdstring
timestampnumber
bodystring
secretstring
signaturestring
optionsWebhookVerificationOptions
Returns ​

boolean


WebhookUrlValidationError ​

Defined in: src/webhook.url-validator.ts:59

Extends ​

  • Error

Constructors ​

Constructor ​
ts
new WebhookUrlValidationError(
   message,
   reason,
   url?,
   resolvedIp?): WebhookUrlValidationError;

Defined in: src/webhook.url-validator.ts:65

Parameters ​
ParameterType
messagestring
reasonWebhookUrlValidationReason
url?string
resolvedIp?string
Returns ​

WebhookUrlValidationError

Overrides ​
ts
Error.constructor

Properties ​

cause? ​
ts
optional cause?: unknown;

Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:26

Inherited from ​
ts
Error.cause

message ​
ts
message: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077

Inherited from ​
ts
Error.message

name ​
ts
readonly name: "WebhookUrlValidationError" = 'WebhookUrlValidationError';

Defined in: src/webhook.url-validator.ts:60

Overrides ​
ts
Error.name

reason ​
ts
readonly reason: WebhookUrlValidationReason;

Defined in: src/webhook.url-validator.ts:61

resolvedIp? ​
ts
readonly optional resolvedIp?: string;

Defined in: src/webhook.url-validator.ts:63

stack? ​
ts
optional stack?: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078

Inherited from ​
ts
Error.stack

stackTraceLimit ​
ts
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 ​
ts
Error.stackTraceLimit

url? ​
ts
readonly optional url?: string;

Defined in: src/webhook.url-validator.ts:62

Methods ​

captureStackTrace() ​
ts
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.

js
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:

js
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 ​
ParameterType
targetObjectobject
constructorOpt?Function
Returns ​

void

Inherited from ​
ts
Error.captureStackTrace

prepareStackTrace() ​
ts
static prepareStackTrace(err, stackTraces): any;

Defined in: node_modules/@types/node/globals.d.ts:55

Parameters ​
ParameterType
errError
stackTracesCallSite[]
Returns ​

any

See ​

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from ​
ts
Error.prepareStackTrace

Interfaces ​

CircuitBreakerOptions ​

Defined in: src/interfaces/webhook-options.interface.ts:52

Properties ​

cooldownMinutes? ​
ts
optional cooldownMinutes?: number;

Defined in: src/interfaces/webhook-options.interface.ts:55

degradedThreshold? ​
ts
optional degradedThreshold?: number;

Defined in: src/interfaces/webhook-options.interface.ts:54

failureThreshold? ​
ts
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 ​
ts
attempts: number;

Defined in: src/ports/webhook-delivery.repository.ts:27

endpointId ​
ts
endpointId: string;

Defined in: src/ports/webhook-delivery.repository.ts:26

eventId ​
ts
eventId: string;

Defined in: src/ports/webhook-delivery.repository.ts:25

id ​
ts
id: string;

Defined in: src/ports/webhook-delivery.repository.ts:24

maxAttempts ​
ts
maxAttempts: number;

Defined in: src/ports/webhook-delivery.repository.ts:28


CreateEndpointDto ​

Defined in: src/interfaces/webhook-endpoint.interface.ts:22

Properties ​

description? ​
ts
optional description?: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:27

events ​
ts
events: string[];

Defined in: src/interfaces/webhook-endpoint.interface.ts:24

metadata? ​
ts
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? ​
ts
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? ​
ts
optional tenantId?: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:30

url ​
ts
url: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:23


DeliveryAttemptRecord ​

Defined in: src/interfaces/webhook-delivery.interface.ts:24

Properties ​

attemptNumber ​
ts
attemptNumber: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:27

createdAt ​
ts
createdAt: Date;

Defined in: src/interfaces/webhook-delivery.interface.ts:34

deliveryId ​
ts
deliveryId: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:26

id ​
ts
id: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:25

lastError ​
ts
lastError: string | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:33

latencyMs ​
ts
latencyMs: number | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:32

responseBody ​
ts
responseBody: string | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:30

responseBodyTruncated ​
ts
responseBodyTruncated: boolean;

Defined in: src/interfaces/webhook-delivery.interface.ts:31

responseStatus ​
ts
responseStatus: number | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:29

status ​
ts
status: DeliveryAttemptStatus;

Defined in: src/interfaces/webhook-delivery.interface.ts:28


DeliveryBacklogSummary ​

Defined in: src/ports/webhook-delivery.repository.ts:41

Properties ​

oldestPendingAgeMs ​
ts
oldestPendingAgeMs: number | null;

Defined in: src/ports/webhook-delivery.repository.ts:45

oldestRunnableAgeMs ​
ts
oldestRunnableAgeMs: number | null;

Defined in: src/ports/webhook-delivery.repository.ts:46

pendingCount ​
ts
pendingCount: number;

Defined in: src/ports/webhook-delivery.repository.ts:42

runnablePendingCount ​
ts
runnablePendingCount: number;

Defined in: src/ports/webhook-delivery.repository.ts:44

sendingCount ​
ts
sendingCount: number;

Defined in: src/ports/webhook-delivery.repository.ts:43


DeliveryFailedContext ​

Defined in: src/interfaces/webhook-options.interface.ts:131

Properties ​

attempts ​
ts
attempts: number;

Defined in: src/interfaces/webhook-options.interface.ts:137

deliveryId ​
ts
deliveryId: string;

Defined in: src/interfaces/webhook-options.interface.ts:132

endpointId ​
ts
endpointId: string;

Defined in: src/interfaces/webhook-options.interface.ts:133

eventId ​
ts
eventId: string;

Defined in: src/interfaces/webhook-options.interface.ts:134

failureKind? ​
ts
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 ​
ts
lastError: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:139

maxAttempts ​
ts
maxAttempts: number;

Defined in: src/interfaces/webhook-options.interface.ts:138

resolvedIp? ​
ts
optional resolvedIp?: string;

Defined in: src/interfaces/webhook-options.interface.ts:149

Set only when failureKind === 'url_validation' and DNS resolution was involved.

responseStatus ​
ts
responseStatus: number | null;

Defined in: src/interfaces/webhook-options.interface.ts:140

tenantId ​
ts
tenantId: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:136

Null when the endpoint is not scoped to a tenant.

validationReason? ​
ts
optional validationReason?: WebhookUrlValidationReason;

Defined in: src/interfaces/webhook-options.interface.ts:145

Set only when failureKind === 'url_validation' — structured reason from WebhookUrlValidationError.

validationUrl? ​
ts
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? ​
ts
optional eventType?: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:55

limit? ​
ts
optional limit?: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:58

offset? ​
ts
optional offset?: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:59

since? ​
ts
optional since?: Date;

Defined in: src/interfaces/webhook-delivery.interface.ts:56

status? ​
ts
optional status?: DeliveryStatus;

Defined in: src/interfaces/webhook-delivery.interface.ts:54

until? ​
ts
optional until?: Date;

Defined in: src/interfaces/webhook-delivery.interface.ts:57


DeliveryOptions ​

Defined in: src/interfaces/webhook-options.interface.ts:15

Properties ​

backoff? ​
ts
optional backoff?: "exponential";

Defined in: src/interfaces/webhook-options.interface.ts:19

Deprecated ​

Retry backoff is currently fixed to the default exponential schedule.

jitter? ​
ts
optional jitter?: boolean;

Defined in: src/interfaces/webhook-options.interface.ts:20

maxRetries? ​
ts
optional maxRetries?: number;

Defined in: src/interfaces/webhook-options.interface.ts:17

timeout? ​
ts
optional timeout?: number;

Defined in: src/interfaces/webhook-options.interface.ts:16


DeliveryRecord ​

Defined in: src/interfaces/webhook-delivery.interface.ts:4

Properties ​

attempts ​
ts
attempts: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:13

completedAt ​
ts
completedAt: Date | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:17

destinationUrl ​
ts
destinationUrl: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:9

Destination URL used for this delivery. Uses the queued snapshot when available.

endpointId ​
ts
endpointId: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:7

eventId ​
ts
eventId: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:6

id ​
ts
id: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:5

lastAttemptAt ​
ts
lastAttemptAt: Date | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:16

lastError ​
ts
lastError: string | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:21

latencyMs ​
ts
latencyMs: number | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:20

maxAttempts ​
ts
maxAttempts: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:14

nextAttemptAt ​
ts
nextAttemptAt: Date | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:15

responseBody ​
ts
responseBody: string | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:19

responseStatus ​
ts
responseStatus: number | null;

Defined in: src/interfaces/webhook-delivery.interface.ts:18

status ​
ts
status: DeliveryStatus;

Defined in: src/interfaces/webhook-delivery.interface.ts:12

tenantId ​
ts
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? ​
ts
optional body?: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:48

error? ​
ts
optional error?: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:50

latencyMs ​
ts
latencyMs: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:49

statusCode? ​
ts
optional statusCode?: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:47

success ​
ts
success: boolean;

Defined in: src/interfaces/webhook-delivery.interface.ts:46


DeliveryRetryScheduledContext ​

Defined in: src/interfaces/webhook-options.interface.ts:152

Properties ​

attempts ​
ts
attempts: number;

Defined in: src/interfaces/webhook-options.interface.ts:158

deliveryId ​
ts
deliveryId: string;

Defined in: src/interfaces/webhook-options.interface.ts:153

endpointId ​
ts
endpointId: string;

Defined in: src/interfaces/webhook-options.interface.ts:154

eventId ​
ts
eventId: string;

Defined in: src/interfaces/webhook-options.interface.ts:155

failureKind? ​
ts
optional failureKind?: DeliveryFailureKind;

Defined in: src/interfaces/webhook-options.interface.ts:165

High-level classification for the failed attempt that scheduled the retry.

lastError ​
ts
lastError: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:161

maxAttempts ​
ts
maxAttempts: number;

Defined in: src/interfaces/webhook-options.interface.ts:159

nextAttemptAt ​
ts
nextAttemptAt: Date;

Defined in: src/interfaces/webhook-options.interface.ts:160

resolvedIp? ​
ts
optional resolvedIp?: string;

Defined in: src/interfaces/webhook-options.interface.ts:171

Set only when failureKind === 'url_validation' and DNS resolution was involved.

responseStatus ​
ts
responseStatus: number | null;

Defined in: src/interfaces/webhook-options.interface.ts:162

tenantId ​
ts
tenantId: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:157

Null when the endpoint is not scoped to a tenant.

validationReason? ​
ts
optional validationReason?: WebhookUrlValidationReason;

Defined in: src/interfaces/webhook-options.interface.ts:167

Set only when failureKind === 'url_validation' — structured reason from WebhookUrlValidationError.

validationUrl? ​
ts
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 ​
ts
consecutiveFailures: number;

Defined in: src/interfaces/webhook-options.interface.ts:189

degradedThreshold ​
ts
degradedThreshold: number;

Defined in: src/interfaces/webhook-options.interface.ts:190

endpointId ​
ts
endpointId: string;

Defined in: src/interfaces/webhook-options.interface.ts:184

failureThreshold ​
ts
failureThreshold: number;

Defined in: src/interfaces/webhook-options.interface.ts:191

reason ​
ts
reason: "consecutive_failures_degraded";

Defined in: src/interfaces/webhook-options.interface.ts:188

tenantId ​
ts
tenantId: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:186

Null when the endpoint is not scoped to a tenant.

url ​
ts
url: string;

Defined in: src/interfaces/webhook-options.interface.ts:187


EndpointDisabledContext ​

Defined in: src/interfaces/webhook-options.interface.ts:174

Properties ​

consecutiveFailures ​
ts
consecutiveFailures: number;

Defined in: src/interfaces/webhook-options.interface.ts:180

endpointId ​
ts
endpointId: string;

Defined in: src/interfaces/webhook-options.interface.ts:175

reason ​
ts
reason: "consecutive_failures_exceeded";

Defined in: src/interfaces/webhook-options.interface.ts:179

tenantId ​
ts
tenantId: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:177

Null when the endpoint is not scoped to a tenant.

url ​
ts
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 ​
ts
active: boolean;

Defined in: src/interfaces/webhook-endpoint.interface.ts:5

consecutiveFailures ​
ts
consecutiveFailures: number;

Defined in: src/interfaces/webhook-endpoint.interface.ts:9

createdAt ​
ts
createdAt: Date;

Defined in: src/interfaces/webhook-endpoint.interface.ts:13

description ​
ts
description: string | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:6

disabledAt ​
ts
disabledAt: Date | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:10

disabledReason ​
ts
disabledReason: string | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:11

events ​
ts
events: string[];

Defined in: src/interfaces/webhook-endpoint.interface.ts:4

id ​
ts
id: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:2

metadata ​
ts
metadata: Record<string, unknown> | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:7

previousSecretExpiresAt ​
ts
previousSecretExpiresAt: Date | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:12

tenantId ​
ts
tenantId: string | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:8

updatedAt ​
ts
updatedAt: Date;

Defined in: src/interfaces/webhook-endpoint.interface.ts:14

url ​
ts
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 ​
ts
active: boolean;

Defined in: src/interfaces/webhook-endpoint.interface.ts:5

Inherited from ​

EndpointRecord.active

consecutiveFailures ​
ts
consecutiveFailures: number;

Defined in: src/interfaces/webhook-endpoint.interface.ts:9

Inherited from ​

EndpointRecord.consecutiveFailures

createdAt ​
ts
createdAt: Date;

Defined in: src/interfaces/webhook-endpoint.interface.ts:13

Inherited from ​

EndpointRecord.createdAt

description ​
ts
description: string | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:6

Inherited from ​

EndpointRecord.description

disabledAt ​
ts
disabledAt: Date | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:10

Inherited from ​

EndpointRecord.disabledAt

disabledReason ​
ts
disabledReason: string | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:11

Inherited from ​

EndpointRecord.disabledReason

events ​
ts
events: string[];

Defined in: src/interfaces/webhook-endpoint.interface.ts:4

Inherited from ​

EndpointRecord.events

id ​
ts
id: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:2

Inherited from ​

EndpointRecord.id

metadata ​
ts
metadata: Record<string, unknown> | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:7

Inherited from ​

EndpointRecord.metadata

previousSecretExpiresAt ​
ts
previousSecretExpiresAt: Date | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:12

Inherited from ​

EndpointRecord.previousSecretExpiresAt

secret ​
ts
secret: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:19

tenantId ​
ts
tenantId: string | null;

Defined in: src/interfaces/webhook-endpoint.interface.ts:8

Inherited from ​

EndpointRecord.tenantId

updatedAt ​
ts
updatedAt: Date;

Defined in: src/interfaces/webhook-endpoint.interface.ts:14

Inherited from ​

EndpointRecord.updatedAt

url ​
ts
url: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:3

Inherited from ​

EndpointRecord.url


EventRecord ​

Defined in: src/interfaces/webhook-delivery.interface.ts:37

Properties ​

createdAt ​
ts
createdAt: Date;

Defined in: src/interfaces/webhook-delivery.interface.ts:42

eventType ​
ts
eventType: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:39

id ​
ts
id: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:38

payload ​
ts
payload: Record<string, unknown>;

Defined in: src/interfaces/webhook-delivery.interface.ts:40

tenantId ​
ts
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 ​
ts
additionalSecrets: string[];

Defined in: src/ports/webhook-delivery.repository.ts:36

attempts ​
ts
attempts: number;

Defined in: src/ports/webhook-delivery.repository.ts:27

Inherited from ​

ClaimedDelivery.attempts

endpointId ​
ts
endpointId: string;

Defined in: src/ports/webhook-delivery.repository.ts:26

Inherited from ​

ClaimedDelivery.endpointId

eventId ​
ts
eventId: string;

Defined in: src/ports/webhook-delivery.repository.ts:25

Inherited from ​

ClaimedDelivery.eventId

eventType ​
ts
eventType: string;

Defined in: src/ports/webhook-delivery.repository.ts:37

id ​
ts
id: string;

Defined in: src/ports/webhook-delivery.repository.ts:24

Inherited from ​

ClaimedDelivery.id

maxAttempts ​
ts
maxAttempts: number;

Defined in: src/ports/webhook-delivery.repository.ts:28

Inherited from ​

ClaimedDelivery.maxAttempts

payload ​
ts
payload: Record<string, unknown>;

Defined in: src/ports/webhook-delivery.repository.ts:38

secret ​
ts
secret: string;

Defined in: src/ports/webhook-delivery.repository.ts:35

tenantId ​
ts
tenantId: string | null;

Defined in: src/ports/webhook-delivery.repository.ts:33

url ​
ts
url: string;

Defined in: src/ports/webhook-delivery.repository.ts:34


PollingOptions ​

Defined in: src/interfaces/webhook-options.interface.ts:58

Properties ​

batchSize? ​
ts
optional batchSize?: number;

Defined in: src/interfaces/webhook-options.interface.ts:62

drainLoopDelayMs? ​
ts
optional drainLoopDelayMs?: number;

Defined in: src/interfaces/webhook-options.interface.ts:72

Optional sleep between continuous drain loops. Default: 0

drainWhileBacklogged? ​
ts
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? ​
ts
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? ​
ts
optional interval?: number;

Defined in: src/interfaces/webhook-options.interface.ts:61

maxConcurrency? ​
ts
optional maxConcurrency?: number;

Defined in: src/interfaces/webhook-options.interface.ts:66

Maximum delivery dispatches in flight per worker process. Default: batchSize

maxDrainLoopsPerPoll? ​
ts
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? ​
ts
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? ​
ts
optional endpointIds?: string[];

Defined in: src/interfaces/webhook-delivery.interface.ts:77

reason? ​
ts
optional reason?: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:79

tenantId? ​
ts
optional tenantId?: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:78


ReplayEventResult ​

Defined in: src/interfaces/webhook-delivery.interface.ts:82

Properties ​

deliveriesCreated ​
ts
deliveriesCreated: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:84

endpointIds ​
ts
endpointIds: string[];

Defined in: src/interfaces/webhook-delivery.interface.ts:85

eventId ​
ts
eventId: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:83


ResolvedCreateEndpointInput ​

Defined in: src/ports/webhook-endpoint.repository.ts:9

Properties ​

description ​
ts
description: string | null;

Defined in: src/ports/webhook-endpoint.repository.ts:13

events ​
ts
events: string[];

Defined in: src/ports/webhook-endpoint.repository.ts:12

metadata ​
ts
metadata: Record<string, unknown> | null;

Defined in: src/ports/webhook-endpoint.repository.ts:14

secret ​
ts
secret: string;

Defined in: src/ports/webhook-endpoint.repository.ts:11

tenantId ​
ts
tenantId: string | null;

Defined in: src/ports/webhook-endpoint.repository.ts:15

url ​
ts
url: string;

Defined in: src/ports/webhook-endpoint.repository.ts:10


ResolvedRotateEndpointSecretInput ​

Defined in: src/ports/webhook-endpoint.repository.ts:18

Extends ​

Properties ​

previousSecretExpiresAt ​
ts
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 ​
ts
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? ​
ts
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? ​
ts
optional endpointId?: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:67

eventType? ​
ts
optional eventType?: string;

Defined in: src/interfaces/webhook-delivery.interface.ts:55

Inherited from ​

DeliveryLogFilters.eventType

limit? ​
ts
optional limit?: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:58

Inherited from ​

DeliveryLogFilters.limit

offset? ​
ts
optional offset?: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:59

Inherited from ​

DeliveryLogFilters.offset

since? ​
ts
optional since?: Date;

Defined in: src/interfaces/webhook-delivery.interface.ts:56

Inherited from ​

DeliveryLogFilters.since

status? ​
ts
optional status?: DeliveryStatus;

Defined in: src/interfaces/webhook-delivery.interface.ts:54

Inherited from ​

DeliveryLogFilters.status

until? ​
ts
optional until?: Date;

Defined in: src/interfaces/webhook-delivery.interface.ts:57

Inherited from ​

DeliveryLogFilters.until


RetryFailedDeliveriesResult ​

Defined in: src/interfaces/webhook-delivery.interface.ts:70

Properties ​

matched ​
ts
matched: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:71

retried ​
ts
retried: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:72

skipped ​
ts
skipped: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:73


RotateEndpointSecretDto ​

Defined in: src/interfaces/webhook-endpoint.interface.ts:42

Properties ​

previousSecretExpiresAt ​
ts
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? ​
ts
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 ​
ts
created: boolean;

Defined in: src/ports/webhook-event.repository.ts:6

id ​
ts
id: string;

Defined in: src/ports/webhook-event.repository.ts:5


SignatureHeaders ​

Defined in: src/webhook.signer.ts:4

Indexable ​

ts
[key: string]: string

Properties ​

webhook-id ​
ts
webhook-id: string;

Defined in: src/webhook.signer.ts:6

webhook-signature ​
ts
webhook-signature: string;

Defined in: src/webhook.signer.ts:8

webhook-timestamp ​
ts
webhook-timestamp: string;

Defined in: src/webhook.signer.ts:7


UpdateEndpointDto ​

Defined in: src/interfaces/webhook-endpoint.interface.ts:33

Properties ​

active? ​
ts
optional active?: boolean;

Defined in: src/interfaces/webhook-endpoint.interface.ts:39

description? ​
ts
optional description?: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:36

events? ​
ts
optional events?: string[];

Defined in: src/interfaces/webhook-endpoint.interface.ts:35

metadata? ​
ts
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? ​
ts
optional url?: string;

Defined in: src/interfaces/webhook-endpoint.interface.ts:34


WebhookDeliveryProcessingResult ​

Defined in: src/interfaces/webhook-options.interface.ts:97

Properties ​

attempts ​
ts
attempts: number;

Defined in: src/interfaces/webhook-options.interface.ts:102

deliveryId ​
ts
deliveryId: string;

Defined in: src/interfaces/webhook-options.interface.ts:98

endpointId ​
ts
endpointId: string;

Defined in: src/interfaces/webhook-options.interface.ts:99

eventId ​
ts
eventId: string;

Defined in: src/interfaces/webhook-options.interface.ts:100

failureKind? ​
ts
optional failureKind?: DeliveryFailureKind;

Defined in: src/interfaces/webhook-options.interface.ts:109

lastError ​
ts
lastError: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:106

latencyMs ​
ts
latencyMs: number | null;

Defined in: src/interfaces/webhook-options.interface.ts:107

maxAttempts ​
ts
maxAttempts: number;

Defined in: src/interfaces/webhook-options.interface.ts:103

nextAttemptAt? ​
ts
optional nextAttemptAt?: Date;

Defined in: src/interfaces/webhook-options.interface.ts:108

resolvedIp? ​
ts
optional resolvedIp?: string;

Defined in: src/interfaces/webhook-options.interface.ts:112

responseStatus ​
ts
responseStatus: number | null;

Defined in: src/interfaces/webhook-options.interface.ts:105

status ​
ts
status: WebhookDeliveryProcessingStatus;

Defined in: src/interfaces/webhook-options.interface.ts:104

tenantId ​
ts
tenantId: string | null;

Defined in: src/interfaces/webhook-options.interface.ts:101

validationReason? ​
ts
optional validationReason?: WebhookUrlValidationReason;

Defined in: src/interfaces/webhook-options.interface.ts:110

validationUrl? ​
ts
optional validationUrl?: string;

Defined in: src/interfaces/webhook-options.interface.ts:111


WebhookDeliveryRepository ​

Defined in: src/ports/webhook-delivery.repository.ts:49

Methods ​

claimPendingDeliveries() ​
ts
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 ​
ParameterType
batchSizenumber
Returns ​

Promise<ClaimedDelivery[]>

createDeliveriesInTransaction() ​
ts
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 ​
ParameterType
txWebhookTransaction
eventIdstring
endpointIdsstring[]
maxAttemptsnumber
Returns ​

Promise<void>

createTestDelivery() ​
ts
createTestDelivery(eventId, endpointId): Promise<void>;

Defined in: src/ports/webhook-delivery.repository.ts:91

Parameters ​
ParameterType
eventIdstring
endpointIdstring
Returns ​

Promise<void>

enrichDeliveries() ​
ts
enrichDeliveries(deliveryIds): Promise<PendingDelivery[]>;

Defined in: src/ports/webhook-delivery.repository.ts:66

Parameters ​
ParameterType
deliveryIdsstring[]
Returns ​

Promise<PendingDelivery[]>

getBacklogSummary()? ​
ts
optional getBacklogSummary(): Promise<DeliveryBacklogSummary>;

Defined in: src/ports/webhook-delivery.repository.ts:74

Returns ​

Promise<DeliveryBacklogSummary>

getDeliveryAttempts() ​
ts
getDeliveryAttempts(deliveryId): Promise<DeliveryAttemptRecord[]>;

Defined in: src/ports/webhook-delivery.repository.ts:77

Parameters ​
ParameterType
deliveryIdstring
Returns ​

Promise<DeliveryAttemptRecord[]>

attempts sorted by attemptNumber ASC.

getDeliveryLogs() ​
ts
getDeliveryLogs(endpointId, filters?): Promise<DeliveryRecord[]>;

Defined in: src/ports/webhook-delivery.repository.ts:75

Parameters ​
ParameterType
endpointIdstring
filters?DeliveryLogFilters
Returns ​

Promise<DeliveryRecord[]>

markFailed() ​
ts
markFailed(
   deliveryId,
   attempts,
result): Promise<void>;

Defined in: src/ports/webhook-delivery.repository.ts:69

Parameters ​
ParameterType
deliveryIdstring
attemptsnumber
resultDeliveryResult
Returns ​

Promise<void>

markRetry() ​
ts
markRetry(
   deliveryId,
   attempts,
   nextAt,
result): Promise<void>;

Defined in: src/ports/webhook-delivery.repository.ts:70

Parameters ​
ParameterType
deliveryIdstring
attemptsnumber
nextAtDate
resultDeliveryResult
Returns ​

Promise<void>

markSent() ​
ts
markSent(
   deliveryId,
   attempts,
result): Promise<void>;

Defined in: src/ports/webhook-delivery.repository.ts:68

Parameters ​
ParameterType
deliveryIdstring
attemptsnumber
resultDeliveryResult
Returns ​

Promise<void>

purgeExpiredData()? ​
ts
optional purgeExpiredData(options, now?): Promise<WebhookRetentionPurgeResult>;

Defined in: src/ports/webhook-delivery.repository.ts:87

Parameters ​
ParameterType
optionsWebhookRetentionOptions
now?Date
Returns ​

Promise<WebhookRetentionPurgeResult>

recoverStaleSending() ​
ts
recoverStaleSending(stalenessMinutes): Promise<number>;

Defined in: src/ports/webhook-delivery.repository.ts:73

Parameters ​
ParameterType
stalenessMinutesnumber
Returns ​

Promise<number>

number of stale SENDING deliveries recovered or failed.

replayEvent()? ​
ts
optional replayEvent(eventId, options?): Promise<ReplayEventResult>;

Defined in: src/ports/webhook-delivery.repository.ts:83

Parameters ​
ParameterType
eventIdstring
options?ReplayEventOptions
Returns ​

Promise<ReplayEventResult>

retryDelivery() ​
ts
retryDelivery(deliveryId, options?): Promise<boolean>;

Defined in: src/ports/webhook-delivery.repository.ts:78

Parameters ​
ParameterType
deliveryIdstring
options?RetryDeliveryOptions
Returns ​

Promise<boolean>

retryFailedDeliveries()? ​
ts
optional retryFailedDeliveries(filters, options?): Promise<RetryFailedDeliveriesResult>;

Defined in: src/ports/webhook-delivery.repository.ts:79

Parameters ​
ParameterType
filtersRetryFailedDeliveriesFilters
options?RetryDeliveryOptions
Returns ​

Promise<RetryFailedDeliveriesResult>

runInTransaction() ​
ts
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 ​
ParameterType
fn(tx) => Promise<T>
Returns ​

Promise<T>


WebhookEndpointRepository ​

Defined in: src/ports/webhook-endpoint.repository.ts:21

Methods ​

createEndpoint() ​
ts
createEndpoint(input): Promise<EndpointRecordWithSecret>;

Defined in: src/ports/webhook-endpoint.repository.ts:34

Parameters ​
ParameterType
inputResolvedCreateEndpointInput
Returns ​

Promise<EndpointRecordWithSecret>

deleteEndpoint() ​
ts
deleteEndpoint(id): Promise<boolean>;

Defined in: src/ports/webhook-endpoint.repository.ts:47

Parameters ​
ParameterType
idstring
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() ​
ts
disableEndpoint(endpointId, reason): Promise<boolean>;

Defined in: src/ports/webhook-endpoint.repository.ts:53

Parameters ​
ParameterType
endpointIdstring
reasonstring
Returns ​

Promise<boolean>

true when the endpoint transitioned from active to inactive.

findMatchingEndpoints() ​
ts
findMatchingEndpoints(eventType, tenantId): Promise<EndpointRecord[]>;

Defined in: src/ports/webhook-endpoint.repository.ts:22

Parameters ​
ParameterType
eventTypestring
tenantIdstring | undefined
Returns ​

Promise<EndpointRecord[]>

findMatchingEndpointsInTransaction() ​
ts
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 ​
ParameterType
txWebhookTransaction
eventTypestring
tenantIdstring | undefined
Returns ​

Promise<EndpointRecord[]>

getEndpoint() ​
ts
getEndpoint(id): Promise<EndpointRecord | null>;

Defined in: src/ports/webhook-endpoint.repository.ts:36

Parameters ​
ParameterType
idstring
Returns ​

Promise<EndpointRecord | null>

incrementFailures() ​
ts
incrementFailures(endpointId): Promise<number>;

Defined in: src/ports/webhook-endpoint.repository.ts:51

Atomically increments consecutive failures and returns the new value.

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<number>

listEndpoints() ​
ts
listEndpoints(tenantId?): Promise<EndpointRecord[]>;

Defined in: src/ports/webhook-endpoint.repository.ts:37

Parameters ​
ParameterType
tenantId?string
Returns ​

Promise<EndpointRecord[]>

recoverEligibleEndpoints() ​
ts
recoverEligibleEndpoints(cooldownMinutes): Promise<number>;

Defined in: src/ports/webhook-endpoint.repository.ts:55

Parameters ​
ParameterType
cooldownMinutesnumber
Returns ​

Promise<number>

number of endpoints recovered after cooldown.

resetFailures() ​
ts
resetFailures(endpointId): Promise<void>;

Defined in: src/ports/webhook-endpoint.repository.ts:49

Parameters ​
ParameterType
endpointIdstring
Returns ​

Promise<void>

rotateSecret() ​
ts
rotateSecret(id, input): Promise<EndpointRecord | null>;

Defined in: src/ports/webhook-endpoint.repository.ts:39

Parameters ​
ParameterType
idstring
inputResolvedRotateEndpointSecretInput
Returns ​

Promise<EndpointRecord | null>

updateEndpoint() ​
ts
updateEndpoint(id, dto): Promise<EndpointRecord | null>;

Defined in: src/ports/webhook-endpoint.repository.ts:38

Parameters ​
ParameterType
idstring
dtoUpdateEndpointDto
Returns ​

Promise<EndpointRecord | null>


WebhookEventRepository ​

Defined in: src/ports/webhook-event.repository.ts:9

Methods ​

saveEvent() ​
ts
saveEvent(
   eventType,
   payload,
tenantId): Promise<string>;

Defined in: src/ports/webhook-event.repository.ts:10

Parameters ​
ParameterType
eventTypestring
payloadRecord<string, unknown>
tenantIdstring | null
Returns ​

Promise<string>

saveEventInTransaction() ​
ts
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 ​
ParameterType
txWebhookTransaction
eventTypestring
payloadRecord<string, unknown>
tenantIdstring | null
Returns ​

Promise<string>

saveEventOnceInTransaction()? ​
ts
optional saveEventOnceInTransaction(
   tx,
   eventType,
   payload,
   tenantId,
options): Promise<SavedWebhookEvent>;

Defined in: src/ports/webhook-event.repository.ts:24

Parameters ​
ParameterType
txWebhookTransaction
eventTypestring
payloadRecord<string, unknown>
tenantIdstring | null
optionsRequired<Pick<WebhookPublishOptions, "idempotencyKey">> & Pick<WebhookPublishOptions, "correlationId">
Returns ​

Promise<SavedWebhookEvent>


WebhookHttpClient ​

Defined in: src/ports/webhook-http-client.ts:11

Methods ​

post() ​
ts
post(
   url,
   headers,
   body,
   timeout,
options?): Promise<DeliveryResult>;

Defined in: src/ports/webhook-http-client.ts:16

Parameters ​
ParameterTypeDescription
urlstring-
headersRecord<string, string>-
bodystring-
timeoutnumbermilliseconds 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? ​
ts
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 ​
ts
Pick.imports

inject? ​
ts
optional inject?: (InjectionToken | OptionalFactoryDependency)[];

Defined in: src/interfaces/webhook-options.interface.ts:237

useClass? ​
ts
optional useClass?: Type<WebhookOptionsFactory>;

Defined in: src/interfaces/webhook-options.interface.ts:238

useExisting? ​
ts
optional useExisting?: Type<WebhookOptionsFactory>;

Defined in: src/interfaces/webhook-options.interface.ts:239

useFactory? ​
ts
optional useFactory?: (...args) =>
  | WebhookModuleOptions<unknown>
| Promise<WebhookModuleOptions<unknown>>;

Defined in: src/interfaces/webhook-options.interface.ts:236

Parameters ​
ParameterType
...argsany[]
Returns ​

| WebhookModuleOptions<unknown> | Promise<WebhookModuleOptions<unknown>>


WebhookModuleOptions ​

Defined in: src/interfaces/webhook-options.interface.ts:194

Type Parameters ​

Type ParameterDefault type
TPrismaunknown

Properties ​

allowPrivateUrls? ​
ts
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? ​
ts
optional circuitBreaker?: CircuitBreakerOptions;

Defined in: src/interfaces/webhook-options.interface.ts:198

delivery? ​
ts
optional delivery?: DeliveryOptions;

Defined in: src/interfaces/webhook-options.interface.ts:197

deliveryRepository? ​
ts
optional deliveryRepository?: WebhookDeliveryRepository;

Defined in: src/interfaces/webhook-options.interface.ts:207

endpointRepository? ​
ts
optional endpointRepository?: WebhookEndpointRepository;

Defined in: src/interfaces/webhook-options.interface.ts:206

eventRepository? ​
ts
optional eventRepository?: WebhookEventRepository;

Defined in: src/interfaces/webhook-options.interface.ts:205

Custom port overrides — provide these to replace default Prisma/fetch adapters.

httpClient? ​
ts
optional httpClient?: WebhookHttpClient;

Defined in: src/interfaces/webhook-options.interface.ts:208

onDeliveryFailed? ​
ts
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 ​
ParameterType
contextDeliveryFailedContext
Returns ​

void | Promise<void>

onDeliveryRetryScheduled? ​
ts
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 ​
ParameterType
contextDeliveryRetryScheduledContext
Returns ​

void | Promise<void>

onEndpointDegraded? ​
ts
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 ​
ParameterType
contextEndpointDegradedContext
Returns ​

void | Promise<void>

onEndpointDisabled? ​
ts
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 ​
ParameterType
contextEndpointDisabledContext
Returns ​

void | Promise<void>

polling? ​
ts
optional polling?: PollingOptions;

Defined in: src/interfaces/webhook-options.interface.ts:199

prisma? ​
ts
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? ​
ts
optional redaction?: WebhookRedactionOptions;

Defined in: src/interfaces/webhook-options.interface.ts:214

Optional minimization hooks applied before webhook data is persisted.

retention? ​
ts
optional retention?: WebhookRetentionOptions;

Defined in: src/interfaces/webhook-options.interface.ts:212

Optional retention purge policy. Disabled when omitted.

secretVault? ​
ts
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? ​
ts
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() ​
ts
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 ​
ts
activeDeliveries: number;

Defined in: src/interfaces/webhook-options.interface.ts:81

batchSize ​
ts
batchSize: number;

Defined in: src/interfaces/webhook-options.interface.ts:76

drainLoopDelayMs ​
ts
drainLoopDelayMs: number;

Defined in: src/interfaces/webhook-options.interface.ts:80

drainWhileBacklogged ​
ts
drainWhileBacklogged: boolean;

Defined in: src/interfaces/webhook-options.interface.ts:78

maxConcurrency ​
ts
maxConcurrency: number;

Defined in: src/interfaces/webhook-options.interface.ts:77

maxDrainLoopsPerPoll ​
ts
maxDrainLoopsPerPoll: number;

Defined in: src/interfaces/webhook-options.interface.ts:79


WebhookPollResult ​

Defined in: src/interfaces/webhook-options.interface.ts:84

Properties ​

claimed ​
ts
claimed: number;

Defined in: src/interfaces/webhook-options.interface.ts:85

durationMs ​
ts
durationMs: number;

Defined in: src/interfaces/webhook-options.interface.ts:91

enriched ​
ts
enriched: number;

Defined in: src/interfaces/webhook-options.interface.ts:86

failed ​
ts
failed: number;

Defined in: src/interfaces/webhook-options.interface.ts:88

loops ​
ts
loops: number;

Defined in: src/interfaces/webhook-options.interface.ts:92

recoveredStale ​
ts
recoveredStale: number;

Defined in: src/interfaces/webhook-options.interface.ts:90

retried ​
ts
retried: number;

Defined in: src/interfaces/webhook-options.interface.ts:89

sent ​
ts
sent: number;

Defined in: src/interfaces/webhook-options.interface.ts:87


WebhookPublishOptions ​

Defined in: src/interfaces/webhook-options.interface.ts:23

Properties ​

correlationId? ​
ts
optional correlationId?: string;

Defined in: src/interfaces/webhook-options.interface.ts:27

Optional caller correlation ID stored with the event for diagnostics.

idempotencyKey? ​
ts
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? ​
ts
optional sanitizePayload?: (payload, context) => Record<string, unknown>;

Defined in: src/interfaces/webhook-options.interface.ts:37

Parameters ​
ParameterType
payloadRecord<string, unknown>
context{ eventType: string; tenantId: string | null; }
context.eventTypestring
context.tenantIdstring | null
Returns ​

Record<string, unknown>

sanitizeResponseBody? ​
ts
optional sanitizeResponseBody?: (body, context) => string | null;

Defined in: src/interfaces/webhook-options.interface.ts:41

Parameters ​
ParameterType
bodystring
context{ deliveryId: string; endpointId: string | null; eventId: string | null; statusCode: number | null; }
context.deliveryIdstring
context.endpointIdstring | null
context.eventIdstring | null
context.statusCodenumber | null
Returns ​

string | null


WebhookRetentionOptions ​

Defined in: src/interfaces/webhook-options.interface.ts:30

Properties ​

attemptResponseBodyRetentionDays? ​
ts
optional attemptResponseBodyRetentionDays?: number;

Defined in: src/interfaces/webhook-options.interface.ts:33

deliveryResponseBodyRetentionDays? ​
ts
optional deliveryResponseBodyRetentionDays?: number;

Defined in: src/interfaces/webhook-options.interface.ts:32

eventPayloadRetentionDays? ​
ts
optional eventPayloadRetentionDays?: number;

Defined in: src/interfaces/webhook-options.interface.ts:31


WebhookRetentionPurgeResult ​

Defined in: src/interfaces/webhook-delivery.interface.ts:88

Properties ​

attemptsPurged ​
ts
attemptsPurged: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:91

deliveriesPurged ​
ts
deliveriesPurged: number;

Defined in: src/interfaces/webhook-delivery.interface.ts:90

eventsPurged ​
ts
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() ​
ts
decrypt(encryptedSecret): Promise<string>;

Defined in: src/ports/webhook-secret-vault.ts:9

Parameters ​
ParameterType
encryptedSecretstring
Returns ​

Promise<string>

encrypt() ​
ts
encrypt(plainSecret): Promise<string>;

Defined in: src/ports/webhook-secret-vault.ts:8

Parameters ​
ParameterType
plainSecretstring
Returns ​

Promise<string>


WebhookVerificationOptions ​

Defined in: src/webhook.signer.ts:11

Properties ​

now? ​
ts
optional now?: Date;

Defined in: src/webhook.signer.ts:13

toleranceSeconds ​
ts
toleranceSeconds: number;

Defined in: src/webhook.signer.ts:12


WebhookWorkerObserver ​

Defined in: src/interfaces/webhook-options.interface.ts:115

Methods ​

onDeliveryComplete()? ​
ts
optional onDeliveryComplete(result): void;

Defined in: src/interfaces/webhook-options.interface.ts:118

Parameters ​
ParameterType
resultWebhookDeliveryProcessingResult
Returns ​

void

onPollComplete()? ​
ts
optional onPollComplete(result): void;

Defined in: src/interfaces/webhook-options.interface.ts:117

Parameters ​
ParameterType
resultWebhookPollResult
Returns ​

void

onPollError()? ​
ts
optional onPollError(error): void;

Defined in: src/interfaces/webhook-options.interface.ts:119

Parameters ​
ParameterType
errorunknown
Returns ​

void

onPollStart()? ​
ts
optional onPollStart(context): void;

Defined in: src/interfaces/webhook-options.interface.ts:116

Parameters ​
ParameterType
contextWebhookPollContext
Returns ​

void

Type Aliases ​

DeliveryAttemptStatus ​

ts
type DeliveryAttemptStatus = Exclude<DeliveryStatus, "SENDING">;

Defined in: src/interfaces/webhook-delivery.interface.ts:2


DeliveryFailureKind ​

ts
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 ​

ts
type DeliveryStatus = "PENDING" | "SENDING" | "SENT" | "FAILED";

Defined in: src/interfaces/webhook-delivery.interface.ts:1


EndpointDisabledReason ​

ts
type EndpointDisabledReason = typeof ENDPOINT_DISABLED_REASON_CONSECUTIVE_FAILURES_EXCEEDED;

Defined in: src/webhook.constants.ts:28


WebhookDeliveryProcessingStatus ​

ts
type WebhookDeliveryProcessingStatus = "sent" | "failed" | "retried";

Defined in: src/interfaces/webhook-options.interface.ts:95


WebhookTransaction ​

ts
type WebhookTransaction = {
  [webhookTransactionBrand]: "WebhookTransaction";
};

Defined in: src/ports/webhook-delivery.repository.ts:18

Opaque transaction token created by repository adapters.

Properties ​

[webhookTransactionBrand] ​
ts
readonly [webhookTransactionBrand]: "WebhookTransaction";

Defined in: src/ports/webhook-delivery.repository.ts:19


WebhookUrlValidationReason ​

ts
type WebhookUrlValidationReason =
  | "parse"
  | "scheme"
  | "blocked_hostname"
  | "loopback"
  | "private"
  | "link_local"
  | "invalid_target";

Defined in: src/webhook.url-validator.ts:18

Variables ​

DEFAULT_BACKOFF_SCHEDULE ​

ts
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 ​

ts
const DEFAULT_CIRCUIT_BREAKER_COOLDOWN_MINUTES: 60 = 60;

Defined in: src/webhook.constants.ts:25


DEFAULT_CIRCUIT_BREAKER_THRESHOLD ​

ts
const DEFAULT_CIRCUIT_BREAKER_THRESHOLD: 5 = 5;

Defined in: src/webhook.constants.ts:24


DEFAULT_DELIVERY_TIMEOUT ​

ts
const DEFAULT_DELIVERY_TIMEOUT: 10000 = 10_000;

Defined in: src/webhook.constants.ts:20


DEFAULT_MAX_RETRIES ​

ts
const DEFAULT_MAX_RETRIES: 5 = 5;

Defined in: src/webhook.constants.ts:21


DEFAULT_POLLING_BATCH_SIZE ​

ts
const DEFAULT_POLLING_BATCH_SIZE: 50 = 50;

Defined in: src/webhook.constants.ts:32


DEFAULT_POLLING_INTERVAL ​

ts
const DEFAULT_POLLING_INTERVAL: 5000 = 5_000;

Defined in: src/webhook.constants.ts:31


DEFAULT_STALE_SENDING_MINUTES ​

ts
const DEFAULT_STALE_SENDING_MINUTES: 5 = 5;

Defined in: src/webhook.constants.ts:33


ENDPOINT_DISABLED_REASON_CONSECUTIVE_FAILURES_EXCEEDED ​

ts
const ENDPOINT_DISABLED_REASON_CONSECUTIVE_FAILURES_EXCEEDED: "consecutive_failures_exceeded";

Defined in: src/webhook.constants.ts:26


WEBHOOK_DELIVERY_REPOSITORY ​

ts
const WEBHOOK_DELIVERY_REPOSITORY: "WEBHOOK_DELIVERY_REPOSITORY" = 'WEBHOOK_DELIVERY_REPOSITORY';

Defined in: src/webhook.constants.ts:5


WEBHOOK_ENDPOINT_REPOSITORY ​

ts
const WEBHOOK_ENDPOINT_REPOSITORY: "WEBHOOK_ENDPOINT_REPOSITORY" = 'WEBHOOK_ENDPOINT_REPOSITORY';

Defined in: src/webhook.constants.ts:4


WEBHOOK_EVENT_REPOSITORY ​

ts
const WEBHOOK_EVENT_REPOSITORY: "WEBHOOK_EVENT_REPOSITORY" = 'WEBHOOK_EVENT_REPOSITORY';

Defined in: src/webhook.constants.ts:3


WEBHOOK_HTTP_CLIENT ​

ts
const WEBHOOK_HTTP_CLIENT: "WEBHOOK_HTTP_CLIENT" = 'WEBHOOK_HTTP_CLIENT';

Defined in: src/webhook.constants.ts:6


WEBHOOK_MODULE_OPTIONS ​

ts
const WEBHOOK_MODULE_OPTIONS: "WEBHOOK_MODULE_OPTIONS" = 'WEBHOOK_MODULE_OPTIONS';

Defined in: src/webhook.constants.ts:1


WEBHOOK_SECRET_VAULT ​

ts
const WEBHOOK_SECRET_VAULT: "WEBHOOK_SECRET_VAULT" = 'WEBHOOK_SECRET_VAULT';

Defined in: src/webhook.constants.ts:7

Functions ​

resolveAndValidateHost() ​

ts
function resolveAndValidateHost(hostname, url?): Promise<string[]>;

Defined in: src/webhook.url-validator.ts:166

Parameters ​

ParameterType
hostnamestring
url?string

Returns ​

Promise<string[]>


validateWebhookUrl() ​

ts
function validateWebhookUrl(url): Promise<void>;

Defined in: src/webhook.url-validator.ts:79

Parameters ​

ParameterType
urlstring

Returns ​

Promise<void>

Released under the MIT License.