diff --git a/como_auth/src/oauth.rs b/como_auth/src/oauth.rs index 280a422..37a294a 100644 --- a/como_auth/src/oauth.rs +++ b/como_auth/src/oauth.rs @@ -6,19 +6,36 @@ use std::sync::Arc; #[derive(Clone, clap::Args)] pub struct OAuthClientClap { #[clap(flatten)] - zitadel: Option, + zitadel: Option, #[clap(flatten)] noop: Option, } #[derive(Clone, clap::Args)] -#[group(conflicts_with = "ZitadelConfig")] pub struct NoopConfig { - #[clap(env = "OAUTH_NOOP", long = "oauth-noop")] + #[arg(env = "OAUTH_NOOP", long = "oauth-noop", group = "auth")] pub oauth_noop: Option, } +#[derive(clap::Args, Clone)] +pub struct ZitadelClap { + #[arg(env = "ZITADEL_AUTH_URL", long = "zitadel-auth-url", group = "auth")] + pub auth_url: Option, + + #[arg(env = "ZITADEL_CLIENT_ID", long = "zitadel-client-id")] + pub client_id: Option, + + #[arg(env = "ZITADEL_CLIENT_SECRET", long = "zitadel-client-secret")] + pub client_secret: Option, + + #[arg(env = "ZITADEL_REDIRECT_URL", long = "zitadel-redirect-url")] + pub redirect_url: Option, + + #[arg(env = "ZITADEL_TOKEN_URL", long = "zitadel-token-url")] + pub token_url: Option, +} + #[async_trait] pub trait OAuthClient { async fn get_token(&self) -> anyhow::Result<()>; @@ -77,7 +94,7 @@ impl OAuthClient for NoopOAuthClient { // -- Zitadel #[derive(clap::Args, Clone)] -#[group(conflicts_with = "NoopConfig")] +#[group(conflicts_with = "NoopConfig", required = false)] pub struct ZitadelConfig { #[clap(env = "ZITADEL_AUTH_URL", long = "zitadel-auth-url")] auth_url: String,