# SailPoint Supabase Connector Documentation > Supabase Connector Documentation # Documentation # Connecting SailPoint and Supabase To connect SailPoint to the source, perform the following tasks: ## Adding and Configuring 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. Go to **Admin \> Connections \> Sources**. 2. Select **Create New**. 3. Search for a source type and select **Actions**. 4. In the **Actions** dropdown, select the setup method: - **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** - Provide detailed basic configuration to create the source. Once the source is created, continue with source setup. ### Express Setup 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** > > Source name must be unique. 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** page. 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. ### Standard Setup Configure more detailed settings relative to Express Setup. 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. Here, continue to configure your connected source. ## 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 descriptive **Source Name** for the connection. 2. Enter the **Source Description** that provides details necessary to distinguish it from similar connection sources. 3. In **Source Owner**, begin typing the name of the source owner. 4. (Optional) Select the appropriate **Governance Group for Source Management** from the dropdown list. For more information about governance groups, refer to [Associating Governance Groups with a Source](). 5. Select **Create Manual Work Items** to enable the source to support additional source management features such as creating accounts and access profile management. > **Important** > > Once you enable this feature, it can't be disabled. For more information on manual work items, refer to [Work Items](). For more information on SailPoint features, refer to [SailPoint Identity Services](). 6. Select **Save**. ## Connection Settings Configure a secured, direct connection to the source. 1. Enter the Supabase Management API base endpoint as **Base URL**. For example, `https://api.supabase.com`. 2. Enter the organization slug as **Organization Slug**. For example, `abcdefghijklmnopqrst`. 3. Enter the project ref as **Project Ref**. For example, `abcdefghijklmnopqrst`. 4. Enter the personal access token as **Access Token**. 5. Select **Save**. ## 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 Supabase 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](). > [!NOTE] > > These resources do not define owner correlation. The API key and secret list endpoints do not support pagination. Each API key is identified by `id` and displayed by `name`. Each secret is identified and displayed by `name`. | Dataset name | Associated resources | Dataset ID | Aggregation schedule | | --- | --- | --- | --- | | **API Key** | API Key | `supabase:api-key` | Every 12 hours (`0 */12 * * *`) | | **Secret** | Secret | `supabase:secret` | Every 12 hours (`0 */12 * * *`) | For resource schema attributes, refer to [Supported Resources](<#supported-resources>), [API Key Attributes](<#api-key-attributes>), and [Secret Attributes](<#secret-attributes>). ### Dataset Aggregations Dataset aggregation collects resource objects from the managed system and loads them into SailPoint. Repeat the configuration for each dataset on the source. ### Configuring Dataset Aggregation To configure dataset aggregation for a dataset: 1. Go to **Admin \> Connections \> Sources**, and open your source. 2. Go to **Dataset Management \> Datasets**. 3. Select the dataset you want to configure. 4. Select the **Dataset Aggregations** tab. On the **Dataset Aggregations** tab, configure how resource objects from the selected dataset are aggregated into SailPoint. The tab contains **Scheduled Aggregations**, **Manual Aggregation**, and **Latest Aggregation**. #### Scheduled Aggregations Scheduled aggregations run on a schedule to keep the dataset synchronized with the managed system. 1. On the **Dataset Aggregations** tab, select **Enable Schedule** to turn on scheduled aggregations. When scheduled aggregations are enabled, SailPoint aggregates all resource objects in the dataset on the configured schedule. #### Manual Aggregation Manual aggregation runs once and collects all resource objects in the dataset. 1. On the **Dataset Aggregations** tab, select **Start Aggregation**. SailPoint starts the aggregation immediately. When the run completes, results appear in the **Latest Aggregation** section. #### Viewing Aggregation Results After an aggregation completes, review its status in the **Latest Aggregation** section on the **Dataset Aggregations** tab. The **Latest Aggregation** section shows: - **Start Time** - when the aggregation started - **Resource Objects Scanned** - the number of resource objects the aggregation processed - **Status** - whether the aggregation succeeded or failed Select **Details** to view additional information about the most recent run. To view prior runs, select **Aggregation History**. ## Supported Resources 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. Under **Dataset Management** \> **Resources**, the Supabase source lists each object type that is aggregated. Select a resource to review its schema on the **Schema** tab. | Resource name | Resource type | Resource ID | Identity attribute | Display attribute | | --- | --- | --- | --- | --- | | **API Key** | `std:credential` | `supabase:api-key` | `id` | `name` | | **Secret** | `std:credential` | `supabase:secret` | `name` | `name` | For the complete resource schemas, refer to [API Key Attributes](<#api-key-attributes>) and [Secret Attributes](<#secret-attributes>). ### Owner Correlation These resources do not define owner correlation. For more information, refer to [Owner Correlation](). ## API Key Attributes Use the following schema attributes for the **API Key** resource in the **API Key** dataset. A project API key is a stored credential that an application or service presents when it calls the project. > [!NOTE] > > Do not map `api_key` or `prefix`. Call without `reveal=true`. Endpoint does not support pagination. | Attribute Name | Description | | --- | --- | | id | Unique identifier of the API key. Resource ID. A legacy key uses anon or service\_role. A publishable or secret key uses a UUID. | | name | Display name of the key. Display attribute. | | type | Key kind: legacy, publishable, or secret. | | description | Text set on the key. Null when none was set. | | hash | Hash of the key value. This is not the key itself. | | secret\_jwt\_template.role | Postgres role embedded in a secret key, usually service\_role. Null on a publishable key. Absent on a legacy key. | | inserted\_at | Time the key was created. Present on publishable and secret keys. | | updated\_at | Time the key was last changed. Present on publishable and secret keys. | ## Secret Attributes Use the following schema attributes for the **Secret** resource in the **Secret** dataset. An Edge Function secret is a stored name and value that a function reads with no person present. > [!NOTE] > > Do not map `value`. Endpoint does not support pagination. | Attribute Name | Description | | --- | --- | | name | Name of the secret. Resource ID and display attribute. There is no separate id. | | updated\_at | Time the secret was last changed. | # Integrating SailPoint with Supabase Supabase is a hosted Postgres platform. People belong to an organization and receive an organization role. Applications call a project with a long-lived API key. Edge Functions read project secrets and use those values to call other systems. The organization slug identifies the organization. The project ref identifies the project. This document covers how to configure a new direct connection between SailPoint and Supabase for Quick Compliance. For a reference to the terminology specific to SailPoint products, refer to [Source and Connector Definitions](). > [!NOTE] > > To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes]() page. ## Supported Features The Supabase connector supports the following: ### Account Management - Aggregate Users ### Entitlement Management - Aggregate Roles ### Non-Human Identity Discovery - Aggregate API Keys - Aggregate Secrets (Edge Function secrets) > [!NOTE] > > A project API key is a stored credential that an application or service presents when it calls the project. An Edge Function secret is a stored name and value that a function reads with no person present. API keys and secrets are aggregated as credential resources through Dataset Management. They stay out of user account aggregation. These resources do not define owner correlation. > [!NOTE] > > Do not map `api_key`, `prefix`, or secret `value`. The API key and secret list endpoints do not support pagination. Do not grant **API Key Secrets** on the personal access token. > [!NOTE] > > This connector is read-only. It supports test connection, account aggregation, entitlement aggregation, and dataset aggregation for Quick Compliance. Provisioning, de-provisioning, and write operations are not supported. > [!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. ## Prerequisites Before you configure the Supabase connector, ensure the following requirements are met: 1. Sign in to Supabase. 2. Copy the organization slug from the dashboard URL. The slug is the value after `org/`. For example, in `https://supabase.com/dashboard/org/fxfbbnavmcftagaftqtx`, the organization slug is `fxfbbnavmcftagaftqtx`. 3. Open the project and copy the project ref. The project ref is the 20-character value after `project/`. For example, in `https://supabase.com/dashboard/project/abcdefghijklmnopqrst`, the project ref is `abcdefghijklmnopqrst`. 4. Create a personal access token from the account access tokens page. Supabase shows the token only once. Store it securely. Grant **Organization Members: Read**, **API Keys: Read**, and **Edge Function Secrets: Read**. Do not grant **API Key Secrets**. 5. Record the following values for connector configuration: - **Base URL** - **Organization Slug** - **Project Ref** - **Access Token** For more information, refer to the [Supabase Management API]() documentation. > [!NOTE] > > The linked document is not maintained by SailPoint and is subject to change without notice. ## Required Permissions Authenticate with a Bearer personal access token that can list organization members, organization roles, API keys (without key values), and Edge Function secrets. The API can return the secret value. The connector must not map that field. Do not grant **API Key Secrets** on the token. # 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]() for more information. > - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified. The Supabase connector uses the following default correlation and object configurations. ## 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]() for more information. ### Default Account ID SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as *account IDs*. > [!CAUTION] > > Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts. > > To resolve issues caused by changing account IDs, reconfigure them to their default values. The following table lists the default account IDs for this connector: | Account ID | Schema Object Type | Display Attribute | Correlation Attribute | | --- | --- | --- | --- | | id | Account | primary\_email | Unique email of the user. | ### Default Account Attributes The Supabase 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 | | --- | --- | | id | Unique ID of the member. | | primary\_email | Unique email of the member. | | username | Username of the member. | | mfa\_enabled | Whether multi-factor authentication is enabled for the member. | | is\_sso\_user | Whether the member signs in through SSO. | | avatar\_url | Avatar URL of the member. | | roles | Role names assigned to the member. | ## 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]() 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. | Attribute Name | Description | | --- | --- | | name | Name of the role. It acts as the Entitlement ID and the Entitlement Name. The documented example is developer. There is no separate id. | | type | Type of the role |