Show an event's entrypoint and request headers (closes #389)
check / check (push) Successful in 3m19s

An expanded event in the event log and the event's own page now show
the entrypoint the event arrived at (its description, "Entrypoint"
when it has none, or "deleted entrypoint"; never its URL) and the
full request headers, one per line, sorted by name. Both pages draw
them through one shared template, event_request.html. The event
columns now load entrypoint_id and headers, and the webhook's
entrypoints are read once per page.

Model: opus-5-5
This commit is contained in:
2026-10-03 01:19:09 +00:00
parent bcdd4791ec
commit 5bfe5e74bd
8 changed files with 287 additions and 6 deletions
+16 -1
View File
@@ -1240,7 +1240,8 @@ func (h *Handlers) loadEventsWithDeliveries(
}
// eventLogViews projects loaded events for rendering, each with
// its deliveries and how many times it has been resubmitted. Like
// its deliveries, how many times it has been resubmitted and the
// entrypoint it arrived at. Like
// loadEventsWithDeliveries, it reports false once it has answered
// the request with an error.
func (h *Handlers) eventLogViews(
@@ -1293,11 +1294,25 @@ func (h *Handlers) eventLogViews(
return nil, false
}
entrypoints, err := h.entrypointNames(webhookID)
if err != nil {
h.serverError(w, r, "failed to load entrypoints", err)
return nil, false
}
for i := range rows {
result[i].Deliveries = h.newDeliveryViews(
eventDeliveries[i], targetMap, attempts,
)
result[i].ResubmitCount = resubmits[rows[i].ID]
name, ok := entrypoints[rows[i].EntrypointID]
if !ok {
name = "deleted entrypoint"
}
result[i].Entrypoint = name
}
return result, true