# 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 Delimited File connector uses the following default correlation and object configurations.

## Correlation

For the Delimited File connector, a correlation rule must be defined to correlate the accounts to identities. There is no default correlation rule with this connector.

## 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 |

### Default Account Attributes

The Delimited File connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified.

> [!IMPORTANT]
>
> When you upload an updated account schema, the Delimited File source checks if any of the new attributes were included in the old schema. The source keeps the settings (description, entitlement, multi-valued, type, etc.) for any previously included attributes. The source also removes any attributes that are not found in newly discovered or uploaded schema, as long as the attributes aren't used in other configurations.

| Attribute Name | Description |
| --- | --- |
| id | The unique ID for the account. |
| name | The username of the account. |
| givenName | The first or given name of the user associated with the account. |
| familyName | The last, family name, or surname of the user associated with the account. |
| e-mail | The primary email address of the user associated with the account. |
| location | The location associated with this account. |
| manager | Reference to the manager of this particular account. |
| groups | The groups or roles that reference account group objects. |
| IIQDisabled | This is an optional attribute. SailPoint recommends that you work with Services to create a Build Map Rule specific to your company's needs.<br>This is a Boolean attribute to set an account as enabled or disabled in SailPoint. You can add the IIQDisabled attribute in the source account schema or use the Build Map Rule to set the value as true/false based on the incoming data from the file. For more information, refer to the [SailPoint Rule Guide](<https://developer.sailpoint.com/docs/extensibility/rules/cloud-rules/buildmap-rule/>). |

> [!NOTE]
>
> The default input for `id` and `name` are set as **Account ID** and **Account Name** respectively. The `groups` attribute is multi-valued and entitlement, by default.

## 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 Delimited File connector also supports groups. The following attributes must be configured on the managed system and in the SailPoint source schema to manage groups.

| Attribute Name | Description |
| --- | --- |
| id | Unique ID for the group. |
| name | The name of the group. |
| displayName | The preferred display name for the group. |
| created | Date and time when the group was created. |
| description | Multi-purpose field used to capture a description or comments. |
| modified | Date and time when the group was modified. |
| entitlements | The access rights and entitlements that the group has access to. |
| groups | The groups and roles that reference to account group objects. |
| permissions | The permissions associated with the account. |

## Multi-Group Object Schemas

The Delimited File source supports multi-group object schemas. You can define additional group objects or entitlement types (such as roles) for a source and aggregate those into SailPoint.

### Data Import

You can import accounts for the Delimited File source. This step must be performed only after you have defined the account schema.

There are two ways to load accounts for this source:

- Use the SailPoint File Upload utility as mentioned in the [Prerequisites](<https://documentation.sailpoint.com/connectors/delimited_file/va/help/index.html#prerequisites>) section.

  > **Best Practice**
  >
  > For best results, delimited files should not exceed 500 MB.
- Manually aggregate accounts. For more information, refer to [Manually Aggregating Accounts from a Flat File](<https://documentation.sailpoint.com/saas/help/accounts/loading_data.html#manually-aggregating-accounts-from-a-flat-file>).

### File Structure

In a delimited file, each row represents one account (with the exception of multi-valued values). Each column has the ability to hold values of data that are associated with the account and are of a certain fixed order. These columns should be in the same order as the Account Schema. Their data can be left blank as long as the fields are not required. The file should be sorted based on the Account ID attribute. This is especially important for handling multi-valued attributes.

> [!NOTE]
>
> The first row of the file is the header of the file, and will not be skipped.

| ID | name | givenName | familyName | This header row will be skipped |
| --- | --- | --- | --- | --- |
| 1 | jdoe | John | Doe | This is the first account |
| 2 | msmith | Mary | Smith | This is the second account |

### Handling Multi-Valued Attributes

Some attributes, like groups, support the ability to have multiple values and are stored as a list. In order to model this, you will put each value on a separate row for that field. All additional values should be repeated.

| ID | name | ... | groups | ... | This header row will be skipped. |
| --- | --- | --- | --- | --- | --- |
| 1 | jdoe | ... | Admins | ... | This is the first account. |
| 1 | jdoe | ... | Employee | ... |  |
| 2 | msmith | ... | Employee | ... | This is the second account. |

> [!NOTE]
>
> The `name` attribute is a single-valued attribute.

This will yield jdoe with Admins and Employee groups, and msmith with a single Employee group.
