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

| Account Attribute | Operation | Identity Attribute |
| --- | --- | --- |
| email | Equals, ignoring case | Email |

Buildkite organization members have no username, so email is the default correlation key.

## 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 Buildkite connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified.

The account schema represents Buildkite organization members. The identity attribute is `id`, the display attribute is `name`, and the group attribute is `teams`.

| Attribute Name | Description |
| --- | --- |
| `id` | Buildkite organization member UUID. |
| `name` | Member display name. Buildkite organization members have no username, so this is not a sign-in name. |
| `email` | Member email address. This is the correlation key. |
| `sso_mode` | Organization SSO enforcement mode for this member, such as `required`. Returned only when the token belongs to an organization admin. |
| `role` | Organization-level role. The value is `admin` or `member`. |
| `teams` | Slugs of the teams the member belongs to. |
| `team_roles` | Role on each team, formatted as `team-slug:role`. Role is `member` or `maintainer`. If Buildkite reports no role, only the team slug is returned. |

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

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

The role entitlement represents a Buildkite organization-level role. The identity attribute is `id`, and the display attribute is `name`.

| Attribute Name | Description |
| --- | --- |
| `id` | Role identifier. The value is `admin` or `member`. |
| `name` | Name of the role. |
| `description` | Description of the access the role grants at the organization level. |

### Default Team Attributes

The team entitlement represents a Buildkite organization team. The identity attribute is `slug`, and the display attribute is `name`.

| Attribute Name | Description |
| --- | --- |
| `id` | Team UUID. |
| `slug` | URL-safe team identifier. |
| `name` | Display name of the team. |
| `description` | Description of the team. Empty when Buildkite provides no description. |
| `privacy` | Team visibility. The value is `visible` or `secret`. |
| `default` | Whether new organization members join this team automatically. |
| `default_member_role` | Role assigned when a member joins. The value is `member` or `maintainer`. |
| `members_can_create_pipelines` | Whether team members may create pipelines. |
| `members_can_create_suites` | Whether team members may create test suites. |
| `members_can_create_registries` | Whether team members may create package registries. |
| `members_can_destroy_registries` | Whether team members may delete package registries. |
| `members_can_destroy_packages` | Whether team members may delete packages from a registry. |
| `created_at` | Date and time the team was created. |
| `created_by_name` | Display name of the user who created the team. Empty when Buildkite created the team. |
