From 14b016016503163026e863becd86f68d4f127237 Mon Sep 17 00:00:00 2001 From: ShadowArcanist <162910371+ShadowArcanist@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:55:47 +0100 Subject: [PATCH] feat: added required timeout range to database proxy --- app/Actions/Database/StartDatabaseProxy.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/Actions/Database/StartDatabaseProxy.php b/app/Actions/Database/StartDatabaseProxy.php index 2ae672402..c44a69737 100644 --- a/app/Actions/Database/StartDatabaseProxy.php +++ b/app/Actions/Database/StartDatabaseProxy.php @@ -22,6 +22,17 @@ class StartDatabaseProxy public function handle(StandaloneRedis|StandalonePostgresql|StandaloneMongodb|StandaloneMysql|StandaloneMariadb|StandaloneKeydb|StandaloneDragonfly|StandaloneClickhouse|ServiceDatabase $database) { + // Validate proxy timeout + if (!isset($database->proxy_timeout) || $database->proxy_timeout === null) { + throw new \Exception('Proxy timeout is required.'); + } + if ($database->proxy_timeout <= 0) { + throw new \Exception('Proxy timeout must be greater than 0.'); + } + if ($database->proxy_timeout > 86400) { + throw new \Exception('Proxy timeout must not exceed 86400 seconds (24 hours).'); + } + $databaseType = $database->database_type; $network = data_get($database, 'destination.network'); $server = data_get($database, 'destination.server'); @@ -56,7 +67,7 @@ class StartDatabaseProxy $configuration_dir = '/var/lib/docker/volumes/coolify_dev_coolify_data/_data/databases/'.$database->uuid.'/proxy'; } $proxyTimeout = $database->proxy_timeout ?? 1800; // Default to 30 minutes if not set - $timeoutDirective = $proxyTimeout > 0 ? "proxy_timeout {$proxyTimeout}s;" : ""; + $timeoutDirective = "proxy_timeout {$proxyTimeout}s;"; $nginxconf = <<