Add related entities to the tree

Use this query example to add the users that have been assigned a role at the community level. To reach those entities, you must retrieve the Responsibility entities that represent the assignments between a user, a role and one of the following resources:

  • Asset
  • Domain
  • Community
{
  "ViewConfig": {
    "Resources": {
      "Community": {
        "Id": { "name": "community id" },
        "Name": { "name": "community name" },
        "Responsibility": {
          "User": {
            "Id": { "name": "user id" },
            "FirstName": { "name": "first name" },
            "LastName": { "name": "last name" }
          },
          "Role": {
            "Signifier": { "name": "role name" }
          }
        }
      }
    }
  }
}
---
ViewConfig:
  Resources:
    Community:
      Id:
        name: "community id"
      Name:
        name: "community name"
      Responsibility:
        User:
          Id:
            name: "user id"
          FirstName:
            name: "first name"
          LastName:
            name: "last name"
        Role:
          Signifier:
            name: "role name"

Navigating from one entity to another requires nesting the entities. For a complete list of properties and relations for each entity, see Entities, properties and relations.

The following is an example of how the results is formatted.

{
  "view": {
    "Community0": [
      {
        "communityId": "c87f166e-041f-4bea-8ff7-c1ffbab2ceeb",
        "communityName": "First Community"
      },
      {
        "communityId": "12345678-0020-0000-0000-000000000000",
        "communityName": "Second Community",
        "Responsibility1": [
          {
            "User2": [
              {
                "userId": "00000000-0000-0000-0000-000000900002",
                "firstName": "Admin",
                "lastName": "Istrator"
              }
            ],
            "Role3": [
              {
                "roleName": "Admin"
              }
            ]
          },
          {
            "User2": [
              {
                "userId": "00000000-0000-0000-0000-000000900002",
                "firstName": "Admin",
                "lastName": "Istrator"
              }
            ],
            "Role3": [
              {
                "roleName": "Steward"
              }
            ]
          }
        ]
      }
    ]
  }
}
  • The ViewConfig result tree always uses arrays for related entities, even when relations have a max cardinality of 1.
  • Each responsibility has a maximum of one user and one role , even when arrays return.
  • The results tree uses a generated entity alias in the response. For example, Community0, Responsibility1 or User2.
  • To prevent duplicate names in the JSON keys, an index number is concatenated to the entity name.
  • The relationship from community to responsibility is optional. The query engine recognizes optional and required relations between entities, which is why First Community appears even when no users have roles.