- #712: Update dotnet-5.0 image from "mcr.microsoft.com/dotnet/sdk:5.0" to "mcr.microsoft.com/dotnet/sdk:5.0-bullseye-slim".
- #724: Set snapshot version properly in ci-deploy-snapshot.sh
- #728: Set up auto merge dependabot workflow.
- #738: The token in the Management API is no longer plain text.
- #748: Set prefix commit message for dependabot.
- #615: Use IEnumerable in WriteApi to eliminate unnescessary memmory allocations
- #681: Add build for
dotnet8
- #658: Add HttpHeaders as
IEnumerable<RestSharp.HttpParameter>toHttpExceptionand facilitate access inWriteErrorEvent. Includes new exampleHttpErrorHandling.
Update dependencies:
- #659:
RestSharpto112.0.0
- #663:
WireMock.Netto1.6.1
ApiResponseheaders has been changed toIEnumerable<(string Name, string Value)>
- #649: Use HttpCompletionOption.ResponseHeadersRead for asynchronous QueryApi
Update dependencies:
- #652:
NUnit3TestAdapterto4.6.0 - #654:
WireMock.Netto1.5.62 - #661:
Microsoft.NET.Test.Sdkto17.11.0
- #664:
Radzen.Blazorto5.1.6
- #633: Add package XML documentation.
Update dependencies:
- #634:
CsvHelperto32.0.3 - #635:
Microsoft.Extensions.ObjectPoolto8.0.6 - #638:
System.Reactiveto6.0.1
- #636:
Radzen.Blazorto4.32.3
- #632: Use HttpCompletionOption.ResponseHeadersRead for streaming
Update dependencies:
- #608:
NUnitto3.14.0 - #616:
Microsoft.NET.Test.Sdkto17.9.0 - #626:
coverlet.collectorto6.0.2 - #628:
WireMock.Netto1.5.51
- #590: Allows disable Trace verbose messages
Update dependencies:
- #597:
Microsoft.Extensions.ObjectPoolto8.0.0 - #572:
NodaTime.Serialization.JsonNetto3.1.0 - #595:
System.Collections.Immutableto8.0.0 - #599:
System.Configuration.ConfigurationManagerto8.0.0
- #593:
Radzen.Blazorto4.22.1
- #596:
WireMock.Netto1.5.40 - #598:
Microsoft.NET.Test.Sdkto17.8.0 - #568:
Moqto4.20.69 - #594:
Tomlyn.Signedto0.17.0
- #528: Add HttpClient as a part of InfluxDBClientOptions
- #555: Chaining multiple conditions in LINQ queries
Update dependencies:
- #556:
Radzen.Blazorto4.14.1
- #543:
Microsoft.NET.Test.Sdkto17.6.3 - #524:
coverlet.collectorto6.0.0 - #550:
WireMock.Netto1.5.32 - #529:
NUnit3TestAdapterto4.5.0
- #510: Passing aggregation function to AggregateWindow for LINQ queries
Update dependencies:
- #497:
NodaTimeto3.1.9 - #485:
Newtonsoft.Jsonto13.0.3 - #506:
Microsoft.Extensions.ObjectPoolto7.0.5 - #509:
RestSharpto110.2.0
- #511:
Radzen.Blazorto4.10.1
- #508:
WireMock.Netto1.5.23 - #480:
NUnit3TestAdapterto4.4.2 - #473:
Microsoft.NET.Test.Sdkto17.5.0
- Revert [#408] conversion of double to string can result in a loss of precision
- #442: Allow to use
DateTimeKind.LocalandDateTimeKind.Localas a timestamp for Data point
Update dependencies:
- #446:
Radzen.Blazorto4.4.7
- #408: Conversion of double to string can result in a loss of precision
- #433: Add
.NET 7.0to supported.NETversions
Update dependencies:
- #430:
NodaTimeto3.1.6
- #432:
Radzen.Blazorto4.4.2
InfluxDBClientFactory:
using var client = new InfluxDBClient("http://localhost:8086", "my-token");
- #388: Initialize C# client without
InfluxDBClientFactory
- #426: Parsing HTTP headers with duplicated name
- #416: Add build for
.NET 7.0
Update dependencies:
- #418:
RestSharpto108.0.3 - #423:
Newtonsoft.Jsonto13.0.2 - #405:
NodaTime.Serialization.JsonNetto3.0.1 - #413:
CsvHelperto30.0.1
- #424:
Radzen.Blazorto4.3.8
- #422:
WireMock.Netto1.5.11 - #412:
Microsoft.NET.Test.Sdkto17.4.0 - #417:
NUnit3TestAdapterto4.3.1
- #376: Add
FluxRecord.Rowwhich stores response data in a list - #404: Expose
FluxCsvParserasAnnotatedCsvParser
Update dependencies:
- #397:
CsvHelperto30.0.0 - #384:
Microsoft.Extensions.ObjectPoolto6.0.10 - #402:
NodaTimeto3.1.5 - #392:
JsonSubTypesto2.0.1
- #401:
Radzen.Blazorto4.1.15
- #403:
Tomlyn.Signedto0.16.1 - #400:
WireMock.Netto1.5.9 - #398:
NUnit3TestAdapterto4.3.0 - #399:
coverlet.collectorto3.2.0
- #353: Support for
doubletypes in LINQ expression [LINQ] - #360: Designated
HealthAsyncas obsolete inIInfluxDBClient
- #368: Use builtin support for synchronous HTTP requests from
RestSharp
- #355: Add an example how to use
EventHandlerforWriteApi
Update dependencies:
- #364:
System.Configuration.ConfigurationManagerto6.0.1 - #365:
Microsoft.Extensions.ObjectPoolto6.0.9 - #368:
RestSharpto108.0.2 - #371:
NodaTimeto3.1.3
- #375:
Radzen.Blazorto4.1.4
- #348: Append
task optionat the end of script
Update dependencies:
- #330: Redact the
AuthorizationHTTP header from log
Update dependencies:
- #327: Add interfaces to client's APIs
- #329: Writing data to multiple destination by the background writer
- #326: Update dependencies:
- RestSharp to 108.0.1
- NodaTime to 3.1.0
- JsonSubTypes to 1.9.0
- Microsoft.Extensions.ObjectPool to 6.0.5
- 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
- #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
- #316: Rename
InvocableScriptstoInvokableScripts
- #313: Using default
organdbucketinWriteApiAsync - #317: Decompress Gzipped data
- #317: Logging HTTP headers from streaming request
- #304: Add
InvokableScriptsApito create, update, list, delete and invoke scripts by seamless way - #308: Add support for
TakeLastexpression [LINQ]
- #305: Authentication Cookies follow redirects
- #309: Query expression for joins of binary operators [LINQ]
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.
- 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);-
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:var client = FluxClientFactory.Create("http://localhost:8086/");
using var client = FluxClientFactory.Create("http://localhost:8086/");
-
The Query APIs uses
CancellationTokeninstead ofICancellable:await QueryApi.QueryAsync(flux, (cancellable, record) => { // process record Console.WriteLine($"record: {record}"); if (your_condition) { // cancel stream source.Cancel(); } })
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<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsyncEnumerable<T>(Query, String, CancellationToken)QueryAsyncEnumerable<T>(Query, String?, CancellationToken?)QueryAsyncEnumerable<T>(String, CancellationToken)QueryAsyncEnumerable<T>(String, String?, CancellationToken?)QueryAsyncEnumerable<T>(String, String, CancellationToken)QueryAsyncEnumerable<T>(String, String?, CancellationToken?)QueryRawAsync(Query)QueryRawAsync(Query, String?, CancellationToken?)QueryRawAsync(Query, Action<ICancellable, String>)QueryRawAsync(Query, Action<String>, Action<Exception>?, Action?, String?, CancellationToken?)QueryRawAsync(Query, Action<ICancellable, String>, Action<Exception>)QueryRawAsync(Query, Action<String>, Action<Exception>?, Action?, String?, CancellationToken?) -
QueryApiSynchas changed method signatures:3.3.0 4.0.0 QuerySync(String)QuerySync(String, String?, CancellationToken?)QuerySync(String, String)QuerySync(String, String?, CancellationToken?)QuerySync(Query)QuerySync(Query, String?, CancellationToken?)QuerySync(Query, String)QuerySync(Query, String?, CancellationToken?)QuerySync<T>(String)QuerySync<T>(String, String?, CancellationToken?)QuerySync<T>(String, String)QuerySync<T>(String, String?, CancellationToken?)QuerySync<T>(Query)QuerySync<T>(Query, String?, CancellationToken?)QuerySync<T>(Query, String)QuerySync<T>(Query, String?, CancellationToken?) -
WriteApihas changed method signatures:3.3.0 4.0.0 WriteMeasurement<TM>(WritePrecision, TM)WriteMeasurement<TM>(TM, WritePrecision?, String?, String?)WriteMeasurement<TM>(String, String, WritePrecision, TM)WriteMeasurement<TM>(TM, WritePrecision?, String?, String?)WriteMeasurements<TM>(WritePrecision, TM[])WriteMeasurements<TM>(TM[], WritePrecision?, String?, String?)WriteMeasurements<TM>(String, String, WritePrecision, TM[])WriteMeasurements<TM>(TM[], WritePrecision?, String?, String?)WriteMeasurements<TM>(WritePrecision, List<TM>)WriteMeasurements<TM>(List<TM>, WritePrecision?, String?, String?)WriteMeasurements<TM>(String, String, WritePrecision, List<TM>)WriteMeasurements<TM>(List<TM>, WritePrecision?, String?, String?)WritePoint(PointData)WritePoint(PointData, String?, String?)WritePoint(String, String, PointData)WritePoint(PointData, String?, String?)WritePoints(PointData[])WritePoints(PointData[], String?, String?)WritePoints(String, String, PointData[])WritePoints(PointData[], String?, String?)WritePoints(List<PointData>)WritePoints(List<PointData>, String?, String?)WritePoints(String, String, List<PointData>)WritePoints(List<PointData>, String?, String?)WriteRecord(WritePrecision, String)WriteRecord(String, WritePrecision?, String?, String?)WriteRecord(String, String, WritePrecision, String)WriteRecord(String, WritePrecision?, String?, String?)WriteRecords(WritePrecision, String[])WriteRecords(String[], WritePrecision?, String?, String?)WriteRecords(String, String, WritePrecision, String[])WriteRecords(String[], WritePrecision?, String?, String?)WriteRecords(WritePrecision, List<String>)WriteRecords(List<String>, WritePrecision?, String?, String?)WriteRecords(String, String, WritePrecision, List<String>)WriteRecords(List<String>, WritePrecision?, String?, String?) -
WriteApiAsynchas changed method signatures:3.3.0 4.0.0 WriteMeasurementAsync<TM>(WritePrecision, TM, CancellationToken)WriteMeasurementAsync<TM>(TM, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementAsync<TM>(String, String, WritePrecision, TM, CancellationToken)WriteMeasurementAsync<TM>(TM, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(WritePrecision, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(WritePrecision, CancellationToken, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(String, String, WritePrecision, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(String, String, WritePrecision, CancellationToken, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(WritePrecision, List<TM>, CancellationToken)WriteMeasurementsAsync<TM>(List<TM>, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(String, String, WritePrecision, List<TM>, CancellationToken)WriteMeasurementsAsync<TM>(List<TM>, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsyncWithIRestResponse<TM>(IEnumerable<TM>, String, String, WritePrecision, CancellationToken)WriteMeasurementsAsyncWithIRestResponse<TM>(IEnumerable<TM>, WritePrecision?, String?, String?, CancellationToken?)WritePointAsync(PointData, CancellationToken)WritePointAsync(PointData, String?, String?, CancellationToken?)WritePointAsync(String, String, PointData, CancellationToken)WritePointAsync(PointData, String?, String?, CancellationToken?)WritePointsAsync(PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(CancellationToken, PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(String, String, PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(String, String, CancellationToken, PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(List<PointData>, CancellationToken)WritePointsAsync(List<PointData>, String?, String?, CancellationToken?)WritePointsAsync(String, String, List<PointData>, CancellationToken)WritePointsAsync(List<PointData>, String?, String?, CancellationToken?)WritePointsAsyncWithIRestResponse(IEnumerable<PointData>, String, String, CancellationToken)WritePointsAsyncWithIRestResponse(IEnumerable<PointData>, String?, String?, CancellationToken?)WriteRecordAsync(WritePrecision, String, CancellationToken)WriteRecordAsync(String, WritePrecision?, String?, String?, CancellationToken?)WriteRecordAsync(String, String, WritePrecision, String, CancellationToken)WriteRecordAsync(String, WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(WritePrecision, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(WritePrecision, CancellationToken, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(String, String, WritePrecision, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(String, String, WritePrecision, CancellationToken, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(WritePrecision, List<String>, CancellationToken)WriteRecordsAsync(List<String>, WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(String, String, WritePrecision, List<String>, CancellationToken)WriteRecordsAsync(List<String>, WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsyncWithIRestResponse(IEnumerable<String>, String, String, WritePrecision, CancellationToken)WriteRecordsAsyncWithIRestResponse(IEnumerable<String>, WritePrecision?, String?, String?, CancellationToken?) -
FluxClienthas changed method signatures:3.3.0 4.0.0 QueryAsync(String)QueryAsync(String, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, CancellationToken?)QueryAsync<T>(String)QueryAsync<T>(String, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>, Action)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String)QueryRawAsync(String, String?, CancellationToken?)QueryRawAsync(String, String)QueryRawAsync(String, String?, CancellationToken?)QueryRawAsync(String, Action<ICancellable, String>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, Action<ICancellable, String>, Action<Exception>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, Action<ICancellable, String>, Action<Exception>, Action)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, String, Action<ICancellable, String>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, String, Action<ICancellable, String>, Action<Exception>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, String, Action<ICancellable, String>, Action<Exception>, Action)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?) -
Response type for
WriteApiAsync.WritePointsAsyncWithIRestResponseisRestResponse[]instead ofIRestResponse[]. -
Response type for
WriteApiAsync.WriteMeasurementsAsyncWithIRestResponseisRestResponseinstead ofIRestResponse. -
Response type for
WriteApiAsync.WriteRecordsAsyncWithIRestResponseisRestResponseinstead ofIRestResponse. -
TelegrafsApiusesTelegrafPluginRequestto createTelegrafconfiguration. -
Rename
TelegrafPlugintypes:- from
TelegrafPlugin.TypeEnum.InputstoTelegrafPlugin.TypeEnum.Input - from
TelegrafPlugin.TypeEnum.OutputstoTelegrafPlugin.TypeEnum.Output
- from
-
TasksApi.FindTasksByOrganizationIdAsync(string orgId)requires pass OrganizationIDas a parameter. For find Tasks by Organization name you can use:_tasksApi.FindTasksAsync(org: "my-org"). -
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 }
This release also uses new version of 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...
- Add
ConfigServiceto retrieve InfluxDB's runtime configuration - Add
RemoteConnectionsServiceto deal with registered remote InfluxDB connections - Add
MetricsServiceto deal with exposed prometheus metrics - Update
TemplatesServiceto deal withStackandTemplateAPI - Update
BackupServiceto deal with new backup functions of InfluxDB - Update
RestoreServiceto deal with new restore functions of InfluxDB - Remove
DocumentApiin favour of InfluxDB Community Templates. For more info see - influxdb#19300, openapi#192 - Remove
DefaultSerive:GetRoutesoperation is moved toRoutesServiceGetTelegrafPluginoperation is moved toTelegrafsServicePostSigninoperation is moved toSigninServicePostSignoutoperation is moved toSignoutService
- Change type of
Duration.magnitudefromint?tolong? TelegrafsServiceusesTelegrafPluginRequestto createTelegrafconfigurationTelegrafsServiceusesTelegrafPluginRequestto updateTelegrafconfiguration
- #282: Add support for AggregateWindow function [LINQ]
- #283: Allow to set a client certificates
- #291: Add possibility to generate Flux query without
pivot()function [LINQ] - #289: Async APIs uses
CancellationTokenin allasyncmethods - #294: Optimize serialization
PointDatainto LineProtocol
- #287: Filter tasks by Organization ID
- #290: Change
PermissionResource.TypetoString - #293: Type of
CheckBase.LatestCompletedisDateTime - #297: Get version from
X-Influxdb-Versionheader
- #292: Use new Codecov uploader for reporting code coverage
- #283: Remove out of support
.NET Coreversions -2.2,3.0 - #283: Add check to compilation warnings
- #283: Add check to correctness of code formatting
#283: Update dependencies:
- RestSharp to 107.3.0
- CsvHelper to 27.2.1
- NodaTime to 3.0.9
- Microsoft.Extensions.ObjectPool to 6.0.1
- System.Collections.Immutable to 6.0.0
- System.Configuration.ConfigurationManager to 6.0.0
- Microsoft.NET.Test.Sdk to 17.0.0
- NUnit3TestAdapter to 4.2.1
- WireMock.Net to 1.4.34
- Moq to 4.16.1
- System.Linq.Async to 6.0.1
- Tomlyn.Signed to 0.10.2
- coverlet.collector to 3.1.2
- #295: Add possibility to put generic type object as a value for
PointDataandPointData.Builder
- 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);- 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 }
- #291: Add possibility to generate Flux query without
pivot()function [LINQ] - #289: Async APIs uses
CancellationTokenin allasyncmethods - #294: Optimize serialization
PointDatainto LineProtocol
- #292: Use new Codecov uploader for reporting code coverage
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.
-
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:var client = FluxClientFactory.Create("http://localhost:8086/");
using var client = FluxClientFactory.Create("http://localhost:8086/");
-
The Query APIs uses
CancellationTokeninstead ofICancellable:await QueryApi.QueryAsync(flux, (cancellable, record) => { // process record Console.WriteLine($"record: {record}"); if (your_condition) { // cancel stream source.Cancel(); } })
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<T>(Query, Action<T>, Action<Exception>?, Action?, String?, CancellationToken?)QueryAsyncEnumerable<T>(Query, String, CancellationToken)QueryAsyncEnumerable<T>(Query, String?, CancellationToken?)QueryAsyncEnumerable<T>(String, CancellationToken)QueryAsyncEnumerable<T>(String, String?, CancellationToken?)QueryAsyncEnumerable<T>(String, String, CancellationToken)QueryAsyncEnumerable<T>(String, String?, CancellationToken?)QueryRawAsync(Query)QueryRawAsync(Query, String?, CancellationToken?)QueryRawAsync(Query, Action<ICancellable, String>)QueryRawAsync(Query, Action<String>, Action<Exception>?, Action?, String?, CancellationToken?)QueryRawAsync(Query, Action<ICancellable, String>, Action<Exception>)QueryRawAsync(Query, Action<String>, Action<Exception>?, Action?, String?, CancellationToken?) -
QueryApiSynchas changed method signatures:3.3.0 4.0.0 QuerySync(String)QuerySync(String, String?, CancellationToken?)QuerySync(String, String)QuerySync(String, String?, CancellationToken?)QuerySync(Query)QuerySync(Query, String?, CancellationToken?)QuerySync(Query, String)QuerySync(Query, String?, CancellationToken?)QuerySync<T>(String)QuerySync<T>(String, String?, CancellationToken?)QuerySync<T>(String, String)QuerySync<T>(String, String?, CancellationToken?)QuerySync<T>(Query)QuerySync<T>(Query, String?, CancellationToken?)QuerySync<T>(Query, String)QuerySync<T>(Query, String?, CancellationToken?) -
WriteApihas changed method signatures:3.3.0 4.0.0 WriteMeasurement<TM>(WritePrecision, TM)WriteMeasurement<TM>(TM, WritePrecision?, String?, String?)WriteMeasurement<TM>(String, String, WritePrecision, TM)WriteMeasurement<TM>(TM, WritePrecision?, String?, String?)WriteMeasurements<TM>(WritePrecision, TM[])WriteMeasurements<TM>(TM[], WritePrecision?, String?, String?)WriteMeasurements<TM>(String, String, WritePrecision, TM[])WriteMeasurements<TM>(TM[], WritePrecision?, String?, String?)WriteMeasurements<TM>(WritePrecision, List<TM>)WriteMeasurements<TM>(List<TM>, WritePrecision?, String?, String?)WriteMeasurements<TM>(String, String, WritePrecision, List<TM>)WriteMeasurements<TM>(List<TM>, WritePrecision?, String?, String?)WritePoint(PointData)WritePoint(PointData, String?, String?)WritePoint(String, String, PointData)WritePoint(PointData, String?, String?)WritePoints(PointData[])WritePoints(PointData[], String?, String?)WritePoints(String, String, PointData[])WritePoints(PointData[], String?, String?)WritePoints(List<PointData>)WritePoints(List<PointData>, String?, String?)WritePoints(String, String, List<PointData>)WritePoints(List<PointData>, String?, String?)WriteRecord(WritePrecision, String)WriteRecord(String, WritePrecision?, String?, String?)WriteRecord(String, String, WritePrecision, String)WriteRecord(String, WritePrecision?, String?, String?)WriteRecords(WritePrecision, String[])WriteRecords(String[], WritePrecision?, String?, String?)WriteRecords(String, String, WritePrecision, String[])WriteRecords(String[], WritePrecision?, String?, String?)WriteRecords(WritePrecision, List<String>)WriteRecords(List<String>, WritePrecision?, String?, String?)WriteRecords(String, String, WritePrecision, List<String>)WriteRecords(List<String>, WritePrecision?, String?, String?) -
WriteApiAsynchas changed method signatures:3.3.0 4.0.0 WriteMeasurementAsync<TM>(WritePrecision, TM, CancellationToken)WriteMeasurementAsync<TM>(TM, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementAsync<TM>(String, String, WritePrecision, TM, CancellationToken)WriteMeasurementAsync<TM>(TM, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(WritePrecision, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(WritePrecision, CancellationToken, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(String, String, WritePrecision, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(String, String, WritePrecision, CancellationToken, TM[])WriteMeasurementsAsync<TM>(TM[], WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(WritePrecision, List<TM>, CancellationToken)WriteMeasurementsAsync<TM>(List<TM>, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsync<TM>(String, String, WritePrecision, List<TM>, CancellationToken)WriteMeasurementsAsync<TM>(List<TM>, WritePrecision?, String?, String?, CancellationToken?)WriteMeasurementsAsyncWithIRestResponse<TM>(IEnumerable<TM>, String, String, WritePrecision, CancellationToken)WriteMeasurementsAsyncWithIRestResponse<TM>(IEnumerable<TM>, WritePrecision?, String?, String?, CancellationToken?)WritePointAsync(PointData, CancellationToken)WritePointAsync(PointData, String?, String?, CancellationToken?)WritePointAsync(String, String, PointData, CancellationToken)WritePointAsync(PointData, String?, String?, CancellationToken?)WritePointsAsync(PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(CancellationToken, PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(String, String, PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(String, String, CancellationToken, PointData[])WritePointsAsync(PointData[], String?, String?, CancellationToken?)WritePointsAsync(List<PointData>, CancellationToken)WritePointsAsync(List<PointData>, String?, String?, CancellationToken?)WritePointsAsync(String, String, List<PointData>, CancellationToken)WritePointsAsync(List<PointData>, String?, String?, CancellationToken?)WritePointsAsyncWithIRestResponse(IEnumerable<PointData>, String, String, CancellationToken)WritePointsAsyncWithIRestResponse(IEnumerable<PointData>, String?, String?, CancellationToken?)WriteRecordAsync(WritePrecision, String, CancellationToken)WriteRecordAsync(String, WritePrecision?, String?, String?, CancellationToken?)WriteRecordAsync(String, String, WritePrecision, String, CancellationToken)WriteRecordAsync(String, WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(WritePrecision, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(WritePrecision, CancellationToken, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(String, String, WritePrecision, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(String, String, WritePrecision, CancellationToken, String[])WriteRecordsAsync(String[], WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(WritePrecision, List<String>, CancellationToken)WriteRecordsAsync(List<String>, WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsync(String, String, WritePrecision, List<String>, CancellationToken)WriteRecordsAsync(List<String>, WritePrecision?, String?, String?, CancellationToken?)WriteRecordsAsyncWithIRestResponse(IEnumerable<String>, String, String, WritePrecision, CancellationToken)WriteRecordsAsyncWithIRestResponse(IEnumerable<String>, WritePrecision?, String?, String?, CancellationToken?) -
FluxClienthas changed method signatures:3.3.0 4.0.0 QueryAsync(String)QueryAsync(String, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, CancellationToken?)QueryAsync(String, Action<ICancellable, FluxRecord>, Action<Exception>, Action)QueryAsync(String, Action<FluxRecord>, Action<Exception>?, Action?, CancellationToken?)QueryAsync<T>(String)QueryAsync<T>(String, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, CancellationToken?)QueryAsync<T>(String, Action<ICancellable, T>, Action<Exception>, Action)QueryAsync<T>(String, Action<T>, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String)QueryRawAsync(String, String?, CancellationToken?)QueryRawAsync(String, String)QueryRawAsync(String, String?, CancellationToken?)QueryRawAsync(String, Action<ICancellable, String>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, Action<ICancellable, String>, Action<Exception>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, Action<ICancellable, String>, Action<Exception>, Action)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, String, Action<ICancellable, String>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, String, Action<ICancellable, String>, Action<Exception>)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?)QueryRawAsync(String, String, Action<ICancellable, String>, Action<Exception>, Action)QueryRawAsync(String, Action<String>, String?, Action<Exception>?, Action?, CancellationToken?) -
Response type for
WriteApiAsync.WritePointsAsyncWithIRestResponseisRestResponse[]instead ofIRestResponse[]. -
Response type for
WriteApiAsync.WriteMeasurementsAsyncWithIRestResponseisRestResponseinstead ofIRestResponse. -
Response type for
WriteApiAsync.WriteRecordsAsyncWithIRestResponseisRestResponseinstead ofIRestResponse. -
TelegrafsApiusesTelegrafPluginRequestto createTelegrafconfiguration. -
Rename
TelegrafPlugintypes:- from
TelegrafPlugin.TypeEnum.InputstoTelegrafPlugin.TypeEnum.Input - from
TelegrafPlugin.TypeEnum.OutputstoTelegrafPlugin.TypeEnum.Output
- from
-
TasksApi.FindTasksByOrganizationIdAsync(string orgId)requires pass OrganizationIDas a parameter. For find Tasks by Organization name you can use:_tasksApi.FindTasksAsync(org: "my-org").
This release also uses new version of 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...
- Add
ConfigServiceto retrieve InfluxDB's runtime configuration - Add
RemoteConnectionsServiceto deal with registered remote InfluxDB connections - Add
MetricsServiceto deal with exposed prometheus metrics - Update
TemplatesServiceto deal withStackandTemplateAPI - Update
BackupServiceto deal with new backup functions of InfluxDB - Update
RestoreServiceto deal with new restore functions of InfluxDB - Remove
DocumentApiin favour of InfluxDB Community Templates. For more info see - influxdb#19300, openapi#192 - Remove
DefaultSerive:GetRoutesoperation is moved toRoutesServiceGetTelegrafPluginoperation is moved toTelegrafsServicePostSigninoperation is moved toSigninServicePostSignoutoperation is moved toSignoutService
- Change type of
Duration.magnitudefromint?tolong? TelegrafsServiceusesTelegrafPluginRequestto createTelegrafconfigurationTelegrafsServiceusesTelegrafPluginRequestto updateTelegrafconfiguration
- #283: Remove out of support
.NET Coreversions -2.2,3.0 - #283: Add check to compilation warnings
- #283: Add check to correctness of code formatting
#283: Update dependencies:
- RestSharp to 107.3.0
- CsvHelper to 27.2.1
- NodaTime to 3.0.9
- Microsoft.Extensions.ObjectPool to 6.0.1
- System.Collections.Immutable to 6.0.0
- System.Configuration.ConfigurationManager to 6.0.0
- Microsoft.NET.Test.Sdk to 17.0.0
- NUnit3TestAdapter to 4.2.1
- WireMock.Net to 1.4.34
- Moq to 4.16.1
- System.Linq.Async to 6.0.1
- Tomlyn.Signed to 0.10.2
- coverlet.collector to 3.1.2
- #287: Filter tasks by Organization ID
- #277: Add missing PermissionResources from Cloud API definition
- #281: Serialization query response into POCO with optional DateTime
InfluxDBClient.HealthAsync(): instead useInfluxDBClient.PingAsync()
- #257: Add
PingServiceto check status of OSS and Cloud instance - #260: Changed
internaltopublicvisibility ofInfluxDBClientOptions.Builder.ConnectionString - #266: Add option to accept self-signed certificates
- #264: Add build for
dotnet6
- #262: InfluxDB 2.1 Incompatibility with Session Cookie
- #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
- #252: Update dependencies:
- NUnit to 3.13.2
- NUnit3TestAdapter to 4.0.0
Adds a Type overload for POCOs to QueryAsync. This will add object ConvertToEntity(FluxRecord, Type) to IFluxResultMapper
- #236: Mapping
longtype into Flux AST [LINQ]
- #222: Update dependencies:
- RestSharp to 106.12.0
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
AuthorizationsApi.CreateAuthorizationAsync(Authorization): instead useAuthorizationsApi.CreateAuthorizationAsync(AuthorizationPostRequest)
- #206: Use optional args to pass query parameters into API list call - useful for the ability to use pagination.
- #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
- #213: API documentation is deploy to GitHub Pages
- #194: Add possibility to handle HTTP response from InfluxDB server [write]
- #197: Optimize Flux Query for querying one time-series [LINQ]
- #205: Exponential random retry [write]
- #193: Create services without API implementation
- #202: Flux AST for Tag parameters which are not
String[LINQ]
- #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
- #183: Propagate runtime exception to EventHandler
- #146: Add support for querying by
LINQ - #171: Add
QueryApiSyncfor synchronous querying - #171: Add
IDomainObjectMapperfor custom mapping DomainObject from/to InfluxDB - #180: Add a mutable
PointData.Builderto optimize building of immutablePointData
- #174: Add possibility to use
CancellationTokenin REST API - #179: Add possibility to use
CancellationTokenin the async write API (WriteApiAsync)
- #168: DateTime is always serialized into UTC
- #169: Fix domain structure for Flux AST
- #181: Remove download overhead for Queries
- #175: Update dependencies of
InfluxDB.Client:- JsonSubTypes to 1.8.0
- Microsoft.Extensions.ObjectPool to 5.0.4
- Microsoft.Net.Http.Headers to 2.2.8
- System.Collections.Immutable to 5.0.0
- System.Configuration.ConfigurationManager to 5.0.0
- System.Reactive to 5.0.0
- #182: Update test dependencies:
- Microsoft.NET.Test.Sdk to 16.5.0
- #182: Add build for
dotnet5, Fix code coverage report
- #154: Always use
ConfigureAwait(false)to avoid unnecessary context switching and potential dead-locks. Avoid unnecessary await overhead. - #158: Remove unnecessary dependencies:
System.Net.HttpandMicrosoft.Bcl.AsyncInterfaces
- #165: Updated stable image to
influxdb:latestand nightly toquay.io/influxdb/influxdb:nightly
- #143: Added validation that a configuration is present when is client configured via file
- #150: The unsigned numbers are serialized with
upostfix
- #140: Updated default docker image to v2.0.3
- #136: CSV parser is able to parse export from UI
- #138: Updated default docker image to v2.0.2
- #121: Added IAsyncEnumerable<T> query overloads to QueryAPI
- #127: Added exponential backoff strategy for batching writes. Default value for
RetryIntervalis 5_000 milliseconds. - #128: Improved logging message for retries
- #122: Default port changed from 9999 to 8086
- #124: Removed labels in organization API, removed Pkg* structure and package service
- #119: No timestamp returned via POCO based QueryAsync<T>
- #97: Improved WriteApi performance
- #116: Moved api generator to separate module influxdb-clients-apigen
- #113: Fixed unnecessary API call when writing collection of DataPoints
- #102: Added WriteApiAsync for asynchronous write without batching
- #106: Fixed serialization of
\n,\rand\tto Line Protocol,=is valid sign for measurement name - #108: Replaced useless .ContinueWith in Api by direct call
- #96: The PointData builder is now immutable
- #94: Update swagger to latest version
- #103: Removed log system from Bucket, Dashboard, Organization, Task and Users API - influxdb#18459
- #104: Upgraded InfluxDB 1.7 to 1.8
- #84: Add possibility to authenticate by Basic Authentication or the URL query parameters
- #91: Added support "inf" in Duration
- #92: Remove trailing slash from connection URL
- #70: Optimized mapping of measurements into
PointData
- #69: Write buffer uses correct flush interval and batch size under heavy load
- #77: Clarify how to use a client with InfluxDB 1.8
- #74: update CsvHelper to [15.0.4,16.0)
- #61: Set User-Agent to influxdb-client-csharp/VERSION for all requests
- #64: Add authentication with Username and Password for Client.Legacy
- #63: Correctly parse CSV where multiple results include multiple tables
- #57: LogLevel Header also contains query parameters
- #58: CircleCI builds over dotnet 2.2, 3.0 and 3.1; Added build on Windows Server 2019
- #60: Deploy dev version to Nuget repository
- #52: Updated swagger to latest version
- #54: Added beta release to continuous integration
- #56: WriteApi is disposed after a buffer is fully processed
- #49: Optimized serialization to LineProtocol
- #46: Updated swagger to latest version
- #43 Added DeleteApi
- #42: Updated swagger to latest version
- #34: Renamed Point class to PointData and Task class to TaskType (improving the usability of this library)
- #40: Added
Asyncsuffix into asynchronous methods
- #59: Added support for Monitoring & Alerting
- #36: Updated swagger to latest version
- #31: Drop NaN and infinity values from fields when writing to InfluxDB
- #39: FluxCSVParser uses a CultureInfo for parsing string to double
- #29: Added support for gzip compression of query response and write body
- #27: The org parameter takes either the ID or Name interchangeably
- #25: Updated swagger to latest version
- #24: The data point without field should be ignored
- Client: The reference C# client that allows query, write and InfluxDB 2.0 management
- Client.Legacy: The reference C# client that allows you to perform Flux queries against InfluxDB 1.7+