@@ -212,7 +212,7 @@ export function createClient(config: CreateClientConfig): Base44Client {
212212 serverUrl,
213213 token,
214214 } ) ,
215- aiGateway : createAiGatewayModule ( { serverUrl, token } ) ,
215+ aiGateway : createAiGatewayModule ( { serverUrl, token, appId } ) ,
216216 appLogs : createAppLogsModule ( axiosClient , appId ) ,
217217 users : createUsersModule ( axiosClient , appId ) ,
218218 analytics : createAnalyticsModule ( {
@@ -265,7 +265,7 @@ export function createClient(config: CreateClientConfig): Base44Client {
265265 serverUrl,
266266 token,
267267 } ) ,
268- aiGateway : createAiGatewayModule ( { serverUrl, token : serviceToken } ) ,
268+ aiGateway : createAiGatewayModule ( { serverUrl, token : serviceToken , appId } ) ,
269269 appLogs : createAppLogsModule ( serviceRoleAxiosClient , appId ) ,
270270 cleanup : ( ) => {
271271 if ( socket ) {
@@ -427,6 +427,7 @@ export function createClientFromRequest(request: Request): Base44Client {
427427 const serverUrlHeader = request . headers . get ( "Base44-Api-Url" ) ;
428428 const functionsVersion = request . headers . get ( "Base44-Functions-Version" ) ;
429429 const stateHeader = request . headers . get ( "Base44-State" ) ;
430+ const dataEnvHeader = request . headers . get ( "X-Data-Env" ) ;
430431
431432 if ( ! appId ) {
432433 throw new Error (
@@ -469,6 +470,16 @@ export function createClientFromRequest(request: Request): Base44Client {
469470 if ( stateHeader ) {
470471 additionalHeaders [ "Base44-State" ] = stateHeader ;
471472 }
473+ // Propagate the data environment so entity operations from the function stay
474+ // in the same environment (e.g. test data) as the triggering request. This
475+ // matters for the user-scoped client: unlike the service token, the user JWT
476+ // carries no data-env, so without forwarding this header the callbacks fall
477+ // back to production data even when the app runs in test-data mode.
478+ // Forward only the known closed set (matches the backend contract) rather
479+ // than relaying an arbitrary attacker-supplied header value onward.
480+ if ( dataEnvHeader === "dev" || dataEnvHeader === "prod" ) {
481+ additionalHeaders [ "X-Data-Env" ] = dataEnvHeader ;
482+ }
472483
473484 return createClient ( {
474485 serverUrl : serverUrlHeader || "https://base44.app" ,
0 commit comments