Skip to content

Commit fbafedf

Browse files
committed
docs(webhooks): remove delivery history
1 parent 2dd9862 commit fbafedf

7 files changed

Lines changed: 20 additions & 101 deletions

File tree

docs-src/webhooks/events.mdx.vel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ squashed into the top-level object. There is no additional `data` wrapper.
5454
| `webhook-signature` | One or more space-delimited `v1,<base64>` signatures. |
5555

5656
The event id never contains a period, so the Standard Webhooks signed-content
57-
serialization remains unambiguous. The same event keeps its id across retries,
58-
multiple endpoints, and manual replay.
57+
serialization remains unambiguous. The same event keeps its id across retries
58+
and multiple endpoints.
5959

6060
See [Verifying signatures](/webhooks/verifying-signatures) before processing a
6161
delivery.

webhooks/delivery.mdx

Lines changed: 5 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Delivery and retries
3-
description: Status handling, durable retries, endpoint disabling, history, and replay
3+
description: Status handling, durable retries, endpoint disabling, and destination security
44
---
55

66
Spectrum delivers each event independently to every subscribed endpoint. A
@@ -66,60 +66,15 @@ delivery lane.
6666

6767
If the four-day retry budget expires, Spectrum:
6868

69-
1. records the event as `dead_lettered`;
69+
1. moves the event to its internal dead-letter queue;
7070
2. disables the endpoint with reason `delivery_failures`; and
7171
3. sends an email if `failureNotificationEmail` is configured.
7272

7373
Re-enable the endpoint with `PATCH /projects/{projectId}/webhooks/{webhookId}`
7474
and `{ "enabled": true }` after fixing it. Future events and any retries that
75-
are still pending resume in endpoint order; terminal `dead_lettered` events
76-
require an explicit replay.
77-
78-
## Delivery history
79-
80-
Terminal outcomes are retained for seven days:
81-
82-
```sh
83-
curl "https://spectrum.photon.codes/projects/$PROJECT_ID/webhooks/$WEBHOOK_ID/deliveries?limit=50" \
84-
-u "$PROJECT_ID:$PROJECT_SECRET"
85-
```
86-
87-
Each row includes the event id, event type, platform, terminal outcome,
88-
delivery count, final status or reason, timestamps, and whether replay is still
89-
available. The history table stores metadata, not the webhook payload.
90-
91-
Use `before` for cursor pagination and `outcome=dead_lettered` to show failed
92-
deliveries only.
93-
94-
## Manual replay
95-
96-
Replay one failed event:
97-
98-
```sh
99-
curl -X POST \
100-
"https://spectrum.photon.codes/projects/$PROJECT_ID/webhooks/$WEBHOOK_ID/deliveries/$EVENT_ID/replay" \
101-
-u "$PROJECT_ID:$PROJECT_SECRET"
102-
```
103-
104-
Or replay up to 100 failures from a time range no longer than seven days:
105-
106-
```sh
107-
curl -X POST \
108-
"https://spectrum.photon.codes/projects/$PROJECT_ID/webhooks/$WEBHOOK_ID/deliveries/replay-failures" \
109-
-u "$PROJECT_ID:$PROJECT_SECRET" \
110-
-H "Content-Type: application/json" \
111-
-d '{
112-
"since": "2026-08-01T00:00:00Z",
113-
"until": "2026-08-02T00:00:00Z",
114-
"limit": 100
115-
}'
116-
```
117-
118-
Replay requires an enabled Fusor endpoint, a `dead_lettered` outcome, and the
119-
original event to remain in the seven-day source-retention window. It preserves
120-
the original `webhook-id`, signs the delivery with the endpoint's current
121-
secret, and increments the history row's replay count. Your idempotency policy
122-
therefore remains authoritative during replay.
75+
are still pending resume in endpoint order. Spectrum does not currently expose
76+
delivery history or manual replay, so reconcile terminal failures from your own
77+
source of truth.
12378

12479
## Destination security
12580

webhooks/managing-webhooks.mdx

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Webhook management uses project Basic authentication:
1010
```
1111

1212
One project can register multiple endpoints. Each endpoint has an independent
13-
URL, secret, subscription set, retry lane, history, and enabled state.
13+
URL, secret, subscription set, retry lane, and enabled state.
1414

1515
## Create an endpoint
1616

@@ -74,7 +74,7 @@ Set `failureNotificationEmail` to `null` to remove the notification address.
7474

7575
## Disable or re-enable an endpoint
7676

77-
Disable delivery without deleting the registration or its history:
77+
Disable delivery without deleting the registration:
7878

7979
```sh
8080
curl -X PATCH \
@@ -99,9 +99,9 @@ curl -X PATCH \
9999
```
100100

101101
Re-enabling clears the disable reason. Future events and any retries still
102-
pending resume in endpoint order; events already recorded as `dead_lettered`
103-
are not replayed automatically. Replay those eligible failures separately from
104-
the [delivery history](/webhooks/delivery#delivery-history).
102+
pending resume in endpoint order. Spectrum does not currently expose terminal
103+
delivery history or manual replay; reconcile terminal failures from your own
104+
source of truth.
105105

106106
## Rotate the Standard secret
107107

@@ -131,20 +131,6 @@ A safe rotation sequence is:
131131
`overlapSeconds` defaults to one day, can be zero for immediate revocation, and
132132
cannot exceed seven days.
133133

134-
## Inspect and replay failures
135-
136-
Use the delivery endpoints to inspect seven days of terminal outcomes and
137-
replay eligible failures:
138-
139-
```text
140-
GET /projects/{projectId}/webhooks/{webhookId}/deliveries
141-
POST /projects/{projectId}/webhooks/{webhookId}/deliveries/{eventId}/replay
142-
POST /projects/{projectId}/webhooks/{webhookId}/deliveries/replay-failures
143-
```
144-
145-
See [Delivery and retries](/webhooks/delivery) for filters, retention, and replay
146-
constraints.
147-
148134
## Retrieve egress addresses
149135

150136
```sh

webhooks/overview.mdx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ flowchart LR
2020
```
2121

2222
You can register multiple endpoints for one project. Each endpoint has its own
23-
secret, subscriptions, retry lane, delivery history, and enabled state. A slow
23+
secret, subscriptions, retry lane, and enabled state. A slow
2424
or failing endpoint does not block another endpoint.
2525

2626
## Standard Webhooks contract
@@ -69,8 +69,6 @@ See [Events](/webhooks/events) for the complete field reference.
6969
- A `410 Gone` response disables the endpoint immediately.
7070
- An endpoint that fails throughout the retry window is disabled. If you set a
7171
failure-notification email, Spectrum sends a notification.
72-
- Terminal delivery history is available for seven days. Failed events that
73-
remain in source retention can be replayed manually.
7472

7573
See [Delivery and retries](/webhooks/delivery) for status-code handling and
7674
timeouts.
@@ -106,7 +104,7 @@ integrations should use the Standard headers and the returned `whsec_` secret.
106104
Implement raw-body verification and safe key rotation.
107105
</Card>
108106
<Card title="Delivery and retries" icon="repeat" href="/webhooks/delivery">
109-
Understand retries, disabling, history, and replay.
107+
Understand retries, timeouts, and endpoint disabling.
110108
</Card>
111109
<Card title="Managing webhooks" icon="gear" href="/webhooks/managing-webhooks">
112110
Configure subscriptions, notifications, secrets, and endpoints.

webhooks/quickstart.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,6 @@ once, so deduplicate with `webhook-id` even if the first request succeeds.
151151
See every header and payload field.
152152
</Card>
153153
<Card title="Delivery and retries" icon="repeat" href="/webhooks/delivery">
154-
Learn the timeout, retry, disable, and replay behavior.
154+
Learn the timeout, retry, and endpoint-disable behavior.
155155
</Card>
156156
</Columns>

webhooks/troubleshooting.mdx

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,11 @@ title: Troubleshooting webhooks
33
description: Diagnose missing deliveries, invalid signatures, retries, and disabled endpoints
44
---
55

6-
Start by listing the endpoint and its recent delivery history:
6+
Start by listing the endpoint:
77

88
```sh
99
curl "https://spectrum.photon.codes/projects/$PROJECT_ID/webhooks/" \
1010
-u "$PROJECT_ID:$PROJECT_SECRET"
11-
12-
curl "https://spectrum.photon.codes/projects/$PROJECT_ID/webhooks/$WEBHOOK_ID/deliveries" \
13-
-u "$PROJECT_ID:$PROJECT_SECRET"
1411
```
1512

1613
## No requests arrive
@@ -57,15 +54,14 @@ implementation.
5754

5855
At-least-once delivery permits duplicates. A handler can finish its work while
5956
Spectrum loses the response or reaches its timeout, causing another attempt.
60-
Manual replay also preserves the original event id.
6157

6258
Use `webhook-id` as a unique idempotency key and acknowledge immediately after
6359
durably enqueueing the event. Do not wait for slow downstream APIs before
6460
returning `2xx`.
6561

6662
## Spectrum keeps retrying
6763

68-
Inspect the final HTTP status and reason in delivery history. Spectrum retries
64+
Check the responses and errors recorded by your endpoint. Spectrum retries
6965
`404`, `408`, `429`, `5xx`, network errors, DNS failures, and timeouts. It
7066
honors valid `Retry-After` values within the four-day retry budget.
7167

@@ -96,21 +92,9 @@ curl -X PATCH \
9692
```
9793

9894
Re-enabling resumes future delivery and any retries that are still pending in
99-
the ordered endpoint lane. It does not automatically replay terminal events.
100-
Filter history with `outcome=dead_lettered` and replay eligible failures after
101-
the endpoint is healthy.
102-
103-
## Replay is rejected
104-
105-
Replay returns a conflict when any prerequisite is missing:
106-
107-
- the endpoint is disabled or uses legacy delivery;
108-
- the delivery was not `dead_lettered`;
109-
- the source event has expired from seven-day retention; or
110-
- the history row lacks a source sequence.
111-
112-
Enable the endpoint first. If `replayable` is `false`, recover the event from
113-
your own reconciliation source instead of repeatedly calling replay.
95+
the ordered endpoint lane. Spectrum does not currently expose terminal delivery
96+
history or manual replay. Reconcile terminal failures from your own source of
97+
truth after the endpoint is healthy.
11498

11599
## Rotation breaks some instances
116100

webhooks/verifying-signatures.mdx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,6 @@ a captured request. Apply both controls:
106106
2. insert `webhook-id` into a store with a unique constraint before performing
107107
non-idempotent work.
108108

109-
Manual replay deliberately keeps the original `webhook-id` but receives a new
110-
signature timestamp. Decide whether an operator-requested replay should be
111-
ignored, reprocessed, or handled through a separate idempotent recovery path.
112-
113109
## Rotation without downtime
114110

115111
Call the [rotation endpoint](/webhooks/managing-webhooks#rotate-the-standard-secret)

0 commit comments

Comments
 (0)