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