# Microsoft Fabric

Connect Dot to your Microsoft Fabric Data Warehouse or SQL Analytics Endpoint to query your data using natural language.

## Authentication Methods

Microsoft Fabric supports two authentication methods for external applications like Dot:

### Option 1: Service Principal Authentication (Recommended)

Service Principal authentication provides secure, automated access without requiring user credentials.

**1. Create an Entra ID Application and Service Principal**

1. **Register a new application** in Azure Portal:
   * Go to Azure Active Directory > App registrations > New registration
   * Name: `Dot-Fabric-Access` (or similar)
   * Account types: Accounts in this organizational directory only
   * Click "Register"
2. **Create a client secret**:
   * Go to Certificates & secrets > New client secret
   * Description: `Dot Integration`
   * Expires: Choose appropriate duration (12 months recommended)
   * Copy the **Value** (this is your `client_secret`)
3. **Note the following values** from the Overview page:
   * **Application (client) ID** (this is your `client_id`)
   * **Directory (tenant) ID** (this is your `tenant_id`)

**2. Configure Fabric Tenant Settings**

1. **Enable Service Principal API access**:
   * Go to Fabric Admin Portal > Tenant settings
   * Find "Developer settings" > "Service principals can use Fabric APIs"
   * Enable this setting for your organization or specific security groups

**3. Grant Workspace Access**

1. **Add Service Principal to Workspace**:
   * Go to your Fabric workspace
   * Settings > Manage access
   * Add people or groups > Enter your Service Principal name
   * Assign **Contributor** role (recommended) or **Member** role

### Option 2: Entra UPN Authentication

Use your Microsoft Entra ID username and password for direct authentication.

**Requirements:**

* Valid Entra ID user account with access to the Fabric workspace
* Username in UPN format (e.g., `user@company.com`)
* Account password

**Grant User Access:**

1. **Add user to Workspace**:
   * Go to your Fabric workspace
   * Settings > Manage access
   * Add the user account
   * Assign **Contributor** role (recommended)

## Connection Information

### Required Connection Details

**For Service Principal Authentication:**

* **Server**: Your Fabric SQL Analytics Endpoint (e.g., `abc123def456.datawarehouse.fabric.microsoft.com`)
* **Database**: Your warehouse database name
* **Tenant ID**: Directory (tenant) ID from Azure AD
* **Client ID**: Application (client) ID from Azure AD
* **Client Secret**: Secret value created in Azure AD

**For Entra UPN Authentication:**

* **Server**: Your Fabric SQL Analytics Endpoint
* **Database**: Your warehouse database name
* **Username**: Your Entra UPN (e.g., `user@company.com`)
* **Password**: Your account password

#### Finding Your Connection String

1. **Get your SQL Analytics Endpoint**:
   * Open your Fabric workspace
   * Go to your Data Warehouse or Lakehouse
   * Settings > SQL endpoint
   * Copy the server name from the connection string

### Network Requirements

#### Dot IP Allowlist

If your organization uses network firewalls or IP restrictions, add these Dot service IP addresses to your allowlist:

* `3.229.110.216`
* `3.122.135.165`

#### Port Requirements

* **Port 1433** (TCP) - Standard SQL Server port for TDS connections
* **Port 443** (TCP) - HTTPS for Fabric API access


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.getdot.ai/integrations/databases/microsoft-fabric.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
