fix(proxy): add validation and normalization for database proxy timeout

- Extract proxy timeout configuration logic into dedicated method
- Add min:1 validation rule for publicPortTimeout
- Normalize invalid timeout values (null, 0, negative) to default 3600s
- Add tests for timeout configuration normalization and validation
This commit is contained in:
Andras Bacsai
2026-03-10 09:59:19 +01:00
parent 4615cfd007
commit 184fbb98f3
4 changed files with 34 additions and 3 deletions
+10 -2
View File
@@ -54,8 +54,7 @@ class StartDatabaseProxy
if (isDev()) {
$configuration_dir = '/var/lib/docker/volumes/coolify_dev_coolify_data/_data/databases/'.$database->uuid.'/proxy';
}
$timeout = $database->public_port_timeout ?? 3600;
$timeoutConfig = $timeout === 0 ? 'proxy_timeout 0;' : "proxy_timeout {$timeout}s;";
$timeoutConfig = $this->buildProxyTimeoutConfig($database->public_port_timeout);
$nginxconf = <<<EOF
user nginx;
worker_processes auto;
@@ -163,4 +162,13 @@ class StartDatabaseProxy
return false;
}
private function buildProxyTimeoutConfig(?int $timeout): string
{
if ($timeout === null || $timeout < 1) {
$timeout = 3600;
}
return "proxy_timeout {$timeout}s;";
}
}