Public-client config: optional clientSecretRef (CRD + registry) #32

Closed
opened 2026-09-15 23:26:58 +00:00 by ginjiruu · 0 comments
Owner

Parent

#31 — Spec: public-client support + replace hand-rolled protocol code with the x/oauth2 + go-oidc + hstern trio

What to build

An OauthClient can be declared without a clientSecretRef, declaring a Public client. The Registry builds such an App as Available with SecretReady trivially true (there is no secret to watch), and the structural gate relaxes so a client is valid with or without a well-formed secret ref. A Confidential client (secret present) is unchanged. An exchange-only App can now omit the secret it never uses.

Acceptance criteria

  • OauthClient.clientSecretRef is optional in the CRD (a public client omits it).
  • A public-client OauthClient builds an Available Registry entry with SecretReady true and no referenced Secret.
  • A present-but-malformed clientSecretRef still degrades (InvalidSecretRef).
  • A Confidential client still watches its secret and degrades to SecretNotReady when the Secret is missing.
  • make manifests generate, make lint, and make test pass.

Blocked by

  • None — can start immediately.
## Parent #31 — Spec: public-client support + replace hand-rolled protocol code with the x/oauth2 + go-oidc + hstern trio ## What to build An `OauthClient` can be declared **without** a `clientSecretRef`, declaring a **Public client**. The Registry builds such an App as **Available** with `SecretReady` trivially true (there is no secret to watch), and the structural gate relaxes so a client is valid with or without a well-formed secret ref. A Confidential client (secret present) is unchanged. An exchange-only App can now omit the secret it never uses. ## Acceptance criteria - [ ] `OauthClient.clientSecretRef` is optional in the CRD (a public client omits it). - [ ] A public-client `OauthClient` builds an Available Registry entry with `SecretReady` true and no referenced Secret. - [ ] A present-but-malformed `clientSecretRef` still degrades (`InvalidSecretRef`). - [ ] A Confidential client still watches its secret and degrades to `SecretNotReady` when the Secret is missing. - [ ] `make manifests generate`, `make lint`, and `make test` pass. ## Blocked by - None — can start immediately.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lab/authz-bridge#32
No description provided.