* Revert "Revert "Added props""
This reverts commit f40ad30d39.
* Fixed NPE
* Added tests
* Formatting
* Tests again
* Fixed NRE
* Upgrade mockito to fix tests
* Added according to spec
* Fallback to env
* Align name
* format
* format
* format
* Fixed tests
* Some comments
* Moved header logic away.
* Formatter
* Fixed null
* Removed append method
* FFormat
* remove unrelated test
* Optimize imports
* Align param order with .net
* format
* Naming
* Use real url
* PR fixes
* public
* format
* Update Utils.java
* start
* matcher
* clean
* matcher
* dragt
* not work
* Tests and all works well
* Tests and all works well
* clean all dirt
* fix format
* fix formatClientImpl
* databind conflict
* Formatting
* fix NPE
comments
* comment
* revert e2e
* fix NPEs !!
* format
Co-authored-by: Ohad Bitton <ohbitton@microsoft.com>
Co-authored-by: AsafMah <asafmahlev@microsoft.com>
* Added formatter plugin, right now only starting
* Put config on main file
* Updated style to match ours better.
* Added declaration.
* edit build.yml
* Update style and apply formatting
* Update style and apply formatting
* Tweaked settings again
* Replace with session because that might be the correct path.
* Try formatting
* line endings
* renormalize new lines
* csluuid
* new lines
* new lines
* Run again with clean
* fixed build.yml
* Changed style to be better
* Added some docs
* 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>
* 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
* 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>
* 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
* Rearchitect the AAD authentication code to be object oriented and follow best-practices (Java and otherwise)
* Rearchitect the AAD authentication code to be object oriented and follow best-practices (Java and otherwise)
* Code review comments:
- Rename to CallbackTokenProvider
- Remove 2 unnecessarily-passed authorityIds
* Add another layer of abstraction (MsalTokenProvider)
* Add another layer of abstraction (MsalTokenProvider)
* Add Override annotation per code review comment
* Convert from ADAL to MSAL (include a few questions to be resolved during code review)
* Resolve some TODOs
* Some minor changes and some changes from code review
* Incorporate most review comments
* Add '/' to authority to resolve issue.
* Per Yochai's request, first try to access the token silently, and if that fails authenticate from scratch
* Make the method determineAadAuthorityUrl() less confusing
* Fix error
* Fix test