From 8dada50e91112169d6c97ff9afd2be8250fb2ff0 Mon Sep 17 00:00:00 2001 From: ShadowArcanist <162910371+ShadowArcanist@users.noreply.github.com> Date: Tue, 23 Dec 2025 17:52:29 +0100 Subject: [PATCH] feat: extend database proxy timeout cap to support week-long ETL jobs --- app/Actions/Database/StartDatabaseProxy.php | 4 ++-- app/Livewire/Project/Database/Clickhouse/General.php | 2 +- app/Livewire/Project/Database/Dragonfly/General.php | 2 +- app/Livewire/Project/Database/Keydb/General.php | 2 +- app/Livewire/Project/Database/Mariadb/General.php | 3 +-- app/Livewire/Project/Database/Mongodb/General.php | 2 +- app/Livewire/Project/Database/Mysql/General.php | 2 +- app/Livewire/Project/Database/Postgresql/General.php | 2 +- app/Livewire/Project/Database/Redis/General.php | 2 +- app/Livewire/Project/Service/Database.php | 2 +- .../livewire/project/database/clickhouse/general.blade.php | 2 +- .../livewire/project/database/dragonfly/general.blade.php | 2 +- .../views/livewire/project/database/keydb/general.blade.php | 2 +- .../views/livewire/project/database/mariadb/general.blade.php | 2 +- .../views/livewire/project/database/mongodb/general.blade.php | 2 +- .../views/livewire/project/database/mysql/general.blade.php | 2 +- .../livewire/project/database/postgresql/general.blade.php | 2 +- .../views/livewire/project/database/redis/general.blade.php | 2 +- resources/views/livewire/project/service/database.blade.php | 2 +- 19 files changed, 20 insertions(+), 21 deletions(-) diff --git a/app/Actions/Database/StartDatabaseProxy.php b/app/Actions/Database/StartDatabaseProxy.php index c44a69737..4374c6eac 100644 --- a/app/Actions/Database/StartDatabaseProxy.php +++ b/app/Actions/Database/StartDatabaseProxy.php @@ -29,8 +29,8 @@ class StartDatabaseProxy 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).'); + if ($database->proxy_timeout > 31536000) { + throw new \Exception('Proxy timeout must not exceed 31536000 seconds (1 year).'); } $databaseType = $database->database_type; diff --git a/app/Livewire/Project/Database/Clickhouse/General.php b/app/Livewire/Project/Database/Clickhouse/General.php index 35992e65f..dda8f32f9 100644 --- a/app/Livewire/Project/Database/Clickhouse/General.php +++ b/app/Livewire/Project/Database/Clickhouse/General.php @@ -82,7 +82,7 @@ class General extends Component 'portsMappings' => 'nullable|string', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'customDockerRunOptions' => 'nullable|string', 'dbUrl' => 'nullable|string', 'dbUrlPublic' => 'nullable|string', diff --git a/app/Livewire/Project/Database/Dragonfly/General.php b/app/Livewire/Project/Database/Dragonfly/General.php index 737f71de8..6a5d693ad 100644 --- a/app/Livewire/Project/Database/Dragonfly/General.php +++ b/app/Livewire/Project/Database/Dragonfly/General.php @@ -93,7 +93,7 @@ class General extends Component 'portsMappings' => 'nullable|string', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'customDockerRunOptions' => 'nullable|string', 'dbUrl' => 'nullable|string', 'dbUrlPublic' => 'nullable|string', diff --git a/app/Livewire/Project/Database/Keydb/General.php b/app/Livewire/Project/Database/Keydb/General.php index bf4a3abdf..f5cf75bc8 100644 --- a/app/Livewire/Project/Database/Keydb/General.php +++ b/app/Livewire/Project/Database/Keydb/General.php @@ -96,7 +96,7 @@ class General extends Component 'portsMappings' => 'nullable|string', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'customDockerRunOptions' => 'nullable|string', 'dbUrl' => 'nullable|string', 'dbUrlPublic' => 'nullable|string', diff --git a/app/Livewire/Project/Database/Mariadb/General.php b/app/Livewire/Project/Database/Mariadb/General.php index a4c529ee5..048e3866b 100644 --- a/app/Livewire/Project/Database/Mariadb/General.php +++ b/app/Livewire/Project/Database/Mariadb/General.php @@ -81,8 +81,7 @@ class General extends Component 'portsMappings' => 'nullable', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'isLogDrainEnabled' => 'nullable|boolean', 'customDockerRunOptions' => 'nullable', 'enableSsl' => 'boolean', diff --git a/app/Livewire/Project/Database/Mongodb/General.php b/app/Livewire/Project/Database/Mongodb/General.php index 03bc6be5f..d0f8961d6 100644 --- a/app/Livewire/Project/Database/Mongodb/General.php +++ b/app/Livewire/Project/Database/Mongodb/General.php @@ -80,7 +80,7 @@ class General extends Component 'portsMappings' => 'nullable', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'isLogDrainEnabled' => 'nullable|boolean', 'customDockerRunOptions' => 'nullable', 'enableSsl' => 'boolean', diff --git a/app/Livewire/Project/Database/Mysql/General.php b/app/Livewire/Project/Database/Mysql/General.php index 2cec4306c..21d7554fa 100644 --- a/app/Livewire/Project/Database/Mysql/General.php +++ b/app/Livewire/Project/Database/Mysql/General.php @@ -83,7 +83,7 @@ class General extends Component 'portsMappings' => 'nullable', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'isLogDrainEnabled' => 'nullable|boolean', 'customDockerRunOptions' => 'nullable', 'enableSsl' => 'boolean', diff --git a/app/Livewire/Project/Database/Postgresql/General.php b/app/Livewire/Project/Database/Postgresql/General.php index d34418157..119bea8f5 100644 --- a/app/Livewire/Project/Database/Postgresql/General.php +++ b/app/Livewire/Project/Database/Postgresql/General.php @@ -95,7 +95,7 @@ class General extends Component 'portsMappings' => 'nullable', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'isLogDrainEnabled' => 'nullable|boolean', 'customDockerRunOptions' => 'nullable', 'enableSsl' => 'boolean', diff --git a/app/Livewire/Project/Database/Redis/General.php b/app/Livewire/Project/Database/Redis/General.php index e5d8d14bd..00c3d31d3 100644 --- a/app/Livewire/Project/Database/Redis/General.php +++ b/app/Livewire/Project/Database/Redis/General.php @@ -76,7 +76,7 @@ class General extends Component 'portsMappings' => 'nullable', 'isPublic' => 'nullable|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'isLogDrainEnabled' => 'nullable|boolean', 'customDockerRunOptions' => 'nullable', 'redisUsername' => 'required', diff --git a/app/Livewire/Project/Service/Database.php b/app/Livewire/Project/Service/Database.php index 0e1eb3e30..e53fb682b 100644 --- a/app/Livewire/Project/Service/Database.php +++ b/app/Livewire/Project/Service/Database.php @@ -45,7 +45,7 @@ class Database extends Component 'image' => 'required', 'excludeFromStatus' => 'required|boolean', 'publicPort' => 'nullable|integer', - 'proxyTimeout' => 'nullable|integer|min:0|max:86400', + 'proxyTimeout' => 'nullable|integer|min:0|max:31536000', 'isPublic' => 'required|boolean', 'isLogDrainEnabled' => 'required|boolean', ]; diff --git a/resources/views/livewire/project/database/clickhouse/general.blade.php b/resources/views/livewire/project/database/clickhouse/general.blade.php index bff3cadd1..46e778ce5 100644 --- a/resources/views/livewire/project/database/clickhouse/general.blade.php +++ b/resources/views/livewire/project/database/clickhouse/general.blade.php @@ -81,7 +81,7 @@ canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/database/dragonfly/general.blade.php b/resources/views/livewire/project/database/dragonfly/general.blade.php index 1537720f1..c960e9dc5 100644 --- a/resources/views/livewire/project/database/dragonfly/general.blade.php +++ b/resources/views/livewire/project/database/dragonfly/general.blade.php @@ -118,7 +118,7 @@ canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/database/keydb/general.blade.php b/resources/views/livewire/project/database/keydb/general.blade.php index 650ef6e33..bfcc1cbb5 100644 --- a/resources/views/livewire/project/database/keydb/general.blade.php +++ b/resources/views/livewire/project/database/keydb/general.blade.php @@ -118,7 +118,7 @@ canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/database/mariadb/general.blade.php b/resources/views/livewire/project/database/mariadb/general.blade.php index 6154f9052..75e7321b0 100644 --- a/resources/views/livewire/project/database/mariadb/general.blade.php +++ b/resources/views/livewire/project/database/mariadb/general.blade.php @@ -142,7 +142,7 @@ id="publicPort" label="Public Port" canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/database/mongodb/general.blade.php b/resources/views/livewire/project/database/mongodb/general.blade.php index b9098ae7e..e6754798c 100644 --- a/resources/views/livewire/project/database/mongodb/general.blade.php +++ b/resources/views/livewire/project/database/mongodb/general.blade.php @@ -156,7 +156,7 @@ id="publicPort" label="Public Port" canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/database/mysql/general.blade.php b/resources/views/livewire/project/database/mysql/general.blade.php index e49b3310e..5c20a46ac 100644 --- a/resources/views/livewire/project/database/mysql/general.blade.php +++ b/resources/views/livewire/project/database/mysql/general.blade.php @@ -158,7 +158,7 @@ id="publicPort" label="Public Port" canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/database/postgresql/general.blade.php b/resources/views/livewire/project/database/postgresql/general.blade.php index 42b43e9c0..785c6b259 100644 --- a/resources/views/livewire/project/database/postgresql/general.blade.php +++ b/resources/views/livewire/project/database/postgresql/general.blade.php @@ -168,7 +168,7 @@ label="Public Port" canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/database/redis/general.blade.php b/resources/views/livewire/project/database/redis/general.blade.php index b85a76424..1c9809b51 100644 --- a/resources/views/livewire/project/database/redis/general.blade.php +++ b/resources/views/livewire/project/database/redis/general.blade.php @@ -137,7 +137,7 @@ id="publicPort" label="Public Port" canGate="update" :canResource="$database" /> diff --git a/resources/views/livewire/project/service/database.blade.php b/resources/views/livewire/project/service/database.blade.php index 6d6d27541..87f3b0924 100644 --- a/resources/views/livewire/project/service/database.blade.php +++ b/resources/views/livewire/project/service/database.blade.php @@ -34,7 +34,7 @@ label="Public Port" /> + helper="Maximum time in seconds to keep connections open. Default is 1800 seconds (30 minutes) and max is 31536000 seconds (1 year)" /> @if ($db_url_public)