Skip to content

Releases: Hookflo/tern

Security Patch

28 Feb 18:40
1334455

Choose a tag to compare

The dynamic import() call itself as eval-like behaviour now patched

Platform addition, Dedup Improvement. and Reliable event delivery

27 Feb 14:37

Choose a tag to compare

What's new
Queued delivery via Upstash QStash

Verified webhooks are enqueued before your handler runs
Endpoint returns 200 immediately — QStash handles delivery
BYOK model — your token, your account, your data. Nothing through Hookflo's servers

Automatic retries

Handler failures trigger automatic QStash retries with exponential backoff
Configurable retry count or use your plan default

Dead-letter queue (DLQ)

Events exhausting all retries land in your DLQ — never lost
Inspect failed events programmatically via controls.dlq()

Programmatic replay

Replay any DLQ message via controls.replay(dlqId)
No dashboard required

Deduplication

Same event arriving twice processed exactly once
Per-platform ID resolution — Stripe idempotency key, GitHub delivery header, Clerk svix-id, and more
SHA-256 hash fallback for platforms without explicit event IDs

Cloudflare Workers adapter

New @hookflo/tern/cloudflare adapter
Web Crypto API native — zero Node.js dependencies
Runs in V8 isolates at the edge

New platforms

Sentry — alert webhooks
Replicate — AI job completion events
GitLab — push, MR, pipeline events

Bug fixes

Fixed DeduplicationId cannot contain ':' — dedup IDs now use underscore separator
Fixed DLQ replay 405 — now correctly uses DELETE /v2/dlq/{dlqId}
Fixed platform resolving as unknown in DLQ listing
Fixed unhandled QStash publish errors — status-aware responses (400→489, 401/429→503)
Fixed QStash signature verification swallowing network errors as 401
Fixed NODE_ENV condition — dev dedup logging now works correctly locally
Fixed base64-encoded body parsing in DLQ listing

Breaking changes

controls.replay() now takes dlqId instead of messageId — get dlqId from controls.dlq() response
DLQMessage type now includes dlqId field alongside existing id

Packages
@hookflo/tern core — unchanged
@hookflo/tern/upstash controls — new
@hookflo/tern/cloudflare adapter — new

New Platform Addition

25 Feb 12:42

Choose a tag to compare

Support added for

  1. Doppler
  2. Sentry
  3. Sanity
  4. Grafana

v2.2.7 - stable

20 Feb 09:08

Choose a tag to compare

Stable pre-release

19 Feb 15:36

Choose a tag to compare

Stable pre-release Pre-release
Pre-release
v2.0.2

2.2.0

Schema Normalization

30 Sep 17:50

Choose a tag to compare

v2.0.0

2.0.0

Stable Beta

11 Aug 18:17

Choose a tag to compare

This version have tested webhook verification platforms

  1. Stripe
  2. Supabase
  3. Github
  4. Clerk