Add multiple client secrets support for OAuth/OIDC applications - #10587
Add multiple client secrets support for OAuth/OIDC applications#10587AfraHussaindeen wants to merge 1 commit into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #10587 +/- ##
==========================================
+ Coverage 73.46% 73.50% +0.03%
==========================================
Files 471 471
Lines 71454 71559 +105
Branches 266 266
==========================================
+ Hits 52492 52597 +105
Misses 18855 18855
Partials 107 107
🚀 New features to boost your workflow:
|
0151ad8 to
02825c6
Compare
| "isHeaderAvatarLabelAllowed": false, | ||
| "isLeftNavigationCategorized": true, | ||
| "isMarketingConsentBannerEnabled": false, | ||
| "isMultipleClientSecretsEnabled": true, |
There was a problem hiding this comment.
since this is primarily related to applications feature, shall we group these isMultipleClientSecretsEnabled and multipleClientSecretsMaxCount under a properties object of applications feature config in order to make config file more cleaner?
eg:
ui: {
features: {
applications: {
enabled: true,
properties: {
isMultipleClientSecretsEnabled: true,
multipleClientSecretsMaxCount: 5
}
}
}
}
| "listAllAttributeDialects": true, | ||
| "loginFlowCustomFirstFactorAuthenticators": [], | ||
| "loginFlowCustomSecondFactorAuthenticators": [], | ||
| "multipleClientSecretsMaxCount": 5, |
| /* | ||
| * An empty JSON body is sent so the `application/json` Content-Type is actually transmitted. | ||
| * The regenerate-secret endpoint declares `@Consumes(application/json)`; without a body the | ||
| * Content-Type is dropped and the request is rejected with 415 Unsupported Media Type. |
There was a problem hiding this comment.
is this a newly introduced change? since this is an existing api that has been working well for some time, adding empty body looks unusual.
| data: secret, | ||
| headers: { | ||
| "Accept": "application/json", | ||
| "Access-Control-Allow-Origin": store.getState().config.deployment.clientHost, |
There was a problem hiding this comment.
These CORS headers are to be sent by the server, not client.
https://chatgpt.com/share/6a69869e-7630-83ee-a071-892d39c8c0f0
| "Access-Control-Allow-Origin": store.getState().config.deployment.clientHost, |
| const requestConfig: AxiosRequestConfig = { | ||
| headers: { | ||
| "Accept": "application/json", | ||
| "Access-Control-Allow-Origin": store.getState().config.deployment.clientHost, |
There was a problem hiding this comment.
| "Access-Control-Allow-Origin": store.getState().config.deployment.clientHost, |
| return { | ||
| data, | ||
| error: error, | ||
| isLoading: !error && !data, |
There was a problem hiding this comment.
we can take isLoading as well from the useRequest custom hook itself.
| */ | ||
|
|
||
| .secret-expiry-banner-wrapper { | ||
| margin-bottom: 1rem; |
There was a problem hiding this comment.
we can pass this through sx prop and get rid of this file.
Purpose
Introduces a config-gated UI for managing multiple client secrets per OAuth/OIDC application in the Console, enabling seamless secret rotation (generate a new secret, roll over, then delete/expire the old one) without downtime. When the feature is disabled, the existing single-secret experience is untouched.