Skip to content

Display HTTP request headers in the web UI #270

@kapekost

Description

@kapekost

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions