@@ -30,27 +30,27 @@ Webhooks are deceptively simple — until they aren't. Providers send them once
3030
3131| Feature | Status | Notes |
3232| ---| ---| ---|
33- | Webhook ingestion with signature verification | ✅ Stable | Stripe, GitHub, generic HMAC |
34- | Reliable delivery with retries (exponential/linear/fixed) | ✅ Stable | Respects ` Retry-After ` headers |
35- | Circuit breaker per destination | ✅ Stable | Open/half-open/closed with auto-recovery |
36- | Fan-out routing (one source → multiple destinations) | ✅ Stable | Event type wildcard filters |
37- | Dead letter queue with batch replay | ✅ Stable | Per-destination DLQ inspection and replay |
38- | REST API (CRUD for all resources) | ✅ Stable | Sources, destinations, subscriptions, events, keys |
39- | API key authentication (simple + advanced mode) | ✅ Stable | Env var or D1-managed keys with scopes |
40- | CLI with ` --json ` , ` --dry-run ` , ` --data ` , ` --fields ` | ✅ Stable | Agent-optimized |
41- | ` hookflare schema ` (runtime API introspection) | ✅ Stable | Agent-friendly resource discovery |
42- | Export / Import / Migrate | ✅ Stable | Instance-to-instance migration with ID remapping |
43- | Idempotency (KV-based deduplication) | ✅ Stable | Configurable TTL |
44- | Payload archive (R2) | ✅ Stable | Configurable retention |
45- | Rate limiting (per-source ingress) | ✅ Stable | DO-based precise global limiting with in-memory pre-check |
46- | ` hookflare dev ` (local tunnel + signature verification) | ✅ Stable | Cloudflare Quick Tunnel, auto-downloads cloudflared |
47- | ` hookflare connect ` (one-shot setup) | ✅ Stable | Source + destination + subscription in one command |
48- | ` hookflare providers ` (provider catalog) | ✅ Stable | Browse providers and event types |
49- | Pre-built providers (Stripe, GitHub, Slack, Shopify, Vercel) | ✅ Stable | Event catalogs, verification, presets |
50- | ` defineProvider() ` (community providers) | ✅ Stable | One file, three fields, publish to npm or GitHub |
51- | SSRF protection on destination URLs | ✅ Stable | Blocks private IPs, localhost, non-HTTPS |
52- | Payload size limit (256KB) | ✅ Stable | Returns 413 on oversized webhooks |
53- | DLQ notifications | ✅ Stable | Webhook callback when deliveries permanently fail |
33+ | Webhook ingestion with signature verification | ✅ Implemented | Stripe, GitHub, generic HMAC |
34+ | Reliable delivery with retries (exponential/linear/fixed) | ✅ Implemented | Respects ` Retry-After ` headers |
35+ | Circuit breaker per destination | ✅ Implemented | Open/half-open/closed with auto-recovery |
36+ | Fan-out routing (one source → multiple destinations) | ✅ Implemented | Event type wildcard filters |
37+ | Dead letter queue with batch replay | ✅ Implemented | Per-destination DLQ inspection and replay |
38+ | REST API (CRUD for all resources) | ✅ Implemented | Sources, destinations, subscriptions, events, keys |
39+ | API key authentication (simple + advanced mode) | ✅ Implemented | Env var or D1-managed keys with scopes |
40+ | CLI with ` --json ` , ` --dry-run ` , ` --data ` , ` --fields ` | ✅ Implemented | Agent-optimized |
41+ | ` hookflare schema ` (runtime API introspection) | ✅ Implemented | Agent-friendly resource discovery |
42+ | Export / Import / Migrate | ✅ Implemented | Instance-to-instance migration with ID remapping |
43+ | Idempotency (KV-based deduplication) | ✅ Implemented | Configurable TTL |
44+ | Payload archive (R2) | ✅ Implemented | Configurable retention |
45+ | Rate limiting (per-source ingress) | ✅ Implemented | DO-based precise global limiting with in-memory pre-check |
46+ | ` hookflare dev ` (local tunnel + signature verification) | ✅ Implemented | Cloudflare Quick Tunnel, auto-downloads cloudflared |
47+ | ` hookflare connect ` (one-shot setup) | ✅ Implemented | Source + destination + subscription in one command |
48+ | ` hookflare providers ` (provider catalog) | ✅ Implemented | Browse providers and event types |
49+ | Pre-built providers (Stripe, GitHub, Slack, Shopify, Vercel) | ✅ Implemented | Event catalogs, verification, presets |
50+ | ` defineProvider() ` (community providers) | ✅ Implemented | One file, three fields, publish to npm or GitHub |
51+ | SSRF protection on destination URLs | ✅ Implemented | Blocks private IPs, localhost, non-HTTPS |
52+ | Payload size limit (256KB) | ✅ Implemented | Returns 413 on oversized webhooks |
53+ | DLQ notifications | ✅ Implemented | Webhook callback when deliveries permanently fail |
5454| ** 0% error rate under load** | ✅ Verified | [ P50 303ms, 0 errors, DO-based rate limiting] ( BENCHMARKS.md ) |
5555| Dashboard (static SPA) | 📋 Planned | Cloudflare Pages, connects to any instance |
5656| Structured logging | 📋 Planned | JSON logs for observability |
0 commit comments