alibi-core 0.9.0

Shared authentication contracts and backend-independent services for Alibi
Documentation
//! # Alibi Core
//!
//! Core abstractions for the Alibi authentication framework.
//! Contains traits, types, configuration, and error handling.

#![cfg_attr(
    test,
    allow(
        unused_results,
        unreachable_pub,
        reason = "test code intentionally discards setup return values and exposes helpers broadly"
    )
)]

extern crate self as alibi;

pub mod adapter_record;
pub mod authenticated_user;
pub mod background_tasks;
pub mod config;
#[doc(hidden)]
pub mod database_sql;
pub mod email;
pub mod endpoint;
pub mod entity;
pub mod error;
pub mod field_policy;
pub mod hooks;
pub mod middleware;
pub mod openapi;
pub mod plugin;
pub mod schema;
pub mod session;
pub mod store;
#[cfg(test)]
pub(crate) mod test_store;
pub mod types;
#[doc(hidden)]
pub mod user_query;
pub mod user_validation;
pub mod utils;
pub mod verification;
pub mod wire;

#[doc(hidden)]
pub use crate as __private_core;
pub use adapter_record::{AdapterOutput, AdapterRecord};
pub use alibi_macros::{AuthSchema, PluginConfig};
pub use authenticated_user::AuthenticatedUser;
pub use background_tasks::{
    BackgroundTaskCompletion, BackgroundTaskHandler, start_background_task,
};
pub use config::{
    AccountConfig, AccountLinkingConfig, AdvancedConfig, AdvancedDatabaseConfig, AuthConfig,
    AwaitedNotificationErrorPolicy, CookieAttributes, CookieCacheConfig, CookieCacheStrategy,
    CookieOverride, CookieRefreshCache, CrossSubDomainConfig, IpAddressConfig, JwtConfig,
    ManagedSecrets, OAuthStateStrategy, PasswordConfig, SameSite, SessionConfig, UserConfig,
    core_paths, extract_origin,
};
pub use email::{ConsoleEmailProvider, EmailProvider};
pub use entity::{
    AuthAccount, AuthApiKey, AuthInvitation, AuthMember, AuthOrganization, AuthPasskey,
    AuthSession, AuthTwoFactor, AuthUser, AuthVerification, MemberUserView,
};
pub use error::{
    AuthError, AuthResult, DatabaseError, validate_request_body, validation_error_response,
};
pub use hooks::{
    CallbackContext, RequestHookContext, with_request_hook_context, with_request_hook_context_value,
};
pub use middleware::{
    BodyLimitConfig, BodyLimitMiddleware, CacheRateLimitStorage, CorsConfig, CorsMiddleware,
    CsrfConfig, CsrfMiddleware, EndpointRateLimit, MemoryRateLimitStorage, Middleware,
    PluginRateLimit, RateLimitConfig, RateLimitDecision, RateLimitMiddleware, RateLimitResolver,
    RateLimitRule, RateLimitStorage,
};
pub use openapi::{
    OpenApiBuilder, OpenApiEndpoint, OpenApiField, OpenApiInfo, OpenApiModel, OpenApiOperation,
    OpenApiRegistry, OpenApiResponse, OpenApiSpec, PluginOpenApiMetadata,
};
pub use plugin::{
    AuthContext, AuthInitContext, AuthPlugin, AuthRoute, BeforeRequestAction, ContextExtensions,
    HttpEndpointResponse, HttpRequestAction, VerificationEmailOverride,
    VerificationEmailOverrideHandle,
};
pub use schema::AuthSchema;
pub use session::SessionManager;
pub use session::cookie_cache::{
    CacheVersionContext, CacheVersionSource, CookieCacheVersion, CookieCacheVersionResolver,
};
pub use store::{
    AuthStore, AuthTransaction, CacheAdapter, ConsumeApiKeyResult, MemoryCacheAdapter,
    WalletAddressStore, transaction,
};
pub use types::{
    ApiKey, ApiKeyStartText, ApiKeyStartingCharacters, AuthRequest, AuthResponse,
    CodeMessageResponse, CreateAccount, CreateApiKey, CreateDeviceCode, CreateInvitation,
    CreateMember, CreateOrganization, CreatePasskey, CreateSession, CreateTeam, CreateTwoFactor,
    CreateUser, CreateVerification, CreateWalletAddress, DeviceCode, ErrorCodeMessageResponse,
    ErrorMessageResponse, Headers, HealthCheckResponse, HttpMethod, Invitation, InvitationStatus,
    ListUsersParams, Member, OkResponse, Organization, OrganizationPermissions, Passkey,
    RateLimitErrorResponse, RequestMeta, StatusMessageResponse, StatusResponse,
    SuccessMessageResponse, SuccessResponse, Team, TeamMember, TwoFactor, UpdateAccount,
    UpdateApiKey, UpdateDeviceCode, UpdateOrganization, UpdatePasskey, UpdateTeam, UpdateTwoFactor,
    UpdateUser, UpdateUserRequest, UpdateUserResponse, UpdateVerification, UserFilterValue,
    ValidationErrorResponse, WalletAddress,
};
pub use types::{CreateJwk, Jwk};
pub use utils::password::{
    PasswordHashContext, PasswordHashHook, PasswordHasher, ScryptHasher, hash_password,
    verify_password,
};
#[doc(hidden)]
pub use uuid;
pub use wire::{
    AccountView, ApiKeyView, InvitationView, OrganizationView, PasskeyView, SessionView, UserView,
    VerificationView,
};