Skip to main content

junobuild_auth/openid/
types.rs

1pub mod provider {
2    use crate::openid::jwt::types::cert::Jwks;
3    use candid::{CandidType, Deserialize};
4    use junobuild_shared::types::state::{Timestamp, Version};
5    use serde::Serialize;
6
7    #[derive(
8        CandidType, Serialize, Deserialize, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Debug,
9    )]
10    pub enum OpenIdProvider {
11        Google,
12        GitHubAuth, // GitHub user authentication (OAuth) via Juno API proxy
13        GitHubActions,
14    }
15
16    #[derive(
17        CandidType, Serialize, Deserialize, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Debug,
18    )]
19    pub enum OpenIdDelegationProvider {
20        Google,
21        GitHub,
22    }
23
24    #[derive(
25        CandidType, Serialize, Deserialize, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Debug,
26    )]
27    pub enum OpenIdAutomationProvider {
28        GitHub,
29    }
30
31    #[derive(CandidType, Serialize, Deserialize, Clone)]
32    pub struct OpenIdCertificate {
33        pub jwks: Jwks,
34
35        pub created_at: Timestamp,
36        pub updated_at: Timestamp,
37
38        pub version: Option<Version>,
39    }
40}