# Integrating SailPoint with PactFlow

PactFlow is a contract testing platform that helps development teams publish, verify, and manage API contracts using consumer-driven contract testing. It provides centralized contract management, provider verification workflows, and role-based access control for users and teams across an organization. This document provides instructions to configure a new direct connection to a PactFlow source. For a reference to the terminology specific to SailPoint products, refer to [Source and Connector Definitions](<https://documentation.sailpoint.com/saas/help/sources/index.html#source-and-connector-definitions>).

> [!NOTE]
>
> To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes](<https://community.sailpoint.com/release-notes/saas>) page.

## Supported Features

The PactFlow connector supports the following:

### Account Management

- Aggregate Users

### Entitlement Management

- Aggregate Roles

> [!IMPORTANT]
>
> Quick Compliance connectors have the following manual aggregation limits within a 24-hour period:
>
> - **Organization Admins**: Limited to 3 manual account or entitlement aggregations per day per source. This limit is cumulative across all admins in the organization.
> - **Regular Users**: Limited to 1 manual account or entitlement aggregation per day per source.
>
> These limits ensure that individual compliance statuses are kept up to date while maintaining continuous compliance monitoring. If you need to run additional aggregations beyond these limits, contact SailPoint Support.

### Pagination

The PactFlow source uses numeric page-based pagination for user aggregation. Each request to `GET /admin/users` accepts `page` and `size` query parameters. PactFlow pages are 1-indexed. The connector increments the page number after each request and continues paging until the number of records returned is less than the configured page `size`, at which point aggregation terminates.

The `GET /admin/roles` endpoint is not paginated. The connector retrieves all roles in a single request.

## Prerequisites

Ensure the following prerequisites are met before proceeding with the configuration:

1. Identify your PactFlow tenant subdomain. Each PactFlow organization uses a tenant-specific API endpoint in the format `https://<your-tenant>.pactflow.io`. There is no default base URL.
2. Sign in to PactFlow with an administrator user account that can view users and roles.
3. Go to **Settings \> API Tokens** and create an API token. Select **read only** or **read/write** based on the operations you require.
4. Copy and securely store the following values for SailPoint configuration:

   - **Base URL** - `https://<your-tenant>.pactflow.io`
   - **API Key**

> [!NOTE]
>
> The PactFlow API is a HAL (Hypertext Application Language) API. Set the `Accept` header to `application/hal+json` on API requests.

For more information about getting started with the PactFlow API, refer to the [PactFlow getting started documentation](<https://smartbear.portal.swaggerhub.com/pactflow/default/getting-started>).

> [!NOTE]
>
> The linked document is not maintained by SailPoint and is subject to change without notice.

## Required Permissions

The API token must include permissions to read users and roles. The following permissions are required for this connector:

| Permission | Description |
| --- | --- |
| `user:read:*` | View users |
| `role:read:*` | View roles |

The **Administrator** role includes both `user:read:*` and `role:read:*` permissions.

> [!CAUTION]
>
> If you use a read-only API token, the connector reads data only. Write operations, such as provisioning, updates, or entitlement assignments, are not allowed.
