From e37003442af4fd018531213e02b07154917e45e1 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sat, 11 Apr 2026 12:01:01 +0200 Subject: [PATCH] feat: add route control and replay toggles to environment defaults Admins can now disable route control and replay per environment via the Default Resource Limits section. Both default to enabled. Apps in the environment inherit these defaults unless overridden per-app. Co-Authored-By: Claude Opus 4.6 (1M context) --- ui/src/pages/Admin/EnvironmentsPage.tsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ui/src/pages/Admin/EnvironmentsPage.tsx b/ui/src/pages/Admin/EnvironmentsPage.tsx index 678c129a..ab2fc8fd 100644 --- a/ui/src/pages/Admin/EnvironmentsPage.tsx +++ b/ui/src/pages/Admin/EnvironmentsPage.tsx @@ -350,6 +350,8 @@ function DefaultResourcesSection({ environment, onSave, saving }: { const [routingDomain, setRoutingDomain] = useState(String(defaults.routingDomain ?? '')); const [serverUrl, setServerUrl] = useState(String(defaults.serverUrl ?? '')); const [envSslOffloading, setEnvSslOffloading] = useState(defaults.sslOffloading !== false); + const [envRouteControl, setEnvRouteControl] = useState(defaults.routeControlEnabled !== false); + const [envReplay, setEnvReplay] = useState(defaults.replayEnabled !== false); useEffect(() => { setMemoryLimit(String(defaults.memoryLimitMb ?? '')); @@ -360,6 +362,8 @@ function DefaultResourcesSection({ environment, onSave, saving }: { setRoutingDomain(String(environment.defaultContainerConfig.routingDomain ?? '')); setServerUrl(String(environment.defaultContainerConfig.serverUrl ?? '')); setEnvSslOffloading(environment.defaultContainerConfig.sslOffloading !== false); + setEnvRouteControl(environment.defaultContainerConfig.routeControlEnabled !== false); + setEnvReplay(environment.defaultContainerConfig.replayEnabled !== false); setEditing(false); }, [environment.id]); @@ -372,6 +376,8 @@ function DefaultResourcesSection({ environment, onSave, saving }: { setRoutingDomain(String(defaults.routingDomain ?? '')); setServerUrl(String(defaults.serverUrl ?? '')); setEnvSslOffloading(defaults.sslOffloading !== false); + setEnvRouteControl(defaults.routeControlEnabled !== false); + setEnvReplay(defaults.replayEnabled !== false); setEditing(false); } @@ -385,6 +391,8 @@ function DefaultResourcesSection({ environment, onSave, saving }: { routingDomain: routingDomain || null, serverUrl: serverUrl || null, sslOffloading: envSslOffloading, + routeControlEnabled: envRouteControl, + replayEnabled: envReplay, }); setEditing(false); } @@ -443,6 +451,16 @@ function DefaultResourcesSection({ environment, onSave, saving }: { {editing ? setEnvSslOffloading(!envSslOffloading)} /> : {envSslOffloading ? 'Enabled' : 'Disabled'}} + + Route Control + {editing + ? setEnvRouteControl(!envRouteControl)} /> + : {envRouteControl ? 'Enabled' : 'Disabled'}} + + Replay + {editing + ? setEnvReplay(!envReplay)} /> + : {envReplay ? 'Enabled' : 'Disabled'}}
{editing ? (