Skip to content

v3.0.0

Compare
Choose a tag to compare
@AsafMah AsafMah released this 11 Jan 17:32
· 190 commits to master since this release
6df93e8

This is a major release.

Breaking Changes

  • Many of the public fields in classes have turned into privates, with getters and setters replacing them
  • Renamed according to java conventions: -
    1. All enum members are now in UPPER_SNAKE_CASE to conform with java conventions
    2. enum DATA_FORMAT was renamed to DataFormat
  • Removed enum DataFormat.Unknown
  • KustoResultSetTable no longer implements the interface java.sql.ResultSet, as they never really matched in their functionality and interfaces
  • Creating a ClientImpl requires in its ConnectionStringBuilder a URL with at least its authority defined
  • IngestionProperties now works with DataFormat as its object type instead of a String
  • Ingestion will now fail validation if any of the following ingestion property conditions are met:
    1. Mapping isn't specified for a data format that requires one
    2. IngestionMappingKind was defined, but a mapping wasn't defined
    3. Provided IngestionMappingKind doesn't match the data format's expected ingestion mapping format
    4. Both mapping reference and column mappings were defined
    5. A provided column mapping is invalid for the provided IngestionMappingKind

Features

Added Quickstart application

  • Inside the repo there is now a new module for a Quickstart app. It serves as a sample and a tutorial for the entire flow for working with the sdk, including creating tables, ingesting data and querying.

Authentication improvements

  • Added Managed Identity Authentication
  • Add subject issuer and certificate chain (SNI) support to authentication

ManagedStreamingIngest Improvements

  • Sleeps exponentially between retries
  • Custom ClientRequestId for improved telemetry
  • Protect better against empty ClientRequestId
  • Added helper constructors for easy construction
  • Supports non-resettable streams
  • Supports LeaveOpen for streams
  • Fallback to queued on big files

Data formats and mappings

  • Added support for new formats and mapping, including W3CLogFile, SStream and better support for TXT and RAW
  • Improved OO nature of DataFormat and IngestionMappingKind, and the relationship between them

Typed parameterized query helpers

Helper functions to add parameters to a query in a type-safe manner

Minor features and bug fixes

  • Add x-ms-activitycontext and x-ms-user-id (from UserNameForTracing in ConnectionStringBuilder) headers for better telemetry
  • KustoDataExceptionBase is available
  • Enable timeout config to be passed in additional formats besides String
  • Flexibility with whether ConnectionStringBuilder's cluster URL has an ending slash
  • Improved E2E tests to only run tests whose prerequisites are defined
  • Better exception reporting of 404 Not Found errors
  • Better localhost support
  • Fixed error that caused streams to be closed in the wrong order
  • Default uploaded blob extension to csv instead of being empty when IngestionProperty.DataFormat is null
  • getMappingReference() would fail unnecessarily because it was comparing the DataFormat to the IngestionMappingKind, because the former doesn't have a one-to-one with the latter, but instead a one-to-many relationship with the latter
  • Many dependency upgrades
  • Many dependency conflict preventions
  • Specify runtime scope for slf4j's impl