New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

azure-kusto-data

Package Overview
Dependencies
Maintainers
2
Versions
72
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

azure-kusto-data - npm Package Compare versions

Comparing version

to
0.1.5

source/clientRequestProperties.js

10

__main.js
const KustoClient = require("./index").Client;
const KustoConnectionBuilder = require("./index").KustoConnectionStringBuilder;
const ClientRequestProperties = require("./index").ClientRequestProperties;

@@ -56,7 +57,12 @@ const pem = `-----BEGIN PRIVATE KEY-----

let q = "print parse_json(\"{ 'X':1 }\"), dynamic(123),dynamic(\"123\"), \"123\", dynamic(\"foo\"), dynamic(null), dynamic({}), dynamic(\"{}\"), dynamic({ \"a\": 123 }), dynamic(''), dynamic({\"c\":[1,2,3], \"d\":{}}), dynamic([\"123\", dynamic(\"123\")])";
let props = new ClientRequestProperties();
props.setTimeout(1);
client.execute("daniel", q, (err, results) => {
if (err) throw new Error(err);
if (err) {
throw new Error(err);
}
console.log(JSON.stringify(results));
console.log(results.primaryResults[0].toString());
});
}, props);
}

@@ -63,0 +69,0 @@

21

example.js
const KustoClient = require("azure-kusto-data").Client;
const KustoConnectionStringBuilder = require("azure-kusto-data").KustoConnectionStringBuilder;
const ClientRequestProperties = require("azure-kusto-data").ClientRequestProperties;

@@ -15,2 +16,20 @@ let clusterName = "";

console.log(results.primaryResults[0].toString());
});
});
// providing ClientRequestProperties
// for a complete list of ClientRequestProperties
// go to https://docs.microsoft.com/en-us/azure/kusto/api/netfx/request-properties#list-of-clientrequestproperties
let clientRequestProps = new ClientRequestProperties();
const ONE_MINUTE = 1000 * 60;
clientRequestProps.setOption("servertimeout", ONE_MINUTE);
kustoClient.execute(
"db",
"TableName | limit 1",
(err, results) => {
if (err) throw new Error(err);
console.log(JSON.stringify(results));
console.log(results.primaryResults[0].toString());
},
clientRequestProps
);
const Client = require("./source/client");
const ClientRequestProperties = require("./source/clientRequestProperties");
const KustoConnectionStringBuilder = require("./source/connectionBuilder");
module.exports = {
Client,
KustoConnectionStringBuilder
KustoConnectionStringBuilder,
ClientRequestProperties
};
{
"name": "azure-kusto-data",
"version": "0.1.4",
"description": "",
"version": "0.1.5",
"description": "Azure Data Explorer Query SDK",
"main": "index.js",

@@ -6,0 +6,0 @@ "engines": {

@@ -72,1 +72,19 @@ # Microsoft Azure Kusto Data Library for Node

## Advanced Usage
### ClientRequestProperties
For more fine grained control, we expose `ClientRequestProperties`.
```javascript
const ClientRequestProperties = require("azure-kusto-data").ClientRequestProperties;
const Client = require("azure-kusto-data").Client;
let client = new Client("http://cluster.region.kusto.windows.net");
let clientRequestProps = new ClientRequestProperties();
clientRequestProps.setOption("servertimeout", 1000 * 60);
client.executeQuery("db","Table | count", (err, results) => { console.log(results);}, clientRequestProps);
```
A full list of those properties can be found at https://docs.microsoft.com/en-us/azure/kusto/api/netfx/request-properties

@@ -0,1 +1,2 @@

const moment = require("moment");
const request = require("request");

@@ -6,4 +7,6 @@ const uuidv4 = require("uuid/v4");

const ConnectionStringBuilder = require("./connectionBuilder");
const ClientRequestProperties = require("./clientRequestProperties");
const pkg = require("../package.json");
module.exports = class KustoClient {

@@ -21,19 +24,19 @@ constructor(kcsb) {

execute(db, query, callback, options) {
execute(db, query, callback, properties) {
if (query.startsWith(".")) {
return this.executeMgmt(db, query, callback, options);
return this.executeMgmt(db, query, callback, properties);
}
return this.executeQuery(db, query, callback, options);
return this.executeQuery(db, query, callback, properties);
}
executeQuery(db, query, callback, options) {
return this._execute(this.endpoints.query, db, query, callback, options);
executeQuery(db, query, callback, properties) {
return this._execute(this.endpoints.query, db, query, callback, properties);
}
executeMgmt(db, query, callback, options) {
return this._execute(this.endpoints.mgmt, db, query, callback, options);
executeMgmt(db, query, callback, properties) {
return this._execute(this.endpoints.mgmt, db, query, callback, properties);
}
_execute(endpoint, db, query, callback, options) {
_execute(endpoint, db, query, callback, properties) {
const payload = {

@@ -44,33 +47,61 @@ "db": db,

let timeout = null;
if (properties != null) {
if (properties instanceof ClientRequestProperties) {
payload.properties = properties.toJson();
timeout = properties.getTimeout();
} else {
timeout = properties.timeout;
}
}
if (timeout == null) {
if (endpoint == this.endpoints.mgmt) {
timeout = this._getDefaultCommandTimeout();
} else {
timeout = this._getDefaultQueryTimeout();
}
}
return this.aadHelper.getAuthHeader((err, authHeader) => {
if (err) return callback(err);
const headers = {
"Authorization": authHeader,
"Accept": "application/json",
"Accept-Encoding": "gzip,deflate",
"Content-Type": "application/json; charset=utf-8",
"Fed": "True",
"x-ms-client-version": `Kusto.Node.Client:${pkg.version}`,
"x-ms-client-request-id": `KNC.execute;${uuidv4()}`,
};
return this._doRequest(endpoint, payload, timeout, properties, callback , authHeader);
});
}
const { timeout } = options || {};
_getDefaultQueryTimeout() {
return moment.duration(4.5, "minutes").asMilliseconds();
}
return request({
method: "POST",
url: endpoint,
headers,
json: payload,
gzip: true,
timeout
}, this._getRequestCallback(options, callback)
);
});
_getDefaultCommandTimeout() {
return moment.duration(10.5, "minutes").asMilliseconds();
}
_doRequest(endpoint, payload, timeout, properties, callback, authHeader) {
const headers = {
"Authorization": authHeader,
"Accept": "application/json",
"Accept-Encoding": "gzip,deflate",
"Content-Type": "application/json; charset=utf-8",
"Fed": "True",
"x-ms-client-version": `Kusto.Node.Client:${pkg.version}`,
"x-ms-client-request-id": `KNC.execute;${uuidv4()}`,
};
_getRequestCallback(options, callback) {
const { raw, partial } = options || {};
return request({
method: "POST",
url: endpoint,
headers,
json: payload,
gzip: true,
timeout
}, this._getRequestCallback(properties, callback)
);
}
_getRequestCallback(properties, callback) {
const { raw } = properties || {};
return (error, response, body) => {

@@ -93,3 +124,3 @@ if (error) return callback(error);

if (kustoResponse.getErrorsCount() > 0 && !partial) {
if (kustoResponse.getErrorsCount() > 0) {
return callback(`Kusto request had errors. ${kustoResponse.getExceptions()}`);

@@ -108,2 +139,2 @@ }

}
};
};

@@ -118,2 +118,2 @@ const KeywordMapping = Object.freeze({

}
};
};

@@ -99,2 +99,2 @@ const moment = require("moment");

}
};
};

@@ -116,2 +116,2 @@ const { KustoResultTable, WellKnownDataSet } = require("./models");

}
};
};

@@ -90,2 +90,2 @@ const { URL } = require("url");

}
};
};