Skip to content

ShelfAuthOptions

Defined in: packages/auth/src/engine.ts:34

Options for createShelfAuth.

baseURL: string

Defined in: packages/auth/src/engine.ts:40

Public base URL issuing auth responses (callback + cookie scope).


db: DatabaseAdapter

Defined in: packages/auth/src/engine.ts:36

Shelf database (any driver; auth tables migrate via driver DDL).


optional emailPassword?: boolean

Defined in: packages/auth/src/engine.ts:42

Enable email/password login. Defaults to true.


optional emailSender?: EmailSender

Defined in: packages/auth/src/engine.ts:48

Email transport shared with notification channels. When set, invite links are emailed best-effort and password-reset requests send mail; when unset, invites stay out-of-band links and resets stay re-invite.


optional fromEmail?: string

Defined in: packages/auth/src/engine.ts:50

Sender address for auth mail (defaults to storyshelf@<baseURL host>).


optional logger?: Logger

Defined in: packages/auth/src/engine.ts:61

Host-owned logger for auth diagnostics (explicit override only).


optional oauth?: ShelfOAuthProvider[]

Defined in: packages/auth/src/engine.ts:65

OAuth/OIDC providers, each rendered as one login button. Defaults to none.


optional onAuthSystemEvent?: (event, data) => unknown

Defined in: packages/auth/src/engine.ts:56

System-event hook for host-owned fan-out (e.g. sys:user-created, sys:invite-issued to admin channels). Best-effort: failures are logged and swallowed, never break auth flows.

"sys:user-created" | "sys:invite-issued"

Record<string, unknown>

unknown


optional passkeys?: ShelfPasskeyOptions

Defined in: packages/auth/src/engine.ts:67

WebAuthn passkeys (profile enrollment; sign-in ceremony is E8). Defaults to off.


optional plugins?: BetterAuthPlugin[]

Defined in: packages/auth/src/engine.ts:71

Extra Better Auth plugins (passkey, SSO, …). Defaults to none.


secret: string

Defined in: packages/auth/src/engine.ts:38

Session/cookie signing secret (non-empty; Better Auth validates strength).


optional sessionExpiresInDays?: number

Defined in: packages/auth/src/engine.ts:73

Session lifetime in days. Defaults to 7 (current parity).


optional social?: ShelfSocialProvider[]

Defined in: packages/auth/src/engine.ts:63

Native social providers (GitHub, Google, Entra, Cognito…), each one button.


optional sso?: ShelfSSOOptions

Defined in: packages/auth/src/engine.ts:69

Domain-routed SSO (OIDC discovery + SAML via samlify). Defaults to none.