diff --git a/.changeset/mean-jars-cheat.md b/.changeset/mean-jars-cheat.md new file mode 100644 index 00000000000..1596e64b4bb --- /dev/null +++ b/.changeset/mean-jars-cheat.md @@ -0,0 +1,5 @@ +--- +"@thirdweb-dev/service-utils": patch +--- + +chore: data in webhook payload is an object diff --git a/packages/service-utils/src/node/webhookProducer.ts b/packages/service-utils/src/node/webhookProducer.ts index 5eaa341e0f1..ae9e3b9e8ab 100644 --- a/packages/service-utils/src/node/webhookProducer.ts +++ b/packages/service-utils/src/node/webhookProducer.ts @@ -2,6 +2,10 @@ import assert from "node:assert"; import { createId } from "@paralleldrive/cuid2"; import type { KafkaProducer } from "./kafka.js"; +/** + * The event schema for webhook events. + * See more: https://github.com/thirdweb-dev/api-server/blob/dev/docs/webhooks.md + */ interface WebhookEvent extends Record { id?: `evt_${string}`; teamId: string; @@ -11,9 +15,9 @@ interface WebhookEvent extends Record { */ createdAt?: Date; /** - * An array of your model (defined in api-server). Must not be empty. + * Your model defined in api-server. */ - payload: Record[]; + data: Record; } /** @@ -42,7 +46,6 @@ export class WebhookEventProducer { */ async sendEvents(topic: string, events: WebhookEvent[]): Promise { const parsedEvents: WebhookEvent[] = events.map((event) => { - assert(event.payload.length > 0, "payload must not be empty"); assert( event.teamId.startsWith("team_"), "teamId must start with 'team_'",