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

        • Manage Resources and Permissions

        • Manage data resources and permissions

          • Create permission space
          • Batch create permission spaces
          • Get permission space details
          • Batch get permission space details list
          • Paged get permission space list
          • Modify Permission Space
          • Delete Permission Space
          • Batch Delete Permission Space
          • Check whether the permission space Code or name is available
          • Paginated query of all roles in the permission space
          • Create data resources
          • Create string data resources
          • Create array data resources
          • Create tree data resources
          • Get data resource list
          • Get data resource information
          • Modify data resources
          • Delete data resources
          • Check data resource name or Code Is it available
          • Create data resource extension fields
          • Batch create data resource extension fields
          • Delete data resource extension fields
          • Modify data resource extension fields
          • Get data resource extension field list
          • Create data policy
          • Get data policy list
          • Get a list of simple data policy information
          • Get data policy information
          • Modify data policy
          • Delete data policy
          • Check whether the data policy name exists
          • Get all the information of the authorized subjects under the data policy
          • Authorize Data Policy
          • Revoke Data Policy
          • Get User Permission List
          • Judge user permissions
          • Judge external user permissions
          • Get user-specified resource permission list
          • Get a list of users authorized to use resources
          • Get a list of user-authorized resources
          • Get the structure list of external user authorization resources
          • Judge the user's permissions under the same level resources of the tree resource
        • 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 data resources and permissions

  10. /
  11. Create data resources

¶ Create data resources (recommended, key points)

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

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

¶ Description

This interface is used to create data resources. When you have data that needs to be set with permissions, create data resources of the corresponding type according to their data types. Currently, we support three types: string, array, and tree.

¶ Note

The struct field in the request body needs to pass in different Data Structures according to different resource types. Please refer to the following examples for details

¶ Request Example

¶ Example of creating a string type data resource

This type can be used when your data can be represented by only a string, such as an API, a user ID, etc.

The following is an example of creating a data resource representing the '/resource/create' API:

{
  "namespaceCode": "examplePermissionNamespace",
  "resourceName": "createResource API",
  "description": "This createResource API",
  "resourceCode": "createResourceAPI",
  "type": "STRING",
  "struct": "/resource/create",
  "actions": ["access"]
}

¶ Example of creating an array type data resource

This type can be used when your data is a group of data of the same type, such as a group of document links, a group of access card numbers, etc. The following is an example of creating a data resource representing a group of access card numbers:

{
  "namespaceCode": "examplePermissionNamespace",
  "resourceName": "A group of access card numbers",
  "description": "This is a group of access card numbers",
  "resourceCode": "accessCardNumber",
  "type": "ARRAY",
  "struct": ["accessCardNumber1", "accessCardNumber2", "accessCardNumber3"],
  "actions": ["get", "update"]
}

¶ Example of creating a tree-type data resource

This type can be used when your data has a hierarchical relationship, such as organizational structure, folder structure, etc. The following is an example of creating a data resource representing the company's organizational structure:

{
  "namespaceCode": "examplePermissionNamespace",
  "resourceName": "GenAuth",
  "description": "This is the organizational structure of GenAuth",
  "resourceCode": "authing",
  "type": "TREE",
  "struct": [
    {
      "name": "product",
      "code": "product",
      "value": "product",
      "children": [
        {
          "name": "productManager",
          "code": "productManager",
          "value": "pm"
        },
        {
          "name": "design",
          "code": "design",
          "value": "ui"
        }
      ]
    },
    {
      "name": "researchAndDevelopment",
      "code": "researchAndDevelopment",
      "value": "rd",
      "extendFieldValue": {
        "str": "str_value",
        "select": "option1"
      }
    }
  ],
  "actions": ["get", "update", "delete"],
  "extendFieldList": [
    {
      "key": "str",
      "label": "str_label",
      "valueType": "STRING",
      "description": "string"
    },
    {
      "key": "select",
      "label": "select_label",
      "valueType": "SELECT",
      "description": "select",
      "config": {
        "options": ["option1", "option2", "option3"]
      }
    }
  ]
}

¶ Method Name

ManagementClient.createDataResource

¶ Request Parameters

NameType
Is it required
Default Value
Description
Example Value
actionsstring[]Yes-Data resource permission operation list. Array length limit: 50.["read","get"]
structYes-Data resource structure, supporting string (STRING), tree structure (TREE) and array structure (ARRAY).
typestringyes-Data resource type, currently supports tree structure (TREE), string (STRING), array (ARRAY)TREE
resourceCodestringyes-Data resource Code, unique in the permission spacedataResourceTestCode
resourceNamestringyes-Data resource Name, unique in the permission spaceexample data resource Name
namespaceCodestringyes-Permission space Code to which the data resource belongsexamplePermissionNamespace
descriptionstringno-Data resource descriptionexample data resource description
extendFieldListDnef[]no-Data resource extension field (currently only supports tree type resources)

¶ Sample Code

package test.management.dataPermission.resource;

import cn.authing.sdk.java.client.ManagementClient;
import cn.authing.sdk.java.dto.CreateDataResourceDto;
import cn.authing.sdk.java.dto.CreateDataResourceResponseDto;
import cn.authing.sdk.java.dto.DataResourceTreeStructs;
import cn.authing.sdk.java.dto.Dnef;
import cn.authing.sdk.java.dto.DnefConfig;
import cn.authing.sdk.java.model.ManagementClientOptions;
import cn.authing.sdk.java.util.JsonUtils;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.map.MapUtil;

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


public class CreateDataResourceTest {
    // 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);

        CreateDataResourceDto request = new CreateDataResourceDto();
        request.setNamespaceCode("examplePermissionNamespace");
        request.setResourceCode("treeResourceCode");
        request.setResourceName("Example Tree Data Resource");
        request.setType(CreateDataResourceDto.Type.TREE);
        ArrayList<DataResourceTreeStructs> dataResourceTreeStructList = new ArrayList<>();
        DataResourceTreeStructs dataResourceTreeStruct1 = new DataResourceTreeStructs();
        dataResourceTreeStruct1.setCode("tree1");
        dataResourceTreeStruct1.setName("tree node 1");
        dataResourceTreeStruct1.setValue("tree node 1 description");

        // Set the extended field value of the node (optional)
        Map<String, Object> extendFieldValue = MapUtil.of("str", "str_value");
        extendFieldValue.put("select", "option1");
        dataResourceTreeStruct1.setExtendFieldValue(extendFieldValue);

        List<Object> childrenList = new ArrayList<>();
        DataResourceTreeStructs dataResourceTreeStructChildren = new DataResourceTreeStructs();
        dataResourceTreeStructChildren.setCode("tree11");
        dataResourceTreeStructChildren.setName("tree node 11");
        dataResourceTreeStructChildren.setValue("tree node 11 description");
        childrenList.add(dataResourceTreeStructChildren); dataResourceTreeStruct1.setChildren(childrenList); DataResourceTreeStructs dataResourceTreeStruct2 = new DataResourceTreeStructs(); dataResourceTreeStruct2.setCode("tree2"); dataResourceTreeStruct2.setName("Tree Node 2"); dataResourceTreeStruct2.setValue("Tree node 2 description"); dataResourceTreeStructList.add(dataResourceTreeStruct1); dataResourceTreeStructList.add(dataResourceTreeStruct2); request.setStruct(dataResourceTreeStructList); request.setDescription("Example Tree Data Resource Description"); ArrayList<String> actions = new ArrayList<>(); actions.add("get"); actions.add("read"); request.setActions(actions);

        // Set extended fields (optional)
        request.setExtendFieldList(buildDnef());

        CreateDataResourceResponseDto response = client.createDataResource(request);
        System.out.println(JsonUtils.serialize(response));
    }

    /**
     * Building extension fields
     */
    private static List<Dnef> buildDnef() {
        List<Dnef> dnefs = new ArrayList<>();
        Dnef str = new Dnef();
        str.setKey("str");
        str.setLabel("str_label");
        str.setValueType(Dnef.ValueType.STRING);
        str.setDescription("string");
        dnefs.add(str);

        Dnef select = new Dnef();
        select.setKey("select");
        select.setLabel("select_label");
        select.setValueType(Dnef.ValueType.SELECT);
        select.setDescription("select");
        List<DnefConfig.Option> options = ListUtil.of(new DnefConfig.Option("option1"),
                new DnefConfig.Option("option2"),
                new DnefConfig.Option("option3"));
        DnefConfig config = new DnefConfig(options);
        select.setConfig(config);
        dnefs.add(select);

        return dnefs;
    }
}

¶ Request Response

Type: CreateDataResourceResponseDto

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.
dataCreateDataResourceRespDtoResponse data

Example Results:

{
  "statusCode": 200,
  "message": "Operation successful",
  "requestId": "934108e5-9fbf-4d24-8da1-c330328abd6c",
  "data": {
    "resourceName": "Sample data resource Name",
    "resourceCode": "dataResourceTestCode",
    "type": "TREE",
    "description": "Sample Data Resource Description",
    "actions": "[\"read\",\"get\"]"
  }
}

¶ Data Structure

¶ CreateDataResourceRespDto

NameType
Is it required
Description
Example Value
resourceNamestringyesData resource Name, unique in the permission spaceSample data resource Name
resourceCodestringyesData resource Code, unique in the permission spacedataResourceTestCode
typestringyesData resource type, currently supports tree structure (TREE), string (STRING), array (ARRAY)TREE
descriptionstringnoData resource descriptionSample Data Resource Description
structyesData resource structure, supports string (STRING), tree structure (TREE) and array structure (ARRAY).
actionsarrayyesData resource permission operation list Array length limit: 50.["read","get"]
extendFieldListDnef[]NoData resource extension field (currently only supports tree type resources)

¶ Dnef

NameType
Is it required
Description
Example Value
keystringYesExtended field Keystr
valueTypeValueTypeYesExtended field value typeSTRING (text), SELECT (single choice)
labelstringYesExtended field display Namestr_label
configDnefConfigNoField configuration, single-select type fields must be passed

¶ DnefConfig

NameType
Is it required
Description
Example Value
optionsOption[]YesSingle-select type field option list

¶ Option

NameType
Is it required
Description
Example Value
valuestringyesoption valueoption1
Previous article: Paginated query of all roles in the permission space Next article: Create string data resources
  • Description
  • Note
  • Request Example
  • 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.