Problem
smee.io is increasingly used beyond GitHub webhooks — any webhook producer can point their callback URL at a smee channel for debugging. However, the web UI only displays the JSON payload body and the x-github-event header. All other HTTP headers are silently discarded from the UI.
This is a problem because many webhook systems carry critical metadata in headers rather than the body:
- Webhook type/name — e.g.
x-event-type: order.created
- Signatures — e.g.
stripe-signature, x-hub-signature-256
- Trace/correlation IDs — e.g.
x-request-id, x-trace-id, x-correlation-id
- Retry metadata — e.g.
x-retry-count
The data is already stored in the event object (the SSE stream includes all forwarded headers as top-level keys), but the ListItem component only renders body and x-github-event.
Expected behavior
When expanding a webhook delivery in the UI, users should see all HTTP request headers — not just the payload.
Proposed solution
Add a collapsible "Headers" section above the existing "Payload" section that displays all non-reserved keys (everything except body, timestamp, query, x-github-event, x-github-delivery) as a key-value table.
See #268 for an implementation.
Problem
smee.io is increasingly used beyond GitHub webhooks — any webhook producer can point their callback URL at a smee channel for debugging. However, the web UI only displays the JSON payload body and the
x-github-eventheader. All other HTTP headers are silently discarded from the UI.This is a problem because many webhook systems carry critical metadata in headers rather than the body:
x-event-type: order.createdstripe-signature,x-hub-signature-256x-request-id,x-trace-id,x-correlation-idx-retry-countThe data is already stored in the event object (the SSE stream includes all forwarded headers as top-level keys), but the
ListItemcomponent only rendersbodyandx-github-event.Expected behavior
When expanding a webhook delivery in the UI, users should see all HTTP request headers — not just the payload.
Proposed solution
Add a collapsible "Headers" section above the existing "Payload" section that displays all non-reserved keys (everything except
body,timestamp,query,x-github-event,x-github-delivery) as a key-value table.See #268 for an implementation.