# Azure Data Factory

This article outlines the integration with the Azure Data Factory connector, enabling streamlined metadata management through features such as crawling and lineage building (both automatic and manual). It also supports impact analysis and ensures secure authentication via Credential Manager.

<figure><img src="https://1813356899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhTnkoJQml0pok9awFDhx%2Fuploads%2FMuWa6UH7ADGc1n3bxmBw%2Funknown.png?alt=media&#x26;token=a7f218b7-94c8-44e8-8f13-f558a541b24a" alt=""><figcaption></figcaption></figure>

## Overview

### Connector Details

| Connector Category                                                                     | ETL                      |
| -------------------------------------------------------------------------------------- | ------------------------ |
| OvalEdge Release Supported                                                             | Release5.1 to Release7.1 |
| <p>Connectivity</p><p>\[How the connection is established with Azure Data Factory]</p> | REST APIs                |
| Verified Azure Data Factory Version                                                    | V2                       |

{% hint style="info" %}
The Azure Data Factory connector has been validated with the mentioned "Verified Azure Data Factory Versions" and is expected to be compatible with other supported Azure Data Factory versions. If there are any issues with validation or metadata crawling, please submit a support ticket for investigation and feedback.
{% endhint %}

### Connector Features

| Feature                                      | Availability |
| -------------------------------------------- | :----------: |
| Crawling                                     |       ✅      |
| Profiling                                    |      NA      |
| Query Sheet                                  |      NA      |
| Data Preview                                 |      NA      |
| Auto Lineage                                 |       ✅      |
| Manual Lineage                               |       ✅      |
| Secure Authentication via Credential Manager |       ✅      |
| Data Quality                                 |       ❌      |
| DAM (Data Access Management)                 |       ❌      |
| Bridge                                       |       ✅      |

{% hint style="info" %}
'NA' indicates that the respective feature is 'Not Applicable.'
{% endhint %}

## Metadata Mapping

The following objects are crawled from Azure Data Factory and mapped to the corresponding UI assets.

| Azure Data Factory Object | Azure Data Factory Attribute | OvalEdge Attribute                                                   | OvalEdge Category | OvalEdge Type     |
| ------------------------- | ---------------------------- | -------------------------------------------------------------------- | ----------------- | ----------------- |
| Schemas                   | ADF\_Schema                  | **Note**: It is a static name provided in ovaledge not a real schema | Schema            | Schema            |
| Activities                | Dataset Name                 | Datasets                                                             | datasets          | datasets          |
| Activities                | Pipelines                    | Pipelines                                                            | Pipelines         | Pipelines         |
| Activities                | Dataflows                    | Dataflows                                                            | Dataflows         | Dataflows         |
| Activities                | PipelineRuns                 | PipelineRuns                                                         | PipelineRuns      | PipelineRuns      |
| Activities                | PipelineRunParams            | PipelineRunParams                                                    | PipelineRunParams | PipelineRunParams |
| Activities                | Static params                | Static params                                                        | Static params     | Static params     |
| Activities                | Global Params                | Global Params                                                        | Global Params     | Global Params     |
| Activities                | Linked services              | Linked services                                                      | Linked services   | Linked services   |
| Activities                | Activity Datasets            | Activity Datasets                                                    | Activity Datasets | Activity Datasets |

## Set up a Connection

### Prerequisites

The following are the prerequisites to establish a connection:

### Service Account User Permissions

{% hint style="warning" %}
It is recommended to use a separate service account to establish the connection to the data source, configured with the following minimum set of permissions.
{% endhint %}

{% hint style="info" %}
**👨‍💻Who can provide these permissions?** These permissions are typically granted by the Azure Data Factory administrator, as users may not have the required access to assign them independently.
{% endhint %}

| Operation | Object         | Access Permission |
| --------- | -------------- | ----------------- |
| Crawling  | Datasets       | Read              |
| Crawling  | Pipelines      | Read              |
| Crawling  | Dataflows      | Read              |
| Crawling  | Linkedservices | Read              |

### Connection Configuration Steps

{% hint style="warning" %}
Users are required to have the Connector Creator role in order to configure a new connection.
{% endhint %}

1. Log into OvalEdge, go to Administration > Connectors, click **+ (New Connector)**, search for **Azure Data Factory**, and complete the required parameters.

{% hint style="info" %}
Fields marked with an asterisk (\*) are mandatory for establishing a connection.
{% endhint %}

<table><thead><tr><th width="217.75">Field Name</th><th>Description</th></tr></thead><tbody><tr><td>Connector Type</td><td>By default, "Azure Data Factory" is displayed as the selected connector type.</td></tr><tr><td>Credential Manager*</td><td><p>Select the desired credentials manager from the drop-down list. Relevant parameters will be displayed based on the selection.</p><p>Supported Credential Managers:</p><ul><li>OE Credential Manager</li><li>AWS Secrets Manager</li><li>HashiCorp</li><li>Azure Key Vault</li></ul></td></tr><tr><td>License Add Ons</td><td>Select the checkbox for the Auto Lineage Add-On to build data lineage automatically.</td></tr><tr><td>Auto Lineage</td><td>Supported</td></tr><tr><td>Data Quality</td><td>Not Supported</td></tr><tr><td>Data Access</td><td>Not Supported</td></tr><tr><td>Connector Name*</td><td><p>Enter a unique name for the Azure Data Factory connection              </p><p>(Example: "AzureDataFactorydb").</p></td></tr><tr><td>Connector Description</td><td>Enter a brief description of the connector.</td></tr><tr><td>Connector Environment</td><td>Select the environment (Example: PROD, STG) configured for the connector.</td></tr><tr><td>Client Id*</td><td>Enter the Application ID (also known as Client ID) of the registered application. This is a unique identifier for the app in Azure.</td></tr><tr><td>Client Secret*</td><td>Enter the client secret generated for the application. This is utilized to authenticate the application's identity during the token request process.</td></tr><tr><td>Tenant Id*</td><td>Enter the Tenant ID of the Azure Active Directory. This is used for authentication with the Azure AD tenant.</td></tr><tr><td>Subscriber Id*</td><td>Enter the Subscription ID for the Azure account. This is a unique identifier for the Azure subscription.</td></tr><tr><td>Resource Group Name*</td><td>Enter the name of the Resource Group. The name should match the project or deployment requirements.</td></tr><tr><td>API Version*</td><td>Enter the API version.</td></tr><tr><td>Pipeline Types to crawl</td><td>Select the pipeline type from the drop-down list.</td></tr><tr><td>Proxy Enabled*</td><td>Select Yes to route the connection through a configured proxy, or No to connect directly without a proxy.</td></tr></tbody></table>

**Default Governance Roles**

<table data-header-hidden><thead><tr><th width="217.75"></th><th></th></tr></thead><tbody><tr><td>Default Governance Roles*</td><td>Select the appropriate users or teams for each governance role from the drop-down list. All users configured in the security settings are available for selection.</td></tr></tbody></table>

**Admin Roles**

<table data-header-hidden><thead><tr><th width="217.75"></th><th></th></tr></thead><tbody><tr><td>Admin Roles*</td><td>Select one or more users from the dropdown list for Integration Admin and Security &#x26; Governance Admin. All users configured in the security settings are available for selection.</td></tr></tbody></table>

**No of Archive Objects**

<table data-header-hidden><thead><tr><th width="217.75"></th><th></th></tr></thead><tbody><tr><td>No Of Archive Objects*</td><td><p>This shows the number of recent metadata changes to a dataset at the source. By default, it is off. To enable it, toggle the Archive button and specify the number of objects to archive.</p><p>Example: Setting it to 4 retrieves the last four changes, displayed in the 'Version' column of the 'Metadata Changes' module.</p></td></tr></tbody></table>

**Bridge**

<table data-header-hidden><thead><tr><th width="217.75"></th><th></th></tr></thead><tbody><tr><td>Select Bridge*</td><td><p>If applicable, select the bridge from the drop-down list.</p><p>The drop-down list displays all active bridges that have been configured. These bridges facilitate communication between data sources and the system without requiring changes to firewall rules.</p></td></tr></tbody></table>

2. After entering all connection details, the following actions can be performed:
   1. Click **Validate** to verify the connection.
   2. Click **Save** to store the connection for future use.
   3. Click **Save & Configure** to apply additional settings before saving.
3. The saved connection will appear on the Connectors home page.

## Manage Connector Operations

### Crawl

{% hint style="info" %}
To perform crawl operations, users must be assigned the Integration Admin role.
{% endhint %}

The **Crawl/Profile** button allows users to select one or more schemas for crawling.&#x20;

1. Navigate to the Connectors page and click **Crawl/Profile**.
2. Select the schemas to be crawled.
3. The **Crawl** option is selected by default.
4. Click **Run** to collect metadata from the connected source and load it into the **Data Catalog**.
5. After a successful crawl, the information appears in the **Data Catalog > Databases/<>Codes** tab.

The **Schedule** checkbox allows automated crawling at defined intervals, from a minute to a year.

1. Click the **Schedule** checkbox to enable the **Select Period** drop-down.
2. Select a time period for the operation from the drop-down menu.
3. Click **Schedule** to initiate metadata collection from the connected source.
4. The system will automatically execute the **crawl** operation at the scheduled time.

### Other Operations

The Connectors page provides a centralized view of all configured connectors, along with their health status.

**Managing connectors includes:**

* **Connector Health**: Displays the current status of each connector using a green icon for active connections and a red icon for inactive connections, helping to monitor the connectivity with data sources.
* **Viewing**: Click the **Eye** icon next to the connector name to view connector details, including databases, tables, columns, and codes.

**Nine Dots Menu Options:**

To view, edit, validate, build lineage, configure, or delete connectors, click on the Nine Dots menu.

* **Edit Connector**: Update and revalidate the data source.
* **Validate Connector**: Check the connection's integrity.
* **Settings**: Modify connector settings.
  * **Query Policies**: Define query execution rules based on roles.
  * **Connection Pooling**: Configure database connection pool parameters to manage active and idle connections for improved performance.
  * **Lineage**: Select server dialects for parsing and setting connector priority for table lineage.
* **Build Lineage**: Automatically build data lineage using source code parsing.
* **Delete Connector**: Remove a connector with confirmation.

## Connectivity Troubleshooting

If incorrect parameters are entered, error messages may appear. Ensure all inputs are accurate to resolve these issues. If issues persist, contact the assigned support team.

<table><thead><tr><th width="86.5">S.No.</th><th>Error Message(s)</th><th>Error Description &#x26; Resolution</th></tr></thead><tbody><tr><td>1</td><td>Error while validating connection : {"error":"unauthorized_client","error_description":"AADSTS700016: Application with identifier 'e39052e4-a23b-4d74-952e-2643abe27f6' was not found in the directory 'Default Directory'.</td><td><ul><li>Error Description: The provided Client ID is incorrect or not registered in the Azure tenant.</li><li>Resolution: Verify and enter the correct Client ID registered in Azure Active Directory.</li></ul></td></tr><tr><td>2</td><td><p>Error while validating connection : </p><p>       HTTP Status Code: 401 Unauthorized or sometimes 400 Bad Request</p></td><td><ul><li>Error Description: Authentication failed due to an incorrect Client Secret.</li><li>Resolution: Ensure the Client Secret is correct and has not expired. Regenerate if necessary.</li></ul></td></tr><tr><td>3</td><td>Error while validating connection : {"error":"invalid_request","error_description":"AADSTS900023: Specified tenant identifier 'c717a2aa-3648-46e2-aae6-a5f4a51947d' is neither a valid DNS name, nor a valid external domain.</td><td><ul><li>Error Description: The provided Tenant ID is not valid or formatted incorrectly.</li><li>Resolution: Check the Tenant ID in Azure portal and provide a valid directory ID or domain name.</li></ul></td></tr><tr><td>4</td><td><p>Error while validating connection : 404 Not Found (most common if the subscription doesn't exist or is inaccessible)</p><p>400 Bad Request (if the format is invalid)</p></td><td><ul><li>Error Description: The Subscription ID is incorrect or inaccessible.</li><li>Resolution: Verify that the Subscription ID exists and is accessible by the service principal used.</li></ul></td></tr><tr><td>5</td><td>Error while validating connection : HTTP Status Code: 404 Not Found</td><td><ul><li>Error Description: The specified Resource Group does not exist.</li><li>Resolution: Confirm that the Resource Group name is correct and exists under the specified subscription.</li></ul></td></tr></tbody></table>

***

Copyright © 2026, OvalEdge LLC, Peachtree Corners, GA, USA.
