> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcollate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Alation Hybrid Runner

> Connect Alation to Collate seamlessly with our comprehensive connector guide. Learn setup, configuration, and metadata synchronization steps.

export const ConnectorDetailsHeader = ({name, icon, stage, availableFeatures, unavailableFeatures = [], availableFeaturesCollate = []}) => {
  const showSubHeading = availableFeatures?.length > 0 || unavailableFeatures?.length > 0 || availableFeaturesCollate?.length > 0;
  const totalAvailableFeatures = [...availableFeatures || [], ...availableFeaturesCollate || []];
  return <div className="container">
      <div className="Heading">
        <div className="flex items-center gap-3">
          {icon && <div className="IconContainer">
              <img src={icon} alt={name} noZoom className="ConnectorIcon" />
            </div>}
          <h1 className="ConnectorName">{name}</h1>
          <span className={`StageBadge ${stage === 'PROD' ? 'prod' : 'beta'}`}>
            {stage}
          </span>
        </div>
      </div>
      {showSubHeading && <div className="SubHeading">
          <div className="FeaturesHeading">Feature List</div>
          <div className="FeaturesList">
            {totalAvailableFeatures.map(feature => <div className="FeatureTag AvailableFeature" key={feature}>
                ✓ {feature}
              </div>)}
            {unavailableFeatures.map(feature => <div className="FeatureTag UnavailableFeature" key={feature}>
                ✕ {feature}
              </div>)}
          </div>
        </div>}
    </div>;
};

<ConnectorDetailsHeader icon="/public/images/connectors/alation.webp" name="Alation" stage="PROD" availableFeatures={["Metadata"]} unavailableFeatures={[]} />

This section provides guides and references to use the Alation connector.
Configure and schedule Alation metadata workflow from the Collate UI:

* [Requirements](#requirements)
* [Data Mapping and Assumptions](#data-mapping-and-assumptions)
* [Metadata Ingestion](#metadata-ingestion)
* [Troubleshooting](/ai-2-0/connectors/metadata/alation/troubleshooting)

## Requirements

Follow the official documentation to [generate an API Access Token](https://developer.alation.com/dev/docs/authentication-into-alation-apis#create-an-api-access-token).

## Data Mapping and Assumptions

Following entities are supported and will be mapped to the Collate entities as shown below.

| Alation Entity               | Collate Entity            |
| :--------------------------- | :------------------------ |
| Data Source (OCF and Native) | Database Service          |
| Data Source (OCF and Native) | Database                  |
| Schema                       | Schema                    |
| Table                        | Table                     |
| Columns                      | Columns                   |
| Custom Fields                | Custom Properties         |
| Tags                         | Tags                      |
| BI Servers                   | Dashboard Services        |
| Dashboard DataSource         | Dashboard DataModel       |
| Folder                       | Dashboard                 |
| Report                       | Chart                     |
| Users/Groups                 | Users/Teams               |
| Domains/Subdomains           | Domains/Subdomains        |
| Knowledge Articles           | Knowledge Center Articles |

* Since Alation does not have a concept of a Service entity, the Data Sources (OCF and Native) will be mapped to Database Service and Database in Collate. Hence, for each Data Source in Alation, there will be one Database Service and one Database in Collate.
* Custom fields will have a 1:1 mapping for all the entities except for Columns since Collate does not support custom properties for columns.
* Alation has two fields for descriptions i.e. `descriptions` and `comments`. These fields will be combined under one field `description` in Collate for all the entities.
* Utilize the databaseFilterPattern (datasource in Alation), schemaFilterPattern, and tableFilterPattern to apply filters to Alation entities. Provide the `ids` of the datasource, schemas, and tables for the Alation entities in the respective fields.

## Metadata Ingestion

To ingest metadata from Alation, you need to create a service connection. The service connects Alation with Collate. Once you create a service, Collate automatically starts ingesting metadata.

### Step 1: Add New Service

1. In the left navigation, click **Connections**.
2. On the **Connections** page, click **Add New Service**.

<img src="https://mintcdn.com/collatedocs/bv5oe4uRjuorTJO1/public/images/ai-2.0/connectors/metadata-ingestion/add-new-service.png?fit=max&auto=format&n=bv5oe4uRjuorTJO1&q=85&s=733cef1141ef13d318634aa9f407eb2b" alt="Add New Service" width="2992" height="1256" data-path="public/images/ai-2.0/connectors/metadata-ingestion/add-new-service.png" />

### Step 2: Select a Service and Connector

From the service type dropdown, select **Metadata Services**, then click the **Alation** connector tile.

<img src="https://mintcdn.com/collatedocs/tVR0kaoXvgs3p2Wx/public/images/ai-2.0/connectors/metadata-ingestion/Metadata/select-service/alation.png?fit=max&auto=format&n=tVR0kaoXvgs3p2Wx&q=85&s=6292cd0e005e137d3cdbc3bf9dfd9509" alt="Select Service" width="2372" height="886" data-path="public/images/ai-2.0/connectors/metadata-ingestion/Metadata/select-service/alation.png" />

### Step 3: Add Service Name and Description

* Enter a unique, descriptive **Service Name**. Collate identifies services by their service name. Enter a name that distinguishes this deployment from other Alation services you are ingesting metadata from.
* Optional: Enter a **Description** for the service.

<img src="https://mintcdn.com/collatedocs/tVR0kaoXvgs3p2Wx/public/images/ai-2.0/connectors/metadata-ingestion/Metadata/service-name/alation.png?fit=max&auto=format&n=tVR0kaoXvgs3p2Wx&q=85&s=ba91ca3e0ce314985a63c3a406901a84" alt="Add New Service Name" width="1454" height="810" data-path="public/images/ai-2.0/connectors/metadata-ingestion/Metadata/service-name/alation.png" />

<Note>
  **Note**: The service name cannot be changed after it is set.
</Note>

### Step 4: Configure Connection Options

Specify where ingestion runs, provide your source credentials, and verify the connection.

#### Select Ingestion Runner

Select an **Ingestion Runner**: the runner where the ingestion pipeline will execute.

<img src="https://mintcdn.com/collatedocs/bv5oe4uRjuorTJO1/public/images/ai-2.0/connectors/metadata-ingestion/select-ingestion-runner.png?fit=max&auto=format&n=bv5oe4uRjuorTJO1&q=85&s=1249f828648614445e8a976ea1933487" alt="Add Name and Select Ingestion Runner" width="1444" height="506" data-path="public/images/ai-2.0/connectors/metadata-ingestion/select-ingestion-runner.png" />

#### Enter Connection Details

Enter the connection details for Alation. The right-hand panel in the UI displays inline help for each field.

<img src="https://mintcdn.com/collatedocs/tVR0kaoXvgs3p2Wx/public/images/ai-2.0/connectors/metadata-ingestion/Metadata/connection-details/alation.png?fit=max&auto=format&n=tVR0kaoXvgs3p2Wx&q=85&s=8d065d78bc40e950c8b4b4cd7574924c" alt="Configure Service Connection" width="1434" height="1512" data-path="public/images/ai-2.0/connectors/metadata-ingestion/Metadata/connection-details/alation.png" />

* **hostPort**: Host and port of the Alation instance.

```bash theme={null}
host and port (https://xxxx.alationcloud.com:443)
```

* **authType**: Following authentication types are supported:

1. **Basic Authentication**:
   We'll use the user credentials to generate the access token required to authenticate Alation APIs

* **username**: Username of the user.
* **password**: Password of the user.

2. **Access Token Authentication**:
   The access token created using the [steps to create an API access token](https://developer.alation.com/dev/docs/authentication-into-alation-apis#create-an-api-access-token) can directly be entered. We'll use that directly to authenticate the Alation APIs

* **accessToken**: Generated access token

#### For Alation backend database Connection:

Alation APIs do not provide some of the metadata. We extract this metadata directly from Alation's backend database by querying the tables.
Note that this is an optional configuration, and if it is not provided, primary metadata will still be ingested.
Below is the metadata fetched from the Alation database:
`1. User and Group Relationships`
Choose either postgres or mysql connection depending on the db:

1. Postgres Connection

* **username**: Specify the user to connect to Postgres. Make sure the user has select privileges on the tables of the Alation schema.
* **password**: Password to connect to Postgres.
* **hostPort**: Enter the fully qualified hostname and port number for your Postgres deployment in the Host and Port field.
* **database**: Initial Postgres database to connect to. Specify the name of the database associated with the Alation instance.

2. MySQL Connection

* **username**: Specify the user to connect to MySQL. Make sure the user has select privileges on the tables of the Alation schema.
* **password**: Password to connect to MySQL.
* **hostPort**: Enter the fully qualified hostname and port number for your MySQL deployment in the Host and Port field.
* **databaseSchema**: Initial MySQL database to connect to. Specify the name of the database schema associated with the Alation instance.
* **projectName**: Project name can be anything, for example `Prod` or `Demo`. It will be used while creating the tokens.
* **paginationLimit**: Pagination limit used for Alation APIs pagination. By default is set to 10.
* **includeUndeployedDatasources**: Specifies if undeployed datasources should be included while ingesting. By default is set to `false`.
* **includeHiddenDatasources**: Specifies if hidden datasources should be included while ingesting. By default is set to `false`.
* **ingestUsersAndGroups**: Specifies if users and groups should be included while ingesting. By default is set to `true`.
* **ingestKnowledgeArticles**: Specifies if knowledge articles should be included while ingesting. By default is set to `true`.
* **ingestDatasources**: Specifies if databases, schemas and tables should be included while ingesting. By default is set to `true`.
* **ingestDomains**: Specifies if domains and subdomains should be included while ingesting. By default is set to `true`.
* **ingestDashboards**: Specifies if BI sources and dashboards should be included while ingesting. By default is set to `true`.
* **alationTagClassificationName**: Specify the classification name under which the tags from Alation will be created in Collate. By default, it is set to `alationTags`.
* **connectionArguments**: These are additional parameters for Alation. If not specified the ingestion will use the predefined pagination logic.
  The following arguments are intended to be used in conjunction and are specifically for Alation DataSource APIs:
* skip: This parameter determines the count of records to bypass at the start of the dataset. When set to 0, as in this case, it means that no records will be bypassed. If set to 10, it will bypass the first 10 records.
* limit: This argument specifies the maximum number of records to return. Here, it's set to 10, meaning only the first 10 records will be returned.
  To perform incremental ingestion, these arguments should be used together. For instance, if there are a total of 30 datasources in Alation, the ingestion can be configured to execute three times, with each execution ingesting 10 datasources.
* 1st execution: `{"skip": 0, "limit": 10}`
* 2nd execution: `{"skip": 10, "limit": 10}`
* 3rd execution: `{"skip": 20, "limit": 10}`

#### Advanced Configuration

Database Services have an Advanced Configuration section, where you can pass extra arguments to the connector and, if needed, change the connection Scheme. This would only be required to handle advanced connectivity scenarios or customizations.

* **Connection Options (Optional)**: Enter the details for any additional connection options that can be sent to database during the connection. These details must be added as Key-Value pairs.
* **Connection Arguments (Optional)**: Enter the details for any additional connection arguments such as security or protocol configs that can be sent during the connection. These details must be added as Key-Value pairs.

<Tip>
  **Tip**: When using a **Hybrid Ingestion Runner**, any sensitive credential fields—such as passwords, API keys, or private keys—must reference secrets using the following format:

  ```
  password: secret:/my/database/password
  ```

  This applies **only to fields marked as secrets** in the connection form (these typically mask input and show a visibility toggle icon).
  For more information about managing secrets in hybrid setups, see the [Hybrid Ingestion Runner Secret Management Guide](/ai-2-0/getting-started/lets-get-started/ingest-your-data/hybrid-ingestion-runner#manage-secrets)
</Tip>

#### Test Connection

Once the credentials have been added, click on **Test Connection** and **Save** the changes.

<img src="https://mintcdn.com/collatedocs/bv5oe4uRjuorTJO1/public/images/ai-2.0/connectors/metadata-ingestion/test-connection.png?fit=max&auto=format&n=bv5oe4uRjuorTJO1&q=85&s=3365cff7bb9d82c85a2ff9ab559d6f11" alt="Test Connection" width="1446" height="188" data-path="public/images/ai-2.0/connectors/metadata-ingestion/test-connection.png" />

### Step 5: Configure Ingestion Options

In the **What to Ingest** step, configure the metadata ingestion pipeline settings, then click **Create & Deploy**.

Collate creates the service connection and automatically triggers the first metadata ingestion run. In AI 2.0, ingestion is managed by the Auto Pilot app — you do not need to schedule a separate pipeline.

After deployment, you can monitor the ingestion status by navigating to **Connections**, selecting your service, and viewing the ingestion pipeline.

<Tip>
  **Tip**: If [AutoPilot](/ai-2-0/admin-guide/applications/autopilot) is enabled, usage tracking, data lineage, and other downstream workflows start automatically after the first metadata ingestion completes.
</Tip>

## Configure Metadata Agent and Schedule Ingestion

The **Metadata Agent** extracts databases, schemas, tables, stored procedures, and other structural metadata from your connected data source and keeps your Collate catalog in sync. It powers discovery, lineage, and governance across your data assets.

When you click **Create & Deploy**, Collate automatically deploys a Metadata Agent for this service and triggers the first ingestion run. View its status and run history from the **Agents** tab on the service detail page.

To configure the additional Metadata Agent and schedule ingestion, follow these steps:

1. In the left navigation, click **Connections** and select your service.

2. Click the **Agents** tab.

3. Click **Add Agent** and select **Metadata** from the dropdown.
   <img src="https://mintcdn.com/collatedocs/bv5oe4uRjuorTJO1/public/images/ai-2.0/connectors/metadata-ingestion/add-metadata-agent.png?fit=max&auto=format&n=bv5oe4uRjuorTJO1&q=85&s=accad7d1c4ddf209781bff851d51d464" alt="Add Metadata Agent" width="2398" height="1144" data-path="public/images/ai-2.0/connectors/metadata-ingestion/add-metadata-agent.png" />
   For some services, the dropdown is not available and clicking **Add Agent** takes you directly to the agent configuration page.

4. On the **Configure Ingestion** page, do the following and click **Next**.

   * **Name this Ingestion**: Enter a unique recognizable name for this ingestion pipeline.

     <img src="https://mintcdn.com/collatedocs/bv5oe4uRjuorTJO1/public/images/ai-2.0/connectors/metadata-ingestion/metadata-agent-name.png?fit=max&auto=format&n=bv5oe4uRjuorTJO1&q=85&s=d5ec1f0f3742cadab8cd54c602c97239" alt="Name this Ingestion" width="1578" height="644" data-path="public/images/ai-2.0/connectors/metadata-ingestion/metadata-agent-name.png" />

   * **Agent Setup**: Configure the core parameters for this agent. The following fields are available:

     | Field                       | Default | Description                                                                                                                                                                          |
     | --------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
     | Default Owner               | —       | Default owner applied to all entities when no specific owner is configured. Accepts a user or team name/email.                                                                       |
     | Service Owner               | —       | Owner assigned to the service entity.                                                                                                                                                |
     | Database Owner              | —       | Owner assigned to all ingested databases. Accepts a single owner (user or team) for all databases.                                                                                   |
     | Database Schema Owner       | —       | Owner assigned to all ingested schemas. Accepts a single owner (user or team) for all schemas.                                                                                       |
     | Table Owner                 | —       | Owner assigned to all ingested tables. Accepts a single owner (user or team) for all tables.                                                                                         |
     | Enable Inheritance          | On      | Enable child entities to inherit owner from parent entities when they don't have a specific owner configured.                                                                        |
     | Query Log Duration          | 1       | Number of days to look back in query logs when processing stored procedure results.                                                                                                  |
     | Query Parsing Timeout Limit | 300     | Timeout in seconds for parsing a single query.                                                                                                                                       |
     | Number of Threads           | 1       | Number of threads to use for parallel table ingestion.                                                                                                                               |
     | JSON Schema Sample Size     | 10      | Number of rows to sample for inferring JSON schema. A larger sample size provides more accurate schema inference but increases query time.                                           |
     | Extract JSON Schema         | Off     | Extract JSON schema from JSON columns by sampling data. Requires SELECT permission on the tables. If disabled or SELECT fails, JSON columns are ingested without schema information. |

     <img src="https://mintcdn.com/collatedocs/tVR0kaoXvgs3p2Wx/public/images/ai-2.0/connectors/metadata-ingestion/Metadata/metadata-agent-setup.png?fit=max&auto=format&n=tVR0kaoXvgs3p2Wx&q=85&s=0c8fa85c1f1155c3a2c15448f2d9e648" alt="Agent Setup" width="1560" height="1456" data-path="public/images/ai-2.0/connectors/metadata-ingestion/Metadata/metadata-agent-setup.png" />

   * **Filter Patterns**: Apply include or exclude rules to scope which databases, schemas, tables, and stored procedures this agent ingests. These follow the same filter options described in **Step 5**.

     <img src="https://mintcdn.com/collatedocs/tVR0kaoXvgs3p2Wx/public/images/ai-2.0/connectors/metadata-ingestion/Metadata/metadata-filter-pattern.png?fit=max&auto=format&n=tVR0kaoXvgs3p2Wx&q=85&s=2e57a6ba046b6bf43f413fa2e64523b4" alt="Filter Patterns" width="1554" height="1040" data-path="public/images/ai-2.0/connectors/metadata-ingestion/Metadata/metadata-filter-pattern.png" />

   * **Scope & Behaviour**: Control what metadata to include and how to handle deletions. Toggle each option on or off based on your needs:

     | Toggle                         | Default | Description                                                                                                                                                            |
     | ------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
     | Enable Debug Log               | Off     | Sets the ingestion log level to DEBUG. Useful for troubleshooting.                                                                                                     |
     | Mark Deleted Tables            | On      | Soft-delete tables in Collate when they are removed from the source. Applies only within the currently ingested schema.                                                |
     | Mark Deleted Stored Procedures | On      | Soft-delete stored procedures in Collate when they are removed from the source. Associated entities like lineage are also deleted.                                     |
     | Mark Deleted Schemas           | Off     | Soft-delete schemas and all their child assets when removed from the source.                                                                                           |
     | Mark Deleted Databases         | Off     | Soft-delete databases and all their child assets when removed from the source.                                                                                         |
     | Include Tables                 | On      | Ingest table metadata from the source. Turn off to skip tables entirely.                                                                                               |
     | Include Tags                   | On      | Ingest tags from the source.                                                                                                                                           |
     | Include Custom Properties      | Off     | Ingest connector-specific custom properties onto entities.                                                                                                             |
     | Include Owners                 | Off     | Assign owners to ingested entities when the source owner's email matches a user in Collate. Does not overwrite an existing owner.                                      |
     | Include Stored Procedures      | On      | Ingest stored procedure metadata.                                                                                                                                      |
     | Include DDL Statements         | Off     | Ingest DDL statements alongside table metadata.                                                                                                                        |
     | Override Metadata              | Off     | When on, source values overwrite existing descriptions, tags, owners, and display names in Collate. When off, Collate only updates fields that have no existing value. |

     <img src="https://mintcdn.com/collatedocs/tVR0kaoXvgs3p2Wx/public/images/ai-2.0/connectors/metadata-ingestion/Metadata/metadata-scope-behaviour.png?fit=max&auto=format&n=tVR0kaoXvgs3p2Wx&q=85&s=087b91c3769208f9b4403b347433c48d" alt="Scope & Behaviour" width="1568" height="1352" data-path="public/images/ai-2.0/connectors/metadata-ingestion/Metadata/metadata-scope-behaviour.png" />

5. On the **Schedule Interval** page, set when the agent runs:

   * **Schedule**: Choose a preset interval (Hourly, Daily, Weekly, Monthly) or enter a custom cron expression.
   * **On-Demand**: No automatic schedule; trigger the agent manually when needed.

   <img src="https://mintcdn.com/collatedocs/bv5oe4uRjuorTJO1/public/images/ai-2.0/connectors/metadata-ingestion/schedule.png?fit=max&auto=format&n=bv5oe4uRjuorTJO1&q=85&s=25cc1d78f6f2a8bd115830d034d1d8d1" alt="Schedule Interval" width="1588" height="1044" data-path="public/images/ai-2.0/connectors/metadata-ingestion/schedule.png" />

6. Click **Add** to deploy the agent.

## Troubleshooting

<Columns cols={2}>
  <Card title="Alation Troubleshooting" href="/ai-2-0/connectors/metadata/alation/troubleshooting">
    Learn more about how to troubleshoot common Alation connector issues and resolve configuration or ingestion errors.
  </Card>
</Columns>
