public static async start()

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");
    }