in packages/quick_start/src/SampleApp.ts [66:116]
public static async start() {
Console.log("Kusto sample app is starting...");
const config = await this.loadConfigs(CONFIG_FILE_NAME);
this.waitForUser = config.waitForUser;
if (config.authenticationMode === AuthenticationModeOptions.UserPrompt) {
await this.waitForUserToProceed(
"You will be prompted *twice* for credentials during this script. Please return to the console after" + " authenticating.",
);
}
const kustoConnectionString = await Authentication.generateConnectionString(
config.kustoUri,
config.authenticationMode,
config.certificatePath,
config.certificatePassword,
config.applicationId,
config.tenantId,
);
const ingestConnectionString = await Authentication.generateConnectionString(
config.ingestUri,
config.authenticationMode,
config.certificatePath,
config.certificatePassword,
config.applicationId,
config.tenantId,
);
// Tip: Avoid creating a new Kusto/ingest client for each use.Instead, create the clients once and reuse them.
if (!kustoConnectionString || !ingestConnectionString) {
Utils.errorHandler("Connection String error. Please validate your configuration file.");
} else {
const kustoClient = new KustoClient(kustoConnectionString);
const ingestClient = new IngestClient(ingestConnectionString);
const ingestServiceCmdClient = new KustoClient(ingestConnectionString);
await this.preIngestionQuerying(config, kustoClient, ingestServiceCmdClient);
if (config.ingestData) {
await this.ingestion(config, kustoClient, ingestClient);
}
if (config.queryData) {
await this.postIngestionQuerying(kustoClient, config.databaseName, config.tableName, config.ingestData);
}
// Close the clients at the end of usage.
kustoClient.close();
ingestClient.close();
}
Console.log("\nKusto sample app done");
}