KQ-1746 · WEBHOOK/REPLAY

Webhook Replay

A webhook endpoint's delivery log where a failed delivery can be sent again. Replay sends a pulse along its row — a comet riding one motion value for 520 ms on the move ease, from the event name, under the columns, to the status chip — and if the answer is not back the head breathes at the chip until it is; then the chip flips about its horizontal axis, out on the exit ease and in on springs.snap with a soft success ring, or still failing, in on springs.flick to the new error code with the new response under the event. Rows open with Enter to the payload, headers and response at their measured height on springs.glide, Up and Down walk the rows, R replays, and the endpoint can be paused and its signing secret revealed or rotated.

KQ-1746 · WEBHOOK/REPLAY

Webhooks

Coldbrook · 2 endpoints

Up and Down move between deliveries; Enter opens one; R replays a failed delivery.

POSThooks.coldbrook.dev/v2/ordersActive
  • order.created
  • order.paid
  • order.refunded
Signing secretwhsec_••••••••3f9a

9 deliveries · 3 failed

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/webhook-replay

Props

chipStyle
"pill" | "tag" | "dot"
default "pill"
How each status code is drawn: a tinted pill, a square tag with a leading bar, or a dot and the bare code.
payloadTheme
"plain" | "tinted" | "night"
default "tinted"
How payloads, headers and responses are coloured: one ink, tinted tokens, or a dark code panel in both themes.
density
"compact" | "regular" | "roomy"
default "regular"
Row height and type in the log.
endpoints
WebhookEndpoint[]
default defaultWebhookEndpoints
Each { id, name, url (no scheme), events, secret, paused? }.
deliveries / defaultDeliveries
WebhookDelivery[]
default — / defaultWebhookDeliveries
Most recent first: { id, endpoint, event, status, duration, attempt, at, payload, response?, replayAs? }; controlled or initial.
onDeliveriesChange
(deliveries) => void
default —
Fires with every delivery after a replay lands or a test event is sent.
endpoint / defaultEndpoint
string
default — / the first
The endpoint shown, by id; controlled or initial.
onEndpointChange
(id) => void
default —
Fires from the tab press or arrow key that chose another endpoint.
onReplay
(delivery) => WebhookReplayResult | Promise<WebhookReplayResult> | void
default —
Replay was pressed. Return { status, duration, body? } or a promise of it; return nothing and the delivery's replayAs answers. A rejected promise reads as no answer.
onPause
(endpoint, paused) => void
default —
Pause or Resume was pressed.
onRotateSecret
(endpoint) => string | void
default —
Rotate was confirmed. Return the new secret, or nothing for a generated one.
onSendTest
(endpoint) => void
default —
Send test event was pressed on an empty log; a test delivery is added and lands with its own pulse.
now
number
default defaultWebhookNow
The current time in ms; delivery times are read against it. Never read from the clock.
status
"ready" | "loading" | "error"
default "ready"
Loading shows placeholder rows; error explains and offers Try again.
onRetry
() => void
default —
Try again was pressed after the log failed to load.
title
string
default "Webhooks"
The heading.
height
number
default 540
Height of the surface in px; the log scrolls inside it.
disabled
boolean
default false
Read only: nothing can be replayed, paused or rotated.
className
string
default —
Classes for the surface.