mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-23 16:02:14 +00:00
chore: replace given and family names with first and last names (#11343)
# Which Problems Are Solved Naming inconsistency w.r.t the usage of Given Name / Family Name instead of First Name / Last Name # How the Problems Are Solved * By replacing given and family names with first and last names in UI and docs (not in the API definitions) * Updated translations in multiple languages to first and last names instead of given/family names # Additional Changes * Add `internal/**/*.yaml` path to the nx sources input to rebuild the binary upon changes to these files * Fix failing unit tests in `user_notifier_legacy_test.go` by updating `Passwordless` with `Passkey` # Additional Context - Closes https://github.com/zitadel/zitadel/issues/11308 --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Wim Van Laer <[email protected]>
This commit is contained in:
co-authored by
Copilot
Wim Van Laer
parent
2797a0bb03
commit
be9d2a53eb
@@ -9,7 +9,8 @@
|
||||
"{workspaceRoot}/backend/**/*.go",
|
||||
"{workspaceRoot}/proto/**/*.go",
|
||||
"{workspaceRoot}/pkg/**/*.go",
|
||||
"{workspaceRoot}/main.go"
|
||||
"{workspaceRoot}/main.go",
|
||||
"{workspaceRoot}/internal/**/*.yaml"
|
||||
],
|
||||
"runtime": [
|
||||
"sources",
|
||||
|
||||
@@ -2337,7 +2337,7 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Атрибут за показвано име",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Имейл атрибут",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Атрибут за проверен имейл",
|
||||
"FIRSTNAMEATTRIBUTE": "Атрибут собствено име",
|
||||
"FIRSTNAMEATTRIBUTE": "Атрибут име",
|
||||
"LASTNAMEATTRIBUTE": "Атрибут фамилия",
|
||||
"NICKNAMEATTRIBUTE": "Атрибут псевдоним",
|
||||
"PHONEATTRIBUTE": "Атрибут на телефона",
|
||||
|
||||
@@ -2325,8 +2325,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Displayname attribute",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Email attribute",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Email verified attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Firstname attribute",
|
||||
"LASTNAMEATTRIBUTE": "Lastname attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Vorname-Attribut",
|
||||
"LASTNAMEATTRIBUTE": "Nachname-Attribut",
|
||||
"NICKNAMEATTRIBUTE": "Nickname attribute",
|
||||
"PHONEATTRIBUTE": "Phone attribute",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Phone verified attribute",
|
||||
|
||||
@@ -971,8 +971,8 @@
|
||||
"CHANGEUSERNAME": "modify",
|
||||
"CHANGEUSERNAME_TITLE": "Change username",
|
||||
"CHANGEUSERNAME_DESC": "Enter the new name in the field below.",
|
||||
"FIRSTNAME": "Given Name",
|
||||
"LASTNAME": "Family Name",
|
||||
"FIRSTNAME": "First Name",
|
||||
"LASTNAME": "Last Name",
|
||||
"NICKNAME": "Nickname",
|
||||
"DISPLAYNAME": "Display Name",
|
||||
"PREFERREDLOGINNAME": "Preferred login name",
|
||||
@@ -1864,8 +1864,8 @@
|
||||
"IU": "Invite User"
|
||||
},
|
||||
"CHIPS": {
|
||||
"firstname": "Given name",
|
||||
"lastname": "Family name",
|
||||
"firstname": "First name",
|
||||
"lastname": "Last name",
|
||||
"code": "Code",
|
||||
"preferredLoginName": "Preferred Login Name",
|
||||
"displayName": "Displayname",
|
||||
@@ -2336,8 +2336,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Displayname attribute",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Email attribute",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Email verified attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Given name attribute",
|
||||
"LASTNAMEATTRIBUTE": "Family name attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "First name attribute",
|
||||
"LASTNAMEATTRIBUTE": "Last name attribute",
|
||||
"NICKNAMEATTRIBUTE": "Nickname attribute",
|
||||
"PHONEATTRIBUTE": "Phone attribute",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Phone verified attribute",
|
||||
|
||||
@@ -2325,8 +2325,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Atributo Displayname",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Atributo Email",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Atributo Email verificado",
|
||||
"FIRSTNAMEATTRIBUTE": "Atributo Firstname",
|
||||
"LASTNAMEATTRIBUTE": "Atributo Lastname",
|
||||
"FIRSTNAMEATTRIBUTE": "Atributo del nombre",
|
||||
"LASTNAMEATTRIBUTE": "Atributo del apellido",
|
||||
"NICKNAMEATTRIBUTE": "Atributo Nickname",
|
||||
"PHONEATTRIBUTE": "Atributo Phone",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Atributo phone verificado",
|
||||
|
||||
@@ -971,7 +971,7 @@
|
||||
"CHANGEUSERNAME_TITLE": "Modifier le nom d'utilisateur",
|
||||
"CHANGEUSERNAME_DESC": "Entrez le nouveau nom dans le champ ci-dessous.",
|
||||
"FIRSTNAME": "Prénom",
|
||||
"LASTNAME": "Nom de famille",
|
||||
"LASTNAME": "Nom",
|
||||
"NICKNAME": "Surnom",
|
||||
"DISPLAYNAME": "Nom d'affichage",
|
||||
"PREFERREDLOGINNAME": "Nom de connexion préféré",
|
||||
@@ -1861,7 +1861,7 @@
|
||||
},
|
||||
"CHIPS": {
|
||||
"firstname": "Prénom",
|
||||
"lastname": "Nom de famille",
|
||||
"lastname": "Nom",
|
||||
"code": "Code",
|
||||
"preferredLoginName": "Nom de connexion préféré",
|
||||
"displayName": "Nom d'affichage",
|
||||
@@ -2329,8 +2329,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Displayname attribute",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "E-mail attribute",
|
||||
"EMAILVERIFIEDATTRIBUTE": "E-mail verified attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Firstname attribute",
|
||||
"LASTNAMEATTRIBUTE": "Lastname attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Attribut du prénom",
|
||||
"LASTNAMEATTRIBUTE": "Attribut du nom",
|
||||
"NICKNAMEATTRIBUTE": "Nickname attribute",
|
||||
"PHONEATTRIBUTE": "Phone attribute",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Phone verified attribute",
|
||||
|
||||
@@ -970,8 +970,8 @@
|
||||
"CHANGEUSERNAME": "memodifikasi",
|
||||
"CHANGEUSERNAME_TITLE": "Ubah nama pengguna",
|
||||
"CHANGEUSERNAME_DESC": "Masukkan nama baru pada kolom di bawah.",
|
||||
"FIRSTNAME": "Nama Pemberian",
|
||||
"LASTNAME": "Nama keluarga",
|
||||
"FIRSTNAME": "Nama depan",
|
||||
"LASTNAME": "Nama belakang",
|
||||
"NICKNAME": "Nama panggilan",
|
||||
"DISPLAYNAME": "Nama Tampilan",
|
||||
"PREFERREDLOGINNAME": "Nama login pilihan",
|
||||
@@ -1858,8 +1858,8 @@
|
||||
"IU": "Mengundang Pengguna"
|
||||
},
|
||||
"CHIPS": {
|
||||
"firstname": "Nama yang diberikan",
|
||||
"lastname": "Nama keluarga",
|
||||
"firstname": "Nama depan",
|
||||
"lastname": "Nama belakang",
|
||||
"code": "Kode",
|
||||
"preferredLoginName": "Nama Login Pilihan",
|
||||
"displayName": "Nama tampilan",
|
||||
@@ -2330,8 +2330,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Atribut nama tampilan",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Atribut email",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Atribut terverifikasi email",
|
||||
"FIRSTNAMEATTRIBUTE": "Atribut nama yang diberikan",
|
||||
"LASTNAMEATTRIBUTE": "Atribut nama keluarga",
|
||||
"FIRSTNAMEATTRIBUTE": "Atribut nama depan",
|
||||
"LASTNAMEATTRIBUTE": "Atribut nama belakang",
|
||||
"NICKNAMEATTRIBUTE": "Atribut nama panggilan",
|
||||
"PHONEATTRIBUTE": "Atribut telepon",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Atribut terverifikasi telepon",
|
||||
|
||||
@@ -2329,8 +2329,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Displayname attribute",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Email attribute",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Email verified attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Firstname attribute",
|
||||
"LASTNAMEATTRIBUTE": "Lastname attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Attributi del nome",
|
||||
"LASTNAMEATTRIBUTE": "Attributi del cognome",
|
||||
"NICKNAMEATTRIBUTE": "Nickname attribute",
|
||||
"PHONEATTRIBUTE": "Phone attribute",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Phone verified attribute",
|
||||
|
||||
@@ -2332,8 +2332,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Displayname attribute",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Email attribute",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Email verified attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Firstname attribute",
|
||||
"LASTNAMEATTRIBUTE": "Lastname attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "名の属性",
|
||||
"LASTNAMEATTRIBUTE": "姓の属性",
|
||||
"NICKNAMEATTRIBUTE": "Nickname attribute",
|
||||
"PHONEATTRIBUTE": "Phone attribute",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Phone verified attribute",
|
||||
|
||||
@@ -970,7 +970,7 @@
|
||||
"CHANGEUSERNAME": "промени",
|
||||
"CHANGEUSERNAME_TITLE": "Промени корисничко име",
|
||||
"CHANGEUSERNAME_DESC": "Внесете го новото име во полето подолу.",
|
||||
"FIRSTNAME": "Име",
|
||||
"FIRSTNAME": "Прво име",
|
||||
"LASTNAME": "Презиме",
|
||||
"NICKNAME": "Прекар",
|
||||
"DISPLAYNAME": "Име за приказ",
|
||||
@@ -1861,7 +1861,7 @@
|
||||
"IU": "Покана за корисникот"
|
||||
},
|
||||
"CHIPS": {
|
||||
"firstname": "Име",
|
||||
"firstname": "Прво име",
|
||||
"lastname": "Презиме",
|
||||
"code": "Код",
|
||||
"preferredLoginName": "Посакувано корисничко име",
|
||||
@@ -2327,7 +2327,7 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Атрибут за име за приказ",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Атрибут за е-пошта",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Атрибут за верифицирана е-пошта",
|
||||
"FIRSTNAMEATTRIBUTE": "Атрибут за име",
|
||||
"FIRSTNAMEATTRIBUTE": "Атрибут за прво име",
|
||||
"LASTNAMEATTRIBUTE": "Атрибут за презиме",
|
||||
"NICKNAMEATTRIBUTE": "Атрибут за прекар",
|
||||
"PHONEATTRIBUTE": "Атрибут за телефонски број",
|
||||
|
||||
@@ -2328,8 +2328,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Displayname attribute",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Email attribute",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Email verified attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Firstname attribute",
|
||||
"LASTNAMEATTRIBUTE": "Lastname attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Atrybut imienia",
|
||||
"LASTNAMEATTRIBUTE": "Atrybut nazwiska",
|
||||
"NICKNAMEATTRIBUTE": "Nickname attribute",
|
||||
"PHONEATTRIBUTE": "Phone attribute",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Phone verified attribute",
|
||||
|
||||
@@ -2335,8 +2335,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Görünen ad özniteliği",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "E-posta özniteliği",
|
||||
"EMAILVERIFIEDATTRIBUTE": "E-posta doğrulandı özniteliği",
|
||||
"FIRSTNAMEATTRIBUTE": "Ad özniteliği",
|
||||
"LASTNAMEATTRIBUTE": "Soyad özniteliği",
|
||||
"FIRSTNAMEATTRIBUTE": "Ad özelliği",
|
||||
"LASTNAMEATTRIBUTE": "Soyad özelliği",
|
||||
"NICKNAMEATTRIBUTE": "Takma ad özniteliği",
|
||||
"PHONEATTRIBUTE": "Telefon özniteliği",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Telefon doğrulandı özniteliği",
|
||||
|
||||
@@ -971,7 +971,7 @@
|
||||
"CHANGEUSERNAME_TITLE": "修改用户名称",
|
||||
"CHANGEUSERNAME_DESC": "在下面的字段中输入新名称。",
|
||||
"FIRSTNAME": "名字",
|
||||
"LASTNAME": "姓",
|
||||
"LASTNAME": "姓氏",
|
||||
"NICKNAME": "昵称",
|
||||
"DISPLAYNAME": "展示名称",
|
||||
"PREFERREDLOGINNAME": "首选登录名",
|
||||
@@ -1863,8 +1863,8 @@
|
||||
"IU": "邀请用户"
|
||||
},
|
||||
"CHIPS": {
|
||||
"firstname": "名",
|
||||
"lastname": "姓",
|
||||
"firstname": "名字",
|
||||
"lastname": "姓氏",
|
||||
"code": "Code",
|
||||
"preferredLoginName": "首选登录名",
|
||||
"displayName": "展示名称",
|
||||
@@ -2340,8 +2340,8 @@
|
||||
"DISPLAYNAMEATTRIBUTE": "Displayname attribute",
|
||||
"EMAILATTRIBUTEATTRIBUTE": "Email attribute",
|
||||
"EMAILVERIFIEDATTRIBUTE": "Email verified attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "Firstname attribute",
|
||||
"LASTNAMEATTRIBUTE": "Lastname attribute",
|
||||
"FIRSTNAMEATTRIBUTE": "姓名属性",
|
||||
"LASTNAMEATTRIBUTE": "姓氏属性",
|
||||
"NICKNAMEATTRIBUTE": "Nickname attribute",
|
||||
"PHONEATTRIBUTE": "Phone attribute",
|
||||
"PHONEVERIFIEDATTRIBUTE": "Phone verified attribute",
|
||||
|
||||
@@ -44,9 +44,9 @@ The first parameter contains the following fields
|
||||
- `appendMetadata(string, Any)`
|
||||
The first parameter represents the key and the second a value which will be stored
|
||||
- `setFirstName(string)`
|
||||
Sets the given name
|
||||
Sets the first name
|
||||
- `setLastName(string)`
|
||||
Sets the family name
|
||||
Sets the last name
|
||||
- `setNickName(string)`
|
||||
Sets the nickname
|
||||
- `setDisplayName(string)`
|
||||
@@ -87,9 +87,9 @@ The trigger is represented by the following Ids in the API: `TRIGGER_TYPE_PRE_CR
|
||||
- `metadata`
|
||||
Array of [*metadata*](./objects#metadata-with-value-as-bytes). This function is deprecated, please use `api.v1.user.appendMetadata`
|
||||
- `setFirstName(string)`
|
||||
Sets the given name
|
||||
Sets the first name
|
||||
- `setLastName(string)`
|
||||
Sets the family name
|
||||
Sets the last name
|
||||
- `setNickName(string)`
|
||||
Sets the nick name
|
||||
- `setDisplayName(string)`
|
||||
|
||||
@@ -57,9 +57,9 @@ Please check below the matrix for an overview where which scope is asserted.
|
||||
| email_verified | `true` | Boolean if the email was verified by ZITADEL |
|
||||
| events | `{ "http://schemas.openid.net/event/backchannel-logout": {} }` | Security Events such as Back-Channel Logout |
|
||||
| exp | `1311281970` | Time the token expires (as unix time) |
|
||||
| family_name | `Runner` | The subjects family name |
|
||||
| family_name | `Runner` | Last name of the subject |
|
||||
| gender | `other` | Gender of the subject |
|
||||
| given_name | `Road` | Given name of the subject |
|
||||
| given_name | `Road` | First name of the subject |
|
||||
| iat | `1311280970` | Time of the token was issued at (as unix time) |
|
||||
| iss | `$CUSTOM-DOMAIN` | Issuing domain of a token |
|
||||
| jti | `69234237813329048` | Unique id of the token |
|
||||
|
||||
@@ -53,7 +53,7 @@ To allow ZITADEL to get the information from the authenticating user you have to
|
||||
|
||||
1. Click on Token configuration in the side menu
|
||||
2. Click on "+ Add optional claim"
|
||||
3. Add email, family_name, given_name and preferred_username to the id token
|
||||
3. Add email, family_name (last name of the user), given_name (first name of the user) and preferred_username to the id token
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -129,8 +129,8 @@ To provision users correctly in ZITADEL, configure which attributes OneLogin sen
|
||||
3. Add or edit parameters so that at least the following are sent and **included in the SAML assertion**:
|
||||
|
||||
- `email` → mapped to the user’s email address (for example **Email**).
|
||||
- `firstName` → mapped to the user’s given name (for example **First Name**).
|
||||
- `lastName` → mapped to the user’s family name (for example **Last Name**).
|
||||
- `firstName` → mapped to the user’s first name (for example **First Name**).
|
||||
- `lastName` → mapped to the user’s last name (for example **Last Name**).
|
||||
|
||||
4. Ensure the **NameID** is set to a unique identifier (commonly the user’s email address), if your OneLogin connector requires it.
|
||||
5. Save your changes.
|
||||
|
||||
@@ -39,7 +39,7 @@ After the ZITADEL SAML provider exists, we’ll return to PingFederate and finis
|
||||
2. Make sure **SAML 2.0** Browser SSO is enabled for this connection.
|
||||
3. Proceed to **Assertion Creation**:
|
||||
- Keep the default **NameID** attribute.
|
||||
- Add additional attributes you want to send to ZITADEL (you need at least `email`, `given_name`, `family_name`, and you can send optional attributes like `display_name`).
|
||||
- Add additional attributes you want to send to ZITADEL (you need at least `email`, `given_name` (first name of the user), `family_name` (last name of the user), and you can send optional attributes like `display_name`).
|
||||
4. In **Attribute Mapping**, map the contract attributes to your directory/user store fields.
|
||||
|
||||
### Export PingFederate IdP metadata
|
||||
|
||||
@@ -87,7 +87,7 @@ urn:zitadel:iam:org:id:{id}
|
||||
```
|
||||
|
||||
If the user chooses to register a local account, the register form will be shown.
|
||||
All the mandatory fields like given name, family name, e-mail and password have to be filled.
|
||||
All the mandatory fields like first name, last name, e-mail and password have to be filled.
|
||||
You can only setup authentication with the built-in form.
|
||||
|
||||
<img
|
||||
|
||||
@@ -10,8 +10,8 @@ By defining multiple schemas, you can even differentiate between different perso
|
||||
and restrictions, resp. requirements for them to authenticate.
|
||||
|
||||
For example, you could have separate schemas for your employees and your customers. While you might want to make sure that
|
||||
certain data like given name and family name are required for employees, they might be optional for the latter.
|
||||
Or you might want to disable username password authentication for your admins and only allow phishing resistant methods like passkeys,
|
||||
certain data, such as the first name and the last name, are required for employees, they might be optional for the latter.
|
||||
Or you might want to disable username-password authentication for your admins and only allow phishing-resistant methods (e.g., passkeys),
|
||||
but still allow it for your customers.
|
||||
|
||||
:::info
|
||||
@@ -23,11 +23,11 @@ Do not use it for production yet. To test it out, you need to enable the `UserSc
|
||||
|
||||
## Create your first schema
|
||||
|
||||
Let's create the first very simple schema `user`, which defines a `givenName` and `familyName` for a user and allows them to
|
||||
authenticate with username and password.
|
||||
Let's create your first schema, `user`, which defines a `givenName` (first name) and `familyName` (last name) for a user and allows them to
|
||||
authenticate with their username and password.
|
||||
|
||||
We can do so by calling the [create user schema endpoint](/docs/apis/resources/user_schema_service_v3/user-schema-service-create-user-schema)
|
||||
with the following data. Make sure to provide an access_token with an IAM_OWNER role.
|
||||
with the following data. Make sure to provide an `access_token` with an `IAM_OWNER` role.
|
||||
|
||||
```bash
|
||||
curl -X POST "https://$CUSTOM-DOMAIN/v3alpha/user_schemas" \
|
||||
@@ -67,18 +67,18 @@ This will return something similar to:
|
||||
}
|
||||
```
|
||||
|
||||
So you successfully create a schema and could use that to manage your users based on that.
|
||||
But let's first checkout some possibilities ZITADEL offers.
|
||||
You have now successfully created a schema, which can be used to manage your users.
|
||||
But let's first check out some possibilities ZITADEL offers.
|
||||
|
||||
## Assign Permissions
|
||||
|
||||
In the first step we've created a very simple `user` schema with only `givenName` and `familyName`.
|
||||
This allows any user with the permission to edit the user's data to change these values.
|
||||
Let's now update the schema and add some more properties and restrict who's able to retrieve and change data.
|
||||
In the first step we created a very simple `user` schema with only `givenName` (first name) and `familyName` (last name).
|
||||
This allows any user with permissions to edit the user's data to change these values.
|
||||
Let's now update the schema to add some more properties and restrict who's able to retrieve and change data.
|
||||
|
||||
By setting `urn:zitadel:schema:permission` to fields, we can define the permissions for that field of different user roles / context.
|
||||
|
||||
For example by adding it to the `givenName` and `familyName` we can keep the state from before, where any `owner` (e.g. ORG_OWNER)
|
||||
For example, by adding it to the `givenName` and `familyName` we can keep the state from before, where any `owner` (e.g. ORG_OWNER)
|
||||
as well as the user themselves (`self`) are allowed to read (`r`) and write (`w`) the data.
|
||||
|
||||
Let's now assume our service provides some profile information of the user on a dedicated page.
|
||||
@@ -136,9 +136,9 @@ curl -X PUT "https://$CUSTOM-DOMAIN/v3alpha/user_schemas/$SCHEMA_ID" \
|
||||
|
||||
## Retrieve the Existing Schemas
|
||||
|
||||
To check the state of existing schemas you can simply [list them](/apis/resources/user_schema_service_v3/user-schema-service-list-user-schemas).
|
||||
To check the state of existing schemas, you can simply [list them](/apis/resources/user_schema_service_v3/user-schema-service-list-user-schemas).
|
||||
In this case we will query for the one with state `active`. Check out the api documentation for detailed information on possible filters.
|
||||
The API also allows to retrieve a single [schema by ID](/apis/resources/user_schema_service_v3/user-schema-service-get-user-schema-by-id).
|
||||
The API also allows retrieving a single [schema by ID](/apis/resources/user_schema_service_v3/user-schema-service-get-user-schema-by-id).
|
||||
|
||||
```bash
|
||||
curl -X POST "https://$CUSTOM-DOMAIN/v3alpha/user_schemas/search" \
|
||||
@@ -162,7 +162,7 @@ curl -X POST "https://$CUSTOM-DOMAIN/v3alpha/user_schemas/search" \
|
||||
}'
|
||||
```
|
||||
|
||||
If you've followed this guide, it should list you a singe schema:
|
||||
If you've followed this guide, it should list you a single schema:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -226,6 +226,5 @@ If you've followed this guide, it should list you a singe schema:
|
||||
|
||||
### Revision
|
||||
|
||||
Note the `revision` property, which is currently `2`. Each update to the `schema`-property will increase
|
||||
it by `1`. The revision will later be reflected on the managed users to state based on which revision of the schema
|
||||
they were last updated on.
|
||||
Note the `revision` property, which is currently `2`. Each update to the `schema`-property will increment
|
||||
it by `1`. This revision number will be stored on managed users to indicate which schema version was used for their last update.
|
||||
@@ -8,7 +8,7 @@
|
||||
<td><strong>Basic data</strong></td>
|
||||
<td>
|
||||
<ul>
|
||||
<li>Family and given name</li>
|
||||
<li>First and last names</li>
|
||||
<li>Email addresses</li>
|
||||
<li>User name</li>
|
||||
</ul>
|
||||
|
||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 121 KiB |
@@ -465,7 +465,7 @@ func TestBulk(t *testing.T) {
|
||||
"urn:ietf:params:scim:api:zitadel:messages:2.0:ErrorDetail",
|
||||
},
|
||||
ScimType: "invalidValue",
|
||||
Detail: "Given name in profile is empty",
|
||||
Detail: "First name in profile is empty",
|
||||
Status: "400",
|
||||
ZitadelDetail: &scim.ZitadelErrorDetail{
|
||||
ID: "USER-UCej2",
|
||||
|
||||
@@ -431,7 +431,7 @@ Errors:
|
||||
NotFound: Профилът не е намерен
|
||||
NotChanged: Профилът не е променен
|
||||
Empty: Профилът е празен
|
||||
FirstNameEmpty: Първото име в профила е празно
|
||||
FirstNameEmpty: Името в профила е празно
|
||||
LastNameEmpty: Фамилията в профила е празна
|
||||
IDMissing: Липсва ID на потребителския профил
|
||||
Email:
|
||||
|
||||
@@ -244,8 +244,8 @@ RegistrationUser:
|
||||
DescriptionOrgRegister: Enter your Userdata.
|
||||
EmailLabel: E-Mail
|
||||
UsernameLabel: Username
|
||||
FirstnameLabel: Given name
|
||||
LastnameLabel: Family name
|
||||
FirstnameLabel: First name
|
||||
LastnameLabel: Last name
|
||||
LanguageLabel: Language
|
||||
German: Deutsch
|
||||
English: English
|
||||
@@ -288,8 +288,8 @@ ExternalRegistrationUserOverview:
|
||||
Description: We have taken your user details from the selected provider. You may now change or complete them.
|
||||
EmailLabel: E-Mail
|
||||
UsernameLabel: Username
|
||||
FirstnameLabel: Given name
|
||||
LastnameLabel: Family name
|
||||
FirstnameLabel: First name
|
||||
LastnameLabel: Last name
|
||||
NicknameLabel: Nickname
|
||||
PhoneLabel: Phone number
|
||||
LanguageLabel: Language
|
||||
@@ -329,8 +329,8 @@ RegistrationOrg:
|
||||
OrgNameLabel: Organization name
|
||||
EmailLabel: E-Mail
|
||||
UsernameLabel: Username
|
||||
FirstnameLabel: Given name
|
||||
LastnameLabel: Family name
|
||||
FirstnameLabel: First name
|
||||
LastnameLabel: Last name
|
||||
PasswordLabel: Password
|
||||
PasswordConfirmLabel: Password confirmation
|
||||
TosAndPrivacyLabel: Terms and conditions
|
||||
@@ -445,8 +445,8 @@ Errors:
|
||||
NotFound: Profile not found
|
||||
NotChanged: Profile not changed
|
||||
Empty: Profile is empty
|
||||
FirstNameEmpty: Given name in profile is empty
|
||||
LastNameEmpty: Family name in profile is empty
|
||||
FirstNameEmpty: First name in profile is empty
|
||||
LastNameEmpty: Last name in profile is empty
|
||||
IDMissing: Profile ID is missing
|
||||
Email:
|
||||
NotFound: Email not found
|
||||
|
||||
@@ -428,8 +428,8 @@ Errors:
|
||||
NotFound: Perfil no encontrado
|
||||
NotChanged: El perfil no ha cambiado
|
||||
Empty: El perfil está vacío
|
||||
FirstNameEmpty: El nombre del perfil está vacío
|
||||
LastNameEmpty: Los apellidos del perfil están vacíos
|
||||
FirstNameEmpty: El nombre en el perfil está vacío
|
||||
LastNameEmpty: El apellido en el perfil está vacío
|
||||
IDMissing: Falta el ID del perfil
|
||||
Email:
|
||||
NotFound: Email no encontrado
|
||||
|
||||
@@ -405,8 +405,8 @@ Errors:
|
||||
NotFound: Profil nem található
|
||||
NotChanged: Profil nem változott
|
||||
Empty: Profil üres
|
||||
FirstNameEmpty: A profilban a keresztnév üres
|
||||
LastNameEmpty: A profilban a vezetéknév üres
|
||||
FirstNameEmpty: A profilban az első név mező üres
|
||||
LastNameEmpty: A profilban a vezetéknév mező üres
|
||||
IDMissing: Hiányzik a profil azonosító
|
||||
Email:
|
||||
NotFound: Email nem található
|
||||
|
||||
@@ -406,7 +406,7 @@ Errors:
|
||||
NotChanged: Profil tidak berubah
|
||||
Empty: Profil kosong
|
||||
FirstNameEmpty: Nama depan di profil kosong
|
||||
LastNameEmpty: Nama keluarga di profil kosong
|
||||
LastNameEmpty: Nama belakang di profil kosong
|
||||
IDMissing: ID Profil tidak ada
|
||||
Email:
|
||||
NotFound: Email tidak ditemukan
|
||||
|
||||
@@ -446,8 +446,8 @@ Errors:
|
||||
NotFound: プロファイルが見つかりません
|
||||
NotChanged: プロファイルが変更されていません
|
||||
Empty: プロファイルが空です
|
||||
FirstNameEmpty: 名前が空です
|
||||
LastNameEmpty: 姓が空です
|
||||
FirstNameEmpty: プロフィールでは名欄が空白です。
|
||||
LastNameEmpty: プロフィールでは姓欄が空白です。
|
||||
IDMissing: プロファイルIDが不足しています
|
||||
Email:
|
||||
NotFound: メールアドレスが見つかりません
|
||||
|
||||
@@ -445,8 +445,8 @@ Errors:
|
||||
NotFound: 프로필을 찾을 수 없습니다
|
||||
NotChanged: 프로필이 변경되지 않았습니다
|
||||
Empty: 프로필이 비어 있습니다
|
||||
FirstNameEmpty: 프로필에 이름이 비어 있습니다
|
||||
LastNameEmpty: 프로필에 성이 비어 있습니다
|
||||
FirstNameEmpty: 프로필의 이름 필드가 비어 있습니다
|
||||
LastNameEmpty: 프로필의 성 필드가 비어 있습니다
|
||||
IDMissing: 프로필 ID가 없습니다
|
||||
Email:
|
||||
NotFound: 이메일을 찾을 수 없습니다
|
||||
|
||||
@@ -446,8 +446,8 @@ Errors:
|
||||
NotFound: Профилот не е пронајден
|
||||
NotChanged: Профилот не е променет
|
||||
Empty: Профилот е празен
|
||||
FirstNameEmpty: Името во профилот е празно
|
||||
LastNameEmpty: Презимето во профилот е празно
|
||||
FirstNameEmpty: Полето за име на профилот е празно
|
||||
LastNameEmpty: Полето за презиме на профилот е празно
|
||||
IDMissing: ID на профил е празно
|
||||
Email:
|
||||
NotFound: Е-поштата не е пронајдена
|
||||
|
||||
@@ -446,8 +446,8 @@ Errors:
|
||||
NotFound: Профиль не найден
|
||||
NotChanged: Профиль не изменен
|
||||
Empty: Профиль пуст
|
||||
FirstNameEmpty: Поле имени пусто
|
||||
LastNameEmpty: Поле фамилии пусто
|
||||
FirstNameEmpty: Имя в профиле пустое
|
||||
LastNameEmpty: Фамилия в профиле пустая
|
||||
IDMissing: Отсутствует идентификатор профиля
|
||||
Email:
|
||||
NotFound: Электронная почта не найдена
|
||||
|
||||
@@ -445,8 +445,8 @@ Errors:
|
||||
NotFound: Profilen finns inte
|
||||
NotChanged: Profilen har inte ändrats
|
||||
Empty: Profilen saknar innehåll
|
||||
FirstNameEmpty: Förnamnet i profilen är tomt
|
||||
LastNameEmpty: Efternamnet i profilen är tomt
|
||||
FirstNameEmpty: Förnamn i profilen är tomt
|
||||
LastNameEmpty: Efternamn i profilen är tomt
|
||||
IDMissing: Profile ID saknas
|
||||
E-Post:
|
||||
NotFound: E-Post finns inte
|
||||
|
||||
@@ -445,8 +445,8 @@ Errors:
|
||||
NotFound: Profil bulunamadı
|
||||
NotChanged: Profil değişmedi
|
||||
Empty: Profil boş
|
||||
FirstNameEmpty: Profildeki ad boş
|
||||
LastNameEmpty: Profildeki soyadı boş
|
||||
FirstNameEmpty: Profildeki ad alanı boş
|
||||
LastNameEmpty: Profildeki soyad alanı boş
|
||||
IDMissing: Profil ID'si eksik
|
||||
Email:
|
||||
NotFound: E-posta bulunamadı
|
||||
|
||||
@@ -445,8 +445,8 @@ Errors:
|
||||
NotFound: 未找到个人资料
|
||||
NotChanged: 个人资料未更改
|
||||
Empty: 简介是空的
|
||||
FirstNameEmpty: 简介中的名字是空的
|
||||
LastNameEmpty: 简介中的姓氏是空的
|
||||
FirstNameEmpty: 个人资料中的名字为空
|
||||
LastNameEmpty: 个人资料中的姓氏为空
|
||||
IDMissing: 简介ID丢失
|
||||
Email:
|
||||
NotFound: 电子邮件没有找到
|
||||
|
||||
@@ -1091,7 +1091,7 @@ func Test_userNotifierLegacy_reduceDomainClaimed(t *testing.T) {
|
||||
}
|
||||
|
||||
func Test_userNotifierLegacy_reducePasswordlessCodeRequested(t *testing.T) {
|
||||
expectMailSubject := "Add Passwordless Login"
|
||||
expectMailSubject := "Add Passkey Login"
|
||||
tests := []struct {
|
||||
name string
|
||||
test func(*gomock.Controller, *mock.MockQueries, *mock.MockCommands) (fields, args, wantLegacy)
|
||||
|
||||
@@ -101,8 +101,8 @@ Errors:
|
||||
NotFound: Profile not found
|
||||
NotChanged: Profile not changed
|
||||
Empty: Profile is empty
|
||||
FirstNameEmpty: Given name in profile is empty
|
||||
LastNameEmpty: Family name in profile is empty
|
||||
FirstNameEmpty: First name in profile is empty
|
||||
LastNameEmpty: Last name in profile is empty
|
||||
IDMissing: Profile ID is missing
|
||||
Email:
|
||||
NotFound: Email not found
|
||||
|
||||
@@ -364,7 +364,7 @@ service AuthService {
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags: "User Profile";
|
||||
summary: "Get My Profile";
|
||||
description: "Returns the profile information of the authenticated user, this includes given name, family name, etc."
|
||||
description: "Returns the profile information of the authenticated user, this includes first name, last name, etc."
|
||||
};
|
||||
}
|
||||
|
||||
@@ -381,7 +381,7 @@ service AuthService {
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
||||
tags: "User Profile";
|
||||
summary: "Update My Profile";
|
||||
description: "Change the profile information of the authenticated user. This includes information like given name, family name, language, etc."
|
||||
description: "Change the profile information of the authenticated user. This includes information like first name, last name, language, etc."
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ service InstanceService {
|
||||
//
|
||||
// Deprecated: please move to the corresponding endpoint under instance service v2. This endpoint will be removed with the next major version of ZITADEL.
|
||||
//
|
||||
// Updates instance in context with the given name.
|
||||
// Updates instance in context with the provided name.
|
||||
//
|
||||
// The instance_id in the input message will be used in the future.
|
||||
//
|
||||
|
||||
@@ -47,7 +47,7 @@ message User {
|
||||
string preferred_login_name = 2;
|
||||
|
||||
// DisplayName is the public display name of the user.
|
||||
// By default it's the user's given name and family name, their username or their email address.
|
||||
// By default it's the user's first name and last name, their username or their email address.
|
||||
string display_name = 3;
|
||||
|
||||
// The organization the user belong to.
|
||||
|
||||
@@ -37,7 +37,7 @@ message User {
|
||||
// PreferredLoginName is the preferred login name of the user. This value is unique across the whole instance.
|
||||
string preferred_login_name = 2;
|
||||
// DisplayName is the public display name of the user.
|
||||
// By default it's the user's given name and family name, their username or their email address.
|
||||
// By default it's the user's first name and last name, their username or their email address.
|
||||
string display_name = 3;
|
||||
// The organization the user belong to.
|
||||
string organization_id = 4;
|
||||
|
||||
@@ -2285,7 +2285,7 @@ service ManagementService {
|
||||
//
|
||||
// Deprecated: use [organization service v2 CreateOrganization](apis/resources/org_service_v2/zitadel-org-v-2-organization-service-add-organization.api.mdx) instead
|
||||
//
|
||||
// Create a new organization. Based on the given name a domain will be generated to be able to identify users within an organization.
|
||||
// Create a new organization. Based on the provided name a domain will be generated to be able to identify users within an organization.
|
||||
rpc AddOrg(AddOrgRequest) returns (AddOrgResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/orgs"
|
||||
|
||||
@@ -20,6 +20,7 @@ enum Gender {
|
||||
}
|
||||
|
||||
message SetHumanProfile {
|
||||
// The given name is the first name of the user
|
||||
string given_name = 1 [
|
||||
(validate.rules).string = {min_len: 1, max_len: 200},
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
@@ -29,6 +30,7 @@ message SetHumanProfile {
|
||||
example: "\"Minnie\"";
|
||||
}
|
||||
];
|
||||
// The family name is the last name of the user
|
||||
string family_name = 2 [
|
||||
(validate.rules).string = {min_len: 1, max_len: 200},
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
@@ -67,6 +69,7 @@ message SetHumanProfile {
|
||||
}
|
||||
|
||||
message HumanProfile {
|
||||
// The given name is the first name of the user
|
||||
string given_name = 1 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
min_length: 1;
|
||||
@@ -74,6 +77,7 @@ message HumanProfile {
|
||||
example: "\"Minnie\"";
|
||||
}
|
||||
];
|
||||
// The family name is the last name of the user
|
||||
string family_name = 2 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
min_length: 1;
|
||||
|
||||
@@ -20,6 +20,7 @@ enum Gender {
|
||||
}
|
||||
|
||||
message SetHumanProfile {
|
||||
// The given name is the first name of the user
|
||||
string given_name = 1 [
|
||||
(validate.rules).string = {min_len: 1, max_len: 200},
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
@@ -29,6 +30,7 @@ message SetHumanProfile {
|
||||
example: "\"Minnie\"";
|
||||
}
|
||||
];
|
||||
// The family name is the last name of the user
|
||||
string family_name = 2 [
|
||||
(validate.rules).string = {min_len: 1, max_len: 200},
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
@@ -67,6 +69,7 @@ message SetHumanProfile {
|
||||
}
|
||||
|
||||
message HumanProfile {
|
||||
// The given name is the first name of the user
|
||||
string given_name = 1 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
min_length: 1;
|
||||
@@ -74,6 +77,7 @@ message HumanProfile {
|
||||
example: "\"Minnie\"";
|
||||
}
|
||||
];
|
||||
// The family name is the last name of the user
|
||||
string family_name = 2 [
|
||||
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
||||
min_length: 1;
|
||||
|
||||
Reference in New Issue
Block a user