diff --git a/ui/src/pages/Admin/EnvironmentsPage.tsx b/ui/src/pages/Admin/EnvironmentsPage.tsx index 281f2340..3b6f51d9 100644 --- a/ui/src/pages/Admin/EnvironmentsPage.tsx +++ b/ui/src/pages/Admin/EnvironmentsPage.tsx @@ -333,12 +333,20 @@ function DefaultResourcesSection({ environment, onSave, saving }: { const [memoryReserve, setMemoryReserve] = useState(''); const [cpuShares, setCpuShares] = useState(''); const [cpuLimit, setCpuLimit] = useState(''); + const [routingMode, setRoutingMode] = useState(String(defaults.routingMode ?? 'path')); + const [routingDomain, setRoutingDomain] = useState(String(defaults.routingDomain ?? '')); + const [serverUrl, setServerUrl] = useState(String(defaults.serverUrl ?? '')); + const [envSslOffloading, setEnvSslOffloading] = useState(defaults.sslOffloading !== false); useEffect(() => { setMemoryLimit(String(defaults.memoryLimitMb ?? '')); setMemoryReserve(String(defaults.memoryReserveMb ?? '')); setCpuShares(String(defaults.cpuShares ?? '')); setCpuLimit(String(defaults.cpuLimit ?? '')); + setRoutingMode(String(environment.defaultContainerConfig.routingMode ?? 'path')); + setRoutingDomain(String(environment.defaultContainerConfig.routingDomain ?? '')); + setServerUrl(String(environment.defaultContainerConfig.serverUrl ?? '')); + setEnvSslOffloading(environment.defaultContainerConfig.sslOffloading !== false); setEditing(false); }, [environment.id]); @@ -347,6 +355,10 @@ function DefaultResourcesSection({ environment, onSave, saving }: { setMemoryReserve(String(defaults.memoryReserveMb ?? '')); setCpuShares(String(defaults.cpuShares ?? '')); setCpuLimit(String(defaults.cpuLimit ?? '')); + setRoutingMode(String(defaults.routingMode ?? 'path')); + setRoutingDomain(String(defaults.routingDomain ?? '')); + setServerUrl(String(defaults.serverUrl ?? '')); + setEnvSslOffloading(defaults.sslOffloading !== false); setEditing(false); } @@ -356,6 +368,10 @@ function DefaultResourcesSection({ environment, onSave, saving }: { memoryReserveMb: memoryReserve ? parseInt(memoryReserve) : null, cpuShares: cpuShares ? parseInt(cpuShares) : null, cpuLimit: cpuLimit ? parseFloat(cpuLimit) : null, + routingMode, + routingDomain: routingDomain || null, + serverUrl: serverUrl || null, + sslOffloading: envSslOffloading, }); setEditing(false); } @@ -386,6 +402,29 @@ function DefaultResourcesSection({ environment, onSave, saving }: { {editing ? setCpuLimit(e.target.value)} placeholder="e.g. 1.0" style={{ width: 100 }} /> : {defaults.cpuLimit ? `${defaults.cpuLimit} cores` : '—'}} + + Routing Mode + {editing + ? + : {routingMode === 'subdomain' ? 'Subdomain' : 'Path-based'}} + + Routing Domain + {editing + ? setRoutingDomain(e.target.value)} placeholder="e.g. apps.example.com" style={{ width: 200 }} /> + : {String(defaults.routingDomain || '—')}} + + Server URL + {editing + ? setServerUrl(e.target.value)} placeholder="auto-detect" style={{ width: 200 }} /> + : {String(defaults.serverUrl || '(global default)')}} + + SSL Offloading + {editing + ? setEnvSslOffloading(!envSslOffloading)} /> + : {envSslOffloading ? 'Enabled' : 'Disabled'}}
{editing ? (