@@ -214,6 +214,29 @@ spec:
214214 Must be a valid HTTPS URL (or HTTP for localhost) without query, fragment, or trailing slash.
215215 pattern : ^https?://[^\s?#]+[^/\s?#]$
216216 type : string
217+ baselineClientScopes :
218+ description : |-
219+ BaselineClientScopes is a baseline set of OAuth 2.0 scopes guaranteed to be
220+ included in every client registration. The embedded auth server unions these
221+ scopes into the registered set returned by RFC 7591 Dynamic Client
222+ Registration, so a client that narrows the `scope` field at /oauth/register
223+ can still request the baseline scopes at /oauth/authorize. All values must
224+ be present in the upstream-derived scopesSupported set; the auth server
225+ fails to start if any value is missing.
226+
227+ Security: every client registered via /oauth/register will gain the
228+ ability to request these scopes at /oauth/authorize, regardless of what
229+ the client itself requested. Keep the baseline narrow (typically
230+ "openid" and "offline_access"). Adding a privileged scope here — e.g.
231+ "admin:read" — would grant it to every DCR-registered client, including
232+ public clients like Claude Code, Cursor, and VS Code.
233+ items :
234+ minLength : 1
235+ pattern : ^[\x21\x23-\x5B\x5D-\x7E]+$
236+ type : string
237+ maxItems : 10
238+ type : array
239+ x-kubernetes-list-type : atomic
217240 hmacSecretRefs :
218241 description : |-
219242 HMACSecretRefs references Kubernetes Secrets containing symmetric secrets for signing
@@ -1385,6 +1408,29 @@ spec:
13851408 Must be a valid HTTPS URL (or HTTP for localhost) without query, fragment, or trailing slash.
13861409 pattern : ^https?://[^\s?#]+[^/\s?#]$
13871410 type : string
1411+ baselineClientScopes :
1412+ description : |-
1413+ BaselineClientScopes is a baseline set of OAuth 2.0 scopes guaranteed to be
1414+ included in every client registration. The embedded auth server unions these
1415+ scopes into the registered set returned by RFC 7591 Dynamic Client
1416+ Registration, so a client that narrows the `scope` field at /oauth/register
1417+ can still request the baseline scopes at /oauth/authorize. All values must
1418+ be present in the upstream-derived scopesSupported set; the auth server
1419+ fails to start if any value is missing.
1420+
1421+ Security: every client registered via /oauth/register will gain the
1422+ ability to request these scopes at /oauth/authorize, regardless of what
1423+ the client itself requested. Keep the baseline narrow (typically
1424+ "openid" and "offline_access"). Adding a privileged scope here — e.g.
1425+ "admin:read" — would grant it to every DCR-registered client, including
1426+ public clients like Claude Code, Cursor, and VS Code.
1427+ items :
1428+ minLength : 1
1429+ pattern : ^[\x21\x23-\x5B\x5D-\x7E]+$
1430+ type : string
1431+ maxItems : 10
1432+ type : array
1433+ x-kubernetes-list-type : atomic
13881434 hmacSecretRefs :
13891435 description : |-
13901436 HMACSecretRefs references Kubernetes Secrets containing symmetric secrets for signing
0 commit comments