feat: Add SSL/TLS Support to DataCloud JDBC Driver#89
Merged
praveen2450 merged 20 commits intoforcedotcom:mainfrom Jan 22, 2026
Merged
Conversation
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnection.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnection.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnection.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnection.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnection.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/test/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnectionTest.java
Outdated
Show resolved
Hide resolved
vogelsgesang
reviewed
Sep 6, 2025
Contributor
vogelsgesang
left a comment
There was a problem hiding this comment.
the overall behavior looks good now. I think we should implement the logic in a slightly different way, though
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnection.java
Outdated
Show resolved
Hide resolved
0cec757 to
a2f46c4
Compare
Codecov Report❌ Patch coverage is ❌ Your patch status has failed because the patch coverage (38.53%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #89 +/- ##
============================================
- Coverage 84.00% 82.74% -1.26%
- Complexity 1288 1301 +13
============================================
Files 106 107 +1
Lines 3814 3918 +104
Branches 382 404 +22
============================================
+ Hits 3204 3242 +38
- Misses 445 493 +48
- Partials 165 183 +18
🚀 New features to boost your workflow:
|
…ame system_truststore to default_tls to match standard naming conventions
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/util/DirectDataCloudConnection.java
Outdated
Show resolved
Hide resolved
...re/src/main/java/com/salesforce/datacloud/jdbc/core/DirectDataCloudConnectionProperties.java
Outdated
Show resolved
Hide resolved
- Replace DirectDataCloudConnectionProperties in favour of SslProperties for SSL configuration and channel building - Remove DirectDataCloudConnection
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/HyperDatasource.java
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/HyperDatasource.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/test/java/com/salesforce/datacloud/jdbc/core/DataCloudConnectionTest.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Show resolved
Hide resolved
-Update LocalHyperTestBase to use builder pattern -Clean up SslProperties
vogelsgesang
reviewed
Nov 4, 2025
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/HyperDatasource.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/HyperDatasource.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/HyperDatasource.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/test/java/com/salesforce/datacloud/jdbc/hyper/LocalHyperTestBase.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
…ern and improve validation - Updated tests to create real temporary files for validation
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/HyperDatasource.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
vogelsgesang
approved these changes
Jan 20, 2026
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/HyperDatasource.java
Show resolved
Hide resolved
mkaufmann
approved these changes
Jan 21, 2026
jdbc-core/src/main/java/com/salesforce/datacloud/jdbc/core/SslProperties.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/test/java/com/salesforce/datacloud/jdbc/core/SslPropertiesTest.java
Show resolved
Hide resolved
jdbc-core/src/test/java/com/salesforce/datacloud/jdbc/hyper/LocalHyperTestBase.java
Outdated
Show resolved
Hide resolved
jdbc-core/src/test/java/com/salesforce/datacloud/jdbc/hyper/LocalHyperTestBase.java
Outdated
Show resolved
Hide resolved
mkaufmann
approved these changes
Jan 22, 2026
KaviarasuSakthivadivel
pushed a commit
that referenced
this pull request
Feb 5, 2026
🤖 I have created a release *beep* *boop* --- ## [0.42.0](0.41.0...v0.42.0) (2026-02-05) ### Features * Add SSL/TLS Support to DataCloud JDBC Driver ([#89](#89)) ([9123c1b](9123c1b)) * implement automated release pipeline using Release Please ([#139](#139)) ([268eb2e](268eb2e)) * Provide a low level Async Interface ([#150](#150)) ([b1fba90](b1fba90)) * Support PreparedStatement.getMetaData() ([#151](#151)) ([52448d9](52448d9)) ### Bug Fixes * Breaking - Remove data loss for slow readers ([#142](#142)) ([1ff41dc](1ff41dc)) * **ci:** remove explicit SNAPSHOT version from snapshot workflow ([#141](#141)) ([b30c3fe](b30c3fe)) * **ci:** synchronize Release Please state to resolve empty change set error ([#143](#143)) ([8518b23](8518b23)) * **ci:** use simple release-type with extra-files for Gradle project ([#145](#145)) ([5a8aac4](5a8aac4)) ### Performance Improvements * Optimize ResultSet column lookup with HashMap-based indexing ([#138](#138)) ([b8c5eb9](b8c5eb9)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
KaviarasuSakthivadivel
pushed a commit
that referenced
this pull request
Feb 5, 2026
🤖 I have created a release *beep* *boop* --- ## [0.42.0](0.41.0...v0.42.0) (2026-02-05) ### Features * Add SSL/TLS Support to DataCloud JDBC Driver ([#89](#89)) ([9123c1b](9123c1b)) * implement automated release pipeline using Release Please ([#139](#139)) ([268eb2e](268eb2e)) * Provide a low level Async Interface ([#150](#150)) ([b1fba90](b1fba90)) * Support PreparedStatement.getMetaData() ([#151](#151)) ([52448d9](52448d9)) ### Bug Fixes * Breaking - Remove data loss for slow readers ([#142](#142)) ([1ff41dc](1ff41dc)) * **ci:** remove explicit SNAPSHOT version from snapshot workflow ([#141](#141)) ([b30c3fe](b30c3fe)) * **ci:** synchronize Release Please state to resolve empty change set error ([#143](#143)) ([8518b23](8518b23)) * **ci:** use simple release-type with extra-files for Gradle project ([#145](#145)) ([5a8aac4](5a8aac4)) * Remove comments from JDBC driver version ([#153](#153)) ([32f7216](32f7216)) ### Performance Improvements * Optimize ResultSet column lookup with HashMap-based indexing ([#138](#138)) ([b8c5eb9](b8c5eb9)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔒 Add SSL/TLS Support to DataCloud JDBC Driver
This PR implements comprehensive SSL/TLS support for the DataCloud JDBC driver, enabling secure connections with automatic SSL mode detection and flexible certificate configuration.
📋 Changes Made
Core SSL Implementation
SslPropertiesclass with SSL/TLS auto-detectionSslModeenum with four auto-detected modes:DISABLED,DEFAULT_TLS,ONE_SIDED_TLS,MUTUAL_TLSGrpcSslContextsandNettyChannelBuilderSSL Mode
The driver automatically determines the SSL mode based on certificate properties:
DEFAULT_TLS- SSL with Java's system truststore (secure by default)ONE_SIDED_TLS- SSL with custom trust verification (JKS truststore or PEM CA cert)MUTUAL_TLS- Two-sided TLS with client certificate authenticationDISABLED- Plaintext connections (testing only, viassl.disabled=true)This wont break for clients using salesforce-datacloud jdbc driver, this is only a breaking change for salesforce-hyper,
Plaintext Connections: For plaintext connections (local testing), you must now explicitly pass
ssl.disabled=true:This change ensures security by default - all connections now use SSL unless explicitly disabled.
🔧 Configuration Examples
System Truststore SSL (Default - No Config Needed)
Custom Trust with JKS Truststore
Custom Trust with PEM CA Certificate
Mutual TLS with PEM Certificates
Mixed Configuration (JKS Trust + PEM Client Certs)
Plaintext Connection (Testing Only)
Spark DataSource Integration