Skip to content

Commit 2dbdbdf

Browse files
davidemeclaude
andauthored
Replace unixSocketPath with ipTypes for Cloud SQL TCP (#402)
* fix(java,kotlin): replace unixSocketPath with ipTypes for Cloud SQL TCP connection Switch Cloud SQL connector from Unix socket to TCP+TLS by removing unixSocketPath and setting ipTypes=PUBLIC,PRIVATE, allowing the Java connector to establish direct connections without a proxy sidecar. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * test(java): update DataSourceConfigTest to reflect ipTypes over unixSocketPath Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 7bd1391 commit 2dbdbdf

3 files changed

Lines changed: 6 additions & 4 deletions

File tree

src/java/src/main/java/org/openapitools/config/DataSourceConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ private void configureCloudSqlProperties(HikariConfig config, String jdbcUrl) {
205205
}
206206

207207
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.postgres.SocketFactory");
208-
config.addDataSourceProperty("unixSocketPath", instanceUnixSocket);
208+
config.addDataSourceProperty("ipTypes", "PUBLIC,PRIVATE");
209209
String cloudSqlInstance = extractCloudSqlInstance(instanceUnixSocket);
210210
if (isNotBlank(cloudSqlInstance)) {
211211
config.addDataSourceProperty("cloudSqlInstance", cloudSqlInstance);

src/java/src/test/java/org/openapitools/config/DataSourceConfigTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,9 @@ void hikariConfig_ShouldNormalizeCloudSqlSocketStyleDatabaseUrl() throws Excepti
9494
+ "&password=redacted-password");
9595
assertThat(result.getDataSourceProperties())
9696
.containsEntry("socketFactory", "com.google.cloud.sql.postgres.SocketFactory")
97-
.containsEntry("unixSocketPath", "/cloudsql/project-id:region:instance-id")
97+
.containsEntry("ipTypes", "PUBLIC,PRIVATE")
9898
.containsEntry("cloudSqlInstance", "project-id:region:instance-id")
99+
.doesNotContainKey("unixSocketPath")
99100
.doesNotContainKey("cloudSqlRefreshStrategy");
100101
}
101102

@@ -120,8 +121,9 @@ void hikariConfig_ShouldSetCloudSqlRefreshStrategyOnCloudRunInSocketMode() throw
120121

121122
assertThat(result.getDataSourceProperties())
122123
.containsEntry("socketFactory", "com.google.cloud.sql.postgres.SocketFactory")
123-
.containsEntry("unixSocketPath", "/cloudsql/project-id:region:instance-id")
124+
.containsEntry("ipTypes", "PUBLIC,PRIVATE")
124125
.containsEntry("cloudSqlInstance", "project-id:region:instance-id")
126+
.doesNotContainKey("unixSocketPath")
125127
.containsEntry("cloudSqlRefreshStrategy", "lazy");
126128
}
127129

src/kotlin/src/main/kotlin/com/lampcontrol/database/DatabaseFactory.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ object DatabaseFactory {
7575
}
7676

7777
hikariConfig.addDataSourceProperty("socketFactory", CLOUD_SQL_SOCKET_FACTORY)
78-
hikariConfig.addDataSourceProperty("unixSocketPath", config.host)
78+
hikariConfig.addDataSourceProperty("ipTypes", "PUBLIC,PRIVATE")
7979
val cloudSqlInstance = extractCloudSqlInstance(config.host)
8080
if (cloudSqlInstance != null) {
8181
hikariConfig.addDataSourceProperty("cloudSqlInstance", cloudSqlInstance)

0 commit comments

Comments
 (0)