Skip to content

Releases: Azure/azure-kusto-python

Kusto Python version 2.1.0

17 Mar 11:46
c9755ef
Compare
Choose a tag to compare

Features:

  • Add async io options using aiohttp to azure-kusto-data.
    This feature enables asynchronous calls that work with the built-in python coroutines
    Use the aio extra to include the client, and then access it via the azure.kusto.data.aio namespace.
  • Add an option to login interactively with MSAL

Fixes:

  • Handle possibility of unidentifiable OS or HTTPConnection.default_socket_options being None
  • Fix MSAL default scope
  • Fix helpers.to_pandas_timedelta conversion

Kusto Python version 2.0.0

07 Jan 08:40
337e4b7
Compare
Choose a tag to compare

The main change in this release is using MSAL instead of ADAL as an authentication library.

BREAKING CHANGES:

  • Replace ADAL authentication library with MSAL.
  • SDK dependencies have changed.
  • Legacy IngestionProperties no longer usable.
  • The KustoIngestClient class is now more accurately named QueuedIngestClient.

FEATURES:

  • Support norequesttimeout ClientRequestProperty by setting the timeout to its maximum.
  • Expose a retry parameter in the KustoClient init function.
  • Improve calls to execute query performance by processing the result in a lazy manner.
  • Expose raw query result to improve conversion into Pandas DataFrame.
  • Add support of w3clogfile format.

FIXES:

  • Send TCP Keep-Alive at regular intervals so that connections for long-running queries aren't dropped by the Load Balancer Service.
  • Deletion of temporary files in case of an exception.
  • Add client-server delta to all request timeouts.
  • Add friendly error message when authentication with az_cli_auth and refresh token was expired.

Wrong endpoint detection and minor fixes

11 Oct 16:45
09ebbaa
Compare
Choose a tag to compare

BREAKING CHANGES:

  • None.

FEATURES:

  • Wrong endpoint detection - If the ingest client is constructed with a non-DataManagement endpoint, the user will receive a KustoClientError with a suggestion of the most likely DataManagement endpoint, instead of a generic KustoServiceError.

FIXES:

  • Support independent cloud endpoint URLs.
  • Fix parsing decimal values in KustoResultRow when using pandas DataFrame.
  • Explicit handling of 404 errors.
  • Fix an issue where the lack of payload in the response message caused an exception to be thrown.

OTHERS:

  • Clean up data (drop created table) after running E2E tests.

Authentication Bug Fixes

29 Jul 11:48
2df5f75
Compare
Choose a tag to compare

FIXES:

  • Bug: SNI auth option is ignored
  • Bug: Token Provider auth is missing Federated Security flag

Fix break in MSI Auth

23 Jul 12:21
b2f40a1
Compare
Choose a tag to compare

FIXES:

  • MSI auth throws exception due to change in token result format

Graduate Kusto Python to Version 1.0.0

12 Jul 11:57
54875b1
Compare
Choose a tag to compare

This release include some miscellaneous changes and features.

BREAKING CHANGES:

  • Authentication via Managed Service Identity uses azure.identity instead of msrestazure.
    This library caches tokens which would resolve some issues for high capacity users.
    At the moment however, it only supports obtaining user managed service identities via the client_id hint.
    Attempting to provide KustoConnectionStringBuilder with an object_id or msi_res_id will result in a ValueError exception being thrown.

FEATURES:

  • Added an option to authenticate using a certificate subject name and issuer.
    KustoConnectionStringBuilder.with_aad_application_certificate_sni_authentication(cluster, client_id, PEM, public_certificate, thumbprint, authority_id)

FIXES:

  • Fix a bug where the exception text description reported to KustoServiceError were not saved due to a change in the syntax for explicitly calling a Super class constructor. Please mind that,
    -- The exception text description is saved in the args field of the Exception class.
    -- The message field no long exists in Python 3

  • Raise descriptive exception when az cli token not found when using az cli authentication.

Support Blob Storage API 12.x.x

31 May 08:20
24a9177
Compare
Choose a tag to compare

Release is mostly around changing the dependency for Azure Storage on the azure-kusto-ingest package.

It also includes various changes, which are mostly cosmetic, as well as adding E2E tests and adding them to the build pipeline as a check.

BREAKING CHANGES:

  • Upgraded to use Azure Storage v12 (will require dependencies)
  • All arguments changed to snake_case to conform to python guidelines.
  • Renamed azure.kusto.data.request to azure.kusto.data.client - old import of from azure.kusto.data.request import KustoClient will now break. should change them to `rom azure.kusto.data import KustoClient

FEATURES:

None

FIXES:

  • fixed breaking test (test_kusto_streaming_ingest_client.py)

OTHERS:

  • Etoe tests - cleanup, grabbing connection parameters from env, and running inside buildpipeline.
  • Added Contrib doc
  • Added annotations where possible

Various minor fixes

06 May 16:13
Compare
Choose a tag to compare

BREAKING CHANGES:

  • None

FEATURES:

  • New option to authenticate by providing a function callback to KustoConnectionStringBuilder which returns a valid authentication token as a string, e.g.
token_provider = lambda: "{caller token}"
kcsb = KustoConnectionStringBuilder.with_token_provider("http://mykusto.kusto.windows.net", token_provider)
  • When ingesting zip and gzip files, and uncompressed file size is not provided by the caller, attempt to detect uncompressed size from the file metadata.

  • When ingesting, a user can provide inline ingestion mapping in the ingestion command instead of creating it in advance.
    We suggest to use the new columnMapping class instead of CsvColumnMapping or JsonColumnMapping.

FIXES:

  • When ingesting a file and uncompressed file size is provided by the caller, use provided uncompressed file size instead of estimating the uncompressed size from the file size or file metadata

Fix for MSI auth

03 Mar 08:38
5fed55f
Compare
Choose a tag to compare

BREAKING CHANGES:

None

FEATURES:

None

FIXES:

  • Minor fix for MSI auth

AZ CLI support

04 Feb 14:20
Compare
Choose a tag to compare

BREAKING CHANGES:

  • no more py2 (reached EOL)

FEATURES:

  • removed six - should reduce size when installing
  • added better docs and cleaner py3 syntax where possible

FIXES:

  • add az cli authentication:
    Once a user logs in to az cli using az login and then requests an access token using az account get-access-token, the client will be able to pick up the token and use it.
    client = KustoClient(KustoConnectionStringBuilder.with_az_cli_authentication('https://cluster'))