feat(updates): include client IP in request events

This commit is contained in:
Dax Raad 2026-09-02 17:51:33 -04:00
parent dbd47702b2
commit 51250e4346
2 changed files with 4 additions and 3 deletions

View file

@ -21,9 +21,9 @@ The Worker has `workers_dev` and preview URLs disabled so the custom hostname is
Every request reaching the Worker emits an unsampled event at request start to the shared production
Cloudflare lake stream through the `EVENTS` Pipelines binding. Events use
`source: "update"`, `type: "request"`, an ISO `timestamp`, and a `payload` containing
the method, path, `user_agent`, country,
and Cloudflare colo. Query strings, request bodies, cookies, authorization headers,
and IP addresses are not included. Response status and duration are not recorded.
the method, path, `user_agent`, `ip` (from Cloudflare's `CF-Connecting-IP` header),
country, and Cloudflare colo. Query strings, request bodies, cookies, and authorization
headers are not included. Response status and duration are not recorded.
Delivery runs in `waitUntil` without delaying the response. Delivery failures are
logged but do not fail requests or retry; this is not lossless audit logging.

View file

@ -45,6 +45,7 @@ export default {
method: request.method,
path: url.pathname,
user_agent: request.headers.get("user-agent"),
ip: request.headers.get("cf-connecting-ip"),
cf_country: request.cf?.country,
cf_colo: request.cf?.colo,
},