Azure / Azure/azure-sdk-for-java
[FEATURE REQ] Feature parity with KeyVault Secret SDK for JCA
- Dominant language
- Java
- Stars
- 2.6k
- Forks
- 2.2k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 178
Description
## Context
Azure KeyVault JCA is the bridge between Azure KeyVault Certificate and JDK JCA API.
So the library should have same feature set as [Azure KeyVault Certificate SDK](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/keyvault/azure-security-keyvault-certificates) from configuration perspective.
Including:
* Authentication methods
* Configurations
* Proxy
* RetryPolicy
* Logging Options
* HttpOptions
And this JCA lib should consume the same environment as Azure KeyVault Certificate SDK does.
For example , SDK accepts `AZURE_KEYVAULT_ENDPOINT` environment to config endpoint, which should be takes by JCA lib as well.
## Design
JCA is built with a homebrew *Certificate Client* instead of Azure SDK Certificate Client for fewer dependencies
but this design causes lots of issues so far, like:
* feature missing like the retry policy is not existing in JCA but a standard feature across all Azure SDKs
* incomplete authentication methods
so, in the new design:
* JCA on top of Azure SDK Certificate Client, no more homebrew client.
* Provide a shaded uber jar to avoid any classpath pollution.
* JCA should be extensible, user should be able to provide a `CertificateClientBuilder` or `CertificateClient` or `CertificateAsyncClient` to it
Contributor guide
Assessment
This issue has not been assessed yet.