Skip to content

Create/modify custom field definitions

This document is automatically generated based on https://github.com/authing/authing-docs-factory based on the https://api-explorer.genauth.ai V3 API, and is consistent with the API parameters and return results. If this document description is incorrect, please refer to the V3 API.

Create/modify user, department or role custom field definitions. If the passed key does not exist, create it, and if it exists, update it.

Method name

ManagementClient.setCustomFields

Request parameters

NameTypeRequiredDefault valueDescriptionSample value
list<a SetCustomFieldDto[]Yes-Custom field list Array length limit: 50.
tenantIdstringNo-tenant ID642c1df417c2d8a80d744c1d

Sample code

ts
import { ManagementClient, Models } from "authing-node-sdk";

// Initialize ManagementClient
const managementClient = new ManagementClient({
  // Need to be replaced with your GenAuth Access Key ID
  accessKeyId: "GEN_AUTH_ACCESS_KEY_ID",
  // Need to be replaced with your GenAuth Access Key Secret
  accessKeySecret: "GEN_AUTH_ACCESS_KEY_SECRET",
  // If it is a private deployment customer, you need to set the GenAuth service domain name
  // host: 'https://api.your-authing-service.com'
});

(async () => {
  const result = await managementClient.setCustomFields({
    list: [
      {
        targetType: Models.CustomFieldDto.targetType.USER,
        key: "school",
        dataType: Models.CustomFieldDto.dataType.STRING,
        label: "School",
        description: "School",
        encrypted: false,
        isUnique: false,
        userEditable: false,
        visibleInAdminConsole: true,
        visibleInUserCenter: true,
        options: [
          {
            value: "hust",
            label: "Huazhong University of Science and Technology",
          },
        ],
        i18n: {
          label: {
            "zh-CN": {
              enabled: false,
              value: "Chinese",
            },
            "en-US": {
              enabled: false,
              value: "English",
            },
            "zh-TW": {
              enabled: false,
              value: "Traditional Chinese",
            },
            "ja-JP": {
              enabled: false,
              value: "Japanese",
            },
          },
        },
      },
    ],
  });

  console.log(JSON.stringify(result, null, 2));
})();

Request response

Type: CustomFieldListRespDto

NameTypeDescription
statusCodenumberBusiness status code, which can be used to determine whether the operation is successful. 200 means success.
messagestringDescription
apiCodenumberSegmented error code, which can be used to get the specific error type (successful request does not return). For a detailed list of error codes, see: API Code List
requestIdstringRequest ID. Returned when the request fails.
dataarrayresponse data

Sample result:

json
{
  "statusCode": 200,
  "message": "Operation successful",
  "requestId": "934108e5-9fbf-4d24-8da1-c330328abd6c",
  "data": {
    "targetType": "USER",
    "createdAt": "2022-03-17T05:23:01.567Z",
    "dataType": "ENUM",
    "key": "school",
    "label": "School",
    "description": "School",
    "visibleInAdminConsole": true,
    "visibleInUserCenter": true,
    "i18n": {
      "label": {
        "zh-CN": {
          "enabled": false,
          "value": "Chinese"
        },
        "en-US": {
          "enabled": false,
          "value": "English"
        },
        "zh-TW": {
          "enabled": false,
          "value": "Traditional Chinese"
        }
      }
    },
    "options": "[{\"value\":\"pku\",\"label\":\"Peking University\"}]"
  }
}

Data structure

SetCustomFieldDto

NameTypeRequiredDescriptionExample value
targetTypestringYesSubject type, currently supports users, roles, groups and departmentsUSER
keystringis thefield key and cannot conflict with the key of the built-in field. It cannot be modified after it is set.school
dataTypestringNoData type, cannot be modified after setting.
- STRING: string type
- NUMBER: numeric type
- DATETIME: date type
- BOOLEAN: boolean type
- ENUM: enum Value type
STRING
labelstringnodisplay nameschool
descriptionstringNoDetailed description informationschool
encryptedbooleanNoWhether to encrypt storage. When turned on, the new data in this field will be encrypted. Once this parameter is set, it cannot be changed.
isUniquebooleanNoWhether it is a unique field. After it is turned on, the value reported by the current field will be uniquely verified. This parameter is only for
userEditablebooleannowhether the user can edit
visibleInAdminConsolebooleanNoWhether it needs to be displayed in the GenAuth console:
- If it is a user-defined field, control whether it is displayed in user details;
- If it is a department-defined field, control whether it is displayed in department details Display in;
- If it is a role extension field, control whether to display it in the role details.
true
visibleInUserCenterbooleanNoWhether to display in the user's personal center (this parameter does not control whether the API interface returns).true
validateRulesobjectNoValidation rules[{"type":"UNIQUE","content":"","error":"Already exists"}]
appIdsarrayNoApp Id list["appid1"]
desensitizationbooleanNoDesensitizationtrue
optionsarrayNoEnumeration value type selection Nested type: <a CustomFieldSelectOption.[{"value":"pku","label":"Peking University"}]
i18nNoMulti-language display name Nested type: <a CustomFieldI18n.{"label":{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"}}}

CustomFieldSelectOption

NameTypeIs it required?DescriptionSample value
valuestringYesEnumeration value valuehust
labelstringYesEnumeration value labelHuazhong University of Science and Technology

CustomFieldI18n

NameTypeIs it required?DescriptionSample value
labelYesMulti-language support field Nested type: <a LangObject.{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"},"ja-JP":{"enabled":false,"value":"日本語"}}

LangObject

NameTypeRequiredDescriptionSample value
zh-CNYesMultilingual Chinese content Nested type: <a LangUnit.{"enabled":false,"value":"中文"}
en-USYesMultilingual English content Nesting type: <a LangUnit.{"enabled":false,"value":"English"}
zh-TWYesMultilingual Traditional Chinese content Nesting type: <a LangUnit.{"enabled":false,"value":"繁體中文"}
ja-JPYesMultilingual Japanese content Nesting type: <a LangUnit.{"enabled":false,"value":"日本語"}

LangUnit

NameTypeIs it required?DescriptionSample value
enabledbooleanyesWhether it is enabled. If enabled, and the console selects this language, the content will be displayed. (Default is off)
valuestringyesMultilingual content

CustomFieldDto

NameTypeIs it requiredDescriptionSample value
targetTypestringyesTarget object type:
- USER: User
- ROLE: Role
- GROUP: Group
- DEPARTMENT: Department
USER
createdAtstringNoCreation time, only valid for custom fields, built-in fields do not have creation time.2022-03-17T05:23:01.567Z
dataTypestringYesData type, cannot be modified after setting.
- STRING: String type
- NUMBER: Number type
- DATETIME: Date type
- BOOLEAN: Boolean type
- ENUM: Enumeration value type
STRING
keystringYesField key, cannot conflict with the key of built-in fields, cannot be modified after setting.school
labelstringyesDisplay nameschool
descriptionstringnoDetailed descriptionschool
encryptedbooleannoWhether to store encrypted data. When enabled, the newly added data of this field will be encrypted. Once this parameter is set, it cannot be changed.
isUniquebooleanyesWhether it is a unique field. When enabled, the value reported by the current field will be uniquely verified. This parameter is only valid for fields with data types of strings and numbers.
userEditablebooleannoWhether the user can edit it. If it is a special field such as mobile phone number or email address, the user cannot modify it directly and needs to verify it first through verification code or other methods.
visibleInAdminConsolebooleanyesWhether to display in the GenAuth console:
- If it is a user-defined field, control whether to display in user details;
- If it is a department-defined field, control whether to display in department details;
- If it is a role extension field, control whether to display in role details.
true
visibleInUserCenterbooleanNoWhether to display in the user's personal center (this parameter does not control whether the API interface returns).true
i18nNoMulti-language display name Nested type: <a CustomFieldI18n.{"label":{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"}}}
optionsarrayNoEnumeration value type selection Nested type: <a CustomFieldSelectOption.[{"value":"pku","label":"Peking University"}]

CustomFieldI18n

NameTypeIs it required?DescriptionSample value
labelYesFields that support multiple languages Nested type: <a LangObject.{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"},"ja-JP":{"enabled":false,"value":"日本語"}}

LangObject

NameTypeRequiredDescriptionSample value
zh-CNYesMultilingual Chinese content Nested type: <a LangUnit.{"enabled":false,"value":"中文"}
en-USYesMultilingual English content Nesting type: <a LangUnit.{"enabled":false,"value":"English"}
zh-TWYesMultilingual Traditional Chinese content Nesting type: <a LangUnit.{"enabled":false,"value":"繁體中文"}
ja-JPYesMultilingual Japanese content Nesting type: <a LangUnit.{"enabled":false,"value":"日本語"}

LangUnit

NameTypeIs it required?DescriptionSample value
enabledbooleanyesIs it enabled? If enabled, and the console selects this language, the content will be displayed. (Closed by default)
valuestringYesMultilingual content

CustomFieldSelectOption

NameTypeIs it required?DescriptionSample value
valuestringYesEnumeration value valuehust
labelstringYesEnumeration value labelHuazhong University of Science and Technology

Agent infrastructure for identity, memory, and web action.