Skip to main content

alibi_core/store/
mod.rs

1pub use contracts::AdapterAfterHook;
2pub use contracts::AdapterEvent;
3pub use contracts::SessionCreatedHook;
4pub(crate) use contracts::UserCreateTransform;
5pub use contracts::UserCreationDefaults;
6use contracts::create_data;
7pub(crate) use decorated::AdapterCallbacks;
8pub(crate) use decorated::PluginStore;
9pub(crate) use decorated::SessionCreatedCallbacks;
10pub(crate) use decorated::UserTransforms;
11mod contracts;
12mod decorated;
13
14pub use contracts::AccountStore;
15pub use contracts::ApiKeyStore;
16pub use contracts::AuthTransaction;
17pub use contracts::BoxedTransactionValue;
18pub use contracts::ConsumeApiKeyResult;
19pub use contracts::DeviceCodeStore;
20pub use contracts::InvitationCreateOptions;
21pub use contracts::InvitationStore;
22pub use contracts::ListOrganizationMembersParams;
23pub use contracts::MemberPageQuery;
24pub use contracts::MemberStore;
25pub use contracts::NumericTextInput;
26pub use contracts::OrganizationStore;
27pub use contracts::PasskeyStore;
28pub use contracts::SessionStore;
29pub use contracts::TransactionFuture;
30pub use contracts::TransactionStore;
31pub use contracts::TransactionWork;
32pub use contracts::TwoFactorStore;
33pub use contracts::TypedTransactionFuture;
34pub use contracts::UserStore;
35pub use contracts::VerificationStore;
36pub use contracts::transaction;
37pub use contracts::verification_reservation_key;
38pub mod adapter;
39pub mod secondary_storage;
40pub mod stateless;
41
42mod database_hooks;
43mod migrations;
44mod org_extensions;
45mod secondary_sessions;
46
47mod jwks;
48
49mod wallets;
50
51use crate::error::{AuthError, AuthResult};
52use crate::schema::AuthSchema;
53use crate::types::{
54    AddTeamMemberResult, CreateJwk, CreateOrganizationRole, CreateTeam, CreateWalletAddress, Jwk,
55    OrganizationRole, OrganizationRoleSelector, Team, TeamMember, UpdateOrganizationRole,
56    UpdateTeam, WalletAddress,
57};
58use crate::types::{
59    ApiKey, CreateAccount, CreateApiKey, CreateDeviceCode, CreateInvitation, CreateMember,
60    CreateOrganization, CreatePasskey, CreateSession, CreateTwoFactor, CreateUser,
61    CreateVerification, DeviceCode, Invitation, InvitationStatus, ListUsersParams, Member,
62    Organization, Passkey, TwoFactor, UpdateAccount, UpdateApiKey, UpdateDeviceCode,
63    UpdateOrganization, UpdatePasskeyAuthentication, UpdateTwoFactor, UpdateUser,
64};
65use crate::user_validation::{PreparedUserCreation, UserValidationSource, prepare_creation};
66use crate::verification::{VerificationCreation, VerificationPublication, VerificationSnapshot};
67use async_trait::async_trait;
68pub use database_hooks::{DatabaseHookContext, DatabaseHooks, HookBackend, HookControl};
69pub use jwks::JwkStore;
70pub use migrations::SchemaMigrator;
71pub use org_extensions::{OrganizationRoleStore, TeamStore, team_membership_key};
72#[cfg(feature = "redis-cache")]
73pub use secondary_storage::RedisAdapter;
74pub use secondary_storage::{CacheAdapter, MemoryCacheAdapter};
75use std::sync::Arc;
76pub use wallets::WalletAddressStore;
77
78pub trait AuthStore<S: AuthSchema>:
79    UserStore<S>
80    + SessionStore<S>
81    + AccountStore<S>
82    + VerificationStore<S>
83    + OrganizationStore
84    + MemberStore
85    + InvitationStore
86    + TeamStore
87    + OrganizationRoleStore
88    + WalletAddressStore
89    + TwoFactorStore
90    + ApiKeyStore
91    + PasskeyStore
92    + DeviceCodeStore
93    + JwkStore
94    + TransactionStore<S>
95    + Send
96    + Sync
97{
98}
99
100impl<S, T> AuthStore<S> for T
101where
102    S: AuthSchema,
103    T: UserStore<S>
104        + SessionStore<S>
105        + AccountStore<S>
106        + VerificationStore<S>
107        + OrganizationStore
108        + MemberStore
109        + InvitationStore
110        + TeamStore
111        + OrganizationRoleStore
112        + WalletAddressStore
113        + TwoFactorStore
114        + ApiKeyStore
115        + PasskeyStore
116        + DeviceCodeStore
117        + JwkStore
118        + TransactionStore<S>
119        + Send
120        + Sync,
121{
122}