in azkustodata/kcsb.go [111:182]
func (kcsb *ConnectionStringBuilder) ConnectionString(includeSecrets bool) (string, error) {
builder := strings.Builder{}
writeValue := func(k string, v string) error {
if isEmpty(v) {
return nil
}
keyword, err := keywords.GetKeyword(k)
if err != nil {
return err
}
builder.WriteString(keyword.Name)
builder.WriteRune('=')
if keyword.Secret && !includeSecrets {
builder.WriteString(SecretReplacement)
} else {
builder.WriteString(v)
}
builder.WriteRune(';')
return nil
}
if err := writeValue(keywords.DataSource, kcsb.DataSource); err != nil {
return "", err
}
if err := writeValue(keywords.InitialCatalog, kcsb.InitialCatalog); err != nil {
return "", err
}
if kcsb.AadFederatedSecurity {
if err := writeValue(keywords.FederatedSecurity, "true"); err != nil {
return "", err
}
}
if err := writeValue(keywords.ApplicationClientId, kcsb.ApplicationClientId); err != nil {
return "", err
}
if err := writeValue(keywords.UserId, kcsb.AadUserID); err != nil {
return "", err
}
if err := writeValue(keywords.AuthorityId, kcsb.AuthorityId); err != nil {
return "", err
}
if err := writeValue(keywords.ApplicationToken, kcsb.ApplicationToken); err != nil {
return "", err
}
if err := writeValue(keywords.UserToken, kcsb.UserToken); err != nil {
return "", err
}
if err := writeValue(keywords.ApplicationKey, kcsb.ApplicationKey); err != nil {
return "", err
}
if kcsb.SendCertificateChain {
if err := writeValue(keywords.ApplicationCertificateX5C, "true"); err != nil {
return "", err
}
}
if len(kcsb.ApplicationCertificateBytes) != 0 {
if err := writeValue(keywords.ApplicationCertificateBlob, base64.StdEncoding.EncodeToString(kcsb.ApplicationCertificateBytes)); err != nil {
return "", err
}
}
s := builder.String()
if len(s) > 0 {
s = s[:len(s)-1] // remove trailing ';'
}
return s, nil
}