From a3cf0ce08f1992474574540390b6efcbb00f0188 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Thu, 12 Mar 2026 23:43:01 -0700 Subject: [PATCH] Log callback request headers --- foundry/packages/backend/src/index.ts | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/foundry/packages/backend/src/index.ts b/foundry/packages/backend/src/index.ts index 253ece6..b6fe3e2 100644 --- a/foundry/packages/backend/src/index.ts +++ b/foundry/packages/backend/src/index.ts @@ -21,10 +21,22 @@ export interface BackendStartOptions { interface AppWorkspaceLogContext { action?: string; + cfConnectingIp?: string; + cfRay?: string; + forwardedFor?: string; + forwardedHost?: string; + forwardedProto?: string; method?: string; path?: string; requestId?: string; + referer?: string; + secFetchDest?: string; + secFetchMode?: string; + secFetchSite?: string; + secFetchUser?: string; sessionId?: string; + userAgent?: string; + xRealIp?: string; } function isRivetRequest(request: Request): boolean { @@ -88,6 +100,21 @@ export async function startBackend(options: BackendStartOptions = {}): Promise ({ + cfConnectingIp: c.req.header("cf-connecting-ip") ?? undefined, + cfRay: c.req.header("cf-ray") ?? undefined, + forwardedFor: c.req.header("x-forwarded-for") ?? undefined, + forwardedHost: c.req.header("x-forwarded-host") ?? undefined, + forwardedProto: c.req.header("x-forwarded-proto") ?? undefined, + referer: c.req.header("referer") ?? undefined, + secFetchDest: c.req.header("sec-fetch-dest") ?? undefined, + secFetchMode: c.req.header("sec-fetch-mode") ?? undefined, + secFetchSite: c.req.header("sec-fetch-site") ?? undefined, + secFetchUser: c.req.header("sec-fetch-user") ?? undefined, + userAgent: c.req.header("user-agent") ?? undefined, + xRealIp: c.req.header("x-real-ip") ?? undefined, + }); + // Serve custom Foundry HTTP APIs alongside the RivetKit registry. const app = new Hono<{ Variables: { requestId: string } }>(); const allowHeaders = [ @@ -138,6 +165,7 @@ export async function startBackend(options: BackendStartOptions = {}): Promise ({ + ...requestHeaderContext(c), method: c.req.method, path: c.req.path, requestId: c.get("requestId"),