@@ -21,10 +21,14 @@ type CorootCloudRCASpec struct {
2121
2222type SSOSpec struct {
2323 Enabled bool `json:"enabled,omitempty"`
24+ // Provider is set automatically based on which configuration section (saml or oidc) is defined.
25+ Provider string `json:"provider,omitempty"`
2426 // Default role for authenticated users (Admin, Editor, Viewer, or a custom role).
2527 DefaultRole string `json:"defaultRole,omitempty"`
26- // SAML configuration.
28+ // SAML configuration. Define this section to use SAML SSO.
2729 SAML * SSOSAMLSpec `json:"saml,omitempty"`
30+ // OIDC configuration. Define this section to use OIDC SSO.
31+ OIDC * SSOOIDCSpec `json:"oidc,omitempty"`
2832}
2933
3034type SSOSAMLSpec struct {
@@ -34,6 +38,18 @@ type SSOSAMLSpec struct {
3438 MetadataSecret * corev1.SecretKeySelector `json:"metadataSecret,omitempty"`
3539}
3640
41+ type SSOOIDCSpec struct {
42+ // OIDC provider issuer URL (e.g., https://accounts.google.com).
43+ // +kubebuilder:validation:Pattern="^https?://.+$"
44+ IssuerURL string `json:"issuerURL,omitempty"`
45+ // OAuth client ID.
46+ ClientID string `json:"clientID,omitempty"`
47+ // OAuth client secret.
48+ ClientSecret string `json:"clientSecret,omitempty"`
49+ // Secret containing the client secret.
50+ ClientSecretSecret * corev1.SecretKeySelector `json:"clientSecretSecret,omitempty"`
51+ }
52+
3753type AISpec struct {
3854 // AI model provider (anthropic, openai, or openai_compatible).
3955 // +kubebuilder:validation:Enum=anthropic;openai;openai_compatible
0 commit comments