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

The connector aggregates organization members as accounts. It merges records with the same GitHub login across governed organizations.

The connector aggregates teams, organization roles, and repository access as entitlements.

## 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 Enterprise Server source, the default correlation mapping is:

Map account attributes to identity attributes before you aggregate accounts. Profile email is often empty on GitHub Enterprise Server. The login value is the stable native identity.

| Account Attribute | Operation | Identity Attribute |
| --- | --- | --- |
| email | Equals | 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 Enterprise Server connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified.

The identity and display attribute is `login`. The group attribute is `teams`.

Go to **Admin** \> **Connections** \> **Sources**, open your GitHub Enterprise Server source, and select **Account Schema** to review the live schema.

| Attribute | Type | Description |
| --- | --- | --- |
| databaseId | string | Primary key from the GitHub database. |
| login | string | Username used to sign in. |
| name | string | Public profile name. |
| id | string | GitHub global node ID. |
| email | string | Publicly visible profile email. |
| organizationVerifiedDomainEmails | string list | Verified emails matching organization-verified domains. This value is often empty on GitHub Enterprise Server. |
| twitterUsername | string | Twitter username. |
| url | string | Public profile URL. |
| bio | string | Public profile bio. |
| bioHTML | string | Public profile bio as HTML. |
| location | string | Public profile location. |
| company | string | Public profile company. |
| companyHTML | string | Public profile company as HTML. |
| isBountyHunter | boolean | Indicates GitHub Security Bug Bounty participation. |
| isHireable | boolean | Indicates whether the user is marked as available for hire. |
| isEmployee | boolean | Indicates whether the user is a GitHub employee. |
| isSiteAdmin | boolean | Indicates whether the user is a site administrator. |
| isGitHubStar | boolean | Indicates GitHub Stars Program membership. This value is often empty on GitHub Enterprise Server. |
| isViewer | boolean | Indicates whether the user is the viewing user. |
| isCampusExpert | boolean | Indicates GitHub Campus Experts participation. |
| isDeveloperProgramMember | boolean | Indicates GitHub Developer Program membership. |
| hasSponsorsListing | boolean | Indicates whether the user has a GitHub Sponsors listing. This value is often empty on GitHub Enterprise Server. |
| followers | int | Number of followers. |
| following | int | Number of users followed. |
| gists | int | Number of gists created. |
| repositories | int | Number of repositories owned. |
| watching | int | Number of repositories watched. |
| estimatedNextSponsorsPayoutInCents | int | Estimated next Sponsors payout in US cents. |
| monthlyEstimatedSponsorsIncomeInCents | int | Estimated monthly Sponsors income in US cents. |
| websiteUrl | string | Public website URL. |
| createdAt | string | Date and time the user was created. |
| updatedAt | string | Date and time the user was last updated. |
| samlNameId | string | SAML name ID. |
| organizations | string list | In-scope organization logins for the user. |
| teams | string list, entitlement, writable | Team memberships in `{org}/{slug}` format. |
| role | string list, entitlement, writable | Organization roles in `{org}:ADMIN` or `{org}:MEMBER` format. |
| repositoryIDs | string list, entitlement | Repositories the user can access. |

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

The connector supports team, organization role, and repository entitlements.

### Default Group Attributes

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

Groups represent teams. The identity attribute is `combinedSlug` in `org/slug` format. The display attribute is `name`.

Go to **Admin** \> **Connections** \> **Sources**, open your GitHub Enterprise Server source, and select **Entitlement Schema** to review the live schema.

| Attribute | Type | Description |
| --- | --- | --- |
| databaseId | string | Primary key from the database. |
| slug | string | Team slug in the organization. |
| name | string | Team display name. |
| id | string | GitHub global node ID. |
| description | string | Team description. |
| privacy | string | Team privacy level. |
| combinedSlug | string | Organization and team slug in `org/slug` format. |
| url | string | Team page URL. |
| members | int | Number of team members. |
| repositories | int | Number of repositories associated with the team. |
| parentTeam | string | Parent team. |
| createdAt | string | Date and time the team was created. |
| updatedAt | string | Date and time the team was last updated. |
| repositoryNames | string list | Repositories the team can access. |
| organization | string | Organization login. |

### Default Role Attributes

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

The identity attribute is `id` in `{org}:ADMIN` or `{org}:MEMBER` format. The display attribute is `name`.

The connector does not use global Cloud role identities `1` and `2` when multiple organizations are in scope.

Go to **Admin** \> **Connections** \> **Sources**, open your GitHub Enterprise Server source, and select **Entitlement Schema** to review the live schema.

| Attribute | Type | Description |
| --- | --- | --- |
| id | string | Organization-qualified role in `{org}:ADMIN` or `{org}:MEMBER` format. |
| name | string | `ADMIN` or `MEMBER`. |
| organization | string | Organization login. |

### Default Repository Attributes

The identity attribute is the instance-unique `id`. The display attribute is `name`. Repository entitlements include `permission`.

Go to **Admin** \> **Connections** \> **Sources**, open your GitHub Enterprise Server source, and select **Entitlement Schema** to review the live schema.

| Attribute | Type | Description |
| --- | --- | --- |
| id | string | Primary key from the database. |
| name | string | Repository name. |
| permission | string | Permission on the repository. |
| visibility | string | Repository visibility. |
| organization | string | Organization login. |
