v1.20.0

logto-io/logtov1.20.0Sep 14, 2024by charIeszhao

AI Summary

Key updates include Arabic language translation and RTL support, the introduction of Personal Access Tokens (PAT), and new first-screen options for the sign-in experience.

Key Highlights

  • Arabic language translation and RTL support
  • Personal Access Token (PAT) support
  • New connectors: Kook, Patreon, and GitLab
  • Enhanced first-screen options (identifier:sign_in, identifier:register, etc.)

New Features

  • Arabic translation and RTL support
  • PAT creation via Management API and Console
  • First-screen options (identifier:sign_in, identifier:register, reset_password, single_sign_on)
  • New connectors (Kook, Patreon, GitLab)
  • login_hint support
  • Swagger well-known endpoints
  • CLI package split (@logto/cli to @logto/translate)
  • User creation name field support
  • Nested attribute profile mapping in OAuth connector
  • hasPassword property in Management API
  • Password policy check API

Full Release Notes

<p align="center">
<img src="https://github.com/user-attachments/assets/edb07a08-6ae7-4bde-8856-896a62a9f27c" alt="September release" />
</p>

## Arabic translation and RTL support

- #6422 Added new Arabic language translation to both Console and Experience UI (credit @zaaakher).
- Improved UI layout and details to better support RTL languages.
<img width="1386" alt="image" src="https://github.com/user-attachments/assets/31cef491-e3b4-44b0-9276-379384a7f3e2">
<img width="1482" alt="image" src="https://github.com/user-attachments/assets/86ede193-bdec-4788-8c6c-ea1813abb9ee">

## Personal access token (PAT)

Personal access tokens (PATs) provide a secure way for users to grant access tokens without using their credentials and interactive sign-in.

You can create a PAT by going to the user's detail page in Console or using the Management API `POST /users/:userId/personal-access-tokens`.

Refer to [documentation](https://docs.logto.io/docs/recipes/manage-users/personal-access-token/) for more details.

## Support additional first-screen options

In addition to `sign-in` and `register`, we now enabled more options that allowing developers to customize the initial screen presented to users. These new first-screen options are:

- `identifier:sign_in`: Only display specific identifier-based sign-in methods to users.
- `identifier:register`: Only display specific identifier-based registration methods to users.
- `reset_password`: Allow users to directly access the password reset page.
- `single_sign_on`: Allow users to directly access the single sign-on (SSO) page.

Refer to [documentation](https://docs.logto.io/docs/references/openid-connect/authentication-parameters/#first-screen) for more details.

## New connectors

- #6227 Added Kook connector (credit @Misaka-L).
- #6514 Added Patreon connector (credit @devtekve).
- #6529 Added GitLab connector (credit @devtekve).

## Improvements

- #6400 Supported `login_hint` as additional sign-in parameter.
- #6445 Implemented well-known swagger endpoints.
- #6451 Split `translate` command from `@logto/cli` to make the CLI small and simple.
- #6451 Added a dedicated `@logto/translate` package to translate i18n phrases in Console and Experience.
- #6523 Supported entering name while creating a user in Console.
- #6525 Added new query parameter `parse_error` and explicitly set it to `false` to return raw OIDC error message only.
- #6532 Added `denyAccess()` api to custom JWT context in order to conditionally block user token request.
- #6534 Supported nested attribute profile mapping in OAuth connector (credit @devtekve).
- #6543 Added `hasPassword` property to `/users` Management API response.
- #6544 Added user password information in user details. Admin can easily check if a user has set password or not, and can then perform set/reset action accordingly.
- #6567 Added new management API to check password against current password policy settings.

## Fixes

- #6425 Prevented potential error caused by cached identifiers across Experience pages.
- #6441 Fixed the issue that blocked users from creating Custom JWT.
- #6481 Fixed wecom connector platform. Use `Universal` instead of `null`.
- #6536 Set `lang` attribute correctly to `<html>` in Console, preventing unexpected browser translator prompt.
- #6560 Allowed linking new social identity to an existing user account when registration is disabled.
- #6576 Prevented user registration and profile fulfillment with SSO-only email domains.