soma_auth/
config_machine_clients.rs1use serde::{Deserialize, Serialize};
5use url::Url;
6
7#[derive(Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub struct MachineClientConfig {
9 pub client_id: String,
10 #[serde(default)]
11 pub client_secret: Option<String>,
12 #[serde(default)]
13 pub jwks: Option<serde_json::Value>,
14 #[serde(default)]
15 pub scopes: Vec<String>,
16 #[serde(default)]
17 pub resources: Vec<String>,
18}
19
20impl std::fmt::Debug for MachineClientConfig {
21 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
22 f.debug_struct("MachineClientConfig")
23 .field("client_id", &self.client_id)
24 .field(
25 "client_secret",
26 &self.client_secret.as_ref().map(|_| "<redacted>"),
27 )
28 .field("jwks", &self.jwks.as_ref().map(|_| "<configured>"))
29 .field("scopes", &self.scopes)
30 .field("resources", &self.resources)
31 .finish()
32 }
33}
34
35#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
36pub struct EnterpriseIssuerConfig {
37 pub issuer: String,
38 #[serde(default)]
39 pub jwks_uri: Option<Url>,
40 #[serde(default)]
41 pub jwks: Option<serde_json::Value>,
42 #[serde(default)]
43 pub allowed_client_ids: Vec<String>,
44}