Releases: tomasfabian/ksqlDB.RestApi.Client-DotNet
ksqlDB.RestApi.Client v1.0.0
Package was renamed to ksqlDB.RestApi.Client v1.0.0.
Breaking changes: namespaces were changed accordingly
Kafka.DotNet.ksqlDB v2.0.0
ProcessingGuarantee enum
-
KSqlDbContextOptionsBuilder and KSqlDbContextOption SetProcessingGuarantee
-
ProcessingGuaranteeExtensions, AutoOffsetResetExtensions
Basic authentication
- added IKSqlDbProvider.SetCredentials
- added IKSqlDbRestApiClient.SetCredentials
- BasicAuthCredentials
- KSqlDbContextOptionsBuilder and KSqlDbContextOption SetBasicAuthCredentials
- BasicAuthHandler, HttpClientFactoryWithBasicAuth
KSqlDbRestApiClient.InsertIntoAsync
- added support for deeply nested types - Maps, Structs and Arrays
Qbservable.Select
- generation of values from captured variables
Breaking changes:
ISetupParameters changed from
ISetupParameters SetupQuery(Action<IQueryOptions> configure);
ISetupParameters SetupQueryStream(Action<IQueryOptions> configure);
to
ISetupParameters SetupQuery(Action<IKSqlDbParameters> configure);
ISetupParameters SetupQueryStream(Action<IKSqlDbParameters> configure);
IPullable
public ValueTask<TEntity> GetAsync(CancellationToken cancellationToken = default)
was renamed to:
public ValueTask<TEntity> FirstOrDefaultAsync(CancellationToken cancellationToken = default)
KSqlDBContextOptions
⚠ KSqlDBContextOptions created with a constructor or by KSqlDbContextOptionsBuilder are setting the auto.offset.reset to earliest by default. This version removes this default configuration. It will not be opinionated in this way from now.
This will affect your subscriptions to streams.
Bug fix:
- deserialization of stream exceptions (KSqlDbQueryProvider and KSqlDbQueryStreamProvider)
Kafka.DotNet.ksqlDB v1.10.0
Invocation (lambda) functions
- Transform, Reduce and Filter for Maps (dictionaries)
- requirements: ksqldb 0.17.0
Select and Where destructuring properties
- first level
Scalar functions
- Instr, IfNull
IKSqlGrouping.Source
- grouping by nested properies (one level)
Bug fixes:
- KSqlDbRestApiClient.CreateTypeAsync - Entity name from generic types fix
- KsqlDbContext.CreateQueryStream - From item name - generic types fix
Kafka.DotNet.ksqlDB v1.9.0
Invocation (lambda) functions
- requirements: ksqldb 0.17.0
- This version covers ARRAY type. MAP types are not included in this release.
Transform
- Transform a collection by using a lambda function.
Reduce
- Reduce a collection starting from an initial state.
Filter
- Filter a collection with a lambda function.
BYTES
- BYTES TYPE - variable-length byte array (byte[])
- requirements: ksqldb 0.21.0
ToBytes
- Converts a STRING value in the specified encoding to BYTES. The accepted encoders are 'hex', 'utf8', 'ascii' and 'base64'. Since: - ksqldb 0.21
FromBytes
- Converts a BYTES value to STRING in the specified encoding. The accepted encoders are 'hex', 'utf8', 'ascii' and 'base64'. Since: - ksqldb 0.21
KSqlDbRestApiClient.InsertIntoAsync
- added support for inserting
IEnumerable<T>
properties #10 requested by @vijaymandave
Inserting empty arrays
- empty arrays are generated in the following way (workaround)
ARRAY_REMOVE(ARRAY[0], 0))
ARRAY[]
is not yet supported in ksqldb
Kafka.DotNet.ksqlDB v1.8.0
KSqlDbRestApiClient
- DropTypeIfExistsAsync and DropTypeAsync - Removes a type alias from ksqlDB. If the IF EXISTS clause is present, the statement doesn't fail if the type doesn't exist.
- ToInsertStatement - Generates raw string Insert Into, but does not execute it. #7
Operator BETWEEN
- KSqlOperatorExtensions - Between - Constrain a value to a specified range in a WHERE clause.
- KSqlOperatorExtensions - NotBetween - operator is used to indicate that a certain value must not be within a specified range, including boundaries.
Kafka.DotNet.ksqlDB v1.7.0
- KPullSet - GetManyAsync - Pulls all values from the materialized view asynchronously and terminates. #6
- QbservableExtensions - ExplainAsync and ExplainAsStringAsync - Show the execution plan for a SQL expression, show the execution plan plus additional runtime information and metrics.
Kafka.DotNet.ksqlDB v1.6.0
This release contains some requested features from users @vijaymandave and @HaroonSaid. Thank you for detailed explanations.
KSqlDbRestApiClient
-
CreateTypeAsync - Create an alias for a complex type declaration. #4 Complex Types
-
InsertIntoAsync for Complex types -
IEnumerable<T>
, record, class and struct
IN operator
IEnumerable<T>
andIList<T>
Contains method in Where and Select clauses is interpreted as IN. #5 Use 'Contains()'
FIX:
- IEnumerables are converted to ksql ARRAY not to a list of comma separated values
Kafka.DotNet.ksqlDB v1.5.0
QbservableExtensions
ObserveOn
- Wraps the source sequence in order to run its observer callbacks on the specified scheduler.
SubscribeOn
- Wraps the source sequence in order to run its subscription on the specified scheduler.
SubscribeAsync
- Subscribes an element handler, an exception handler, and a completion handler to an qbservable stream and asynchronously returns the query id.
Kafka.DotNet.ksqlDB v1.4.0
KSqlDbRestApiClient:
- TerminatePushQueryAsync - terminates push query by query id
- DropStreamAsync - Drops an existing stream.
- DropTableAsync - Drops an existing table.
Kafka.DotNet.ksqlDB v1.3.0
KSqlDbRestApiClient:
-
CreateSourceConnectorAsync - Create a new source connector in the Kafka Connect cluster with the configuration passed in the config parameter.
-
CreateSinkConnectorAsync - Create a new sink connector in the Kafka Connect cluster with the configuration passed in the config parameter.
-
GetTopicsAsync - lists the available topics in the Kafka cluster that ksqlDB is configured to connect to.
-
GetAllTopicsAsync - lists all topics, including hidden topics.
-
GetTopicsExtendedAsync - list of topics. Also displays consumer groups and their active consumer counts.
-
GetAllTopicsExtendedAsync - list of all topics. Also displays consumer groups and their active consumer counts.
-
GetQueriesAsync - Lists queries running in the cluster.
-
QueriesResponse, Query
-
TerminatePersistentQueryAsync - Terminate a persistent query. Persistent queries run continuously until they are explicitly terminated.
Scalar functions: ExtractJsonField, ConcatWS, Encode
Bug fix:
- #1 - [Pull Query] JsonException when a field contains a comma