Releases: ClickHouse/clickhouse-js
Release list
1.10.0
New features
-
Added support for JWT authentication (ClickHouse Cloud feature) in both Node.js and Web API packages (#270). JWT token can be set via
access_tokenclient configuration option.const client = createClient({ // ... access_token: '<JWT access token>', })
Access token can also be configured via the URL params, e.g.,
https://host:port?access_token=....
It is also possible to override the access token for a particular request (seeBaseQueryParams.authfor more details).NB: do not mix access token and username/password credentials in the configuration; the client will throw an error if both are set.
1.9.1 (Node.js only)
- Fixed an uncaught exception that could happen in case of malformed ClickHouse response when response compression is enabled (#363)
1.9.0 (Common, Node.js, Web)
New features
- Added
input_format_json_throw_on_bad_escape_sequenceto theClickhouseSettingstype. (#355, @emmanuel-bonin) - The client now exports
TupleParamwrapper class, allowing tuples to be properly used as query parameters. Added support for JS Map as a query parameter. (#359)
Improvements
- The client will throw a more informative error if the buffered response is larger than the max allowed string length in V8, which is
2**29 - 24bytes. (#357)
1.8.1 (Node.js only)
Bug fixes
- When a custom HTTP agent is used, the HTTP or HTTPS request implementation is now correctly chosen based on the URL protocol. (#352)
1.8.0 (Common, Node.js, Web)
New features
- Added support for specifying roles via request query parameters. See this example for more details. (@pulpdrew, #328)
1.7.0
Bug fixes
- (Web only) Fixed an issue where streaming large datasets could provide corrupted results. See #333 (PR) for more details.
New features
-
Added
JSONEachRowWithProgressformat support,ProgressRowinterface, andisProgressRowtype guard. See this Node.js example for more details. It should work similarly with the Web version. -
(Experimental) Exposed the
parseColumnTypefunction that takes a string representation of a ClickHouse type (e.g.,FixedString(16),Nullable(Int32), etc.) and returns an AST-like object that represents the type. For example:for (const type of [ 'Int32', 'Array(Nullable(String))', `Map(Int32, DateTime64(9, 'UTC'))`, ]) { console.log(`##### Source ClickHouse type: ${type}`) console.log(parseColumnType(type)) }
The above code will output:
##### Source ClickHouse type: Int32 { type: 'Simple', columnType: 'Int32', sourceType: 'Int32' } ##### Source ClickHouse type: Array(Nullable(String)) { type: 'Array', value: { type: 'Nullable', sourceType: 'Nullable(String)', value: { type: 'Simple', columnType: 'String', sourceType: 'String' } }, dimensions: 1, sourceType: 'Array(Nullable(String))' } ##### Source ClickHouse type: Map(Int32, DateTime64(9, 'UTC')) { type: 'Map', key: { type: 'Simple', columnType: 'Int32', sourceType: 'Int32' }, value: { type: 'DateTime64', timezone: 'UTC', precision: 9, sourceType: "DateTime64(9, 'UTC')" }, sourceType: "Map(Int32, DateTime64(9, 'UTC'))" }While the original intention was to use this function internally for
Native/RowBinaryWithNamesAndTypesdata formats headers parsing, it can be useful for other purposes as well (e.g., interfaces generation, or custom JSON serializers).NB: currently unsupported source types to parse:
- Geo
- (Simple)AggregateFunction
- Nested
- Old/new experimental JSON
- Dynamic
- Variant
1.6.0
New features
- Added optional
real_time_microsecondsfield to theClickHouseSummaryinterface (see ClickHouse/ClickHouse#69032)
Bug fixes
- (Node.js) Fixed unhandled exceptions produced when calling
ResultSet.jsonif the response data was not, in fact, a valid JSON. (#311)
1.5.0 (Common, Node.js)
New features
- (Node.js only) It is now possible to disable the automatic decompression of the response stream with the
execmethod. SeeExecParams.decompress_response_streamfor more details. (#298).
1.4.1 (Node.js, Web)
Improvements
ClickHouseClientis now exported as a value from@clickhouse/clientand@clickhouse/client-webpackages, allowing for better integration in dependency injection frameworks that rely on IoC (e.g., Nest.js, tsyringe) (@mathieu-bour, #292).
Bug fixes
- Fixed a potential socket hang-up issue that could happen under 100% CPU load (#294).
1.4.0 (Node.js only)
New features
- (Node.js only) The
execmethod now accepts an optionalvaluesparameter, which allows you to pass the request body as aStream.Readable. This can be useful in the case of custom insert streaming with arbitrary ClickHouse data formats (which might not be explicitly supported and allowed by the client in theinsertmethod yet). NB: in this case, you are expected to serialize the data in the stream in the required input format yourself. See #290 for more details.
Improvements
- (Node.js only) The client package now exports a utility method
drainStream