feat: add route control and replay toggles to environment defaults
All checks were successful
CI / cleanup-branch (push) Has been skipped
CI / build (push) Successful in 1m32s
CI / docker (push) Successful in 1m12s
CI / deploy-feature (push) Has been skipped
CI / deploy (push) Successful in 36s

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) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-11 12:01:01 +02:00
parent 3501f32110
commit e37003442a

View File

@@ -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
? <Toggle checked={envSslOffloading} onChange={() => setEnvSslOffloading(!envSslOffloading)} />
: <span className={styles.metaValue}>{envSslOffloading ? 'Enabled' : 'Disabled'}</span>}
<span className={styles.metaLabel}>Route Control</span>
{editing
? <Toggle checked={envRouteControl} onChange={() => setEnvRouteControl(!envRouteControl)} />
: <span className={styles.metaValue}>{envRouteControl ? 'Enabled' : 'Disabled'}</span>}
<span className={styles.metaLabel}>Replay</span>
{editing
? <Toggle checked={envReplay} onChange={() => setEnvReplay(!envReplay)} />
: <span className={styles.metaValue}>{envReplay ? 'Enabled' : 'Disabled'}</span>}
</div>
<div style={{ marginTop: 8, display: 'flex', gap: 8, justifyContent: 'flex-end' }}>
{editing ? (