* Coverage test
* attempt 2
* Fixed pom
* Different combination
* Try without e2e
* Try without e2e
* Fixed paths
* Fixed paths
* Added thread id to avoid collisions
* Add random component to table name to avoid collisions
* Make sure number is not negative
Co-authored-by: Yihezkel Schoenbrun <yihezkel@schoenbrun.net>
* Fix enum nomenclature
* Fix enum nomenclature
* Fix IngestionBlobInfo to use the String versions of the enums
* Add KustoValue to IngestionReportLevel and IngestionReportMethod enums
* From code review
* Validate IngestionProperties properly
* Fix tests
* Begin relaxing restrictions
* Allow CSV mappings for RAW and TXT, per Michael Spector
* Remove wildcard imports and add regex explanation
* Throw exception if null passed to setDataFormat()
* Change concatenation to TextStringBuilder
* Add Apache's commons-text to ingest module
* Use Ensure.argIsNotNull()
* Offer typed parameterized query helpers
* Offer typed parameterized query helpers
* Improve TimeToString and add E2E test
* Fix PATTERN name
* Update Time datatype to be called Timespan
Implement better parity parsing of datetime from String
* Remove wildcard imports and add regex explanation
* Change single line if/else to ternary
* Added ManagedStreaming improvements
* More Changes:
-Added factory methods for easy construction
-Supports non-resettable streams
-Supports LeaveOpen
-Fallback on big files
* Fix DataFormat bugs and add enhancements
* Fix test
* Forgot a small change
* Per code review, moving "format" field in AdditionalProperties to its own strongly-typed field.
* Previously, StreamingIngestClient compressed the stream if it isn't already compressed.
As Asaf noticed, for consistency with the other ingest clients, it should compress if Stream is not already compressed and the DataFormat is compressible.
* Unify and improve mappings validations
* Ensure mapping reference is provided for StreamingIngestClient
* Mapping reference is not necessarily required for StreamingIngestClient - only when mapping is required.
* Align with how this error originally was (though no practical difference)
- Do not exclude the slf4j's impl from maven-dependency-plugin
- Relatedly, turn on ignoreNonCompile in maven-dependency-plugin
- Minor readability improvement in ClientImpl constructor
* Initial commit.
The intent is to review this in its current feature-complete state, so I can also commit the equivalent changes in the Python SDK.
Then, in the next PR (or before merging this PR), I will make some additional improvements as discussed, including break main into individual methods and refactor this "query-ingest-query" approach into an additional "query-only" mode.
* Remove comment
* Optimize if/else
* Minor verbiage changes
* Minor verbiage changes
* Minor verbiage changes
* Update README.md
Co-authored-by: Yochai Gilad <yogilad@microsoft.com>
* - Break main up into methods
- Consider new parameters
- Few code review changes, like consistent periods at end of sentences and filename consistency with Python
* Only alter batching policy if !useExistingTable
* - Pass filesize of 0 for autodetection
- Do not create a File object to get its path; just pass along the provided path
- Move alterBatchingPolicy to within createNewTable, and wrap it in if(false) so it won't run
- Add comment explaining that we generally wouldn't print the output of a control command
* - Improve README text
- Change .alter command to .alter-merge command
* - Change filename kusto-sample-config.json to kusto_sample_config.json to be consistent with Python
* - Fix reference to Python
- Aad a comment for AppCertificate auth
Co-authored-by: Yochai Gilad <yogilad@microsoft.com>
Breaking Changes:
Reverted mandatory DataFormat
Features:
Added github actions for running builds
Fixes:
Fixed pipeline to run and test
Fixed failing tests and other minor fixes
* Support AAD Managed Identity authentication
* Update data/src/main/java/com/microsoft/azure/kusto/data/auth/ManagedIdentityTokenProvider.java
Co-authored-by: AsafMah <asafmahlev@microsoft.com>
* Fix scope
* Fix space
* Downgrade azure-identity package to avoid showstopper bug causing ManagedIdentity auth to fail.
Note that there still remains 1 change to be made in this PR - to set the scope based on the Kusto Service Resource ID from CloudInfo. In support of this, I have a 22-file change to broadly improve how the TokenProviders consume from CloudInfo, but am hesitating to push that before understanding the initial CloudInfo design decisions.
At a high level, I would like to change the throws list when creating a client. It currently throws URISyntaxException, because it only uses CloudInfo when a token is requested. However, I don't see why we don't make use of CloudInfo when creating the client, in which case we should return a DataClientException/DataServiceException. This is a breaking change and a non-trivial paradigm shift, so it's worth discussing first.
I will begin discussing this with Asaf tomorrow.
* Resolve dependency conflicts
* Reorganize CloudInfo code
* Fix compilatino error
* Remove superfluous method (determineAadAuthorityUrl)
* Remove duplicate line
* Fix cloudinfo initialization
* Fix E2E tests (have been broken for a while)
* Switch order of clientUrl to be first
Co-authored-by: AsafMah <asafmahlev@microsoft.com>
* Implement MSAL Subject Name Issuer authentication
* Update ConnectionStringBuilder.java
* Update ConnectionStringBuilder.java
* Fix build failure after OnCloudInit() was added to abstract parent
* Ensure we send the public certificate when using SNI
Co-authored-by: ohad bitton <32278684+ohadbitt@users.noreply.github.com>
* Kusto now queries the provided cluster for metadata. This fixes incompatibility issues with other clouds, or services like Synapse. The results are cached and don't require any changes to the user's code or behavior.
* new API to get primitive as objects to handle null values
* nulls
* better
* comments
* comments
Co-authored-by: KustoIbizaExtension Build <kustodev@microsoft.com>
* Add streaming query API
* - Add some resource closing enhancements
- Wrap the CloseParentResourcesStream in a EofSensorInputStream, as opposed to the converse
* Add TODO to reuse HttpClient
* Use existing Java exception formatting, which is an improvement over the .NET exception
* Add new API to query so that the result is a json. When the caller doesn't need the Java object, this saves time converting to a Java object in the SDK and from the caller converting from the Java object.
* - Split input variables validation
- trim() command
* Rename from executeForJsonResult to executeToJsonResult
* Rename from executeForJsonResult to executeToJsonResult
* Streaming endpoint is always v1
* - Optimize and upgrade dependency versions
- Remove dependency duplicates/conflicts
- Resolve mvn warnings
* - Use range to ensure specific minor version of jackson dependencies
- Upgrade flatten-maven-plugin