GenAuth DocsDocuments
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Concepts
User Guide
Development Integration
AgentAuth
Metadata
Development Integration
Multi-tenant (beta)
Console Documentation
Multi-tenant Console
Tenant Console
Saas Application Demo
Old version
Development Integration
  • API

  • SDK

    • Java

      • Installation and use
      • User authentication module

      • Management module

        • Manage users

        • Management Roles

        • Manage user groups

        • Manage custom fields

          • Get a list of user built-in fields
          • Modify user built-in field configuration
          • Get a list of custom fields
          • Create/modify custom field definitions
          • Set the value of a custom field
          • Get custom field values ​​for users, groups, roles, and organizations
        • Manage Resources and Permissions

        • Manage data resources and permissions

        • Manage Applications

        • Manage Identity Sources

        • Manage security configuration

        • Manage message service

        • Manage Pipeline

        • Manage Webhook

        • Get audit log

        • Manage metering and billing

        • Events
    • Node.js

    • Python

  • Error Codes
  1. Development Integration
  2. /
  3. SDK
  4. /
  5. Java
  6. /
  7. Management module

  8. /
  9. Manage custom fields

  10. /
  11. Create/modify custom field definitions

¶ Create/modify custom field definitions

Update time: 2025-07-23 07:34:21
Edit

This document is automatically generated based on https://github.com/authing/authing-docs-factory and 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

NameType
Is it required
Default Value
Description
Example Value
listSetCustomFieldDto[]Yes-Custom field list. Array length limit: 50.
tenantIdstringNo-Tenant ID642c1df417c2d8a80d744c1d

¶ Sample Code

package test.management;

import cn.authing.sdk.java.client.ManagementClient;
import cn.authing.sdk.java.dto.CustomFieldListRespDto;
import cn.authing.sdk.java.dto.SetCustomFieldDto;
import cn.authing.sdk.java.dto.SetCustomFieldsReqDto;
import cn.authing.sdk.java.model.ManagementClientOptions;
import cn.authing.sdk.java.util.JsonUtils;

import java.util.ArrayList;
import java.util.List;

public class SetCustomFieldsTest {
    // Need to be replaced with your GenAuth Access Key ID
    private static final String ACCESS_KEY_ID = "AUTHING_ACCESS_KEY_ID";
    // Need to be replaced with your GenAuth Access Key Secret
    private static final String ACCESS_KEY_SECRET = "AUTHING_ACCESS_KEY_SECRET";

    public static void main(String[] args) throws Throwable {
        ManagementClientOptions clientOptions = new ManagementClientOptions();
        clientOptions.setAccessKeyId(ACCESS_KEY_ID);
        clientOptions.setAccessKeySecret(ACCESS_KEY_SECRET);
        // If you are a private deployment customer, you need to set the GenAuth service domain name
        // clientOptions.setHost("https://api.your-authing-service.com");

        ManagementClient client = new ManagementClient(clientOptions);

        SetCustomFieldsReqDto reqDto = new SetCustomFieldsReqDto();
        List<SetCustomFieldDto> list = new ArrayList<>();
        SetCustomFieldDto fieldDto = new SetCustomFieldDto();
        fieldDto.setKey("school");
        fieldDto.setTargetType(SetCustomFieldDto.TargetType.USER);
        list.add(fieldDto);
        reqDto.setList(list);
        CustomFieldListRespDto response = client.setCustomFields(reqDto);
        System.out.println(JsonUtils.serialize(response));
    }
}

¶ 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 requests are not returned). For a detailed list of error codes, see: API Code List (opens new window)
requestIdstringRequest ID. Returned when the request fails.
dataarrayResponse data

Example Results:

{
  "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": "中文"
        },
        "en-US": {
          "enabled": false,
          "value": "English"
        },
        "zh-TW": {
          "enabled": false,
          "value": "繁體中文"
        }
      }
    },
    "options": "[{\"value\":\"pku\",\"label\":\"xxx\"}]"
  }
}

¶ Data Structure

¶ SetCustomFieldDto

NameType
Is it required
Description
Example Value
targetTypestringYesSubject type, currently supports users, roles, groups and departmentsUSER
keystringYesField key, cannot conflict with the key of built-in fields, cannot be modified after setting.school
dataTypestringNoData type, cannot be modified after setting.
- STRING: string type
- NUMBER: number type
- DATETIME: date type
- BOOLEAN: Boolean type
- ENUM: enumeration value type
STRING
labelstringNoDisplay Nameschool
descriptionstringNoDetailed descriptionschool
encryptedbooleanNoYes No Encrypted storage. After turning on, newly added data of this field will be encrypted. Once this parameter is set, it cannot be changed.
isUniquebooleanNoYes No It is a unique field. After turning on, the value reported by the current field will be uniquely verified. This parameter is only for
userEditablebooleanNoUser Yes No Editable
visibleInAdminConsolebooleanNoYes No Need to be displayed in the GenAuth console:
- If Yes is a user-defined field, control Yes No to be displayed in user detail;
- If Yes is a department-defined field, control Yes No to be displayed in department detail;
- If Yes is a role-extension field, control Yes No to be displayed in role detail.
true
visibleInUserCenterbooleanNoYes No Displayed in the user's personal center (this parameter does not control the API interface Yes No return).true
validateRulesobjectNoValidation rules[{"type":"UNIQUE","content":"","error":"Already exists"}]
appIdsarrayNoApp Id list["appid1"]
desensitizationbooleanNoDesensitizationtrue
optionsarrayNoEnumeration value type selection item Nested Type: CustomFieldSelectOption.[{"value":"pku","label":"Beijing University"}]
i18nNoMulti-language display Name Nested Type: CustomFieldI18n.{"label":{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"}}}

¶ CustomFieldSelectOption

NameType
Is it required
Description
Example Value
valuestringYesenumeration value valuehust
labelstringYesenumeration value labelHuazhong University of Science and Technology

¶ CustomFieldI18n

NameType
Is it required
Description
Example Value
labelYesSupport multi-language fields Nested Type: LangObject.{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"},"ja-JP":{"enabled":false,"value":"日本語"}}

¶ LangObject

NameType
Is it required
Description
Example Value
zh-CNYesMultilingual Chinese content Nested Type: LangUnit.{"enabled":false,"value":"中文"}
en-USYesMultilingual English content Nested Type: LangUnit.{"enabled":false,"value":"English"}
zh-TWYesMultilingual Traditional Chinese content Nested Type: LangUnit.{"enabled":false,"value":"繁體中文"}
ja-JPYesMultilingual Japanese content Nested Type: LangUnit.{"enabled":false,"value":"日本語"}

¶ LangUnit

NameType
Is it required
Description
Example Value
enabledbooleanYesYes No Enabled. If enabled, and the console selects this language, this content will be displayed. (Off by default)
valuestringYesMultilingual content

¶ CustomFieldDto

NameType
Is it required
Description
Example 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
encryptedbooleanNoYes No Encrypted storage. When enabled, the newly added data of this field will be encrypted. Once this parameter is set, it cannot be changed.
isUniquebooleanYesYes No 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.
userEditablebooleanNoUser Yes No Editable. If Yes is a special field such as mobile phone number and email address, the user cannot modify it directly and needs to verify it first through verification code or other methods.
visibleInAdminConsolebooleanYesYes No Need to be displayed in the GenAuth console:
- If Yes is a user-defined field, control Yes No to be displayed in user detail;
- If Yes is a department-defined field, control Yes No to be displayed in department detail;
- If Yes is a role-extension field, control Yes No to be displayed in role detail.
true
visibleInUserCenterbooleanNoYes No Displayed in the user's personal center (this parameter does not control the API interface Yes No return).true
i18nNoMulti-language display Name Nested Type: CustomFieldI18n.{"label":{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"}}}
optionsarrayNoEnumeration value type selection Nested Type: CustomFieldSelectOption.[{"value":"pku","label":"Beijing University"}]

¶ CustomFieldI18n

NameType
Is it required
Description
Example Value
labelYesSupport multi-language fields Nested Type: LangObject.{"zh-CN":{"enabled":false,"value":"中文"},"en-US":{"enabled":false,"value":"English"},"zh-TW":{"enabled":false,"value":"繁體中文"},"ja-JP":{"enabled":false,"value":"日本語"}}

¶ LangObject

NameType
Is it required
Description
Example Value
zh-CNYesMultilingual Chinese content Nested Type: LangUnit.{"enabled":false,"value":"中文"}
en-USYesMultilingual English content Nested Type: LangUnit.{"enabled":false,"value":"English"}
zh-TWYesMultilingual Traditional Chinese content Nested Type: LangUnit.{"enabled":false,"value":"繁體中文"}
ja-JPYesMultilingual Japanese content Nested Type: LangUnit.{"enabled":false,"value":"日本語"}

¶ LangUnit

NameType
Is it required
Description
Example Value
enabledbooleanYesYes No Enabled. If enabled and the console selects this language, this content will be displayed. (Off by default)
valuestringYesMultilingual content

¶ CustomFieldSelectOption

NameType
Is it required
Description
Example Value
valuestringYesEnumeration value valuehust
labelstringYesEnumeration value labelHuazhong University of Science and Technology
Previous article: Get a list of custom fields Next article: Set the value of a custom field
  • Method Name
  • Request Parameters
  • Sample Code
  • Request Response
  • Data Structure

User identity management

Integrated third-party login
Customized authentication process

Enterprise internal management

Single sign-on
Multi-factor authentication
Permission management

Developer

Development Documentation
GitHub (opens new window)

Company

official@genauth.ai
16th Floor, Building B, Beichen Century Center, Chaoyang District, Beijing (Total)
Room 406, 4th Floor, Block B, No. 200, Tianfu Fifth Street, High-tech Zone, Chengdu (Branch)

© Beijing Steamory Technology Co., Ltd.