Releases: influxdata/influxdb-client-csharp
4.8.0
InfluxDBClientFactory:
using var client = new InfluxDBClient("http://localhost:8086", "my-token");
Features
- #388: Initialize C# client without
InfluxDBClientFactory
Bug Fixes
- #426: Parsing HTTP headers with duplicated name
CI
- #416: Add build for
.NET 7.0
Dependencies
Update dependencies:
Build:
- #418:
RestSharpto108.0.3 - #423:
Newtonsoft.Jsonto13.0.2 - #405:
NodaTime.Serialization.JsonNetto3.0.1 - #413:
CsvHelperto30.0.1
Examples:
- #424:
Radzen.Blazorto4.3.8
Test:
4.7.0
Features
- #376: Add
FluxRecord.Rowwhich stores response data in a list - #404: Expose
FluxCsvParserasAnnotatedCsvParser
Dependencies
Update dependencies:
Build:
- #397:
CsvHelperto30.0.0 - #384:
Microsoft.Extensions.ObjectPoolto6.0.10 - #402:
NodaTimeto3.1.5 - #392:
JsonSubTypesto2.0.1
Examples:
- #401:
Radzen.Blazorto4.1.15
Test:
4.6.0
Bug Fixes
- #353: Support for
doubletypes in LINQ expression [LINQ] - #360: Designated
HealthAsyncas obsolete inIInfluxDBClient
Others
- #368: Use builtin support for synchronous HTTP requests from
RestSharp
Documentation
- #355: Add an example how to use
EventHandlerforWriteApi
Dependencies
Update dependencies:
Build:
- #364:
System.Configuration.ConfigurationManagerto6.0.1 - #365:
Microsoft.Extensions.ObjectPoolto6.0.9 - #368:
RestSharpto108.0.2 - #371:
NodaTimeto3.1.3
Examples:
- #375:
Radzen.Blazorto4.1.4
Test:
4.5.0
4.4.0
4.3.0
Features
- #327: Add interfaces to client's APIs
Bug Fixes
- #329: Writing data to multiple destination by the background writer
Dependencies
- #326: Update dependencies:
Build:
- RestSharp to 108.0.1
- NodaTime to 3.1.0
- JsonSubTypes to 1.9.0
- Microsoft.Extensions.ObjectPool to 6.0.5
Test:
- Microsoft.NET.Test.Sdk to 17.2.0
- NUnit to 3.13.3
- WireMock.Net to 1.4.43
- Moq to 4.18.1
- Tomlyn.Signed to 0.14.3
4.2.0
Features
- #319: Optionally align
limit()andtail()beforepivot()function [LINQ] - #322: Possibility to specify default value for
startandstopparameter of range function [LINQ] - #323: Add callback function for handling the SSL Certificate Validation
Breaking Changes
- #316: Rename
InvocableScriptstoInvokableScripts
Bug Fixes
- #313: Using default
organdbucketinWriteApiAsync - #317: Decompress Gzipped data
- #317: Logging HTTP headers from streaming request
Documentation
4.1.0
4.0.0
RestSharp library was updated the latest major version v107. The new version of RestSharp switched from the legacy HttpWebRequest class to the standard well-known System.Net.Http.HttpClient instead. This improves performance and solves lots of issues, like hanging connections, updated protocols support, and many other problems.
Migration Notice
- New versions of
QueryApi,QueryApiSync,WriteApi,WriteApiAsyncandFluxClientmethods uses default named argument values so you are able to easily migrate by:
- _client.GetQueryApi().QueryAsyncEnumerable<T>(fluxQuery, token);
+ _client.GetQueryApi().QueryAsyncEnumerable<T>(fluxQuery, cancellationToken: token);Breaking Changes
API
-
The Client no longer supports the
ReadWriteTimeoutfor HTTP Client. This settings is not supported by theHttpClient. Use can useTimeoutproperty instead. -
The
FluxClientusesIDisposableinterface to releasing underlying HTTP connections:From
var client = FluxClientFactory.Create("http://localhost:8086/");
To
using var client = FluxClientFactory.Create("http://localhost:8086/");
-
The Query APIs uses
CancellationTokeninstead ofICancellable:From
await QueryApi.QueryAsync(flux, (cancellable, record) => { // process record Console.WriteLine($"record: {record}"); if (your_condition) { // cancel stream source.Cancel(); } })
To
var source = new CancellationTokenSource(); await QueryApi.QueryAsync(flux, record => { // process record Console.WriteLine($"record: {record}"); if (your_condition) { // cancel stream source.Cancel(); } }, source.Token);
-
QueryApihas changed method signatures:3.3.0 4.0.0 QueryAsync(String)QueryAsync(String, String?, CancellationToken?)QueryAsync(String, String)QueryAsync(String, String?, CancellationToken?)QueryAsync(Query)QueryAsync(Query, String?, CancellationToken?)QueryAsync(Query, String)QueryAsync(Query, String?, CancellationToken?)QueryAsync(String, Type)QueryAsync(String, Type, String?, CancellationToken?)QueryAsync(String, String, Type)QueryAsync(String, Type, String?, CancellationToken?)QueryAsync(Query, Type)QueryAsync(Query, Type, String?, CancellationToken?)QueryAsync(Query, String, Type)QueryAsync(Query, Type, String?, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(String, String, Action<ICancellable, FluxRecord>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(String, String, Action<ICancellable, FluxRecord>, Action<Exception>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(String, String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(Query, Action<ICancellable, FluxRecord>)QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(Query, Action<ICancellable, FluxRecord>, Action<Exception>)QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(Query, Action<ICancellable, FluxRecord>, Action<Exception>, Action)QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(Query, String, Action<ICancellable, FluxRecord>)QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(Query, String, Action<ICancellable, FluxRecord>, Action<Exception>)QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(Query, String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)QueryAsync(Query, Action<FluxRecord>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(String, String, Action<ICancellable, Object>, Action<Exception>, Action, Type)QueryAsync(String, Type, Action<Object>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync(Query, String, Action<ICancellable, Object>, Action<Exception>, Action, Type)QueryAsync(Query, Type, Action<Object>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(String)QueryAsync<T>(String, String?, CancellationToken?)QueryAsync<T>(String, String)QueryAsync<T>(String, String?, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>, Action)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(String, String, Action<ICancellable, T>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(String, String, Action<ICancellable, T>, Action<Exception>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(String, String, Action<ICancellable, T>, Action<Exception>, Action)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(Query)QueryAsync<T>(Query, String?, CancellationToken?)QueryAsync<T>(Query, String)QueryAsync<T>(Query, String?, CancellationToken?)QueryAsync<T>(Query, Action<ICancellable, T>)QueryAsync<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(Query, Action<ICancellable, T>, Action<Exception>)QueryAsync<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(Query, Action<ICancellable, T>, Action<Exception>, Action)QueryAsync<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(Query, String, Action<ICancellable, T>)`QueryAsync(Query, Action, Action?, Action?, Stri...