Breaking changes
- 🚨 Session and Refresh token split 🚨: Session validation and refresh tokens have been split in order to allow more control over session management.
3 new functions have been added, 2 variations each (a total of 6), with a more predictable and straightforward behavior:
* `ValidateSessionWithRequest` - only validates the session - searches for session token in the request.
* `ValidateSessionWithToken` - only validates the session - receives token as input.
* `RefreshSessionWithRequest` - refreshes a session - searches for session token in the request.
* `RefreshSessionWithToken` - refreshes a session - receives token as input.
* `ValidateAndRefreshSessionWithRequest` - combines the two, validate and refresh as needed - searches for tokens in the request.
* `ValidateAndRefreshSessionWithTokens` - combines the two, validate and refresh as needed - receives tokens as input.
These function replace the following which have been removed:
* `ValidateSession` - replaced by `ValidateAndRefreshSessionWithRequest` with the change of requiring both tokens.
* `ValidateSessionTokens` - replaced by `ValidateAndRefreshSessionWithTokens` with the change of requiring both tokens.
* `RefreshSession` - replaced by `RefreshSessionWithRequest` and `RefreshSessionWithToken`, behavior remains with more consistent naming and input validation.
- 👀 Reorganization of packages 👀 : We introduces a new package for our Descope client:
- Instead of generating the Descope client with
descope.NewDescopeClient
, you should now useclient.New
. - The rest of the public symbols are now under the
descope
package.
- Instead of generating the Descope client with
- User function update: Along with adding support for user attribute update actions (such as
UpdateDisplayName
), we also changed a few things in the existing response:Create
andUpdate
user commands will now return the user object in the response, on top of user errors.Status
attribute is now also included in theUserResponse
object (not breaking).
Enhancements
- Documentation enhancements: Multiple enhancements to our SDK documentation, including the README and some management related examples.
- Error handling: In order to make our errors as clear and convenient as possible for the Descoper, we redesigned the way they are created, experienced (on various levels) and handled. This change includes:
- A new
descope.Error
object - for a unified error object from both client and server errors.
- A new
- Rate limiting: In order to maintain our stable performance, and provide a good experience to all of our customers, we added SDK and API rate limits. You can read more in our documentation.
- Cookie domain configuration: Cookie domain can now be set via the client config; this configuration will take precedence over the domain configured in the Descope console.
- Support single token in validate and refresh commands: Both
sessionToken
andrefreshToken
functions support a single token behavior:- If only the
sessionToken
is provided - default to a 'validate only' behavior (validateSession
) - If only the refreshToken is provided - default to a 'refresh only' behavior (
refreshSession
)
- If only the