/claim #7743
The nginx TCP proxy that fronts publicly exposed databases uses the default proxy_timeout of 10 minutes, which drops idle connections and kills long-running queries (like large SELECT * exports). This PR adds a configurable “Proxy Timeout” field to all 8 database types so users can control how long an idle connection is kept alive.
How it works:
public_port_timeout column (integer, default 0) added to all 9 database tables (8 standalone + service_databases)0 means “no timeout” – internally mapped to 1 year (31,536,000 seconds) via proxy_timeout and proxy_connect_timeout in the nginx stream configBackend:
app/Actions/Database/StartDatabaseProxy.php – added proxy_timeout and proxy_connect_timeout directives to the nginx stream config, with a resolveProxyTimeout() helper$publicPortTimeout property, validation rules, and syncData mappingpublic_port_timeout to all database tablesFrontend:
Tests:
resolveProxyTimeout covering zero, null, and positive valuesproxy_timeout 31536000sproxy_timeout 1800sNenad Ilic
@nenadilic84
Zach Latta
@zachlatta