# SailPoint CircleCI Connector Documentation > CircleCI Connector Documentation # Documentation # Connecting SailPoint and CircleCI To connect SailPoint with CircleCI, perform the following tasks: ## Adding the Source in SailPoint To connect to SailPoint, perform the following steps. Once the connection is made, you can configure it to meet your company's needs. 1. Sign in to SailPoint. 2. Go to **Admin \> Connections \> Sources**. 3. Select **Create New**. 4. Search for the connector by entering the name in the search box, and then select **Actions**. 5. In the **Actions** dropdown list, select the setup method: - [**Express Setup**](<#configuring-a-source-using-express-setup>) - Quickly create a read-only connection to your target system by providing minimal configurations and authentication. On completion, aggregation is automatically started. > **Note** > > Express Setup supports Credential Providers. For information on supported credential providers and configuration, refer to [Credential Providers](). For more information, contact your SailPoint Customer Service Manager. - [**Standard Setup**](<#configuring-a-source-using-standard-setup>) - Provide detailed basic configuration to create the source. Once the source is created, continue with source setup. ### Configuring a Source Using Express Setup Express Setup minimizes the initial configuration process so you can quickly connect the application and immediately begin aggregating user account and entitlement data. 1. Review the directions and select **Start Express Setup**. 2. Review the pre-populated **Source Name**, **Source Owner**, and **Description**. To update, select **Edit**. > **Note** > > The source name must be unique. You can change these settings later in the source configuration. 3. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider. > **Note** > > To add a Credential Provider in SailPoint, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](). 4. Configure the authentication to allow SailPoint to connect to the source. For more information, refer to the **Connection Settings** section. 5. Select **Finish**. After a successful test connection, the system creates your source and prompts you to run an aggregation. - If you want to aggregate now, select **Aggregate**. - To see the latest account aggregation history, go to **Account Management \> Account Aggregation**. - To see the list of aggregated source accounts, go to **Account Management \> Accounts**. - If you want to aggregate later, select **Exit**. This returns you to the **Sources** page. Your new source is listed, but contains no accounts or aggregation history yet. ### Configuring a Source Using Standard Setup Use Standard Setup to configure the connector for full feature support. 1. In the **Source Name** field, enter a unique and descriptive name for your source. Source names cannot exceed 128 characters. 2. In the **Description** field, provide additional details about the source to help distinguish it from similar sources. This field allows a maximum of 2,000 characters. 3. In the **Source Owner** field, begin typing the name of an owner. Matches appear after you type two or more letters. For more information, refer to [Assigning a Source Owner](). 4. (Optional) Select a governance group to grant its members [source]() or [role]() sub-admin level oversight of the source and its access. For more information, refer to [Creating and Managing Governance Groups](). 5. If this source represents a primary system containing your organization's personnel records, select the **Authoritative Source** checkbox. For more information, refer to [Creating Identity Profiles](). 6. Select **Continue**. The source is created, and you are navigated to the **Source Setup \> Base Configuration** page. Continue to configure your connected source there. ## Base Configuration Provide the base configuration parameters. Information you entered in the Create New Source dialog is automatically entered into the fields in the Base Configuration page. You can edit this information if necessary. 1. Enter a unique name and description for the source. 2. In the **Source Owner** dropdown list, select the identity that owns this source. - To find a source owner, begin entering their name. 3. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider. > **Note** > > To add a credential provider, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](). 4. Configure the authentication to allow SailPoint to connect to the source. Refer to [Connection Settings](<#connection-settings>) for more information. 5. (Optional) In the **Governance Group for Source Management** dropdown list, select a governance group to associate with this source. For more information about governance groups, refer to [Associating Governance Groups with a Source](). 6. (Optional) Select **Create Manual Work Items** to allow the connector to create manual work items for certain operations. You can also enable this option so the source supports additional source management features such as creating accounts and access profile management. > **Important** > > Once you enable this feature, you cannot disable it. For more information on manual work items in SailPoint, refer to [Work Items](). For more information on SailPoint features, refer to [SailPoint Identity Services](). 7. Select **Save**. ## Connection Settings Enter the values required to connect to CircleCI. | Field | Description | | --- | --- | | **CircleCI API Base URL** | Enter the CircleCI API v2 URL. The default is `https://circleci.com/api/v2`. Override this value only for CircleCI Server. This field is required. | | **Personal API Token** | Enter the Personal API Token that you created for the integration user. The connector sends this token in the `Circle-Token` header. This field is required. | | **Organization ID (UUID)** | Enter the UUID of the CircleCI organization. The organization that CircleCI returns must match this value. This field is required. | | **Project Slugs (comma-separated)** | Enter one or more project slugs in `vcs/org/repo` format. Separate multiple slugs with commas. The token must be able to read at least one slug. This field is required. | ## Review and Test Perform a test to confirm the connection to SailPoint. 1. Go to **Review and Test**. 2. Confirm that the entries in each field are correct. If you note any mistakes, return to the section and make corrections. 3. Select **Test Connection**. ## SailPoint Application Onboarding SailPoint application onboarding enables you to easily onboard new applications and create sources following the successful onboarding of a discovery source. To use this feature, continue to **Discovered Applications** in the SailPoint user interface. For more information, refer to [Application Onboarding]() in the SailPoint SaaS documentation. # Dataset Management Dataset Management lets you review the object types a source collects and control how the source aggregates those objects into SailPoint. Use Dataset Management to view and manage resource attributes, datasets and their resources, enable dataset aggregation schedules, perform manual aggregation, and view aggregation history. > [!NOTE] > > Datasets are also available in SailPoint Agentic Fabric. Contact your Customer Success team and refer to [SailPoint Agentic Fabric]() for more information. For more information, refer to [Managing Datasets and Resources]() for datasets, resources, owner correlation, and aggregation. ## Datasets A *dataset* is a named group of one or more related resources that the source aggregates together. When aggregation runs for a dataset, the source collects all resources in that dataset from the managed system in one aggregation job. Activate or deactivate aggregation at the dataset level, not for individual resources. > [!NOTE] > > Each resource belongs to exactly one dataset for that source. The source defines which resources belong to each dataset. You can enable aggregation and review associated resources, but you cannot create or delete datasets or move resources between them. ### Dataset Aggregation Configure aggregation on the **Dataset Aggregations** tab for each dataset. Configure each dataset separately. During aggregation, your owner correlation rules are automatically applied to link machine identities to their human owners. For more information, refer to [Configuring Dataset Aggregations](). ## Resources A resource defines an object type from the managed system. It specifies the kind of object, the attributes the source collects, and how the source identifies and displays each object. Resources form the building blocks of the data model. In the UI, each resource appears under **Dataset Management** \> **Resources** with its schema. A resource does not run aggregation by itself. The dataset that owns the resource collects it during aggregation. For more information, refer to [Managing Resources](). ### Owner Correlation Configure owner correlation on each resource to link aggregated objects to human owners. If you do not configure owner correlation, or if the mapping produces no match, an owner is not assigned. For more information, refer to [Configuring Owner Correlation](). ## Supported Datasets Go to **Dataset Management \> Datasets** on your CircleCI source to view the datasets the connector aggregates. Select a dataset to review its associated resources and configure aggregation. > [!NOTE] > > Configure aggregation for each dataset separately. For more information, refer to [Dataset Aggregation](). | Dataset name | Associated resources | Dataset ID | Aggregation schedule | | --- | --- | --- | --- | | CircleCI NHI Graph | CircleCI Checkout / SSH / Deploy Key, CircleCI OIDC Custom Claim | `circleci:nhi` | Disabled | The dataset holds CircleCI non-human identity resources: checkout keys and OIDC custom claims. The organization acts as a scope anchor that you supply in connection settings, not as an entitled resource. The aggregation schedule is disabled until you enable it. Set the schedule in **Dataset Management** \> **Datasets**. The dataset uses the `std:test-connection` and `std:resource:list` commands. For resource property and attribute definitions, refer to: - [CircleCI Checkout / SSH / Deploy Key](<#circleci-checkout-ssh-deploy-key>) - [CircleCI OIDC Custom Claim](<#circleci-oidc-custom-claim>) ## Supported Resources Resource schemas appear under **Dataset Management** \> **Resources**. Each resource is read-only. For more information, refer to [Managing Resources](). > [!NOTE] > > When you enable dataset aggregation for a selected dataset, all resources in that dataset are collected at once. Activate or deactivate aggregation at the dataset level, not for individual resources. The CircleCI source lists the following resources. Select a resource to review its schema on the **Schema** tab. | Resource name | Resource type | Resource ID | | --- | --- | --- | | [CircleCI Checkout / SSH / Deploy Key](<#circleci-checkout-ssh-deploy-key>) | Credential | `circleci:checkout-key` | | [CircleCI OIDC Custom Claim](<#circleci-oidc-custom-claim>) | Credential | `circleci:oidc-claim` | You supply the organization ID in connection settings as a scope anchor. The connector does not create a resource for the organization. **To review attribute names and descriptions after you create the source:** 1. Go to **Admin** \> **Connections** \> **Sources**. 2. Open your **CircleCI** source. 3. Select **Dataset Management** \> **Resources**. 4. Select a resource. 5. Open the **Schema** tab. Connector-specific attributes are read-only. You can add, edit, or delete custom attributes. ## CircleCI Checkout / SSH / Deploy Key | Property | Value | | --- | --- | | Resource ID | `circleci:checkout-key` | | Dataset ID | `circleci:nhi` | | Name (UI) | CircleCI Checkout / SSH / Deploy Key | | Type (UI) | Credential | | Type (spec) | `std:credential` | | Identity attribute | `identity` | | Display attribute | `fingerprint` | ### Attributes The connector defines its attributes as read-only. You can add, edit, or delete custom attributes. | Attribute | Description | Type | Entitlement | Multi-valued | | --- | --- | --- | --- | --- | | `createdAt` | Creation timestamp. | string | No | No | | `fingerprint` | Key fingerprint. | string | No | No | | `identity` | `#` | string | No | No | | `preferred` | Preferred checkout key flag. | boolean | No | No | | `projectId` | Owning project UUID. | string | No | No | | `projectSlug` | Owning project slug. | string | No | No | | `publicKey` | Public key text. | string | No | No | | `sourceKeyType` | CircleCI source key type. | string | No | No | ## CircleCI OIDC Custom Claim | Property | Value | | --- | --- | | Resource ID | `circleci:oidc-claim` | | Dataset ID | `circleci:nhi` | | Name (UI) | CircleCI OIDC Custom Claim | | Type (UI) | Credential | | Type (spec) | `std:credential` | | Identity attribute | `identity` | | Display attribute | `identity` | ### Attributes The connector defines its attributes as read-only. You can add, edit, or delete custom attributes. | Attribute | Description | Type | Entitlement | Multi-valued | | --- | --- | --- | --- | --- | | `audience` | Configured audiences. | string | No | Yes | | `audienceUpdatedAt` | Audience last updated timestamp. | string | No | No | | `identity` | `org:` or `org:#project:` | string | No | No | | `orgId` | Organization UUID. | string | No | No | | `projectId` | Project UUID (project scope only). | string | No | No | | `ttl` | Configured time to live (TTL). | string | No | No | | `ttlUpdatedAt` | TTL last updated timestamp. | string | No | No | # Integrating SailPoint with CircleCI Use the CircleCI connector to discover non-human identities through CircleCI API v2. The connector uses the organization ID that you configure as a scope anchor, and it aggregates the following resources into the **CircleCI NHI Graph** dataset: - Checkout, SSH, and deploy keys - OIDC custom claims The connector is a read-only NHI source. It does not create organization resources, aggregate users or groups, provision access, or store secret values. > [!NOTE] > > To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes]() page. ## Supported Features | Feature | Description | | --- | --- | | Test connection | Validates the Personal API Token, organization ID, and access to at least one configured project. | | Dataset aggregation | Aggregates CircleCI configuration and activity metadata into the `circleci:nhi` dataset. | ### Non-Human Identity Discovery - Aggregate CircleCI checkout, SSH, and deploy keys and OIDC custom claims Refer to Dataset Management for more information. Refer to [Discovering Potential Non-Human Accounts]() for more information. ## Supported Version The connector supports CircleCI Cloud API v2. The default API base URL is `https://circleci.com/api/v2`. For CircleCI Server deployments that expose the same API v2 endpoints, set **CircleCI API Base URL** to your server URL. ## Prerequisites ### Preparing CircleCI Complete these tasks before you configure the CircleCI source. 1. Sign in to CircleCI with an account that your organization approves for the integration. SailPoint recommends a dedicated automation or machine user. Do not use a personal employee token. 2. Go to **User Settings** \> **Personal API Tokens**, or the equivalent page in your tenant, and create a **Personal API Token**. The connector sends this token in the `Circle-Token` header. 3. Copy the token immediately and store it in your secrets tooling. You enter this value in **Personal API Token** when you configure the source, and SailPoint stores the value encrypted. 4. Grant the token read access to the target organization, including its OIDC custom claims, and to each project that you list in **Project Slugs**. 5. Copy the organization UUID from **Organization Settings** \> **Overview**. 6. Collect each project slug in `vcs/org/repo` format, such as `gh/acme/orders`. > [!IMPORTANT] > > CircleCI API v2 does not support project tokens. It also provides no organization-wide project-list endpoint, so you must supply the project slugs. # Troubleshooting If you encounter any of the following issues or errors, SailPoint recommends that you follow the guidance provided below to resolve the error before contacting SailPoint Support. For issues or errors that are not addressed in this connector guide, refer to the following resources for troubleshooting information: - [SailPoint Identity Services Documentation]() - [SailPoint Support Knowledge Base]() - [SailPoint Developer Community]() ## Debug Logs For information about managing additional source settings, including debug logging and downloading connector logs, refer to [Managing Additional Settings](). ## CircleCI returns 401 **Resolution**: Confirm that **Personal API Token** contains a valid CircleCI token. CircleCI API v2 does not support project tokens. A 401 response stops test connection and aggregation. ## Test connection fails because the organization ID does not match **Resolution**: Copy the UUID from CircleCI **Organization Settings** \> **Overview** and enter it in **Organization ID (UUID)**. The organization that CircleCI returns must match the value that you configure. ## All project slugs are unreadable or invalid **Resolution**: Confirm the slug format, such as `gh/org/repo`, `bb/org/repo`, or the CircleCI GitHub App or GitLab UUID form. Confirm that the token can read at least one configured project. Test connection requires a successful first-page pipeline probe. Empty context or pipeline lists are valid after the project probe succeeds. ## Secret values are unavailable or masked **Resolution**: Expect this behavior. The connector collects metadata only. It does not retrieve context environment variable secrets, and project environment variable and webhook signing secret values remain masked.