All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning
- Fixes response schema of thirdparty signInUp POST
- Adds
/appid-<appid>/<tenantid>/recipe/dashboard/tenant/core-config
GET API. - Adds optional
websiteDomain
andapiDomain
query param to GET/appid-<appId>/apiversion
API. - Deprecates the recipe enabled booleans for ConnectionURIDomains, Apps and Tenants and now the
firstFactors
andrequiredSecondaryFactors
are used to control the login methods.- Deprecated APIs:
- PUT
/recipe/multitenancy/connectionuridomain
- GET
/recipe/multitenancy/connectionuridomain/list
- PUT
/recipe/multitenancy/app
- GET
/recipe/multitenancy/app/list
- PUT
/appid-<appid>/recipe/multitenancy/tenant
- GET
/appid-<appid>/<tenantid>/recipe/multitenancy/tenant
- GET
/appid-<appid>/<tenantid>/recipe/multitenancy/tenant/list
- PUT
- New v2 APIs replacing the deprecated APIs:
- PUT
/recipe/multitenancy/connectionuridomain/v2
- GET
/recipe/multitenancy/connectionuridomain/list/v2
- PUT
/recipe/multitenancy/app/v2
- GET
/recipe/multitenancy/app/list/v2
- PUT
/appid-<appid>/recipe/multitenancy/tenant/v2
- GET
/appid-<appid>/<tenantid>/recipe/multitenancy/tenant/v2
- GET
/appid-<appid>/<tenantid>/recipe/multitenancy/tenant/list/v2
- PUT
- Deprecated APIs:
TOTP_NOT_ENABLED_ERROR
status is removed from the totp related APIs.- In
/appid-<appId>/recipe/totp/device
POST,deviceName
input is now optional. The response also includesdeviceName
. - Adds
/recipe/totp/device/import
POST API. INVALID_TOTP_ERROR
,LIMIT_REACHED_ERROR
responses now includecurrentNumberOfFailedAttempts
andmaxNumberOfFailedAttempts
in the response.- Adds
/appid-<appId>/<tenantId>/recipe/signinup/code/check
POST API. - Adds
consumedDevice
in the success response for/appid-<appId>/<tenantId>/recipe/signinup/code/consume
POST API. /appid-<appId>/<tenantId>/recipe/signinup/code/remove
POST API now acceptspreAuthSessionId
as input which can be used to remove code for a device./appid-<appId>/<tenantId>/recipe/session/remove
POST API can now only be called using public tenant ifrevokeAcrossAllTenants
is set to true./appid-<appId>/<tenantId>/recipe/session/user
GET API can now only be called using public tenant iffetchAcrossAllTenants
is set to true.- Makes
useDynamicSigningKey
input mandatory in/appid-<appId>/recipe/session/refresh
POST API. - Adds
firstFactors
andrequiredSecondaryFactors
to the input of/recipe/multitenancy/connectionuridomain
PUT,/recipe/multitenancy/app
PUT and/appid-<appId>/recipe/multitenancy/tenant
PUT APIs. - Adds
firstFactors
andrequiredSecondaryFacrors
to the response of/appid-<appId>/<tenantId>/recipe/multitenancy/tenant
GET API.
- Adds an optional
useDynamicSigningKey
to the session refresh (POST
/appid-<appId>/recipe/session/refresh
) request body
- Adds GET
/appid-<appId>/requests/stats
API
- Fixes location of
isVerified
boolean in the third party signinup API request body.
-
Adds new APIs for account linking
- GET
/appid-<appId>/recipe/accountlinking/user/primary/check
- GET
/appid-<appId>/recipe/accountlinking/user/link/check
- POST
/appid-<appId>/recipe/accountlinking/user/primary
- POST
/appid-<appId>/recipe/accountlinking/user/link
- POST
/appid-<appId>/recipe/accountlinking/user/unlink
- GET
-
Adds new APIs for query user
- GET
/appid-<appId>/user/id
- GET
/appid-<appId>/<tenantId>/users/by-accountinfo
- GET
-
Deprecates following APIs
- GET
/appid-<appId>/<tenantId>/recipe/user
(for all recipes) - GET
/appid-<appId>/<tenantId>/recipe/users/by-email
- GET
-
Updates to POST
/appid-<appId>/<tenantId>/recipe/signinup/code/consume
- Response
user
object is updated - Adds
recipeUserId
to the response
- Response
-
Updates GET
/appid-<appId>/<tenantId>/recipe/user
(for all recipes)- Response
user
object is updated
- Response
-
Updates PUT
/appid-<appId>/<tenantId>/recipe/user
(emailpassword and passwordless)- Renames input field
userId
torecipeUserId
- Renames input field
-
Updates PUT
/appid-<appId>/<tenantId>/recipe/user
(passwordless)- Returns new statuses
EMAIL_CHANGE_NOT_ALLOWED_ERROR
andPHONE_NUMBER_CHANGE_NOT_ALLOWED_ERROR
along withreason
- Returns new statuses
-
Updates POST
/appid-<appId>/<tenantId>/recipe/signin
- Response
user
object is updated - Adds
recipeUserId
to the response
- Response
-
Updates POST
/appid-<appId>/<tenantId>/recipe/signup
- Response
user
object is updated - Adds
recipeUserId
to the response
- Response
-
Updates PUT
/appid-<appId>/<tenantId>/recipe/user
(emailpassword)- returns new status
EMAIL_CHANGE_NOT_ALLOWED_ERROR
along withreason
- returns new status
-
Updates POST
/appid-<appId>/<tenantId>/recipe/user/password/reset/token
- Adds mandatory field
email
to the request body
- Adds mandatory field
-
Updates POST
/appid-<appId>/<tenantId>/recipe/user/passwordhash/import
- Response
user
object is updated
- Response
-
Adds POST
/appid-<appId>/<tenantId>/recipe/user/password/reset/token/consume
API -
Updates POST
/appid-<appId>/<tenantId>/recipe/signinup
- Adds mandatory
isVerified
field to the request body - Response
user
object is updated - Adds
recipeUserId
to the response - Returns new status
EMAIL_CHANGE_NOT_ALLOWED_ERROR
along withreason
- Adds mandatory
-
Updates GET
/appid-<appId>/<tenantId>/recipe/users/by-email
- Response
users
object is updated
- Response
-
Updates GET
/appid-<appId>/<tenantId>/users
- Response
users
object is updated - Removes
recipeId
from the response
- Response
-
Updates POST
/appid-<appId>/user/remove
- Adds optional parameter
removeAllLinkedAccounts
to the request body
- Adds optional parameter
-
Updates POST
/appid-<appId>/<tenantId>/recipe/multitenancy/tenant/user
- Renames
userId
torecipeUserId
in the request body
- Renames
-
Updates POST
/appid-<appId>/<tenantId>/recipe/multitenancy/tenant/user/remove
- Renames
userId
torecipeUserId
in the request body
- Renames
- Updates
/appid-<appId>/<tenantId>/recipe/multitenancy/tenant
to also returnTENANT_NOT_FOUND_ERROR
- Updates following session APIs to include tenantId in response:
- POST
/appid-<appId>/<tenantId>/recipe/session
- GET
/appid-<appId>/recipe/session
- POST
/appid-<appId>/recipe/session/verify
- POST
/appid-<appId>/recipe/session/refresh
- POST
/appid-<appId>/recipe/session/regenerate
- POST
- Fixes GET
/appid-<appId>/<tenantId>/recipe/multitenancy/tenant
to includecoreConfig
andtenantId
- Fixes GET
/appid-<appId>/recipe/user/email/verify
to be app specific
- Updates POST
/appid-<appId>/<tenantId>/recipe/session/remove
to includerevokeAcrossAllTenants
in the request - Updates GET
/appid-<appId>/<tenantId>/recipe/session/user
to includefetchAcrossAllTenants
in the query params - Updates following APIs to be app specific:
- GET and PUT
/appid-<appId>/recipe/session/data
- GET
/appid-<appId>/recipe/session
- GET and PUT
- Fixed
/recipe/multitenancy/tenant
GET
-
Adds
/appid-<appId>
or/appid-<appId>/<tenantId>
prefix to some of the APIs as applicable.appid-{appId}
and{tenantId}
in all the APIs (wherever they are present) are optional. Their default values areappid-public
andpublic
respectively. -
Adds APIs for multitenancy recipe
- adds
/recipe/multitenancy/connectionuridomain
PUT - adds
/recipe/multitenancy/connectionuridomain/remove
POST - adds
/recipe/multitenancy/connectionuridomain/list
GET - adds
/recipe/multitenancy/app
PUT - adds
/recipe/multitenancy/app/remove
POST - adds
/recipe/multitenancy/app/list
GET - adds
/recipe/multitenancy/tenant
PUT - adds
/recipe/multitenancy/tenant/remove
POST - adds
/recipe/multitenancy/tenant/list
GET - adds
/recipe/multitenancy/tenant/user
POST - adds
/recipe/multitenancy/tenant/user/remove
POST
- adds
-
Adds APIs for creating and managing Thirdparty provider config for tenants
- adds
/recipe/multitenancy/config/thirdparty
PUT - adds
/recipe/multitenancy/config/thirdparty/remove
POST
- adds
-
Adds
tenantIds
in response of/recipe/user
GET in emailpassword, passwordless and thirdparty recipes. -
Adds optional query param
includeAllTenants
to the/users/count
GET API -
Removed deprecated APIs
/recipe/user
and/recipe/users/count
- Fixes
thirdParty
property inthirdPartyUser
object
- deprecate jwks endpoint in the jwt recipe (GET
/recipe/jwt/jwks
) - add standard jwks endpoint (GET
/.well-known/jwks.json
) - add
useDynamicSigningKey
intocreateNewSession
(POST/recipe/session
). This will be used instead ofaccess_token_signing_key_dynamic
- add
useStaticSigningKey
intocreateSignedJWT
(POST/recipe/jwt
). - removed handshake endpoint (POST
/recipe/handshake
) - add checkDatabase into
verifySession
(POST/recipe/session/verify
) - removed old/unused props from responses related to signing keys &
id-refresh-token
- Core APIs:
/user/search/tags
GET
- Core APIs:
/users
GET with the following query params:email
stringphone
stringprovider
string
- Core APIs:
/users/count/active
GET/recipe/totp/device
POST/recipe/totp/device
PUT/recipe/totp/device/list
GET/recipe/totp/device/remove
POST/recipe/totp/verify
POST/recipe/totp/device/verify
POST
- Marks the
cdi-version
header param as optional
- Core APIs:
/recipe/dashboard/user
POST/recipe/dashboard/user
PUT/recipe/dashboard/user
DELETE/recipe/dashboard/users
GET/recipe/dashboard/session/verify
POST/recipe/dashboard/session
DELETE/recipe/dashboard/signin
POST/recipe/dashboard/user/sessions
GET
- Core APIs:
/ee/featureflag
GET/ee/license
PUT/ee/license
DELETE/ee/license
GET
- In
/recipe/session/refresh
POSTenableAntiCsrf
is now boolean- Marks
refreshToken
andenableAntiCsrf
as required
- Marks
preAuthSessionId
as required in/recipe/signinup/code/consume
POST
-
/
GET -
EmailPassword APIs
- adds
/recipe/user/passwordhash/import
POST
- adds
- UserIdMapping APIs
- updates
/recipe/userid/map
POST withforce
boolean - updates
/recipe/userid/map/remove
POST withforce
boolean
- updates
- UserId Mapping recipe:
- adds
/recipe/userid/map
POST - adds
/recipe/userid/map/remove
POST - adds
/recipe/userid/map
GET - adds
/recipe/userid/external-user-id-info
PUT
- User Roles recipe:
- adds
/recipe/user/role
PUT - adds
/recipe/user/role/remove
POST - adds
/recipe/user/roles
GET - adds
/recipe/role/users
GET - adds
/recipe/role
PUT - adds
/recipe/role/permissions
GET - adds
/recipe/role/permissions/remove
POST - adds
/recipe/permission/roles
GET - adds
/recipe/role/remove
POST - adds
/recipe/roles
GET
- Marks
rid
optional in core APIs - Marks
userId
in user metadata API as required.
- User Metadata recipe
- adds
/recipe/user/metadata
GET - adds
/recipe/user/metadata
PUT - adds
/recipe/user/metadata/remove
POST
- adds
- Adds
userId
in response of/recipe/user/password/reset API
- Passwordless recipe
- adds
/signinup/code/consume
POST - adds
/signinup/code/remove
POST - adds
/signinup/code
POST - adds
/signinup/codes
GET - adds
/signinup/codes/remove
POST
- adds
- Core APIs
- updates
/user
GET withpasswordless
rid - updates
/users
GET withrid
and newuser
type
- updates
- adds /user/remove POST
- JWT recipe
- adds JWT validity to
/recipe/jwt
POST - adds a new property
jwtSigningPublicKeyList
which lists valid JWT signing keys to the following API responses:/recipe/handshake
POST/recipe/session
POST/recipe/session/verify
POST
- adds JWT validity to
- Fixs response for
/users
GET
- JWT recipe
- removes
JWT_CREATION_ERROR
from/recipe/jwt
POST response
- removes
-
Emailpassword recipe
/recipe/users/count
GET/recipe/users
GET
-
Thirdparty recipe
/recipe/users/count
GET/recipe/users
GET
-
Session Recipe
-
/recipe/session/data
GET -
/recipe/jwt/data
GET
- removes
isVerified
boolean
from/recipe/signinup
POST
-
Core APIs
- adds
/users/count
GET - adds
/users
GET
- adds
-
Session Recipe
- adds
/recipe/session
GET
- adds
- Third party recipe
- adds
/recipe/signinup
POST - adds
/recipe/user
GET - adds
/recipe/users
GET - adds
/recipe/users/count
GET
- adds
- Email verification
- Changed output of
/recipe/user/email/verify
to giveuserId
instead ofuser
object - Email verification APIs no longer return
UNKNOWN_USER_ID_ERROR
- Moved
/recipe/user/email/verify/token
to its own recipe - Moved
/recipe/user/email/verify
to its own recipe - Moved
/recipe/user/email/verify
to its own recipe
- Changed output of
/recipe/handshake
GET/recipe/session
POST/recipe/session/verify
POST/recipe/session/refresh
POST
[2.5.0]
/recipe/user/email/verify/token
POST/recipe/user/email/verify
POST/recipe/user/email/verify
GET/recipe/users
GET/recipe/count
GET
[2.4.0]
accessTokenPath
,refreshTokenPath
,cookieSecure
,cookieSameSite
,idRefreshTokenPath
,cookieDomain
,sessionExpiredStatusCode
fromhandshakeInfo
- In
/config
,NOT ALLOWED
=>NOT_ALLOWED
/hello
API no longer requiresCDI
version/handshake
=>/recipe/handshake
- No longer require
deviceDriverInfo
- Added
accessTokenValidity
andrefreshTokenValidity
to Handshake API /session
=>/recipe/session
/session/remove
=>/recipe/session/remove
/session/verify
=>/recipe/session/verify
/session/refresh
=>/recipe/session/refresh
/session/user
=>/recipe/session/user
/session/regenerate
=>/recipe/session/regenerate
- /session/data => /recipe/session/data
/jwt/data
=>/recipe/jwt/data
- adds
/recipe/signin
- adds
/recipe/signup
- adds
/recipe/user
- adds
/recipe/user/password/reset/token
- adds
/recipe/user/password/reset
- Remove support code for older CDI versions: