diff --git a/extensions/azurecore/src/account-provider/auths/azureAuth.ts b/extensions/azurecore/src/account-provider/auths/azureAuth.ts index 4299ea4f9d..f19550129b 100644 --- a/extensions/azurecore/src/account-provider/auths/azureAuth.ts +++ b/extensions/azurecore/src/account-provider/auths/azureAuth.ts @@ -77,6 +77,10 @@ export abstract class AzureAuth implements vscode.Disposable { this.resources = this.resources.concat(this.metadata.settings.azureLogAnalyticsResource); } + if (this.metadata.settings.azureKustoResource) { + this.resources = this.resources.concat(this.metadata.settings.azureKustoResource); + } + this.scopes = [...this.metadata.settings.scopes]; this.scopesString = this.scopes.join(' '); } diff --git a/extensions/azurecore/src/account-provider/providerSettings.ts b/extensions/azurecore/src/account-provider/providerSettings.ts index 0ed13f84b7..9f869eaf0d 100644 --- a/extensions/azurecore/src/account-provider/providerSettings.ts +++ b/extensions/azurecore/src/account-provider/providerSettings.ts @@ -19,7 +19,8 @@ const enum SettingIds { vault = 'vault', ado = 'ado', ala = 'ala', - storage = 'storage' + storage = 'storage', + kusto = 'kusto' } const publicAzureSettings: ProviderSettings = { @@ -81,6 +82,11 @@ const publicAzureSettings: ProviderSettings = { endpointSuffix: '.core.windows.net', azureResourceId: AzureResource.AzureStorage }, + azureKustoResource: { + id: SettingIds.kusto, + endpoint: 'https://api.kusto.io', + azureResourceId: AzureResource.AzureKusto, + }, redirectUri: 'https://vscode-redirect.azurewebsites.net/', scopes: [ 'openid', 'email', 'profile', 'offline_access', diff --git a/extensions/azurecore/src/azurecore.d.ts b/extensions/azurecore/src/azurecore.d.ts index ec6c5bea0f..24a6aac280 100644 --- a/extensions/azurecore/src/azurecore.d.ts +++ b/extensions/azurecore/src/azurecore.d.ts @@ -118,6 +118,11 @@ declare module 'azurecore' { */ azureDevOpsResource?: Resource; + /** + * Information that describes the Azure Kusto resource + */ + azureKustoResource?: Resource; + /** * Information that describes the Azure Log Analytics resource */ diff --git a/extensions/kusto/package.json b/extensions/kusto/package.json index d08e3f67b2..19d74a195a 100644 --- a/extensions/kusto/package.json +++ b/extensions/kusto/package.json @@ -217,6 +217,7 @@ "languageMode": "kusto", "notebookKernelAlias": "Kusto", "displayName": "%kusto.provider.displayName%", + "azureResource": "AzureKusto", "iconPath": [ { "id": "kusto:cloud", diff --git a/src/sql/azdata.proposed.d.ts b/src/sql/azdata.proposed.d.ts index 6aa65747bb..6ce02c7801 100644 --- a/src/sql/azdata.proposed.d.ts +++ b/src/sql/azdata.proposed.d.ts @@ -861,7 +861,11 @@ declare module 'azdata' { /** * Azure Storage */ - AzureStorage = 9 + AzureStorage = 9, + /** + * Kusto + */ + AzureKusto = 10 } export interface ButtonProperties { diff --git a/src/sql/platform/accounts/common/interfaces.ts b/src/sql/platform/accounts/common/interfaces.ts index 1daf0d6186..0d833a95d8 100644 --- a/src/sql/platform/accounts/common/interfaces.ts +++ b/src/sql/platform/accounts/common/interfaces.ts @@ -58,7 +58,9 @@ export enum AzureResource { MicrosoftResourceManagement = 5, AzureDevOps = 6, MsGraph = 7, - AzureLogAnalytics = 8 + AzureLogAnalytics = 8, + AzureStorage = 9, + AzureKusto = 10 } export interface IAccountStore { diff --git a/src/sql/workbench/api/common/sqlExtHostTypes.ts b/src/sql/workbench/api/common/sqlExtHostTypes.ts index 274ff83a7e..f09978cad5 100644 --- a/src/sql/workbench/api/common/sqlExtHostTypes.ts +++ b/src/sql/workbench/api/common/sqlExtHostTypes.ts @@ -438,7 +438,8 @@ export enum AzureResource { AzureDevOps = 6, MsGraph = 7, AzureLogAnalytics = 8, - AzureStorage = 9 + AzureStorage = 9, + AzureKusto = 10 } export class TreeItem extends vsExtTypes.TreeItem { diff --git a/src/sql/workbench/services/connection/browser/connectionManagementService.ts b/src/sql/workbench/services/connection/browser/connectionManagementService.ts index f4c4a35538..df3013a309 100644 --- a/src/sql/workbench/services/connection/browser/connectionManagementService.ts +++ b/src/sql/workbench/services/connection/browser/connectionManagementService.ts @@ -75,7 +75,7 @@ export class ConnectionManagementService extends Disposable implements IConnecti private static readonly CONNECTION_MEMENTO = 'ConnectionManagement'; private static readonly _azureResources: AzureResource[] = - [AzureResource.ResourceManagement, AzureResource.Sql, AzureResource.OssRdbms, AzureResource.AzureLogAnalytics]; + [AzureResource.ResourceManagement, AzureResource.Sql, AzureResource.OssRdbms, AzureResource.AzureLogAnalytics, AzureResource.AzureKusto]; constructor( @IConnectionDialogService private _connectionDialogService: IConnectionDialogService,