Skip to main content

AuthAdapter

Trait AuthAdapter 

Source
pub trait AuthAdapter:
    Debug
    + Send
    + Sync {
Show 52 methods // Required methods fn validate_access_token<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthCtx>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn read_id_tag<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn read_tn_id<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<TnId>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn read_tenant<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthProfile>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_tenant_registration<'life0, 'life1, 'async_trait>( &'life0 self, email: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_tenant<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, data: CreateTenantData<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<TnId>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn delete_tenant<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_tenants<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, opts: &'life1 ListTenantsOptions<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<TenantListItem>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn create_tenant_login<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthLogin>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn check_tenant_password<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, password: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthLogin>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn update_tenant_password<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, password: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn update_idp_api_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, api_key: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn create_cert<'life0, 'life1, 'async_trait>( &'life0 self, cert_data: &'life1 CertData, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn read_cert_by_tn_id<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<CertData>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn read_cert_by_id_tag<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<CertData>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn read_cert_by_domain<'life0, 'life1, 'async_trait>( &'life0 self, domain: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<CertData>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_all_certs<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<CertData>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn list_tenants_needing_cert_renewal<'life0, 'async_trait>( &'life0 self, renewal_days: u32, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<(TnId, Box<str>)>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn list_profile_keys<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<AuthKey>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn read_profile_key<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, key_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthKey>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_profile_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, expires_at: Option<Timestamp>, ) -> Pin<Box<dyn Future<Output = ClResult<AuthKey>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn create_access_token<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, data: &'life1 AccessToken<&'life2 str>, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn create_action_token<'life0, 'async_trait>( &'life0 self, tn_id: TnId, data: CreateAction, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn create_proxy_token<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, id_tag: &'life1 str, roles: &'life2 [Box<str>], ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn verify_access_token<'life0, 'life1, 'async_trait>( &'life0 self, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn read_vapid_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<KeyPair>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn read_vapid_public_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn create_vapid_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<KeyPair>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update_vapid_key<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, key: &'life1 KeyPair, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn read_var<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, var: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn update_var<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, var: &'life1 str, value: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn list_webauthn_credentials<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Box<[Webauthn<'_>]>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn read_webauthn_credential<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, credential_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<Webauthn<'_>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_webauthn_credential<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, data: &'life1 Webauthn<'_>, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn update_webauthn_credential_counter<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, credential_id: &'life1 str, counter: u32, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn delete_webauthn_credential<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, credential_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_api_key<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, opts: CreateApiKeyOptions<'life1>, ) -> Pin<Box<dyn Future<Output = ClResult<CreatedApiKey>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn validate_api_key<'life0, 'life1, 'async_trait>( &'life0 self, key: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<ApiKeyValidation>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_api_keys<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<ApiKeyInfo>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn read_api_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, key_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<ApiKeyInfo>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update_api_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, key_id: i64, name: Option<&'life1 str>, scopes: Option<&'life2 str>, expires_at: Option<Timestamp>, ) -> Pin<Box<dyn Future<Output = ClResult<ApiKeyInfo>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn delete_api_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, key_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn cleanup_expired_api_keys<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<u32>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn cleanup_expired_verification_codes<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<u32>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn create_proxy_site<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, data: &'life1 CreateProxySiteData<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn read_proxy_site<'life0, 'async_trait>( &'life0 self, site_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn read_proxy_site_by_domain<'life0, 'life1, 'async_trait>( &'life0 self, domain: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn update_proxy_site<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, site_id: i64, data: &'life1 UpdateProxySiteData<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn delete_proxy_site<'life0, 'async_trait>( &'life0 self, site_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn list_proxy_sites<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<ProxySiteData>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update_proxy_site_cert<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, site_id: i64, cert: &'life1 str, key: &'life2 str, expires_at: Timestamp, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn list_proxy_sites_needing_cert_renewal<'life0, 'async_trait>( &'life0 self, renewal_days: u32, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<ProxySiteData>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}
Expand description

A Cloudillo auth adapter

Every AuthAdapter implementation is required to implement this trait. An AuthAdapter is responsible for storing and managing all sensitive data used for authentication and authorization.

Required Methodsยง

Source

fn validate_access_token<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthCtx>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Validates an access token and returns the user context

Source

fn read_id_tag<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

ยงProfiles

Reads the ID tag of the given tenant, referenced by its ID

Source

fn read_tn_id<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<TnId>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Reads the ID the given tenant, referenced by its ID tag

Source

fn read_tenant<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthProfile>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Reads a tenant profile

Source

fn create_tenant_registration<'life0, 'life1, 'async_trait>( &'life0 self, email: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Creates a tenant registration

Source

fn create_tenant<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, data: CreateTenantData<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<TnId>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Creates a new tenant

Source

fn delete_tenant<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Deletes a tenant

Source

fn list_tenants<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, opts: &'life1 ListTenantsOptions<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<TenantListItem>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Lists all tenants (for admin use)

Source

fn create_tenant_login<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthLogin>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn check_tenant_password<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, password: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthLogin>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn update_tenant_password<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, password: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn update_idp_api_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id_tag: &'life1 str, api_key: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn create_cert<'life0, 'life1, 'async_trait>( &'life0 self, cert_data: &'life1 CertData, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn read_cert_by_tn_id<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<CertData>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn read_cert_by_id_tag<'life0, 'life1, 'async_trait>( &'life0 self, id_tag: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<CertData>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn read_cert_by_domain<'life0, 'life1, 'async_trait>( &'life0 self, domain: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<CertData>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn list_all_certs<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<CertData>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn list_tenants_needing_cert_renewal<'life0, 'async_trait>( &'life0 self, renewal_days: u32, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<(TnId, Box<str>)>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn list_profile_keys<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<AuthKey>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn read_profile_key<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, key_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<AuthKey>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn create_profile_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, expires_at: Option<Timestamp>, ) -> Pin<Box<dyn Future<Output = ClResult<AuthKey>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn create_access_token<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, data: &'life1 AccessToken<&'life2 str>, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn create_action_token<'life0, 'async_trait>( &'life0 self, tn_id: TnId, data: CreateAction, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn create_proxy_token<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, id_tag: &'life1 str, roles: &'life2 [Box<str>], ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn verify_access_token<'life0, 'life1, 'async_trait>( &'life0 self, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn read_vapid_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<KeyPair>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn read_vapid_public_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn create_vapid_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<KeyPair>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn update_vapid_key<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, key: &'life1 KeyPair, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn read_var<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, var: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<Box<str>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn update_var<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, var: &'life1 str, value: &'life2 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn list_webauthn_credentials<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Box<[Webauthn<'_>]>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn read_webauthn_credential<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, credential_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<Webauthn<'_>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn create_webauthn_credential<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, data: &'life1 Webauthn<'_>, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn update_webauthn_credential_counter<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, credential_id: &'life1 str, counter: u32, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn delete_webauthn_credential<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, credential_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn create_api_key<'life0, 'life1, 'async_trait>( &'life0 self, tn_id: TnId, opts: CreateApiKeyOptions<'life1>, ) -> Pin<Box<dyn Future<Output = ClResult<CreatedApiKey>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn validate_api_key<'life0, 'life1, 'async_trait>( &'life0 self, key: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<ApiKeyValidation>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn list_api_keys<'life0, 'async_trait>( &'life0 self, tn_id: TnId, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<ApiKeyInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn read_api_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, key_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<ApiKeyInfo>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn update_api_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, tn_id: TnId, key_id: i64, name: Option<&'life1 str>, scopes: Option<&'life2 str>, expires_at: Option<Timestamp>, ) -> Pin<Box<dyn Future<Output = ClResult<ApiKeyInfo>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn delete_api_key<'life0, 'async_trait>( &'life0 self, tn_id: TnId, key_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn cleanup_expired_api_keys<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<u32>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn cleanup_expired_verification_codes<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<u32>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn create_proxy_site<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, data: &'life1 CreateProxySiteData<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn read_proxy_site<'life0, 'async_trait>( &'life0 self, site_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn read_proxy_site_by_domain<'life0, 'life1, 'async_trait>( &'life0 self, domain: &'life1 str, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn update_proxy_site<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, site_id: i64, data: &'life1 UpdateProxySiteData<'life2>, ) -> Pin<Box<dyn Future<Output = ClResult<ProxySiteData>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn delete_proxy_site<'life0, 'async_trait>( &'life0 self, site_id: i64, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn list_proxy_sites<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<ProxySiteData>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn update_proxy_site_cert<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, site_id: i64, cert: &'life1 str, key: &'life2 str, expires_at: Timestamp, ) -> Pin<Box<dyn Future<Output = ClResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn list_proxy_sites_needing_cert_renewal<'life0, 'async_trait>( &'life0 self, renewal_days: u32, ) -> Pin<Box<dyn Future<Output = ClResult<Vec<ProxySiteData>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementorsยง