Skip to main content

alibi_core/
lib.rs

1//! # Alibi Core
2//!
3//! Core abstractions for the Alibi authentication framework.
4//! Contains traits, types, configuration, and error handling.
5
6#![cfg_attr(
7    test,
8    allow(
9        unused_results,
10        unreachable_pub,
11        reason = "test code intentionally discards setup return values and exposes helpers broadly"
12    )
13)]
14
15extern crate self as alibi;
16
17pub mod adapter_record;
18pub mod authenticated_user;
19pub mod background_tasks;
20pub mod config;
21#[doc(hidden)]
22pub mod database_sql;
23pub mod email;
24pub mod endpoint;
25pub mod entity;
26pub mod error;
27pub mod field_policy;
28pub mod hooks;
29pub mod middleware;
30pub mod openapi;
31pub mod plugin;
32pub mod schema;
33pub mod session;
34pub mod store;
35#[cfg(test)]
36pub(crate) mod test_store;
37pub mod types;
38#[doc(hidden)]
39pub mod user_query;
40pub mod user_validation;
41pub mod utils;
42pub mod verification;
43pub mod wire;
44
45#[doc(hidden)]
46pub use crate as __private_core;
47pub use adapter_record::{AdapterOutput, AdapterRecord};
48pub use alibi_macros::{AuthSchema, PluginConfig};
49pub use authenticated_user::AuthenticatedUser;
50pub use background_tasks::{
51    BackgroundTaskCompletion, BackgroundTaskHandler, start_background_task,
52};
53pub use config::{
54    AccountConfig, AccountLinkingConfig, AdvancedConfig, AdvancedDatabaseConfig, AuthConfig,
55    AwaitedNotificationErrorPolicy, CookieAttributes, CookieCacheConfig, CookieCacheStrategy,
56    CookieOverride, CookieRefreshCache, CrossSubDomainConfig, IpAddressConfig, JwtConfig,
57    ManagedSecrets, OAuthStateStrategy, PasswordConfig, SameSite, SessionConfig, UserConfig,
58    core_paths, extract_origin,
59};
60pub use email::{ConsoleEmailProvider, EmailProvider};
61pub use entity::{
62    AuthAccount, AuthApiKey, AuthInvitation, AuthMember, AuthOrganization, AuthPasskey,
63    AuthSession, AuthTwoFactor, AuthUser, AuthVerification, MemberUserView,
64};
65pub use error::{
66    AuthError, AuthResult, DatabaseError, validate_request_body, validation_error_response,
67};
68pub use hooks::{
69    CallbackContext, RequestHookContext, with_request_hook_context, with_request_hook_context_value,
70};
71pub use middleware::{
72    BodyLimitConfig, BodyLimitMiddleware, CacheRateLimitStorage, CorsConfig, CorsMiddleware,
73    CsrfConfig, CsrfMiddleware, EndpointRateLimit, MemoryRateLimitStorage, Middleware,
74    PluginRateLimit, RateLimitConfig, RateLimitDecision, RateLimitMiddleware, RateLimitResolver,
75    RateLimitRule, RateLimitStorage,
76};
77pub use openapi::{
78    OpenApiBuilder, OpenApiEndpoint, OpenApiField, OpenApiInfo, OpenApiModel, OpenApiOperation,
79    OpenApiRegistry, OpenApiResponse, OpenApiSpec, PluginOpenApiMetadata,
80};
81pub use plugin::{
82    AuthContext, AuthInitContext, AuthPlugin, AuthRoute, BeforeRequestAction, ContextExtensions,
83    HttpEndpointResponse, HttpRequestAction, VerificationEmailOverride,
84    VerificationEmailOverrideHandle,
85};
86pub use schema::AuthSchema;
87pub use session::SessionManager;
88pub use session::cookie_cache::{
89    CacheVersionContext, CacheVersionSource, CookieCacheVersion, CookieCacheVersionResolver,
90};
91pub use store::{
92    AuthStore, AuthTransaction, CacheAdapter, ConsumeApiKeyResult, MemoryCacheAdapter,
93    WalletAddressStore, transaction,
94};
95pub use types::{
96    ApiKey, ApiKeyStartText, ApiKeyStartingCharacters, AuthRequest, AuthResponse,
97    CodeMessageResponse, CreateAccount, CreateApiKey, CreateDeviceCode, CreateInvitation,
98    CreateMember, CreateOrganization, CreatePasskey, CreateSession, CreateTeam, CreateTwoFactor,
99    CreateUser, CreateVerification, CreateWalletAddress, DeviceCode, ErrorCodeMessageResponse,
100    ErrorMessageResponse, Headers, HealthCheckResponse, HttpMethod, Invitation, InvitationStatus,
101    ListUsersParams, Member, OkResponse, Organization, OrganizationPermissions, Passkey,
102    RateLimitErrorResponse, RequestMeta, StatusMessageResponse, StatusResponse,
103    SuccessMessageResponse, SuccessResponse, Team, TeamMember, TwoFactor, UpdateAccount,
104    UpdateApiKey, UpdateDeviceCode, UpdateOrganization, UpdatePasskey, UpdateTeam, UpdateTwoFactor,
105    UpdateUser, UpdateUserRequest, UpdateUserResponse, UpdateVerification, UserFilterValue,
106    ValidationErrorResponse, WalletAddress,
107};
108pub use types::{CreateJwk, Jwk};
109pub use utils::password::{
110    PasswordHashContext, PasswordHashHook, PasswordHasher, ScryptHasher, hash_password,
111    verify_password,
112};
113#[doc(hidden)]
114pub use uuid;
115pub use wire::{
116    AccountView, ApiKeyView, InvitationView, OrganizationView, PasskeyView, SessionView, UserView,
117    VerificationView,
118};