GoogleCloudPlatform / cloud-sql-nodejs-connector

A JavaScript library for connecting securely to your Cloud SQL instances
Apache License 2.0
67 stars 8 forks source link

Recovery gracefully from sleep #283

Open enocom opened 8 months ago

enocom commented 8 months ago

Feature Description

When a Connector is running on a machine that goes to sleep for more than 1 hour, when the machine awakes, it will have an expired certificate. Given how TLS 1.3 works, the Connector will not see a failed handshake and will force users to restart the process to fix the problem.

Instead, we should check if the certificate retrieved from the cache is invalid. If it is, we should block on a force refresh attempt until we get a refresh cert.

See https://github.com/GoogleCloudPlatform/cloud-sql-proxy/issues/1788 and https://github.com/GoogleCloudPlatform/cloud-sql-go-connector/pull/686 for details.