Unify and manage your data

Configuration API

Configure the tenant metadata.

At a business level, a tenant is defined by its Metadata Configuration (aka it’s “L3”) and its UI Configuration. The methodology usually includes performing a GET Configuration (with no inheritance) to retrieve the current L3 configuration, using a JSON editor to modify the configuration, then using the Set Configuration API to PUT the resulting L3 back to your tenant. The two most important and often used API calls in this section are GET Configuration and Set Configuration. Add and Remove Source endpoints are seldom used. Sources are usually defined in the L3 during configuration using the methodology above.

When a tenant's business configuration (aka L3 configuration) needs to be updated through the PUT API, you must:
  • Run the Validation API before you post the new L3 configuration into the tenant.
  • Scan the metadata configuration for misconfiguration or any violation of best practices. If any errors are found, then these errors should be fixed before posting the business configuration to the tenant.
Run the Validate Tenant Configuration API to validate the tenant configuration:
GET env_uri/reltio/api/tenant/configuration/_validateTenantConfiguration

For additional information about configuration validation errors, refer to L3 validation errors.

For additional information about configuration concepts, refer to Tenant data configuration.

Attention: The Configuration API is used to edit the Metadata Configuration only.1
Note: As of Reltio Release 2017.3, the Metadata Configuration can be seen via the Reltio Console but cannot be edited.
Tip: It is accepted and advisable to perform a GET with Inheritance to understand the consolidated configuration of all the layers (L1, L2, L3). But, when editing the configuration, it is extremely important to Get and Set only the L3 layer of the configuration. To do this you must make another GET request using the _noinheritance option. This retrieves only the L3 layer which is the layer tightly bound to your tenant. Once you have modified it to your liking then you should use the Set Configuration API to PUT only that L3 layer back to your tenant. Never apply a consolidated configuration to the tenant.

Object Structure

This section describes the first-level properties of the Configuration resource.

Property name Required Description Type

URI

Yes for response JSON

Path that is used to reach configuration. It is always configuration.

String

description

No

Details for a configuration.

String

label

No

Readable name for a model.

String

schemaVersion

Yes

Version of Reltio API Configuration schema used to describe objects.

String

entityTypes

Yes

A collection of Entity Types defined for a tenant.

Array of Entity Types

roles

No

A collection of Role Types defined for a tenant.

Array of Roles

groupTypes

No

A collection of Group Types defined for a tenant.

Array of Group Types

relationTypes

No

A collection of Relation Types defined for a tenant.

Array of Relation Types

graphTypes

No

Define the Graph Types in a tenant configuration.

Array of Graph Types

interactionTypes

No

A collection of Interaction Types defined for a tenant.

Array of Interaction Types

sources

No

A collection of Interaction Types defined for a tenant.

Array of Sources

Configuration JSON Example

{
   "URI":"configuration",
   "label":"Test Business Model",
   "description":"Test Business Model Configuration-used to describe Configuration API
format",
   "schemaVersion":"1",
   "entityTypes":[
      {
         "URI":"configuration/entityTypes/Individual",
         "label":"Individual",
         "id":"3",
         "description":"These entity types for representing people",
         "typeColor":"#00FF00",
         "typeIcon":"entityType/Individual.png",
         "typeGraphIcon":"entityType/IndividualSmall.png",
         "typeImage":"defaultImage/no-photo.png",
         "dataLabelPattern":"{configuration/entityTypes/Individual/attributes/FirstName}",
         "entitySmartLogic":"Person",
         "entityTypeRoleURIs":[
            "configuration/roles/Client",
            "configuration/roles/Advisor"
         ],
         "attributes":[
            {
               "URI":"configuration/entityTypes/Individual/attributes/FirstName",
               "name":"FirstName",
               "id":"4",
               "label":"First Name",
               "type":"String"
            },
            {
               "URI":"configuration/entityTypes/Individual/attributes/Gender",
               "name":"Gender",
               "id":"5",
               "label":"Gender",
               "type":"String",
               "values":[
                  "Male",
                  "Female",
                  "Unknown"
               ]
            },
            {
               "URI":"configuration/entityTypes/Individual/attributes/ImageLinks",
               "name":"ImageLinks",
               "id":"6",
               "label":"Image Links",
               "type":"Image URL"
            },
            {
               "URI":"configuration/entityTypes/Individual/attributes/Address",
               "name":"Address",
               "label":"Address",
               "id":"9",
               "type":"Reference",
               "referencedEntityTypeURI":"configuration/entityTypes/Location",
               "relationshipTypeURI":"configuration/relationshipTypes/HasAddress",
               "relationshipLabelPattern":"{configuration/relationshipTypes/HasAddress/attributes/AddressType}",
               "referecedAttributeURIs":[
                  "configuration/relationshipTypes/HasAddress/attributes/AddressType",
                  "configuration/entityTypes/Location/attributes/City"
               ]
            }
         ],
         "businessCardAttributeURIs":[
            "configuration/entityTypes/Individual/attributes/FirstName",
            "configuration/entityTypes/Individual/attributes/Gender"
         ],
         "imageAttributeURIs":[
            "configuration/entityTypes/Individual/attributes/ImageLinks"
         ]
      },
      {
         "URI":"configuration/entityTypes/Location",
        ...
      }
   ],
   "roles":[
      {
         "URI":"configuration/roles/Client",
         "label":"Client",
         "id":"1",
         "description":"Client role-highlight entities who are clients"
      },
      {
         "URI":"configuration/roles/Advisor",
         "label":"Advisor",
         "id":"2",
         "description":"Advisor is an employee of a company working with clients."
      }
   ],
   "groupTypes":[
      {
         "URI":"configuration/groupTypes/XYZHHGroupType",
         "id":"16",
         "label":"XYZ Household",
         "type":"manual",
         "description":"Information about households loaded from XYZ system",
         "dataLabelPattern":"[primaryMember]({configuration/entityTypes/Individual/attributes/FirstName})
Household",
         "hasPrimaryMember":true,
         "attributes":[
            {
               "URI":"configuration/groupTypes/XYZHHGroupType/attributes/Notes",
               "name":"Notes",
               "id":"17",
               "label":"Notes",
               "type":"String"
            }
         ],
         "groupElements":[
            {
               "URI":"configuration/groupTypes/XYZHHGroupType/groupElements/IndividualEntities",
               "id":"18",
               "entityTypeURIs":[
                  "configuration/entityTypes/Individual"
               ]
            }
         ],
         "memberTypes":[
            {
               "URI":"configuration/groupTypes/XYZHHGroupType/memberTypes/Member",
               "id":"19",
               "label":"Member",
               "primaryMember":false
            },
            {
               "URI":"configuration/groupTypes/XYZHHGroupType/memberTypes/PrimaryMember",
               "id":"20",
               "label":"Primary Member",
               "primaryMember":true
            }
         ]
      }
   ],
   "relationTypes":[
      {
         "URI":"configuration/relationTypes/Spouse",
         "id":"25",
         "label":"spouse",
         "description":"Spousal relationship between husband and wife.",
         "typeColor":"#663344",
         "implicit":true,
         "direction":"undirected",
         "attributes":[
            {
               "URI":"configuration/relationTypes/Spouse/attributes/WeddingPlace",
               "name":"WeddingPlace",
               "id":"26",
               "label":"Wedding Place",
               "type":"String"
            }
         ],
         "startObject":{
            "URI":"configuration/relationTypes/Spouse/startObject",
            "objectURI":"configuration/roles/Party"
         },
         "endObject":{
            "URI":"configuration/relationTypes/Spouse/endObject",
            "objectURI":"configuration/entityTypes/Location"
         }
      },
      {
         "URI":"configuration/relationTypes/HasAddress",
        ...
      }
   ],
   "interactionTypes":[
      {
         "URI":"configuration/interactionTypes/Meeting",
         "id":"31",
         "label":"Meeting",
         "attributes":[
            {
               "URI":"configuration/interactionTypes/Meeting/attributes/Place",
               "name":"Place",
               "id":"32",
               "label":"Place",
               "type":"String"
            },
            {
               "URI":"configuration/interactionTypes/Meeting/attributes/Notes",
               "name":"Notes",
               "id":"33",
               "label":"Notes",
               "type":"String"
            }
         ],
         "memberTypes":[
            {
               "URI":"configuration/interactionTypes/Meeting/memberTypes/participants",
               "name":"participants",
               "id":"34",
               "label":"participants",
               "objectURI":"configuration/entityTypes/Individual",
               "minOccurs":1
            },
            {
               "URI":"configuration/interactionTypes/Meeting/memberTypes/organizers",
               "name":"organizers",
               "id":"35",
               "objectURI":"configuration/entityTypes/Individual",
               "label":"organizers",
               "minOccurs":1
            }
         ]
      }
   ],
   "graphTypes":[
      {
         "URI":"configuration/graphTypes/SpouseGraph",
         "id":"37",
         "graphStructure":"network",
         "type":"logical",
         "layout":"family",
         "label":"Family Graph",
         "relationshipTypeURIs":[
            "configuration/relationshipTypes/SpouseGraph"
         ]
      }
   ],
   "sources":[
      {
         "URI":"configuration/sources/XYZ",
         "id":"39",
         "abbreviation":"XYZ",
         "label":"MDM",
         "icon":"source/xyz.png"
      },
      {
         "URI":"configuration/sources/Reltio",
         "id":"40",
         "abbreviation":"Reltio",
         "label":"Reltio source system",
         "icon":"source/reltio.png"
      }
   ]
}
Note: Currently, ID parameters are not supported by the Configuration API.
1 The UI configuration of the tenant can be performed partially by the UI Modeler newly available in release 2017.3 but not entirely. For those parts of the UI not supported by the UI Modeler, work with your Reltio contact to have Reltio perform that configuration.