🚀 Features
- Support to infer error types from endpoint - by @himself65 in #4095 (48f91)
- Support
node:sqlite- by @himself65 in #3869 (fc8a2) - Remote sign a jwt payload - by @dvanmali and @himself65 in #4074 (c05b1)
- Support device authorization - by @himself65 in #3811 (5ded0)
- Support custom schema merging in SIWE plugin - by @himself65 in #4138 (09a04)
- Add figma provider - by @ShobhitPatra and @Kinfe123 in #4134 (d476f)
- Enhance Microsoft Entra ID type definitions - by @Kinfe123 in #3806 (492b5)
- Add
onUpdatefield on db schema generation - by @himself65 in #4241 (240ef) - Add onInvitationAccepted callback for org invitations - by @Kinfe123 in #4120 (cac8b)
- Add query parameter to useSession().refetch() for cache control consistency - by @adriandlam and @himself65 in #3890 (8fdc7)
- Add last login method plugin - by @Bekacru in #4347 (2db14)
- Check endpoint conflits - by @himself65 in #4288 (b4f0c)
- Add json field type - by @dvanmali in #4297 (94a28)
- Add
@defaultand@updatedAtfor prisma generator - by @himself65 in #4375 (c84b3) - Use
defaultNow()for drizzle timestamp fields - by @Badbird5907 and @himself65 in #3873 (9fb9b) - admin:
- Get user - by @0xJJW, @ping-maxwell and ping-maxwell in #2587 (cf7f2)
/admin/update-userrole as array - by @alliefitter in #4371 (6c00b)
- atlassian:
- Add atlassian social provider - by @ShobhitPatra in #4221 (e1552)
- cli:
- Add
infoscript - by @himself65 in #4143 (79311)
- Add
- cognito:
- Add amazon cognito provider - by @ShobhitPatra in #4229 (02752)
- demo:
- Improve sign-up component - by @himself65 in #3789 (d4c15)
- jwt:
- mcp:
- Add protected-resource metadata endpoint - by @frectonz and @himself65 in #4394 (f937c)
- microsoft:
- openapi:
- org:
- Dynamic Access Control (Experimental) - by @ping-maxwell and @himself65 in #4087 (11bb6)
- organization:
- Organization life cycle hooks - by @Bekacru and @ping-maxwell in #4049 (bba0a)
- paypal:
- Add paypal OAuth2 provider - by @ShobhitPatra in #4107 (96b5f)
- salesforce:
- Add salesforce provider - by @ShobhitPatra and @himself65 in #4183 (da9fc)
- social:
- stripe:
- Add locale to stripe billing portal options - by @melsonic and @himself65 in #4108 (e7216)
🐞 Bug Fixes
- Constant time compare - by @himself65 in #4077 (789f4)
- Secondary storage should allow returning both string and parsed json - by @Bekacru in #4076 (99834)
- Telemetry should be opt in not opt out - by @frectonz in #4081 (7b6f3)
- Show error stack in debug mode - by @himself65 in #4091 (12ae7)
- Move stack check into inner function - by @himself65 in #4094 (6055a)
- Check
x-api-keyfor all auth endpoint - by @himself65 in #4083 (a686a) - Avoid general oauth flow duplicate user - by @himself65 in #3839 (3ad5e)
- Small dx for device login - by @himself65 in #4141 (55ec2)
- Invalid pages on docs throw a 500 server error instead of 404 - by @Kinfe123 in #4166 (c45ad)
- Make zod as dependency - by @himself65 in #4205 (4b5d4)
- Device authorization interval - by @himself65 in #4243 (4e4bc)
- Schema
onUpdatenot working - by @himself65 in #4273 (87a16) - Member not exist on org - by @himself65 in #4276 (acf37)
- Never type still requires setting clientId to never - by @szcharlesji and @himself65 in #4002 (acf2f)
- Team id zod schema meta property for array type - by @Kinfe123 in #4303 (1cdb2)
- Resolve field naming inconsistency in account listing endpoint - by @Kinfe123 in #4175 (cccf8)
- Changelogs incorrect mentions - by @okisdev in #4321 (94727)
- Leave error from fetch API as-is - by @himself65 in #4323 (4e621)
- Update organization requiring all additional fields for update payload - by @Bekacru (97e50)
- Prevent build error for node:sqlite - by @bytaesu in #4360 (4be0f)
- Prevent undefined from passed to adapter in username plugin - by @Kinfe123 in #4361 (4efb5)
- Add missing defaultValue on core schema - by @himself65 in #4374 (77042)
- Strict social provider type - by @himself65 in #4395 (4b402)
- apple:
- Ensures name is always present in profile for mapProfileToUser - by @ShobhitPatra in #4156 (d3c94)
- Allow audience to be
string - by **efcf5787** [<samp>( stri)</samp>](https://github.com/better-auth/better-auth/commit/ string[](#4219))
- cli:
- Check for undefined defaultValue instead of truthy value when generating drizzle schema - by @eni4sure in #3512 (d9f88)
generatethrows error with default export - by @himself65 in #4113 (bb634)- Incorrect drizzle schema gen - by @ping-maxwell in #4132 (5d84a)
- Simplify and correct comma insertion logic in plugin array - by @bytaesu in #4281 (df615)
- client:
- Prevent proxy promise-like behavior - by @Aditya-ingole21, @Bekacru, @Kinfe123 and @himself65 in #3679 (94378)
- Prevent proxy promise-like behavior - by @Aditya-ingole21, @Bekacru, @Kinfe123 and @himself65 in #3679 (e08cf)
- Avoid atom to be proxy - by @himself65 in #4079 (73da4)
- custom-session:
- Also mutate multi-session response - by @ping-maxwell in #3868 (14303)
- db:
- Special case schema generation
ID- by @himself65 in #4400 (a6ba8)
- Special case schema generation
- expo:
- oauth2:
- Correct basic auth header construction for refresh token - by @CodeWithAlexander in #4126 (77722)
- oidc:
- Allow custom schemas - by @julen and @ping-maxwell in #4200 (0751e)
- Specify foreign key references in the schema - by @julen and @himself65 in #4264 (66be9)
- oidc-provider:
- Handle string timestamps in user profile claims - by @Louis454545 in #4176 (dc6f6)
- organization:
- Was possible to remove sole org owner - by @gwoodbridge in #3955 (55815)
- stripe: