Package: better-auth@1.4.16 (Jan 21, 2026) Breaking Changes: ESM-only (v1.4.0), Admin impersonation prevention default (v1.4.6), Multi-team table changes (v1.3), D1 requires Drizzle/Kysely (no direct adapter)
If your Drizzle schema uses snakecase column names (e.g., emailverified), but better-auth expects camelCase (e.g., emailVerified), the CamelCasePlugin automatically converts between the two.
⚠️ Cloudflare Workers Note: D1 database bindings are only available inside the request handler (the fetch() function). You cannot initialize better-auth outside the request context. Use a factory function pattern:
Autenticazione self-hosted per TypeScript/Cloudflare Worker con autenticazione social, 2FA, passkey, organizzazioni, RBAC e oltre 15 plug-in. Richiede Drizzle ORM o Kysely per D1 (nessun adattatore diretto). Alternativa self-hosted a Clerk/Auth.js. Da utilizzare in caso di: autenticazione self-hosting su D1, creazione di provider OAuth, SaaS multi-tenant o risoluzione di errori dell'adattatore D1, memorizzazione nella cache delle sessioni, limiti di velocità, arresti anomali di Expo, bug aggiuntivi di Fields. Fonte: jezweb/claude-skills.