Skip to main content

rustauth_core/
options.rs

1//! Configuration types for RustAuth core.
2//!
3//! # Hooks
4//!
5//! RustAuth supports three hook registration paths:
6//!
7//! 1. **Global HTTP hooks** — build [`GlobalHooksOptions`] and register it with
8//!    [`RustAuthOptions::hooks`]. These run before/after matched API endpoints
9//!    (parity with Better Auth `hooks`).
10//! 2. **Init-time database hooks** — build [`InitDatabaseHooksOptions`] and register
11//!    it with [`RustAuthOptions::init_database_hooks`]. Prefer this for typed
12//!    create/update callbacks on core models (`user`, `session`, `account`,
13//!    `verification`). See [`RustAuthOptions`] for when to combine this with
14//!    low-level hooks.
15//! 3. **Low-level plugin database hooks** — append [`crate::plugin::PluginDatabaseHook`]
16//!    via [`RustAuthOptions::database_hook`] for custom models, plugin-owned tables,
17//!    or operations that do not fit the init-time schema.
18
19mod account;
20mod advanced;
21mod api_error;
22mod cookies;
23mod email_password;
24mod email_verification;
25pub(crate) mod hooks;
26mod init_database_hooks;
27mod model_schema;
28mod origins;
29mod password;
30mod rate_limit;
31mod root;
32mod session;
33mod storage;
34mod user;
35mod verification;
36
37pub use account::{
38    AccountLinkingOptions, AccountOptions, OAuthStateStoreStrategy, TrustedProvidersProvider,
39    TrustedProvidersRequestProvider,
40};
41pub use advanced::{
42    AdvancedOptions, BackgroundTaskFuture, BackgroundTaskRunner, CookieAttributesOverride,
43    IpAddressOptions,
44};
45pub use api_error::{DefaultErrorPage, OnApiErrorHandler, OnApiErrorOptions};
46pub use cookies::{CookieCacheOptions, CookieCacheStrategy, CookieConfig};
47pub use email_password::{EmailPasswordOptions, ExistingUserSignUpPayload, OnExistingUserSignUp};
48pub use email_verification::{
49    AfterEmailVerification, BeforeEmailVerification, EmailVerificationCallbackPayload,
50    EmailVerificationOptions, SendVerificationEmail, VerificationEmail,
51};
52pub use hooks::{GlobalAfterHook, GlobalBeforeHook, GlobalHookAction, GlobalHooksOptions};
53pub use init_database_hooks::{
54    plugin_database_hooks_from_init, DatabaseModelHooks, DatabaseOperationHooks,
55    InitDatabaseAfterHook, InitDatabaseBeforeAction, InitDatabaseBeforeHook,
56    InitDatabaseHooksOptions,
57};
58pub use model_schema::ModelSchemaOptions;
59pub use origins::{TrustedOriginOptions, TrustedOriginsProvider};
60pub use password::{
61    OnPasswordReset, PasswordOptions, PasswordResetEmail, PasswordResetPayload, SendResetPassword,
62};
63pub use rate_limit::{
64    validate_rate_limit_rule, DynamicRateLimitPathRule, HybridRateLimitOptions, MissingIpPolicy,
65    RateLimitConsumeInput, RateLimitDecision, RateLimitFuture, RateLimitOptions, RateLimitPathRule,
66    RateLimitRecord, RateLimitRule, RateLimitRuleProvider, RateLimitStorage,
67    RateLimitStorageOption, RateLimitStore,
68};
69pub use root::{DeploymentMode, ExperimentalOptions, RustAuthOptions, TelemetryOptions};
70pub use session::{SessionAdditionalField, SessionOptions};
71pub use storage::{SecondaryStorage, SecondaryStorageFuture};
72pub use user::{
73    AfterDeleteUser, BeforeDeleteUser, ChangeEmailConfirmation, ChangeEmailOptions,
74    DeleteAccountVerificationEmail, DeleteUserOptions, SendChangeEmailConfirmation,
75    SendDeleteAccountVerification, UserAdditionalField, UserOptions,
76};
77pub use verification::{
78    StoreIdentifierHashFn, StoreIdentifierHashFuture, StoreIdentifierOption, VerificationOptions,
79    VerificationStoreIdentifierConfig,
80};