From b599ce4919e74800363e4813d945bd2d9d30b9ae Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:08:31 +0000 Subject: [PATCH] feat: add user context logging to request interceptor (#22180) - Import extractUserContext function from @/lib/extract-user-context - Extract user context from request in intercept method - Add user context to logger output using spread operator - Follow same pattern as exception filters for consistency Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: morgan@cal.com --- .../v2/src/middleware/request-ids/request-id.interceptor.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts b/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts index 20a14f60dd..c00062eafc 100644 --- a/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts +++ b/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts @@ -1,3 +1,4 @@ +import { extractUserContext } from "@/lib/extract-user-context"; import { CallHandler, ExecutionContext, Injectable, NestInterceptor, Logger } from "@nestjs/common"; import { Request, Response } from "express"; import { tap } from "rxjs/operators"; @@ -14,6 +15,7 @@ export class ResponseInterceptor implements NestInterceptor { const requestId = request.headers["X-Request-Id"] ?? "unknown-request-id"; response.setHeader("X-Request-Id", requestId.toString()); const { method, url } = request; + const userContext = extractUserContext(request); const startTime = Date.now(); return next.handle().pipe( @@ -39,6 +41,7 @@ export class ResponseInterceptor implements NestInterceptor { responseTime, responseBody: jsonBodyString, timestamp: new Date().toISOString(), + ...userContext, }); }) );