You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -3,7 +3,7 @@ title: Azure DevOps task for Azure Data Explorer
3
3
description: Create a release pipeline and deploy schema changes to your database.
4
4
ms.reviewer: shfeldma
5
5
ms.topic: how-to
6
-
ms.date: 09/28/2025
6
+
ms.date: 03/24/2026
7
7
ms.custom:
8
8
- sfi-image-nochange
9
9
- sfi-ropc-nochange
@@ -50,7 +50,7 @@ You can use the following methods to execute admin commands against a cluster wi
50
50
51
51
:::image type="content" source="media/devops/source-control-options.png" alt-text="Screenshot showing the command source control options.":::
52
52
53
-
* Use a search pattern to get multiple command files from a local agent folder (build sources or release artifacts).
53
+
* Use a search pattern to get multiple command files from a local agent folder (build sources or release artifacts). The single-line option supports multiple files with one command per file.
54
54
55
55
:::image type="content" source="media/devops/local-folder-option.png" alt-text="Screenshot showing the local folder option.":::
56
56
@@ -128,6 +128,8 @@ You can use the following methods to execute admin commands against a cluster wi
128
128
129
129
:::image type="content" source="media/devops/add-service-endpoint.png" alt-text="Screenshot showing how to add a service connection.":::
130
130
131
+
1. If your admin commands are long-running asynchronous operations, select the **Wait for long Async Admin commands to complete** checkbox. When enabled, the task polls the operation status using `.show operations` until the command completes.
132
+
131
133
1. Select **Save**, and then in the **Tasks** tab, verify that there are three tasks: **Deploy Tables**, **Deploy Functions**, and **Deploy Policies**.
132
134
133
135
:::image type="content" source="media/devops/deploy-all-folders.png" alt-text="Screenshot showing how to deploy all folders.":::
@@ -203,8 +205,14 @@ Now the creation of a release pipeline for deployment to preproduction is comple
203
205
204
206
The extension supports keyless authentication for Azure Data Explorer clusters. Keyless authentication lets you authenticate to Azure Data Explorer clusters without using a key. It's more secure and easier to manage.
205
207
208
+
> [!NOTE]
209
+
> Kusto Fabric cluster URLs are not supported for Workload Identity Federation (WIF) and Managed Identity authentication.
210
+
206
211
### Use Federated Identity Credentials (FIC) authentication in an Azure Data Explorer service connection
207
212
213
+
> [!NOTE]
214
+
> Starting with extension version 4.0.x, the Azure Data Explorer Service Endpoint supports Workload Identity Federation (WIF) authentication in addition to Service Principal Authentication.
215
+
208
216
1. In your DevOps instance, go to **Project Settings** > **Service connections** > **New service connection** > **Azure Data Explorer**.
209
217
1. Select **Federated Identity Credentials**, and enter your cluster URL, service principal ID, tenant ID, a service connection name, and then select **Save**.
210
218
1. In the Azure portal, open the Microsoft Entra app for the specified service principal.
@@ -242,33 +250,110 @@ The extension supports keyless authentication for Azure Data Explorer clusters.
242
250
243
251
1. Fill out the required details, select **Verify**, and then select **Save**.
244
252
245
-
## Yaml pipeline configuration
253
+
## YAML pipeline configuration
246
254
247
255
You can configure tasks using the Azure DevOps web UI or YAML code within the [pipeline schema](/azure/devops/pipelines/yaml-schema).
248
256
249
-
### Admin command sample
257
+
The extension provides three pipeline tasks, all accessible via YAML:
258
+
259
+
-**Azure Data Explorer Command** (`ADXAdminCommand@5`) — Run admin/control commands against an ADX cluster
260
+
-**Azure Data Explorer Query** — Run queries against an ADX cluster and parse the results
261
+
-**Azure Data Explorer Query Server Gate** — Agentless task to gate releases depending on query outcome
262
+
263
+
> [!TIP]
264
+
> For enhanced security, use **Workload Identity Federation** or **Managed Identity** authentication via an Azure Resource Manager service connection instead of storing credentials directly in your pipeline. These keyless authentication methods are the recommended best practice.
265
+
266
+
### Admin command sample — inline commands
267
+
268
+
The following sample runs an inline admin command using an Azure Resource Manager (ARM) service connection, which supports Workload Identity Federation (WIF) and Managed Identity authentication:
You can also use `**/*.kql` as the glob pattern depending on your file naming convention.
305
+
306
+
### Admin command sample — Azure Resource Manager service connection
307
+
308
+
The following sample uses an Azure Resource Manager service connection, which supports **Workload Identity Federation (WIF)** and **Managed Identity** for keyless authentication:
azureSubscription: '<ARM Service Connection Name>'
320
+
continueOnError: true
321
+
condition: ne(variables['ProductVersion'], '')
265
322
```
266
323
324
+
### Task input parameters
325
+
326
+
The following table describes the key input parameters for the `ADXAdminCommand@5` task:
327
+
328
+
| Parameter | Description |
329
+
|--|--|
330
+
| `clusterUri` | The base URI for the Kusto cluster (for example, `https://<ClusterName>.<Region>.kusto.windows.net`) |
331
+
| `databaseName` | The name of the target database |
332
+
| `commandsSource` | The source of commands: `inline`for inline KQL commands, or `files` for file-based commands |
333
+
| `inlineCommands` | Inline KQL commands to run (used when `commandsSource` is `inline`) |
334
+
| `commandFilesPattern` | Glob pattern for script files (used when `commandsSource` is `files`), for example `**/*.csl` or `**/*.kql` |
335
+
| `aadAppId` | The Microsoft Entra App (Service Principal) ID for AAD App authentication |
336
+
| `aadAppKey` | The Microsoft Entra App key/secret for AAD App authentication |
337
+
| `aadTenantId` | The Microsoft Entra tenant ID for AAD App authentication |
338
+
| `azureSubscription` | The name of the Azure Resource Manager service connection for ARM-based authentication (supports WIF and Managed Identity) |
339
+
340
+
### Authentication methods
341
+
342
+
The extension supports the following authentication methods:
343
+
344
+
- **Azure Active Directory (AAD) App Registration** — Use `aadAppId`, `aadAppKey`, and `aadTenantId` to authenticate with a Service Principal. Store credentials as secure pipeline variables.
345
+
- **Certificate-based authentication** — Use a certificate instead of an app key for Service Principal authentication. Store the certificate details as secure pipeline variables.
346
+
- **Managed Identity** — Use an Azure Resource Manager service connection configured with Managed Identity. Set the `azureSubscription` input to the service connection name.
347
+
- **Workload Identity Federation (WIF)** — Use an Azure Resource Manager service connection with Workload Identity Federation (automatic or manual). This is the recommended keyless approach. Set the `azureSubscription` input to the service connection name.
348
+
349
+
> [!NOTE]
350
+
> Workload Identity Federation (WIF) is a newer addition to the extension. It enables secretless authentication and is the recommended approach for new pipelines. For setup instructions, see [Use Federated Identity Credentials or Managed Identity in an Azure Resource Manager (ARM) service connection](#use-federated-identity-credentials-or-managed-identity-in-an-azure-resource-manager-arm-service-connection).
0 commit comments