11import { auth } from "@project/auth" ;
22import { AppConfig , configProvider } from "@src/utils/config" ;
3- import { extractRootTraceIdFromAmznTraceId , logger } from "@src/utils/logger" ;
3+ import { logger } from "@src/utils/logger" ;
44import { profilePerformanceEnd , profilePerformanceStart } from "@src/utils/performance" ;
55import { RequestContext , asyncLocalStorage } from "@src/utils/requestContext" ;
6+ import { extractRequestContextFromHeaders } from "@src/utils/requestScopedStorageWrapper" ;
67import { Session } from "next-auth" ;
78import { NextRequest , NextResponse } from "next/server" ;
89import { Logger } from "pino" ;
@@ -11,17 +12,19 @@ const log: Logger = logger.child({ module: "middleware" });
1112const MiddlewarePerformanceMarker = "middleware" ;
1213
1314export async function middleware ( request : NextRequest ) {
14- const requestContext : RequestContext = {
15- traceId :
16- extractRootTraceIdFromAmznTraceId ( request ?. headers ?. get ( "X-Amzn-Trace-Id" ) ?? "" ) ?? "undefined-request-id" ,
17- } ;
15+ const requestContext : RequestContext = extractRequestContextFromHeaders ( request ?. headers ) ;
1816
1917 return await asyncLocalStorage . run ( requestContext , ( ) => middlewareWrapper ( request ) ) ;
2018}
2119
2220const middlewareWrapper = async ( request : NextRequest ) => {
2321 profilePerformanceStart ( MiddlewarePerformanceMarker ) ;
2422 log . info ( { context : { nextUrl : request . nextUrl . href } } , "Inspecting request" ) ;
23+
24+ // Add URL to request headers to make available for logging in the nodejs layer
25+ const headers = new Headers ( request . headers ) ;
26+ headers . set ( "nextUrl" , request . nextUrl . href ) ;
27+
2528 const config : AppConfig = await configProvider ( ) ;
2629
2730 let response : NextResponse ;
@@ -30,7 +33,7 @@ const middlewareWrapper = async (request: NextRequest) => {
3033 log . info ( { context : { nextUrl : request . nextUrl . href } } , "Missing user session, redirecting to login" ) ;
3134 response = NextResponse . redirect ( new URL ( config . NHS_APP_REDIRECT_LOGIN_URL ) ) ;
3235 } else {
33- response = NextResponse . next ( ) ;
36+ response = NextResponse . next ( { headers } ) ;
3437 }
3538
3639 profilePerformanceEnd ( MiddlewarePerformanceMarker ) ;
0 commit comments