text:
Add SyndicatedRegistries to registries.json

ARM (Control Plane) API Specification Update Pull Request

[!TIP]
Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!

[ ] New resource provider.
[ ] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been created in adherence to OpenAPI specs PR creation guidance).
[x] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix OpenAPI spec quality issues in S360.
[ ] Convert existing OpenAPI spec to TypeSpec spec (do not combine this with implementing changes for a new API version).
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.

Additional information

 Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.

Getting help

First, please carefully read through this PR description, from top to bottom. Please fill out the Purpose of this PR and Due diligence checklist.
If you don't have permissions to remove or add labels to the PR, request write access per aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositories
To understand what you must do next to merge this PR, see the Next Steps to Merge comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
For help with ARM review (PR workflow diagram Step 2), see https://aka.ms/azsdk/pr-arm-review.
If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

/azp run

API change check
APIView has identified API level changes in this PR and created following API reviews.
Microsoft.MachineLearningServices

/azp run

Looking to add a new field that matches this structure:
`public Dictionary<Guid, SyndicatedRegistry> SyndicatedRegistries { get; set; }
public class SyndicatedRegistry
{
///
/// The Registry Id of the syndicated Registry
///
public Guid RegistryId { get; set; }
}`

@gfitzgerald42, @chaoyu-msft: If PRs have errors from LintDiff, you should not add label Approved-LintDiff.  Instead, you should suppress the error in your readme.md, per instructions here:
https://eng.ms/docs/products/azure-developer-experience/design/specs-pr-guides/pr-suppressions#suppress-autorest-extension
@ms-bogdan-rotaru: Should ARM signoff also wait until LintDiff is passing (with a suppression, not a PR label)?

authors: azure-sdk chaoyu-msft gfitzgerald42 mikeharder


text:
Update consumption management Node.js package version to 5.0.0

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[ ] The title of the PR is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[ ] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes.
[ ] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[ ] I have read the contribution guidelines.
[ ] My spec meets the review criteria:

[ ] The spec conforms to the Swagger 2.0 specification.
[ ] The spec follows the guidelines described in the Swagger checklist document.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-java

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-go

Automation for azure-sdk-for-node

source: gharchive/pull-request

authors: AutorestCI daschult

repo: Azure/azure-rest-api-specs

license: MIT

license_type: permissive

license_source: github-api


text:
Add custom domain swagger spec for applatform

Add new resource customdomain.
Add new property certificate under app resource.

Signed-off-by: Pan Li panli@microsoft.com
Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

/azp run automation - sdk

/azp run automation - sdk

Can one of the admins verify this patch?

authors: AutorestCI Incarnation-p-lee azuresdkci


text:
[BUG] Fix the broken CI

The CI pipeline is failing.

Failures are happening in the Checkout step when we sync submodules.
MacOS: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=165079&view=logs&j=e19fb9f5-0d1c-5d44-e7fc-ec48b0f55c01&t=e8fb2485-724a-5f59-4d94-8d13ba6af75c&l=804
Windows: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=165079&view=logs&j=821ec830-5bf7-56af-2689-0bf660f73d92&t=26e9f442-df78-522f-b4c2-cc3efa5c27aa&l=461
Linux: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=165079&view=logs&j=33ec77a3-35e3-553a-4909-d8cbecdaa5a2&t=6cfc8477-5af9-5a99-7af1-12952f19b968&l=785
...

HEAD is now at ee76b6e Add functions for Base64 conversions. (#94)
git submodule sync --recursive
git -c http.https://github.com.extraheader="AUTHORIZATION: basic ***" submodule update --init --force --depth=20 --recursive
Submodule 'sdk/ustorageclient/deps/azure-c-shared-utility' (https://github.com/Azure/azure-c-shared-utility.git) registered for path 'sdk/storage/ustorageclient/deps/azure-c-shared-utility'
Submodule 'sdk/ustorageclient/deps/azure-c-testrunnerswitcher' (https://github.com/Azure/azure-c-testrunnerswitcher.git) registered for path 'sdk/storage/ustorageclient/deps/azure-c-testrunnerswitcher'
Submodule 'sdk/ustorageclient/deps/azure-ctest' (https://github.com/Azure/azure-ctest.git) registered for path 'sdk/storage/ustorageclient/deps/azure-ctest'
Submodule 'sdk/ustorageclient/deps/azure-macro-utils-c' (https://github.com/Azure/azure-macro-utils-c.git) registered for path 'sdk/storage/ustorageclient/deps/azure-macro-utils-c'
Submodule 'sdk/ustorageclient/deps/umock-c' (https://github.com/Azure/umock-c.git) registered for path 'sdk/storage/ustorageclient/deps/umock-c'
Cloning into '/home/vsts/agents/2.158.0/d:\a/1/s/sdk/storage/ustorageclient/deps/azure-c-shared-utility'...
Cloning into '/home/vsts/agents/2.158.0/d:\a/1/s/sdk/storage/ustorageclient/deps/azure-c-testrunnerswitcher'...
Cloning into '/home/vsts/agents/2.158.0/d:\a/1/s/sdk/storage/ustorageclient/deps/azure-ctest'...
Cloning into '/home/vsts/agents/2.158.0/d:\a/1/s/sdk/storage/ustorageclient/deps/azure-macro-utils-c'...
Cloning into '/home/vsts/agents/2.158.0/d:\a/1/s/sdk/storage/ustorageclient/deps/umock-c'...
error: Server does not allow request for unadvertised object 877f15cec0ffccbff5d047a9ed5d4b951e8c5250
Fetched in submodule path 'sdk/storage/ustorageclient/deps/azure-c-shared-utility', but it did not contain 877f15cec0ffccbff5d047a9ed5d4b951e8c5250. Direct fetching of that commit failed.
##[error]Git submodule update failed with exit code: 1

source: gharchive/issue

authors: danieljurek gilbertw

repo: Azure/azure-sdk-for-c


text:
Refined returned properties for list/download API in DataLake.

Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.

[x] C++ Guidelines
[x] Doxygen docs
[x] Unit tests
[x] No unwanted commits/changes
[x] Descriptive title/description

[x] PR is single purpose
[x] Related issue listed

[x] Comments in source
[x] No typos
[x] Update changelog
[x] Not work-in-progress
[x] External references or docs updated
[x] Self review of PR done
[x] Any breaking changes?

/azp run cpp - storage

/azp run cpp - storage

/check-enforcer override

repo: Azure/azure-sdk-for-cpp


text:
Sync eng/common directory with azure-sdk-tools for PR 1496

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/1496  See eng/common workflow

/check-enforcer override

authors: azure-sdk chidozieononiwu


text:
Add support for multi-tenant authentication

This is a hard requirement for TF support.

Adding more context:
Currently, AzureRM provider makes use of auxiliary tenant to allow users to provision resource crossing tenants (e.g. cross tenant vnet peering).
The reason why the AzureRM provider works is because it depends on Go SDK Track2, where it can construct a multi-tenant authorizer for service principal either via adal.NewMultiTenantServicePrincipalToken, or via getting the token from azcli (and convert it into SP token).

authors: jhendrixMSFT magodo

repo: Azure/azure-sdk-for-go


text:
regenerate from latest specs and generator

specs - eecb26c94952b58b0c848e06042358158bcdce1d
autorest.go - v2.1.130

Can one of the admins verify this patch?

authors: azuresdkci jhendrixMSFT


text:
[BUG] azure-keyvault-secrets-spring-boot-starter:2.1.7 stopped working on September 6

Describe the bug
azure-keyvault-secrets-spring-boot-starter has latest com.nimbusds:nimbus-jose-jwt as a transitive dependency. Latest version, 9.0 released on September 6 is not backwards compatible.
Upgrade to 2.3.x is not an option for us, as you have breaking changes to api, for example com.microsoft.azure.keyvault.KeyVaultClient is gone.
Exception or Stack Trace
Sep 7, 2020 16:27:41 +0000 [1 1] com.newrelic INFO: New Relic Agent: Loading configuration file "/usr/local/tomcat/webapps/telemetry/newrelic/./newrelic.yml"
Sep 7, 2020 16:27:42 +0000 [1 1] com.newrelic INFO: Using default collector host: collector.newrelic.com
Sep 7, 2020 16:27:42 +0000 [1 1] com.newrelic ERROR: license_key is empty in the config. Not starting New Relic Agent.
07-Sep-2020 16:27:44.331 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/8.5.57
07-Sep-2020 16:27:44.342 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jun 30 2020 21:49:10 UTC
07-Sep-2020 16:27:44.342 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.57.0
07-Sep-2020 16:27:44.342 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
07-Sep-2020 16:27:44.342 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.15.0-1089-azure
07-Sep-2020 16:27:44.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
07-Sep-2020 16:27:44.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/openjdk-8/jre
07-Sep-2020 16:27:44.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_265-b01
07-Sep-2020 16:27:44.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
07-Sep-2020 16:27:44.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
07-Sep-2020 16:27:44.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
07-Sep-2020 16:27:44.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
07-Sep-2020 16:27:44.346 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
07-Sep-2020 16:27:44.346 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:/usr/local/tomcat/webapps/telemetry/applicationinsights-agent.jar
07-Sep-2020 16:27:44.346 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:/usr/local/tomcat/webapps/telemetry/newrelic/newrelic.jar
07-Sep-2020 16:27:44.346 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dnewrelic.environment=production
07-Sep-2020 16:27:44.347 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
07-Sep-2020 16:27:44.347 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
07-Sep-2020 16:27:44.347 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
07-Sep-2020 16:27:44.347 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
07-Sep-2020 16:27:44.347 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
07-Sep-2020 16:27:44.348 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.24] using APR version [1.6.5].
07-Sep-2020 16:27:44.349 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
07-Sep-2020 16:27:44.349 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
07-Sep-2020 16:27:44.361 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1d  10 Sep 2019]
07-Sep-2020 16:27:44.586 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
07-Sep-2020 16:27:44.613 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
07-Sep-2020 16:27:44.636 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1358 ms
07-Sep-2020 16:27:44.687 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
07-Sep-2020 16:27:44.687 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.57
07-Sep-2020 16:27:44.723 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
07-Sep-2020 16:27:45.343 WARNING [localhost-startStop-1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default version will be used.
07-Sep-2020 16:28:12.890 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
07-09-2020 16:28:21.057 [localhost-startStop-1] ERROR o.s.boot.SpringApplication.reportFailure - Application run failed
java.lang.NoSuchMethodError: com.nimbusds.jwt.JWTClaimsSet.toJSONObject()Lnet/minidev/json/JSONObject;
	at com.nimbusds.oauth2.sdk.auth.JWTAuthenticationClaimsSet.parse(JWTAuthenticationClaimsSet.java:166)
	at com.nimbusds.oauth2.sdk.auth.JWTAuthentication.<init>(JWTAuthentication.java:140)
	at com.nimbusds.oauth2.sdk.auth.PrivateKeyJWT.<init>(PrivateKeyJWT.java:248)
	at com.nimbusds.oauth2.sdk.auth.PrivateKeyJWT.parse(PrivateKeyJWT.java:283)
	at com.microsoft.aad.adal4j.AuthenticationContext.createClientAuthFromClientAssertion(AuthenticationContext.java:941)
	at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:241)
	at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:376)
	at com.microsoft.azure.keyvault.spring.KeyVaultCertificateCredential.doAuthenticate(KeyVaultCertificateCredential.java:63)
	at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials.getAuthenticationCredentials(KeyVaultCredentials.java:113)
	at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials.access$100(KeyVaultCredentials.java:27)
	at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials$2.authenticate(KeyVaultCredentials.java:81)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.followUpRequest(RetryAndFollowUpInterceptor.java:230)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:119)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at com.microsoft.rest.retry.RetryHandler.intercept(RetryHandler.java:75)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at com.microsoft.rest.interceptors.CustomHeadersInterceptor.intercept(CustomHeadersInterceptor.java:140)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at com.microsoft.rest.interceptors.BaseUrlHandler.intercept(BaseUrlHandler.java:43)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at com.microsoft.rest.interceptors.RequestIdHeaderInterceptor.intercept(RequestIdHeaderInterceptor.java:29)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at com.microsoft.rest.interceptors.UserAgentInterceptor.intercept(UserAgentInterceptor.java:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials$1.intercept(KeyVaultCredentials.java:59)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
	at okhttp3.RealCall.execute(RealCall.java:81)
	at retrofit2.OkHttpCall.execute(OkHttpCall.java:186)
	at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request(RxJavaCallAdapterFactory.java:171)
	at rx.Subscriber.setProducer(Subscriber.java:211)
	at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
	at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:152)
	at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)
	at rx.Observable.unsafeSubscribe(Observable.java:10327)
	at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)
	at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
	at rx.Observable.subscribe(Observable.java:10423)
	at rx.Observable.subscribe(Observable.java:10390)
	at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:443)
	at rx.observables.BlockingObservable.single(BlockingObservable.java:340)
	at com.microsoft.azure.keyvault.KeyVaultClientImpl.getSecrets(KeyVaultClientImpl.java:2951)
	at com.microsoft.azure.keyvault.KeyVaultClient.listSecrets(KeyVaultClient.java:911)
	at com.microsoft.azure.keyvault.spring.KeyVaultOperation.fillSecretsHashMap(KeyVaultOperation.java:111)
	at com.microsoft.azure.keyvault.spring.KeyVaultOperation.<init>(KeyVaultOperation.java:43)
	at com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessorHelper.addKeyVaultPropertySource(KeyVaultEnvironmentPostProcessorHelper.java:66)
	at com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessor.postProcessEnvironment(KeyVaultEnvironmentPostProcessor.java:26)
	at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:188)
	at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:176)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:76)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
	at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:152)
	at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:132)
	at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:92)
	at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:172)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5144)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1125)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1858)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
07-Sep-2020 16:28:21.269 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
	org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
		at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1125)
		at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1858)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
		at java.lang.Thread.run(Thread.java:748)
	Caused by: java.lang.NoSuchMethodError: com.nimbusds.jwt.JWTClaimsSet.toJSONObject()Lnet/minidev/json/JSONObject;
		at com.nimbusds.oauth2.sdk.auth.JWTAuthenticationClaimsSet.parse(JWTAuthenticationClaimsSet.java:166)
		at com.nimbusds.oauth2.sdk.auth.JWTAuthentication.<init>(JWTAuthentication.java:140)
		at com.nimbusds.oauth2.sdk.auth.PrivateKeyJWT.<init>(PrivateKeyJWT.java:248)
		at com.nimbusds.oauth2.sdk.auth.PrivateKeyJWT.parse(PrivateKeyJWT.java:283)
		at com.microsoft.aad.adal4j.AuthenticationContext.createClientAuthFromClientAssertion(AuthenticationContext.java:941)
		at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:241)
		at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:376)
		at com.microsoft.azure.keyvault.spring.KeyVaultCertificateCredential.doAuthenticate(KeyVaultCertificateCredential.java:63)
		at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials.getAuthenticationCredentials(KeyVaultCredentials.java:113)
		at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials.access$100(KeyVaultCredentials.java:27)
		at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials$2.authenticate(KeyVaultCredentials.java:81)
		at okhttp3.internal.http.RetryAndFollowUpInterceptor.followUpRequest(RetryAndFollowUpInterceptor.java:230)
		at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:119)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
		at com.microsoft.rest.retry.RetryHandler.intercept(RetryHandler.java:75)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
		at com.microsoft.rest.interceptors.CustomHeadersInterceptor.intercept(CustomHeadersInterceptor.java:140)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
		at com.microsoft.rest.interceptors.BaseUrlHandler.intercept(BaseUrlHandler.java:43)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
		at com.microsoft.rest.interceptors.RequestIdHeaderInterceptor.intercept(RequestIdHeaderInterceptor.java:29)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
		at com.microsoft.rest.interceptors.UserAgentInterceptor.intercept(UserAgentInterceptor.java:83)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
		at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials$1.intercept(KeyVaultCredentials.java:59)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
		at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
		at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
		at okhttp3.RealCall.execute(RealCall.java:81)
		at retrofit2.OkHttpCall.execute(OkHttpCall.java:186)
		at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request(RxJavaCallAdapterFactory.java:171)
		at rx.Subscriber.setProducer(Subscriber.java:211)
		at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
		at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:152)
		at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)
		at rx.Observable.unsafeSubscribe(Observable.java:10327)
		at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)
		at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)
		at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
		at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
		at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
		at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
		at rx.Observable.subscribe(Observable.java:10423)
		at rx.Observable.subscribe(Observable.java:10390)
		at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:443)
		at rx.observables.BlockingObservable.single(BlockingObservable.java:340)
		at com.microsoft.azure.keyvault.KeyVaultClientImpl.getSecrets(KeyVaultClientImpl.java:2951)
		at com.microsoft.azure.keyvault.KeyVaultClient.listSecrets(KeyVaultClient.java:911)
		at com.microsoft.azure.keyvault.spring.KeyVaultOperation.fillSecretsHashMap(KeyVaultOperation.java:111)
		at com.microsoft.azure.keyvault.spring.KeyVaultOperation.<init>(KeyVaultOperation.java:43)
		at com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessorHelper.addKeyVaultPropertySource(KeyVaultEnvironmentPostProcessorHelper.java:66)
		at com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessor.postProcessEnvironment(KeyVaultEnvironmentPostProcessor.java:26)
		at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:188)
		at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:176)
		at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
		at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
		at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
		at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
		at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:76)
		at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
		at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345)
		at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
		at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:152)
		at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:132)
		at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:92)
		at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:172)
		at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5144)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		... 10 more
{"message":"Application run failed","timestamp":1599496101057,"log.level":"ERROR","logger.name":"org.springframework.boot.SpringApplication","thread.name":"localhost-startStop-1","class.name":"org.apache.catalina.core.StandardContext","method.name":"startInternal","line.number":5144,"error.class":"java.lang.NoSuchMethodError","error.message":"com.nimbusds.jwt.JWTClaimsSet.toJSONObject()Lnet/minidev/json/JSONObject;","error.stack":"  at com.nimbusds.oauth2.sdk.auth.JWTAuthenticationClaimsSet.parse(JWTAuthenticationClaimsSet.java:166)\n  at com.nimbusds.oauth2.sdk.auth.JWTAuthentication.<init>(JWTAuthentication.java:140)\n  at com.nimbusds.oauth2.sdk.auth.PrivateKeyJWT.<init>(PrivateKeyJWT.java:248)\n  at com.nimbusds.oauth2.sdk.auth.PrivateKeyJWT.parse(PrivateKeyJWT.java:283)\n  at com.microsoft.aad.adal4j.AuthenticationContext.createClientAuthFromClientAssertion(AuthenticationContext.java:941)\n  at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:241)\n  at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:376)\n  at com.microsoft.azure.keyvault.spring.KeyVaultCertificateCredential.doAuthenticate(KeyVaultCertificateCredential.java:63)\n  at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials.getAuthenticationCredentials(KeyVaultCredentials.java:113)\n  at com.microsoft.azure.keyvault.authentication.KeyVaultCredentials.access$100(KeyVaultCredentials.java:27)\n"}
07-Sep-2020 16:28:21.274 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [/usr/local/tomcat/webapps/ROOT]
	java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:747)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
		at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1125)
		at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1858)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
		at java.lang.Thread.run(Thread.java:748)
07-Sep-2020 16:28:21.275 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [36,552] ms
07-Sep-2020 16:28:21.276 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/telemetry]
07-Sep-2020 16:28:40.241 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
07-Sep-2020 16:28:40.280 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/telemetry] has finished in [19,003] ms
07-Sep-2020 16:28:40.284 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
07-Sep-2020 16:28:40.305 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 55668 ms

Steps to reproduce

have code that works

Expected behavior
I expect azure-keyvault-secrets client to continue to authenticate to keyvault, given no code changes, no azure-keyvault-secrets version is changed, and, presumably, no api changes with azure keyvault went live on September 6.
Setup (please complete the following information):

OS: linux/windows
IDE : command line
Version of the Library used: 2.1.7

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[ ] Repro Steps Added
[ ] Setup information Added

A screenshot with the dependency tree

The new com.nimbusds:nimbus-jose-jwt:9.0 version

This solved my problem, as a workaround. 8.20 is last version that worked for us
    <dependency>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-keyvault-secrets-spring-boot-starter</artifactId>
      <version>2.1.7</version>
    </dependency>
    <dependency>
      <groupId>com.nimbusds</groupId>
      <artifactId>nimbus-jose-jwt</artifactId>
      <version>[6.0.1,8.20]</version>
    </dependency>

i just ran into the same issue. Your post helped. Thank you. For those using gradle, this worked for me >>
    compile "com.microsoft.azure:adal4j:1.6.4"
    constraints {

        implementation('com.nimbusds:nimbus-jose-jwt:8.20') {
            because 'state reason here.'
        }
    }

Same for me, many thanks !
I had this exception: NoSuchMethodError: com.nimbusds.jose.Header.toJSONObject()Lnet/minidev/json/JSONObject
And adding this:
<dependency>
  <groupId>com.nimbusds</groupId>
  <artifactId>nimbus-jose-jwt</artifactId>
  <version>8.20</version>
</dependency>

to my pom.xml file, fixed the issue.

Thanks for reporting this @mercer.  @vcolin7 @jialindai can you please follow up?

No problem, I'm looking into this.

Usually when we see a NoSuchMethodError it's due to a version mismatch between what you have declared in a POM and what was actually compiled. Here's a StackOverflow post explaining in more detail. You can also find more info here.
I set up a small Key Vault Spring project and was able to run it without issue with version com.nimbusds:nimbus-jose-jwt:jar:9.0.

Can you try running mvn clean install at you POM file location and then run your app again? //cc @mercer @nlazouzi @GVerg @dev-usa

the issue for us started appearing on september 6
same date nimbus-jose-jwt v9.0 is released
it's either nimbus-jose-jwt, or azure keyvault's api changed on the same date, september 6
for us, this is legacy code, no changes to code, or pipeline, or dependencies (declared), keyvault
pipeline runs on code changes from other parts of system (dotnet), and rebuilds all artifacts
the dependency of your dependency of your dependency (adal4j) is happy to get any future version [6.0.1,)
this is dangerous for them (nimbusds), for them (adal4j), for you (keyvault client), and for all of us using this
its a :bomb: waiting to go boom
it has to be a broken api with nimbus-jose-jwt, they even changed the major version!, while there is not even a patch version change for azure-keyvault-secrets-spring-boot-starter

Please pin down all your dependency versions, even if I'm wrong about the root cause, as safety for future transient dependency changes.
(for example all spring starters guarantee that all the jars you get work well together, they do extensive tests to prove this, so that we don't have to)
Good luck :+1:

Let's do things here;  Let's open an external bug on adal4j to fix their unbounded dependencies; and let's also update spring to ensure we don't float versions.  @vcolin7 can you open up the adal bug please?
@jialindai can you follow up on the sprint starter?

Thanks for the feedback @mercer, we filed an issue with ADAL4J and will have the Spring team look into this.

The issue is being hit thru azurestack specific libraries as well
java.lang.NoSuchMethodError: 'net.minidev.json.JSONObject com.nimbusds.jwt.JWTClaimsSet.toJSONObject()'
..
at com.microsoft.aad.adal4j.AuthenticationContext.createClientAuthFromClientAssertion(AuthenticationContext.java:941)
at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:241)
at com.microsoft.aad.adal4j.AuthenticationContext.acquireToken(AuthenticationContext.java:376)
...
at com.microsoft.azure.management.profile_2019_03_01_hybrid.Azure$AuthenticatedImpl.withDefaultSubscription(Azure.java:293)
at com.microsoft.azure.management.utility.Authenticate.authenticate(Authenticate.java:141)

Conclusion:
Please add the following fragment in your pom to solve the problem.
<dependency>
  <groupId>com.nimbusds</groupId>
  <artifactId>nimbus-jose-jwt</artifactId>
  <version>8.20</version>
</dependency>

More details:

azure-keyvault-secrets-spring-boot-starter's dependency path to nimbus-jose-jwt (4.39.2)

azure-keyvault-secrets-spring-boot-sample's dependency path to nimbus-jose-jwt  (9.0.1, latest version)

It's caused by oauth2-oidc-sdk-6.5.pom, it have content like this:
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>[6.0.1,)</version>
		</dependency>

After adding the following fragment in azure-keyvault-secrets-spring-boot-sample's pom:
<dependency>
  <groupId>com.nimbusds</groupId>
  <artifactId>nimbus-jose-jwt</artifactId>
  <version>8.20</version>
</dependency>

The azure-keyvault-secrets-spring-boot-sample's dependency path to nimbus-jose-jwt will be like this:  i.e. Use 8.2.0 instead of latest version (9.0.1)

Links:

azure-keyvault-secrets-spring-boot-starter
azure-keyvault-secrets-spring-boot-sample

@chenrujun I think we should keep this open until the offending dependency is pinned down either by Nimbus, ADAL4J or in the Spring Boot Starter for Key Vault.

Hi, @vcolin7 .
Thank you for your check.
The root cause of this problem is oauth2-oidc-sdk used version ranges instead of explicit dependencies,
and the problem have been solved in oauth2-oidc-sdk-7.0.3.
The latest version of azure-keyvault-secrets-spring-boot-starter (2.3.5) already use oauth2-oidc-sdk-7.1.1:

So the problem does not exist if we use azure-keyvault-secrets-spring-boot-starter-2.3.5.
Maybe we can close the issue now?

@chenrujun The problem is that apparently the customer cannot use a newer version of the Spring Boot Starter because after 2.1.7 it uses the Track 2 Key Vault library instead of Track 1. I don't really know if everything that's available on said version can be done in newer ones without introducing breaking changes.
@mercer is it possible for you to try making the upgrade to the latest version to see how if things can be built with it? All functionality from Track 1 Key Vault clients (com.microsoft.azure.keyvault.KeyVaultClient) is available in the form of new clients in Track 2, while also offering new and improved APIs:

com.azure.security.keyvault.certificates.CertificateClient
com.azure.security.keyvault.keys.KeyClient
com.azure.security.keyvault.secrets.SecretClient

The Spring Boot Key Vault Starter has leveraged these clients and, based on some tests I've run in a sample project, it seems you can go from version 2.1.7 to a newer one without making code changes.

I'm afraid I can't go higher than 2.1.7 without code changes because 2.1.8 brings some api changes.

I see :( In that case I would recommend going with the workaround mentioned earlier in this thread.
A good thing to come out of this is that ADAL4J will make the switch to a newer version of com.nimbusds:oauth2-oidc-sdk where all dependencies are fixed or closed ranges. (Source).
//cc @chenrujun

authors: GVerg bganapa chenrujun joshfree mercer nlazouzi vcolin7

repo: Azure/azure-sdk-for-java


text:
Enhance Live Testing Reliability

Enhance SDK testing reliability so nightly live testing passes with >90% reliability. This is a key metric that is being tracked to ensure high quality SDKs are being released.

Closing this issue as live testing failures are being followed up promptly and are considered release blockers now. Future issues will be more targeted based on the failing live tests.


text:
[FEATURE REQ] Investigate whether we can deprecate azure-spring-boot-starter-active-directory-b2c.

Investigate whether we can deprecate azure-spring-boot-starter-active-directory-b2c.
1, List all AAD B2C's features that spring-security can not provide.
2. Investigate if we can add these features in spring-security-repo.

Currently, our azure-spring-boot-starter-active-directory-b2c provides the following functions:
As a WebApp:
We will help users choose the client to log in, logout and reset password etc.
As webapi:

We help users provide trusted accessTokens from multiple issuers (according to the information provided by users)
We helped users to add verification of the audience in the accessToken
Verification of the issuer in the accessToken obtained by the user (this is the same function as in the first point)

Common functions:
1.Help users configure the client (including authentication_type and client_credentials types).
2. We can obtain the information in scope and role at the same time for permission control (Deprecated and instead by AADJwtBearerTokenAuthenticationConverter)
When we use spring Security directly, the functions we have been able to provide are:

When used as a webapi:

Spring Security can support multi Tenant, similar to the sample provided by spring:
In the provision of multi Tenant, users can customize the verification of audience.

When used as a webapp:

Users can determine the default client through spring configuration

When using common fucntions:

Users can configure the information of each client by themselves
If user wanner use the Converter in azure-spring-boot-starter-active-directory, they can add the dependency about aad. But we still need to add issue for spring security to see if we can set AuthoritiesClaim by properties.

Summary:
We can Deprecated azure-spring-boot-starter-active-directory-b2c, because most of the functions are already supported by springSecurity, and users can also configure some of them by themselves.


text:
[BUG] Invalid bean definition with name 'jobBanParams' defined in null: property should contain text.; nested exception is java.lang.IllegalArgumentException: property should contain text

Describe the bug
When we are trying to Implement Azure key vault have deployment issue for one of the micro service, the issue when we are trying to use key vault dependencies it is looking for some property values in xml config file and they are dynamic params which come from rest controller.  is it possible azure dependencies not look dynamic params.
Exception or Stack Trace
{"logType":"DEBUG","logLevel":"ERROR","logTimestamp":"2021-10-28T08:47:26.752-04:00","logger":"org.springframework.boot.SpringApplication","label":"Application run failed","runtime":{"hostName":"N/A","ip":"N/A","instance":"N/A","clusterName":"N/A","namespace":"unknown","image":"unknown"},"application":{"deploymentUnitName":"unknown","motsApplicationAcronym":"unknown"},"exception":{"exceptionDetails":"Invalid bean definition with name 'jobBanParams' defined in null: property should contain text.; nested exception is java.lang.IllegalArgumentException: property should contain text.","stackTrace":"org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'jobBanParams' defined in null: property should contain text.; nested exception is java.lang.IllegalArgumentException: property should contain text.\r\n\tat org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:228)\r\n\tat org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(PropertySourcesPlaceholderConfigurer.java:182)\r\n\tat org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:157)\r\n\tat org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:286)\r\n\tat org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:166)\r\n\tat org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:706)\r\n\tat org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)\r\n\tat org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)\r\n\tat org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)\r\n\tat org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:315)\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)\r\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)\r\n\tat com.att.api.framework.ajsc.Application.main(Application.java:42)\r\nCaused by: java.lang.IllegalArgumentException: property should contain text.\r\n\tat org.springframework.util.Assert.hasText(Assert.java:284)\r\n\tat com.microsoft.azure.keyvault.spring.KeyVaultOperation.get(KeyVaultOperation.java:91)\r\n\tat com.microsoft.azure.keyvault.spring.KeyVaultPropertySource.getProperty(KeyVaultPropertySource.java:27)\r\n\tat org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:85)\r\n\tat
Code Snippet
serviceBeanxml.txt
attached  serviceBean.xml
Rest Endpoint:
http://localhost:8080/rest/getUSOCData/113453309(**job**)/125841447 (ban)
Route:
Added rote config file
route.configfile.txt
Entity Class:
@Entity
@Table(name="USOC_DETAILS")
@NamedQueries({
@NamedQuery(name="NrcUsocDetails.select", query="select o from com.att.capseed.entity.NrcUsocDetails o where o.key.jobId=:job and o.key.ban=:ban")
})
public class NrcUsocDetails {
}
Azure library class are looking for every parameter
### Class :
com.microsoft.azure.keyvault.spring.KeyVaultOperation
Method :
public String get(final String property) {
Assert.hasText(property, "property should contain text.");
final String secretName = getKeyvaultSecretName(property); //if user don't set specific secret keys, then refresh token
if (this.secretKeys == null || secretKeys.size() == 0) {
// refresh periodically
refreshPropertyNames();
}
if (this.propertyNames.contains(secretName)) {
final KeyVaultSecret secret = this.keyVaultClient.getSecret(secretName);
return secret == null ? null : secret.getValue();
} else {
return null;
}
}
Class :
com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessorHelper
Method:
private String getProperty(final ConfigurableEnvironment env, final String propertyName) {
Assert.notNull(env, "env must not be null!");
Assert.notNull(propertyName, "propertyName must not be null!");
final String property = env.getProperty(propertyName);
if (property == null || property.isEmpty()) {
throw new IllegalArgumentException("property " + propertyName + " must not be null");
}
return property;
}
Expected behavior
we should deploy app without any error
Setup (please complete the following information):

OS: windows
IDE: STS
Library/Libraries:

com.microsoft.azure
azure-keyvault-secrets-spring-boot-starter
2.3.2

com.microsoft.azure
azure-spring-boot-bom
2.3.2
pom
import

log4j-to-slf4j
org.apache.logging.log4j

Java version: 1.8
App Server/Environment: embedded tomcat, Linux server
Frameworks: Spring Boot, Microservices, apache camel routes, JPA

@chenrujun We are dynamically loading from rest controller that is the reason we are using like ${:$}{header.job} and these are not loading from environment variables.
we are also using placeholders like ${jdbc.url} to read from environment variables
We can't update or upgrade versions because of version mismatch causing compatibility issues spring boot version is 2.2.3
http://localhost:8080/rest/getUSOCData/113453309/125841447
Job: 113453309
Ban:125841447

@ga896b
No I understand that job and ban will get value from path variable.
But I still can not understand what does ${:$}{header.job} mean.

Closing this issue, because no response from customer for a long time.


text:
Tasks for spring-boot 2.6.2 and 2.5.8

Spring Boot released 2.6.2 and 2.5.8. We should do following tasks.
Task list

Before azure-sdk-for-java in band release

[ ] Read spring boot release notes. Sample: Spring-Boot-2.6-Release-Notes.
[ ] Upgrade dependencies' version according to spring-boot-dependencies and spring-cloud-dependencies. Sample issue: azure-sdk-for-java#24291.

After azure-sdk-for-java in band release.

[ ] Update azure-spring-boot-samples
[ ] Update CHANGELOG.
[ ] Update Reference doc.
[ ] Update MS docs.
[ ] Update related wiki pages: Spring-Support-Multiple-Versions, Spring-Versions-Mapping.

Task list is copied from this page:
https://github.com/Azure/azure-sdk-for-java/wiki/Spring-Cloud-Azure-tasks-for-a-new-Spring-Boot-release

Hi, @Netyyyy , could you please help to handle this task?

Upgrade dependencies' version according to spring-boot-dependencies and spring-cloud-dependencies. Sample issue: azure-sdk-for-java#24291.

Hi, @alzimmermsft .
I see you created #26389 and #26286.
How about always use this issue to upgrade external dependencies' version?
So we can make sure all external dependencies' versions are align to spring-boot-dependencies.

Reopen this issue because not all tasks in the checklist are checked.

spring-boot now has a new version, so close it and works on https://github.com/Azure/azure-sdk-for-java/issues/26887

authors: Netyyyy chenrujun


text:
[FEATURE REQ] Publish reference doc for Azure Identity support in Spring Cloud Azure PostgreSQL

Context
With Azure Identity feature enabled in #29780, the reference doc to introduce the function should also be published in our Spring Cloud Azure Reference Doc.
Goal
Add a section in the Spring Cloud Azure Reference Doc to introduce the feature of all supported Azure Identity credentials and configuration, content should contain

Feature description
Working principle
Supported configuration
Code/Configuration snippet example

Closed in https://github.com/MicrosoftDocs/azure-dev-docs-pr/pull/3491

authors: saragluna yiliuTo


text:
Management libraries should be included in DependencyManagement

The client libraries currently manage their dependency versions via dependencyManagement in the parent POM. The management libraries should also share the same dependencyManagement section so that dependency versions are consistent across management & client libraries. The dependency checker should then analyze both sets of libraries.

@bsiegel, we already have the same dependencyManagement to the ./parent/pom.xml for management plane, so is there any additional work item that management plane need handle? Thanks.

Hey @yaohaizh, the issue we have with dependencyManagement is that it doesn't enforce anything - individual libraries are free to override what's there with their own dependency versions. Next steps would be to run the dependency analyzer on the management plane libraries and get a report of anywhere they deviate from the dependencyManagement section.

Close the issue as it is fixed on https://github.com/Azure/azure-sdk-for-java/pull/5879

authors: bsiegel yaohaizh


text:
Export surefire-reports during test runs

When tests are executed in maven, the test output is dumped in: ${basedir}/target/surefire-reports.
We should export these logs as artifacts when tests fail, to make diagnosing test failures easier. (Currently, we look at the console log output, but those often do not show the entire stacktrace or what was printed to console when the test was running.
Combining this with setting AZURE_LOG_LEVEL to informational, would help.

/CC @conniey
After some investigation, it turns out that the TEST-* log files do contain the information. The problem was more about where to find it. The pipelines Test runs all have a Publish Test Results step and the last line of the logging for that step contains the link to the run. Ex.
Published Test Run : https://dev.azure.com/azure-sdk/internal/_TestManagement/Runs?runId=7107240&_a=runCharts.
The test logs can be found there or downloaded in a zip to be manipulated locally.

authors: JimSuplizio conniey


text:
Sync eng/common directory with azure-sdk-tools for PR 1876

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/1876  See eng/common workflow

/check-enforcer override

authors: azure-sdk ckairen


text:
Update Spring Cloud Azure Support File

Update Spring Boot and Spring Cloud versions for the compatibility test.
If you merged this PR, please update Spring Cloud Azure Timeline.
This PR is created by GitHub Actions: https://github.com/Azure/spring-cloud-azure-tools/actions/runs/3317269850

@Netyyyy could you please write a document about this json file?
It should include these items:

What is it used for?
What does each field mean?
How does it updated?


text:
mgmt prepare release 2.24.0

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

authors: XiaofeiCao azure-sdk


text:
mgmt, regen containerregistry

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

authors: azure-sdk weidongxu-microsoft


text:
Errors return XML body but Content-Type in response is set to application/json

Hello
There seems to be a weird issue where XML body is returned even though Content-Type is set to json. Why is this so? In the request I have set: Accept: application/json;odata=nometadata
I have noticed this with both Blob and Table storage.
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">   AuthenticationFailed ... </error>
Thanks

Can you please share the name and version of the package you used?
Please also share a code snippet of how you set the content type.

Actually I managed to isolate this as a backend issue. Test the below curl snippet to fetch a table without auth and the error generated from the backend will be in XML. So this indeed seems like a backend issue? Cannot find this behaviour properly documented anywhere. The following page implies that JSON is the recommended and preferred format: https://docs.microsoft.com/en-us/rest/api/storageservices/status-and-error-codes2
curl --location --request GET 'https://.table.core.windows.net/...'
--header 'Accept: application/json;odata=nometadata'
Thanks

Hi, @dgitq
Thanks for reaching us.
For blob service, service side temporarily doesn't support JSON payload customization. While with SDK provided, error code will be parsed properly, so payload format should be transparent to user.
For table service, as the link https://docs.microsoft.com/en-us/rest/api/storageservices/status-and-error-codes2 JSON is the recommended format from service side, would you check 1) if your service version is 2013-08-15 and later, and if not would you use e.g. x-ms-version: "2017-04-17".
Thanks,
Jiachen

Thank you for explaining! I was not sending any service version header since the documentation implied that JSON was default. But when I added x-ms-version to the request I got JSON back. I would suggest to clarify this in the documentation.
Regards

Glad to know the problem is solved!
The service version is mentioned in the Sample response section, e.g. link.
Closing the issue.
Thanks,
Jiachen

authors: dgitq jiacfan ramya-rao-a

repo: Azure/azure-sdk-for-js


text:
License headers in source files is wrong

Package Name:

All
Describe the bug
We currently state the phrase in our code, including auto-generated code:
// Licensed under the MIT License. See License.txt in the project root for license information.

But this is not where the license file is.  It's called "LICENSE", and the header comments should be changed to reflect this.

We have a list of officially blessed copyright headers for various languages here (Microsoft Internal, sorry).
Also, the LICENSE.md file must be included in the package. I'll update the guidelines to be more clear about this.

Reposting here for those who do not have access:
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

I believe with latest efforts on enabling the eslint plugin v3 on all our packages, we have the below copyright
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

@joheredi Does the code generator have a default copyright text to use or relies on the user to provide one? If it has its own, then we should update it to use the above text

authors: bterlson jonathandturner ramya-rao-a


text:
[Service Bus] Timeout lesser than the default value is currently not allowed

In Event Hubs, and now in Track 2 Service Bus, we make use of a helper method called getRetryAttemptTimeoutInMs() which is used to ensure that the timeout of individual attempts in retries is greater than or equal to the default value of 60 seconds, but not less.
export function getRetryAttemptTimeoutInMs(retryOptions: RetryOptions | undefined): number {
  const timeoutInMs =
    retryOptions == undefined ||
    typeof retryOptions.timeoutInMs !== "number" ||
    !isFinite(retryOptions.timeoutInMs) ||
    retryOptions.timeoutInMs < CoreAMQPConstants.defaultOperationTimeoutInMs
      ? CoreAMQPConstants.defaultOperationTimeoutInMs
      : retryOptions.timeoutInMs;
  return timeoutInMs;
}

This issue is to go over why such a min value is set for timeouts

.NET SDK allows the timeout to be less than the defaultTimeout, does not override as we do.

Based on offline conversations, let's go ahead and remove the restriction and allow the timeout to be less than default timeout

Done with #8805

authors: HarshaNalluru ramya-rao-a


text:
[Metrics Advisor] update changes from swagger

Swagger updates for metrics advisor

/azp run js - ai-metrics-advisor - tests

The live tests pass on this PR - https://dev.azure.com/azure-sdk/internal/_build/results?buildId=840453&view=results

/check-enforcer override


text:
[identity] Add WorkloadIdentityCredential to DefaultAzureCredential

Packages impacted by this PR

@azure/identity

Issues associated with this PR

#23326

Describe the problem that is addressed by this PR
Ensuring tenantId is supported for the WorkloadIdentityCredential and being passed through from the DefaultAzureCredential
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)

#24830
#25010

Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[x] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

API change check
API changes are not detected in this pull request.

authors: azure-sdk mpodwysocki


text:
Not Ready for review yet

Packages impacted by this PR
Issues associated with this PR
Describe the problem that is addressed by this PR
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[ ] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-monitor-query


text:
Fix cosmos db ci pipeline tests

Packages impacted by this PR
@azure/cosmos
Issues associated with this PR
Describe the problem that is addressed by this PR
This PR addresses:

issue with js-cosmosdb-ci pipeline where tests were getting skipped.
errors in cosmos db tests.

What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[ ] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

API change check
API changes are not detected in this pull request.


text:
Using Dynamic Matrix Config

I've been thinking a lot about how we can abstract away both the package distribution as well as when specific packages have restrictions on what matrix they run.
This PR updates generate-job-matrix.yml with a possible solution. (A lot of the powershell is not fully filled out as this is just a proto)
We will:

Gather all custom matrix configs
Group the packages we need to test (discovered from package properties) by what matrix they are associated with
For each discovered matrix config (starting with a default provided)

Create the matrix

For the packages that belong to the matrix, batch them up and distribute them to the matrix

This way we will be able to generate multiple platform matrixes while also allowing the custom selections from the users.

/azp run js - pullrequest

/azp run js - pullrequest

/azp run js - pullrequest

/azp run js - pullrequest

/azp run js - matrix-pullrequest

/azp run js - matrix-pullrequest

/azp run js - matrix-pullrequest

As I mentioned I was wondering if the generation complexity would be high, but the changes necessary are so small that I think it's very reasonable. I think if you add more examples on inline comments of an inputted matrix set to an outputted matrix set, with the actual package name additions then it will be very approachable to maintain/update going forwards.

As I mentioned I was wondering if the generation complexity would be high, but the changes necessary are so small that I think it's very reasonable. I think if you add more examples on inline comments of an inputted matrix set to an outputted matrix set, with the actual package name additions then it will be very approachable to maintain/update going forwards.

Executing!

/azp run js - matrix-pullrequest

All the conversations in this PR ended up being commited in Azure/azure-sdk-tools#9281

authors: benbp scbedd


text:
Create separate browser entities

For more context refer to #3419
Initial approach assumes we want to use separate entities (queues, topics, subscriptions) with -browser suffix
This wouldn't need any changes on CI pipeline as such (other than enabling running of browser and node tests to run independently / in parallel)

As of latest commit, rollup on tests are failing with error -
HeadlessChrome 76.0.3803 (Windows 10.0.0) ERROR
  Uncaught TypeError: Cannot read property 'match' of undefined
  at test-browser/index.js:35823:70

  TypeError: Cannot read property 'match' of undefined
      at Suite.<anonymous> (test-browser/index.js:35823:70)
      at Object.create (node_modules/mocha/mocha.js:729:19)
      at context.describe.context.context (node_modules/mocha/mocha.js:541:27)
      at test-browser/index.js:35816:5
      at test-browser/index.js:12:5
      at test-browser/index.js:13:2
HeadlessChrome 76.0.3803 (Windows 10.0.0) ERROR
  Uncaught TypeError: Cannot read property 'match' of undefined
  at test-browser/index.js:35823:70

  TypeError: Cannot read property 'match' of undefined
      at Suite.<anonymous> (test-browser/index.js:35823:70)
      at Object.create (node_modules/mocha/mocha.js:729:19)
      at context.describe.context.context (node_modules/mocha/mocha.js:541:27)
      at test-browser/index.js:35816:5
      at test-browser/index.js:12:5
      at test-browser/index.js:13:2

Looking into this..

Try running the tests in master, if it fails there as well, then this might be yet another case of some dependency update causing issues for us. If tests run in master, but not your branch, then get latest from master branch and try again

Try running the tests in master, if it fails there as well, then this might be yet another case of some dependency update causing issues for us. If tests run in master, but not your branch, then get latest from master branch and try again

So the tests run as expected with latest commit, verified by removing .env entries and using non-existent values for the node default values.
Needed to undo changes we had for moving around default values, as they were not getting assigned and the tests were inferring the entity paths to be 'undefined'
Current changes are functional and work as far as running tests are concerned.
As for the grouping of default values, the 'magic strings' are all in one place, so I don't think it's necessary to move them around much. And we'll need to troubleshoot further as to why values are getting returned as undefined.
Maybe the way environment variables are being instantiated, used needs to be updated, as currently we have getEnvVars() being invoked at multiple points across the source.
It should ideally be invoked once at start of tests, or before each test file / test case


text:
Uri.AbsoluteUri should be used instead of Uri.ToString()

There are multiple customer-reported issues where the root cause is incorrect usage of Uri.ToString():

#11564
#12069

The problem is Uri.ToString() un-escapes the URL, so http://foo.com/image%201.jpg is converted to http://foo.com/image 01.jpg which is no longer a valid URL.  The API Uri.AbsoluteUri should be used instead.
All instances of Uri.ToString() in our codebase should be reviewed, and most or all should be convered to Uri.AbsoluteUri.  Uri.ToString() should only be used to intentionally un-escape a URL, which should be rare.  Even if a URL were included in an error message, I think the escaped URL would be preferred.
I recommend adding an analyzer rule to prevent calls to Uri.ToString(), using Microsoft.CodeAnalysis.BannedApiAnalyzers.
One complication is relative URIs, where Uri.AbsoluteUri throws.  If we need to get an escaped representation of a relative URI, we can use Uri.EscapeUriString(relativeUri.ToString()).

I also found plenty of this in https://github.com/Azure/azure-sdk-for-net/pull/21424 where issue got discovered initially.

Given how tempting ToString() is and how easy it is to get it wrong I suggest to prioritize this work.

I started a branch https://github.com/Azure/azure-sdk-for-net/compare/main...pakrym%3Apakrym%2FBanned-apis?expand=1

@pakrym can this be done service by service? to avoid big revolution.

i.e. if you can set this up targeting just one of the packages or services I'd be happy to take over adopting this for storage.

Yes if you change
    <PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" PrivateAssets="All" />

to
    <PackageReference Condition="'$(EnableBannedApiAnalyzers)' == 'true'" Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" PrivateAssets="All" />

And set BannedApiAnalyzers to true in storage it'll be scoped.

I'll look into merging that PR today.

authors: kasobol-msft mikeharder pakrym

repo: Azure/azure-sdk-for-net


text:
The package version of Azure.AI.AnomalyDetector starts from 3.0.0 instead of 1.0.0

In sdk\anomalydetector\Azure.AI.AnomalyDetector\CHANGELOG.md, the version starts from 3.0.0-preview.1 (2020-08-18)

I'm not sure what this issue is supposed to be tracking nor what actions you believe should be taken.   The package versions on NuGet for the package mirrors the change log.

@pshao25 technically we should have started at 2.0.0-beta.1 since the track 1 library is at 1.0.0 GA.  The general rule is start at track 1 version + 1.
Since we are already out at 3 lets not confuse customers but we should update the version in the csproj to release as 3.0.0-beta.7 for the next release.

authors: jsquire m-nash pshao25


text:
[BUG] AzureMaps - No way to correlate Matrix response summary to request geoposition

Library name and version
Maps Route 1.0.0-beta1
Describe the bug
You can see this is the example at (https://learn.microsoft.com/en-us/dotnet/api/overview/azure/Maps.Routing-readme?view=azure-dotnet-preview&preserve-view=true#route-matrix). Let's say you have 1 origin GeoPosition and 5 destination GeoPositions for which you want to see LengthInMeters. On our end we have a unique identifier for each GeoPosition (origin and destination). When we send the request based only on Lat/Long of the GeoPosition there seems no way to effectively correlate the summary for each RouteMatrix to the unique identifier we have for each GeoPosition in the request. I would ask you add some way to do this effectively (e.g., add an optional external id to the GeoPosition object and return the origin and destination GeoPosition external id int he summary OR at least return the EXACT origin/destination lat/long coords passed in the request that were used to build the summary). Not having this makes it impossible to correlate request GeoPositions to Summaries and means we have to make 1 request at-a-time. Ordinal correlation does not work in cases where you send in 5 destination GeoPositions (for example) and get back 4 summaries.
Expected behavior
Be able to effectively correlate GeoPositions used to create matrix summaries.
Actual behavior
No way to do this and makes you call the API one call at-a-time.
Reproduction Steps
See example code at https://learn.microsoft.com/en-us/dotnet/api/overview/azure/Maps.Routing-readme?view=azure-dotnet-preview&preserve-view=true#route-matrix. Note that GeoPositions cannot be effectively correlated with returned matrix summaries.
Environment
Windows 11 latest patches.
Azure Maps Route 1.0.0-beta1
Microsoft Visual Studio Enterprise 2022
Version 17.7.0 Preview 2.0
VisualStudio.17.Preview/17.7.0-pre.2.0+33808.371
Microsoft .NET Framework
Version 4.8.09032
Installed Version: Enterprise
Visual C++ 2022   00476-80000-00000-AA741
Microsoft Visual C++ 2022
ADL Tools Service Provider   1.0
This package contains services used by Data Lake tools
ASA Service Provider   1.0
ASP.NET and Web Tools   17.7.160.18752
ASP.NET and Web Tools
Azure App Service Tools v3.0.0   17.7.160.18752
Azure App Service Tools v3.0.0
Azure Data Lake Tools for Visual Studio   2.6.5000.0
Microsoft Azure Data Lake Tools for Visual Studio
Azure Functions and Web Jobs Tools   17.7.160.18752
Azure Functions and Web Jobs Tools
Azure Stream Analytics Tools for Visual Studio   2.6.5000.0
Microsoft Azure Stream Analytics Tools for Visual Studio
C# Tools   4.7.0-2.23280.4+66772aff549b2981094175a6f2f69600596c1913
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
Entity Framework Core Power Tools   2.5
Adds useful design-time EF Core DbContext features to the Visual Studio Solution Explorer context menu.
Extensibility Message Bus   1.4.33 (main@eea8cc7)
Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration.
Microsoft Azure Hive Query Language Service   2.6.5000.0
Language service for Hive query
Microsoft Azure Stream Analytics Language Service   2.6.5000.0
Language service for Azure Stream Analytics
Microsoft Azure Tools for Visual Studio   2.9
Support for Azure Cloud Services projects
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
Mono Debugging for Visual Studio   17.7.20 (81efaa2)
Support for debugging Mono processes with Visual Studio.
NuGet Package Manager   6.7.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/
Razor (ASP.NET Core)   17.7.2.2330502+e0cf0b1121019f24d79b73d6d30f5870ca83c81d
Provides languages services for ASP.NET Core Razor.
SQL Server Data Tools   17.7.1.0
Microsoft SQL Server Data Tools
Syntax Visualizer   1.0
An extension for visualizing Roslyn SyntaxTrees.
Test Adapter for Boost.Test   1.0
Enables Visual Studio's testing tools with unit tests written for Boost.Test.  The use terms and Third Party Notices are available in the extension installation directory.
Test Adapter for Google Test   1.0
Enables Visual Studio's testing tools with unit tests written for Google Test.  The use terms and Third Party Notices are available in the extension installation directory.
ToolWindowHostedEditor   1.0
Hosting json editor into a tool window
TypeScript Tools   17.0.20531.2001
TypeScript Tools for Microsoft Visual Studio
Visual Basic Tools   4.7.0-2.23280.4+66772aff549b2981094175a6f2f69600596c1913
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Visual F# Tools   17.7.0-beta.23272.3+96bfa24a5fee6722ed3e2b280d37e80b594bbcf4
Microsoft Visual F# Tools
Visual Studio IntelliCode   2.2
AI-assisted development for Visual Studio.
VisualStudio.DeviceLog   1.0
Information about my package
VisualStudio.Mac   1.0
Mac Extension for Visual Studio
VSPackage Extension   1.0
VSPackage Visual Studio Extension Detailed Info
Xamarin   17.7.0.135 (main@f75253e)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.
Xamarin Designer   17.7.2.4 (remotes/origin/d17-7@105126fbf4)
Visual Studio extension to enable Xamarin Designer tools in Visual Studio.
Xamarin Templates   17.7.17 (95eb8d3)
Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms.
Xamarin.Android SDK   13.2.0.13 (d17-5/3f21639)
Xamarin.Android Reference Assemblies and MSBuild support.
Mono: 73df89a
Java.Interop: xamarin/java.interop/d17-5@149d70fe
SQLite: xamarin/sqlite/3.40.1@68c69d8
Xamarin.Android Tools: xamarin/xamarin-android-tools/d17-5@ca1552d
Xamarin.iOS and Xamarin.Mac SDK   16.4.0.5 (191fe02ea)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

Adding Service team to look into this.

Hi @chassq , thank you for raising this feature request. We'll support the unique ID for each origin/destination pair in our new API version.
For now, the returned result will be a 2D array, in the format:
Matrix: [
    // Origin 1 to all destinations
    [
        { origin 1 to destination 1},
        { origin 1 to destination 2 },
        ...
    ]
    // Origin 2 to all destination
    [
        { origin 2 to destination 1},
        { origin 2 to destination 2 },
        ...
    ]
]

You can iterate through the 2D array (List) to get all the result in the order illustrate in the example above.
Let me know if you have any question. Thank you so much!

Hey @dubiety , Great to hear! One question. If I were to send in say 1 origin and 5 destinations, would I always get back 5 route summaries or if one happed to failed, would it return say 4 summaries?

Hi @chassq ,
In that case, it still returns 5 results, but for the failed route, the statusCode, response and detailedError may tell you the error reason. Usually, you'll receive statueCode = 400 for failed route. For example, I have 1 origin and 3 destinations and the third destination is an invalid route, you might see:
{
    "matrix": [
        [
            {
                "statusCode": 200,
                "response": {
                    "routeSummary": { origin 1 to destination 1 }
                }
            },
            {
                "statusCode": 200,
                "response": {
                    "routeSummary": { origin 1 to destination 1 }
                }
            },
            {
                "statusCode": 400,
                "response": "Some error message here",
                "detailedError": {
                    "message": "Detailed Error message",
                    "code": "XXX"
                }
            }
        ]
    ],
    "summary": {
        "successfulRoutes": 2,
        "totalRoutes": 3
    }
}

Thanks @dubiety ! Much appreciated!

authors: chassq dubiety navba-MSFT


text:
[BUG] Impossible to stop deluge of Debug output when using Azure.Monitor.OpenTelemetry.Exporter

Library name and version
Azure.Monitor.OpenTelemetry.Exporter
Describe the bug
I've tried disabling the EventSource, changing every logging configuration setting I could find, but it appears as though as long as you are trying to debug code the AzureMonitorExporterEventListener will fill your output window with verbose output making everything else you'd hope to log practically unusable.
Expected behavior
There must be some way to disable or limit the debug output while using this exporter.
Actual behavior
All events sent to OpenTelemetry and exported are rendered in the output window of your debugger.
Reproduction Steps
Use the package
Environment
Windows 11, though anything I imagine

Appears to me that https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/AzureMonitorExporterExtensions.cs shouldn't be setting the sampler, i.e. overriding anyone elses sampler settings. Adding a trace exporter should not affect sampler settings. Break this apart into two different calls, so you can adjust sampler settings or trace exporter settings separately. @TimothyMothra

I think the issue I'm seeing relates to this utility class TelemetryDebugWriter where all the events are rendered in the debug output window if a debugger is attached.
I've tried disrupting the chain of EventSource and EventListeners that feed it, but I don't believe they are configurable (or at least not in any way I've discovered).
Optimally, like in ApplicationInsights there should be a way to disable the TelemetryDebugWriter in code and it might even be disabled by default and only enabled to confirm that events are being exported.

Appears to me that https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/AzureMonitorExporterExtensions.cs shouldn't be setting the sampler, i.e. overriding anyone elses sampler settings. Adding a trace exporter should not affect sampler settings. Break this apart into two different calls, so you can adjust sampler settings or trace exporter settings separately. @TimothyMothra

@insylogo, Please open a new issue to discuss this. This is not related to the OP's issue.

Hi @jakenuts, sorry for the inconvenience. Currently this is not configurable.
We have this enabled while we're in beta and we're planning to change this to off by default when before we release 1.0.
I already have a Draft PR to address this: https://github.com/Azure/azure-sdk-for-net/pull/38016

The work for this is merged and will be in the Sept release.

authors: TimothyMothra insylogo jakenuts


text:
Replacement for IsVersioningEnabled

Library name
Azure.ResourceManager.Storage
Please describe the feature.
Hello, BlobServiceProperties used to have a property to check if versioning was enabled on the blob service for storage account
https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.storage.models.blobserviceproperties.isversioningenabled?view=azure-dotnet-legacy.
This could be fetched using BlobServiceCLient.
However it seems with the new SDK, the property has shifted to BlobServiceData()
https://learn.microsoft.com/en-us/dotnet/api/azure.resourcemanager.storage.blobservicedata.isversioningenabled?view=azure-dotnet#azure-resourcemanager-storage-blobservicedata-isversioningenabled
How do I fetch BlobServiceData? Thanks

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Hi @vamanoch , Thank you for using Azure SDK for .Net.
You could get the data class like:
    var account = (await resourceGroup.GetStorageAccounts().GetAsync("name")).Value;
    var blob = (await account.GetBlobService().GetAsync()).Value;
    Console.WriteLine(blob.Data.IsVersioningEnabled);

authors: HarveyLink jsquire vamanoch


text:
Initial generated Azure.Data.Tables client

The focus of this PR is to standup some initial rough scaffolding for Azure.Data.Tables. This also intends to validate CI builds run as expected.

I don't remember if you have to merge your pipeline definitions first for automation to pick it up.

I don't remember if you have to merge your pipeline definitions first for automation to pick it up.

I think that is correct - Here are the stand alone yml files. #11502

closing and re-opening a new PR to pick up the new pipeline

authors: christothes pakrym


text:
Use dotnet build to generate code

dotnet build auto restores and is a whole 2⃣ characters shorter! :fire:

/check-enforcer override

/check-enforcer override

Not sure why no build pipelines kicked off but at any rate all the changes are documentation based changes so I'll merge this.

Love the description :)

authors: maririos pakrym weshaggard


text:
Fluent

Description

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[ ] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[ ] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

@alvadb,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

Can one of the admins verify this patch?

authors: alvadb azuresdkci msftclas


text:
[App Config] Rename snapshot properties

Renaming Created to CreatedOn and Expires to ExpiresOn.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Data.AppConfiguration

authors: ShivangiReja azure-sdk


text:
Autorest Regen Preview to 3.0.0-alpha.20231219.1 by Pan Shao from refs/pull/4039/head

Triggered from https://github.com/Azure/autorest.csharp/pull/4039

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Communication.JobRouter


text:
Fix recommendation engine APIs along with resource property fixes, add new APIs and tests

Description

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] Please add REST spec PR link to the SDK PR 2548
[x] I have read the contribution guidelines.
[x] The pull request does not introduce breaking changes.

General Guidelines

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[x] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[x] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[x] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

I ran generate.cmd and a file named src\SDKs_metadata\web_resource_manager.txt was created. Is this what I need to commit?

@michimune yes

@dsgouda Pushed the .txt file.

@shahabhijeet please merge when ready

@michimune There are few more things to be done here

Msbuild build.proj (this will download latest build tools)
Use generate.cmd to generate your SDK
Build you sdk using msbuild build.proj /t:Build /p:Scope=SDKs\Websites
This will add all the meta data that is required

This should update the .props file and also generate a new SDKInfo*.cs file. Please commit these changes.

@dsgouda Pushed another commit. How does this look?

@michimune taking a look

Thank you!

authors: dsgouda michimune


text:
Update autorest version to prerelease 3.0.0-alpha.20240619.7

Generated by Autorest Regen Preview build 20240619.7Triggered from pull request: https://github.com/Azure/autorest.csharp/pull/4836

API change check
API changes are not detected in this pull request.


text:
[azure-monitor-query] Will there be a new release of azure-monitor-query Python package?

I am using the azure-monitor-query Python package and I ran into a bug.  While finding a fix for it, I realized that it was already fixed in the main branch, but that commit has not been packaged in a release yet.  Last release was 1.0.1, November 2021.  Anyone know if there is a plan to make another release soon?

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Monitor - Query:0.43578887,Storage:0.24062324,Monitor:0.027981788'

Hi @cccs-eric, thank you for opening an issue! I'll tag someone on this who can help with your question.

@cccs-eric Thanks for the issue - may I know more details about the issue and what the fix is? Yes, we will release azure-monitor-query

thanks @mccoyp and @rakshith91, here is the issue I am looking to fix.  I am querying a source with a column of type datetime, but its value is None.  When this code  is executed, the underlying calls are not handling the None value and msrest eventually tries to call upper() on it.
I locally did the following fix:
def native_col_type(col_type, value):
    if col_type == "datetime" and value:
        value = Deserializer.deserialize_iso(value)
    elif col_type in ("timespan", "guid"):
        value = str(value)
    return value

I saw that the latest code from main is now handling exception and returning the passed value, hence returning None and not crashing.

@cccs-eric Thanks for the details. We will be releasing the package soon. Keep looking out.

@cccs-eric We have released the bug fix. Please check this out https://pypi.org/project/azure-monitor-query/

Thanks @rakshith91 , just tested the new release and it fixed my problem!

authors: azure-sdk cccs-eric mccoyp rakshith91

repo: Azure/azure-sdk-for-python


text:
Azure loganalytics python SDK always throws MissingApiVersionParameter exception

Original post was here.

I try to follow MS official doc to get the log from my resource in Azure Log Monitor but never success. My code is like below.
from azure.loganalytics import LogAnalyticsDataClient
from azure.common.client_factory import get_client_from_cli_profile
from azure.loganalytics.models import QueryBody

log_client = get_client_from_cli_profile(LogAnalyticsDataClient)

myWorkSpaceId = '1234567890...'
result = log_client.query(myWorkSpaceId, QueryBody(**{'query': 'Heartbeat| limit 50'}))

And I always get exception like below:
result = log_client.query(myWorkSpaceId, QueryBody(**{'query': 'Heartbeat| limit 50'}))
File ".../lib/python2.7/site-packages/azure/loganalytics/log_analytics_data_client.py", line 121, in query
raise models.ErrorResponseException(self._deserialize, response)
azure.loganalytics.models.error_response.ErrorResponseException: (MissingApiVersionParameter)
The api-version query parameter (?api-version=) is required for all requests

I trace code into library in /azure/loganalytics/log_analytics_data_client.py, and dump the url string used for query like below.
print(url, query_parameters, header_parameters, body_content)
request = self._client.post(url, query_parameters)
response = self._client.send(request, header_parameters, body_content, stream=False, **operation_config)

The output of the url and query information is like below and it look like no version information in between and I doubt this is why I get the exception:
('https://management.azure.com/workspaces/1234567890.../query', {}, {'Content-Type': 'application/json; charset=utf-8'}, {'query': 'Heartbeat| limit 50'})

My azure SDK version is 4.0.0, and my azure-loganalytics library version is v0.1.0, running on Ubuntu. Does anyone run into same issue or know how to fix this?
Thanks.

@alexeldeib any idea? Because in your query test, there is no API version, so I'm quite confused about what is happening here? Is this an authentication problem with an incorrect message?

@dennissian it's because of get_client_from_cli_profile:
log_client = get_client_from_cli_profile(LogAnalyticsDataClient)

This does two things which will cause issues for data plane calls: uses management.azure.com as the authorization resource, and sets the base_url to the same.
You can pass base_url='https://api.loganalytics.io/v1 as a keyword argument to get_client_from_cli_profile, but the token resource will still be wrong. I think the best way is probably to do something like:
creds, _ = get_azure_cli_credentials(resource="https://api.loganalytics.io")
client = LogAnalyticsDataClient(creds)

@lmazuel modifying get_client_from_cli_profile to support a resource kwarg instead of using this line and this function could work. I see Key Vault required some customization, could also go that route.

BTW, the debug URL hints at the issue here: https://management.azure.com/workspaces/1234567890.../query doesn't have the structure of an Azure resource URL like https://management.azure.com/subscriptions/GUID/resourceGroups/STRING/etc...

@alexeldeib @lmazuel
Thanks for your help, the provided solution can work.

authors: alexeldeib dennissian lmazuel