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

## Default Correlation Configuration

Before you aggregate accounts from this source, you can map account attributes with their corresponding identity attributes based on your requirements.

You can customize the correlation configuration. Refer to [Assigning Source Accounts to Identities](<https://documentation.sailpoint.com/saas/help/accounts/correlation.html>) for more information.

When you first create the GitHub source, the default correlation mapping is:

| Account Attribute | Operation | Identity Attribute |
| --- | --- | --- |
| Email | Equals | Work Email (email) |
| name | Equals | Name |

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

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

| Attribute Name | Description |
| --- | --- |
| databaseId | Identifies the primary key from the database. |
| login | The username used to login. |
| name | The user's public profile name. |
| id | The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. |
| email | The user's publicly visible profile email. |
| twitterUsername | The user's Twitter username. |
| url | URL pointing to the user's public profile. |
| bio | The user's public profile bio. |
| bioHTML | The user's public profile bio as HTML. |
| location | The user's public profile location. |
| company | The user's public profile company. |
| companyHTML | The user's public profile company as HTML. |
| isBountyHunter | Whether or not this user is a participant in the GitHub Security Bug Bounty. |
| isHireable | Whether or not the user has marked themselves as for hire. |
| isEmployee | Whether or not this user is a GitHub employee. |
| isSiteAdmin | Whether or not this user is a site administrator. |
| isGitHubStar | Whether or not this user is a member of the GitHub Stars Program. |
| isViewer | Whether or not this user is the viewing user. |
| isCampusExpert | Whether or not this user is a participant in the GitHub Campus Experts Program. |
| isDeveloperProgramMember | Whether or not this user is a GitHub Developer Program member. |
| hasSponsorsListing | True if this user/organization has a GitHub Sponsors listing. |
| followers | The number of users the given user is followed by. |
| following | The number of users the given user is following. |
| gists | The number of gists the user has created. |
| repositories | The number of repositories that the user owns. |
| watching | The number of repositories that the user is watching. |
| estimatedNextSponsorsPayoutInCents | The estimated next GitHub Sponsors payout for this user/organization in cents (USD). |
| monthlyEstimatedSponsorsIncomeInCents | The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). |
| websiteUrl | A URL pointing to the user's public website/blog. |
| createdAt | Identifies the date and time when the user was created. |
| updatedAt | Identifies the date and time when the user was last updated. |
| teams | A list of teams the user is a member of. |
| role | Role of the member . |
| samlNameId | The SAML name id of the user. |
| repositoryIDs | The repositories user has access to. |

> [!NOTE]
>
> For existing sources, add this attribute explicitly through the UI.

## 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 GitHub 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 |
| --- | --- |
| databaseId | Identifies the primary key from the database. |
| slug | The slug corresponding to the team. This is an Entitlement ID. |
| name | The name of the team. This is an Entitlement name. |
| id | The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. |
| description | The description of the team. |
| privacy | The level of privacy the team has. |
| combinedSlug | The slug corresponding to the organization and team. |
| url | URL pointing to the team's page. |
| members | A number of users who are members of this team. |
| repositories | Indicates the number of repositories who are part of this team. |
| parentTeam | The parent team of the team. |
| createdAt | Identifies the date and time when the object was created. |
| updatedAt | Identifies the date and time when the team was last updated. |
| permission | The permission a team has. |
| role | Role of the member. |
| repositoryNames | The repositories team has access to. |

> [!NOTE]
>
> To add `permission` attribute in the Entitlement Schema use [Update Source Schema (Partial)](<https://developer.sailpoint.com/docs/api/v3/update-source-schema/>) API.

### Default Role Attributes

The GitHub connector supports roles. The following attributes must be configured on the managed system and in the SailPoint source schema to manage roles.

| Attribute Name | Description |
| --- | --- |
| id | The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. This is an Entitlement ID. |
| name | The name of the role. This is an Entitlement name. |

### Default Repository Attributes

The following lists the repository attributes:

| Attribute Name | Description |
| --- | --- |
| id | Identifies the primary key from the database. This is an Entitlement ID. |
| name | The name of the repository. This is an Entitlement name. |
| permission | The permission of the repository. |
| visibility | The visibility of the repository. |
