@@ -111,11 +111,25 @@ if (fs.existsSync(staticPath)) {
111111
112112 // Build runtime config from VITE_ env vars (fall back to empty strings)
113113 const runtime = {
114+ // Legacy environment variables (default/current environment)
114115 VITE_BACKEND_BASE_URL : process . env . VITE_BACKEND_BASE_URL || '' ,
115116 VITE_LOGIN_BASE_URL : process . env . VITE_LOGIN_BASE_URL || '' ,
116117 VITE_NODE_ENV : process . env . VITE_NODE_ENV || 'production' ,
117118 VITE_OAUTH_WEB_CLIENT_ID : process . env . VITE_OAUTH_WEB_CLIENT_ID || '' ,
118119 VITE_OAUTH_WEB_CLIENT_SECRET : process . env . VITE_OAUTH_WEB_CLIENT_SECRET ? 'SET' : '' ,
120+
121+ // Development environment variables
122+ VITE_DEV_BACKEND_BASE_URL : process . env . VITE_DEV_BACKEND_BASE_URL || '' ,
123+ VITE_DEV_LOGIN_BASE_URL : process . env . VITE_DEV_LOGIN_BASE_URL || '' ,
124+ VITE_DEV_OAUTH_WEB_CLIENT_ID : process . env . VITE_DEV_OAUTH_WEB_CLIENT_ID || '' ,
125+ VITE_DEV_OAUTH_WEB_CLIENT_SECRET : process . env . VITE_DEV_OAUTH_WEB_CLIENT_SECRET ? 'SET' : '' ,
126+
127+ // Production environment variables
128+ VITE_PROD_BACKEND_BASE_URL : process . env . VITE_PROD_BACKEND_BASE_URL || '' ,
129+ VITE_PROD_LOGIN_BASE_URL : process . env . VITE_PROD_LOGIN_BASE_URL || '' ,
130+ VITE_PROD_OAUTH_WEB_CLIENT_ID : process . env . VITE_PROD_OAUTH_WEB_CLIENT_ID || '' ,
131+ VITE_PROD_OAUTH_WEB_CLIENT_SECRET : process . env . VITE_PROD_OAUTH_WEB_CLIENT_SECRET ? 'SET' : '' ,
132+
119133 _generated : new Date ( ) . toISOString ( ) ,
120134 } as Record < string , any > ;
121135
@@ -184,11 +198,25 @@ if (fs.existsSync(staticPath)) {
184198 app . get ( '/runtime-config.js' , ( _req : Request , res : Response ) => {
185199 res . type ( 'application/javascript' ) ;
186200 const runtime = {
201+ // Legacy environment variables (default/current environment)
187202 VITE_BACKEND_BASE_URL : process . env . VITE_BACKEND_BASE_URL || '' ,
188203 VITE_LOGIN_BASE_URL : process . env . VITE_LOGIN_BASE_URL || '' ,
189204 VITE_NODE_ENV : process . env . VITE_NODE_ENV || 'production' ,
190205 VITE_OAUTH_WEB_CLIENT_ID : process . env . VITE_OAUTH_WEB_CLIENT_ID || '' ,
191206 VITE_OAUTH_WEB_CLIENT_SECRET : process . env . VITE_OAUTH_WEB_CLIENT_SECRET ? 'SET' : '' ,
207+
208+ // Development environment variables
209+ VITE_DEV_BACKEND_BASE_URL : process . env . VITE_DEV_BACKEND_BASE_URL || '' ,
210+ VITE_DEV_LOGIN_BASE_URL : process . env . VITE_DEV_LOGIN_BASE_URL || '' ,
211+ VITE_DEV_OAUTH_WEB_CLIENT_ID : process . env . VITE_DEV_OAUTH_WEB_CLIENT_ID || '' ,
212+ VITE_DEV_OAUTH_WEB_CLIENT_SECRET : process . env . VITE_DEV_OAUTH_WEB_CLIENT_SECRET ? 'SET' : '' ,
213+
214+ // Production environment variables
215+ VITE_PROD_BACKEND_BASE_URL : process . env . VITE_PROD_BACKEND_BASE_URL || '' ,
216+ VITE_PROD_LOGIN_BASE_URL : process . env . VITE_PROD_LOGIN_BASE_URL || '' ,
217+ VITE_PROD_OAUTH_WEB_CLIENT_ID : process . env . VITE_PROD_OAUTH_WEB_CLIENT_ID || '' ,
218+ VITE_PROD_OAUTH_WEB_CLIENT_SECRET : process . env . VITE_PROD_OAUTH_WEB_CLIENT_SECRET ? 'SET' : '' ,
219+
192220 _generated : new Date ( ) . toISOString ( ) ,
193221 } as Record < string , any > ;
194222 const content = `// Runtime configuration (generated)\nwindow.runtimeConfig = ${ JSON . stringify (
0 commit comments