in src/Program.cs [535:572]
private KustoConnectionStringBuilder CreateKcsbFromArgs(string connectionString = null)
{
var kcsb = new KustoConnectionStringBuilder(connectionString ?? m_args.ConnectionString);
if (string.IsNullOrWhiteSpace(m_args.DatabaseName))
{
m_args.DatabaseName = kcsb.InitialCatalog;
}
else
{
kcsb.InitialCatalog = m_args.DatabaseName;
}
// Add a touch for managed identities:
if (!string.IsNullOrWhiteSpace(m_args.ConnectWithManagedIdentity))
{
if (m_args.ConnectWithAzCli)
{
throw new UtilsArgumentException("Invalid combination of command line arguments. Cannot connect to Kusto using both Managed-Identity and AzCli.", null);
}
if (kcsb.FederatedSecurity || kcsb.DstsFederatedSecurity)
{
kcsb.EmbeddedManagedIdentity = m_args.ConnectWithManagedIdentity;
}
else
{
throw new UtilsArgumentException($"Command line arguments error. 'ManagedIdentity' can only be used with federated authentication.", null);
}
}
else if (m_args.ConnectWithAzCli)
{
kcsb = kcsb.WithAadAzCliAuthentication();
}
kcsb.SetConnectorDetails("LightIngest", Assembly.GetExecutingAssembly().GetProductVersionString() , sendUser: true);
return kcsb;
}