Releases: influxdata/influxdb-client-csharp
4.0.0-rc2
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
- Removed
orgIdargument fromTelegrafsApi.GetRunsAsyncmethods - Change type of
PermissionResource.Typetostring. You are able to easily migrate by:- new PermissionResource { Type = PermissionResource.TypeEnum.Users, OrgID = _organization.Id } + new PermissionResource { Type = PermissionResource.TypeUsers, OrgID = _organization.Id }
Features
- #291: Add possibility to generate Flux query without
pivot()function [LINQ] - #289: Async APIs uses
CancellationTokenin allasyncmethods - #294: Optimize serialization
PointDatainto LineProtocol
Bug Fixes
CI
- #292: Use new Codecov uploader for reporting code coverage
4.0.0-rc1
Breaking Changes
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.
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<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(Query, String, Action<ICancellable, T>, Action<Exception>)QueryAsync<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsync<T>(Query, String, Action<ICancellable, T>, Action<Exception>, Action)`QueryAsync<...
v3.3.0
3.2.0
Deprecates
InfluxDBClient.HealthAsync(): instead useInfluxDBClient.PingAsync()
Features
- #257: Add
PingServiceto check status of OSS and Cloud instance - #260: Changed
internaltopublicvisibility ofInfluxDBClientOptions.Builder.ConnectionString - #266: Add option to accept self-signed certificates
CI
- #264: Add build for
dotnet6
Bug Fixes
- #262: InfluxDB 2.1 Incompatibility with Session Cookie
3.1.0
Features
- #239: Add support for Asynchronous queries [LINQ]
- #240: Add IsMeasurement option to Column attribute for dynamic measurement names in POCO classes
- #246, #251: Add support for deserialization of POCO column property types with a "Parse" method, such as Guid
- #249: Add support for LINQ Contains subqueries [LINQ]
- #256: Add support for Anonymous authentication - anonymous authentication is used if the user does not specify a token or an username with password
Dependencies
- #252: Update dependencies:
- NUnit to 3.13.2
- NUnit3TestAdapter to 4.0.0
3.0.0
Breaking Changes
Adds a Type overload for POCOs to QueryAsync. This will add object ConvertToEntity(FluxRecord, Type) to IFluxResultMapper
Features
Bug Fixes
- #236: Mapping
longtype into Flux AST [LINQ]
2.1.0
2.0.0
2.0.0 [2021-07-09]
Breaking Changes
This release introduces a support for new InfluxDB OSS API definitions - oss.yml. The following breaking changes are in underlying API services and doesn't affect common apis such as - WriteApi, QueryApi, BucketsApi, OrganizationsApi...
UsersServiceusesPostUserto createUserAuthorizationsServiceusesAuthorizationPostRequestto createAuthorizationBucketsServiceusesPatchBucketRequestto updateBucketOrganizationsServiceusesPostOrganizationRequestto createOrganizationOrganizationsServiceusesPatchOrganizationRequestto updateOrganizationDashboardsServiceusesPatchDashboardRequestto updateDashboardDeleteServiceis used to delete time series data instead ofDefaultServiceRuncontains list ofLogEventinLogpropertyDBRPscontains list ofDBRPinContentpropertyDBRPsServiceusesDBRPCreateto createDBRP- Inheritance structure:
Check<-CheckDiscriminator<-CheckBaseNotificationEndpoint<-NotificationEndpointDiscriminator<-NotificationEndpointBaseNotificationRule<-NotificationRuleDiscriminator<-NNotificationRuleBase
- Flux AST literals extends the AST
Expressionobject
Deprecates
AuthorizationsApi.CreateAuthorizationAsync(Authorization): instead useAuthorizationsApi.CreateAuthorizationAsync(AuthorizationPostRequest)
Features
- #206: Use optional args to pass query parameters into API list call - useful for the ability to use pagination.
API
Dependencies
- #209: Update dependencies:
- CsvHelper to 27.1.0
- Newtonsoft.Json 13.0.1
- NodaTime to 3.0.5
- NodaTime.Serialization.JsonNet to 3.0.0
- Microsoft.Extensions.ObjectPool to 5.0.7
Documentation
- #213: API documentation is deployed to GitHub Pages
1.19.0
1.18.0
Features
- #184: Add possibility to specify
WebProxyfor Client - #185: Use
group()function in output Flux query. See details - Group function [LINQ] - #186: Produce a typed HTTP exception
- #188: Switch
pivot()anddrop()function to achieve better performance
Bug Fixes
- #183: Propagate runtime exception to EventHandler