Skip to content

Releases: tomasfabian/ksqlDB.RestApi.Client-DotNet

ksqlDB.RestApi.Client v1.3.0

25 Mar 19:53
Compare
Choose a tag to compare

Join Within

  • specify a time window for stream-stream joins

KSqlDbRestApiClient

  • CreateTypeAsync added optional type name argument

Operator LIKE - String.StartsWith, String.EndsWith, String.Contains

Match a string with a specified pattern

IKSqlDBContext Add and SaveChangesAsync

Saving multiple entities with one request

Fixes:

  • KSqlDbContext services collection - injected ILoggerFactory instance is registered as Singleton

ksqlDB.RestApi.Client v1.2.0

08 Nov 15:08
Compare
Choose a tag to compare

KSqlDbServiceCollectionExtensions.ConfigureKSqlDb

  • registers the following dependencies: IKSqlDBContext, KSqlDbRestApiClient, IHttpClientFactory, KSqlDBContextOptions

Logging

  • LogInformation about received data, executed commands and queries
  • added package reference - Microsoft.Extensions.Logging.Abstractions

ksqlDB.RestApi.Client v1.1.0

02 Nov 14:53
Compare
Choose a tag to compare
  • multiple joins with query comprehension syntax (GroupJoin, SelectMany, DefaultIfEmpty)

ksqlDB.RestApi.Client v1.0.0

19 Oct 19:43
Compare
Choose a tag to compare

Package was renamed to ksqlDB.RestApi.Client v1.0.0.

Breaking changes: namespaces were changed accordingly

Kafka.DotNet.ksqlDB v2.0.0

15 Oct 18:46
Compare
Choose a tag to compare

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

08 Oct 14:38
2e29294
Compare
Choose a tag to compare

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

30 Sep 13:45
0cf95e0
Compare
Choose a tag to compare

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

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

22 Sep 19:19
Compare
Choose a tag to compare

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

19 Sep 18:33
Compare
Choose a tag to compare
  • 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

14 Sep 20:45
Compare
Choose a tag to compare

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> and IList<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