# Schema Reference

The application schema is used to configure the objects returned from a connector.

> [!NOTE]
>
> - The **Account Schema** tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as **Entitlement** or **Multi-Valued**. Refer to [Managing Source Account Schemas](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.
> - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified.

The Delinea Secret Server On-Premise connector uses the following default correlation and object configurations.

## Default Account Schema

Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location.

The set of account attributes each source stores and how they're organized is known as the account's *schema*. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to [Managing Source Account Schemas](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.

### Default Account ID

SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as *account IDs*.

> [!CAUTION]
>
> Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts.
>
> To resolve issues caused by changing account IDs, reconfigure them to their default values.

The following table lists the default account IDs for this connector:

| Account ID | Schema Object Type |
| --- | --- |
| id | Account |
| id | Group |
| id | Roles |

> [!NOTE]
>
> Account IDs might also be referred to as "Native IDs".

### Default Account Attributes

The account schema for the Delinea Secret Server On-Premise connector contains the following attributes related to Users within the source.

> [!NOTE]
>
> The Delinea On-Premise Connector only supports attributes supported by the Delinea SCIM server.

| Attribute Name | Description |
| --- | --- |
| id | The user's unique identifier |
| userName | The user's username |
| emails.work.primary.value | The user's organization |
| groups | The list of groups to which the user belongs |
| displayName | The user's display name |
| active | The user's active status in the Delinea Secret Server On-Premise system |
| roles | A list of roles assigned to the user |
| meta.created | Timestamp for the user's creation |
| meta.lastModified | Timestamp for the user's most recent modification |
| meta.location | URL to access the SCIM resource |
| LinkedObject.source | The name of the external application in which an account object is saved. If this is a PAM local object, the value is `null`. |
| LinkedObject.nativeIdentifier | An account object's unique identifier within its external application. For example, this can be the LDAP DN. If this is a PAM local object, the value is `null`. |

## Default Entitlement Attributes

Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to [Managing Entitlements](<https://documentation.sailpoint.com/saas/help/access/entitlements.html>) for more information.

> [!CAUTION]
>
> Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations.

### Default Group Attributes

The Delinea Secret Server On-Premise connector also supports groups. The following attributes must be configured on the managed system and in the SailPoint source schema to manage groups.

> [!NOTE]
>
> The Delinea On-Premise Connector only supports attributes supported by the Delinea SCIM server.

| Attribute Name | Description |
| --- | --- |
| id | The group's unique identifier |
| displayName | The group's display name |
| members.value | A list of the group's members |
| meta.created | Timestamp for the group's creation |
| meta.lastModified | Timestamp for the group's most recent modification |
| meta.location | URL to access the SCIM resource |
| Group.source | The name of the external application in which a group object is saved. If this is a PAM local object, the value is `null`. |
| Group.nativeIdentifier | A group object's unique identifier within its external application. For example, this can be the LDAP DN. If this is a PAM local object, the value is `null`. |

### Default Roles Attributes

The Delinea Secret Server On-Premise connector supports roles. The following attributes must be configured on the managed system and in the SailPoint source schema to manage roles.

> [!IMPORTANT]
>
> If you updated an existing source to support role management, refer to [Add the Roles Support to Existing Sources](<#add-the-roles-support-to-existing-sources>) to add the Roles schema to your source.

| Attribute Name | Description |
| --- | --- |
| id | Unique identifier for the role |
| display | The name displayed for the role |
| value | The role's value |
| meta.created | Timestamp for the role's initial creation |
| meta.lastModified | Timestamp for the role's most recent modification |
| meta.location | URL to access the SCIM resource |

#### Add the Roles Support to Existing Sources

If you have an existing source you've updated to support role management, you need to manually add the Roles schema and update the Accounts schema. Sources created following the update include the Roles schema and the updated Account schema by default.

To add roles management support to an existing source:

1. Use the **createSchema** API to create a new Group Schema for your source. This new schema will become the Roles schema. For more information, refer to [Create Schema on a Source](<https://developer.sailpoint.com/docs/api/v3/create-source-schema/>).

   Use the following request:

   ```json
   "nativeObjectType": "roles",
       "identityAttribute": "id",
       "name": "roles",
       "displayAttribute": "display",
       "hierarchyAttribute": null,
       "includePermissions": false,
       "features": [
           "PROVISIONING"
       ],
       "configuration": {},
       "attributes": [
           {
               "name": "id",
               "type": "STRING",
               "schema": null,
               "description": "Unique identifier for the Role",
               "isMulti": false,
               "isEntitlement": false,
               "isGroup": false
           },
           {
               "name": "display",
               "type": "STRING",
               "schema": null,
               "description": "Displayable Name of the Role",
               "isMulti": false,
               "isEntitlement": false,
               "isGroup": false
           },
           {
               "name": "value",
               "type": "STRING",
               "schema": null,
               "description": "The value of a Role",
               "isMulti": false,
               "isEntitlement": false,
               "isGroup": false
           },
           {
               "name": "meta.created",
               "type": "STRING",
               "schema": null,
               "description": "Resource creation date and time",
               "isMulti": false,
               "isEntitlement": false,
               "isGroup": false
           },
           {
               "name": "meta.lastModified",
               "type": "STRING",
               "schema": null,
               "description": "Last modified date and time",
               "isMulti": false,
               "isEntitlement": false,
               "isGroup": false
           },
           {
               "name": "meta.location",
               "type": "STRING",
               "schema": null,
               "description": "URL to access SCIM resource",
               "isMulti": false,
               "isEntitlement": false,
               "isGroup": false
           }
       ]
   }
   ```
2. Update the Account schema with the new Roles schema.

   a. Get the Account schema using the **getSchema** API. For more information, refer to [Get Source Schema by ID](<https://developer.sailpoint.com/docs/api/v3/get-source-schema/>).

   b. Copy the schema to a file and add the following JSON to the new schema to add roles to the Account schema.

   Replace the placeholder `id` value in the following example payload with the `id` value from the new schema.

   ```json
   {
       "name": "roles",
       "type": "STRING",
       "schema": {
           "type": "CONNECTOR_SCHEMA",
           "id": "<id_value_from_Roles_schema>",
           "name": "roles"
       },
       "description": "A list of roles assigned to the user",
       "isMulti": true,
       "isEntitlement": true,
       "isGroup": true
   }
   ```

   c. Use the JSON you created as the payload to update the Account schema in the source using the **replaceSchema** API. For more information, refer to [Update Source Schema (Full)](<https://developer.sailpoint.com/docs/api/v3/put-source-schema/>).
