Merge remote-tracking branch 'origin' into sriram/postgres-config-page-tls-regrouping

This commit is contained in:
yesoreyeram
2025-07-07 16:27:12 +01:00
114 changed files with 3413 additions and 1045 deletions
@@ -4,6 +4,7 @@ import (
"context"
"database/sql"
"encoding/json"
"errors"
"fmt"
"reflect"
"strconv"
@@ -172,6 +173,26 @@ func escape(input string) string {
func (s *Service) generateConnectionString(dsInfo sqleng.DataSourceInfo) (string, error) {
logger := s.logger
connStr, err := getInitialConnectionString(dsInfo, logger)
if err != nil {
return connStr, err
}
connStr, err = getTLSIncludedConnectionString(connStr, s.tlsManager, dsInfo, logger)
if err != nil {
return connStr, err
}
logger.Debug("Generated Postgres connection string successfully")
return connStr, nil
}
func getInitialConnectionString(dsInfo sqleng.DataSourceInfo, logger log.Logger) (string, error) {
if dsInfo.JsonData.ConnectionType == sqleng.ConnectionTypeConnectionString {
connStr := dsInfo.DecryptedSecureJSONData["connectionString"]
if connStr == "" {
return connStr, errors.New("Invalid/Empty connection string")
}
return connStr, nil
}
var host string
var port int
if strings.HasPrefix(dsInfo.URL, "/") {
@@ -216,8 +237,11 @@ func (s *Service) generateConnectionString(dsInfo sqleng.DataSourceInfo) (string
if port > 0 {
connStr += fmt.Sprintf(" port=%d", port)
}
return connStr, nil
}
tlsSettings, err := s.tlsManager.getTLSSettings(dsInfo)
func getTLSIncludedConnectionString(connStr string, tlsManager tlsSettingsProvider, dsInfo sqleng.DataSourceInfo, logger log.Logger) (string, error) {
tlsSettings, err := tlsManager.getTLSSettings(dsInfo)
if err != nil {
return "", err
}
@@ -246,7 +270,6 @@ func (s *Service) generateConnectionString(dsInfo sqleng.DataSourceInfo) (string
return "", fmt.Errorf("TLS/SSL client certificate and key must both be specified")
}
logger.Debug("Generated Postgres connection string successfully")
return connStr, nil
}