Расширяемость Azure Data Studio

В Azure Data Studio есть несколько механизмов расширяемости для настройки пользовательского интерфейса и предоставления доступа к этим настройкам всему сообществу пользователей. Так как базовая платформа Azure Data Studio построена на основе Visual Studio Code, доступны большинство интерфейсов API расширяемости Visual Studio Code. Кроме того, мы предоставляем дополнительные точки расширяемости для действий, связанных с управлением данными.

Вот некоторые из основных точек расширяемости:

  • Интерфейсы API расширяемости Visual Studio Code
  • средства разработки расширений Azure Data Studio;
  • Управление вкладом на панели вкладок панели мониторинга
  • аналитика с действиями;
  • Интерфейсы API расширяемости Azure Data Studio
  • пользовательские интерфейсы API поставщиков данных.

Интерфейсы API расширяемости Visual Studio Code

Так как базовая платформа Azure Data Studio построена на основе Visual Studio Code, сведения об интерфейсах API расширяемости Visual Studio Code можно найти в документации по разработке расширений и API расширений на веб-сайте Visual Studio Code.

Примечание.

Выпуски Azure Data Studio тесно связаны с последней версией VS Code, но версия включенного обработчика VS Code может не совпадать с текущей версией VS Code. Например, в ноябре 2020 г. в Azure Data Studio используется обработчик VS Code версии 1.48, а текущая версия VS Code — 1.51. Сообщение об ошибке "Unable to install extension <имя> as it is not compatible with VS Code <версия>" (Не удается установить расширение name, так как оно несовместимо с версией VS Code version) которое появляется при установке расширения, связано с тем, что в манифесте пакета (package.json) определена более поздняя версия обработчика VS Code. Вы можете проверить версию обработчика VS Code в Azure Data Studio в меню Справка в разделе О программе.

Управление вкладом на панели вкладок панели мониторинга

Подробные сведения см. в разделах Точки вклада и Переменные контекста.

Интерфейсы API расширяемости Azure Data Studio

Подробные сведения см. в статье API расширяемости.

Точки вклада

В этом разделе рассматриваются различные точки вклада, определенные в манифесте расширения package.json.

В azuredatastudio поддерживается технология IntelliSense.

Точки вклада панели мониторинга

Вы можете добавлять на панель мониторинга вкладки, контейнеры и/или аналитические мини-приложения.

Dashboard

dashboard.tabs

Элемент dashboard.tabs создает разделы вкладок на странице панели мониторинга. Он принимает объект или массив объектов.

"dashboard.tabs": [
{
	"id": "test-tab1",
	"title": "Test 1",
	"description": "The test 1 displays a list of widgets.",
	"when": "connectionProvider == 'MSSQL' && !mssql:iscloud",
	"alwaysShow": true,
	"container": {
		...
	}
}
]

dashboard.containers

Вместо указания контейнера панели мониторинга в коде (внутри dashboard.tab) можно регистрировать контейнеры с помощью элемента dashboard.containers. Он принимает объект или массив объектов.

"dashboard.containers": [
{
	"id": "innerTab1",
	"container": {
		...
	}
},
{
	"id": "innerTab2",
	"container": {
	   ...
	}
}
]

Обращение к зарегистрированному контейнеру производится по его идентификатору.

"dashboard.tabs": [
{
	...
	"container": {
		"innerTab1": {             
		}
	}
}
]

dashboard.insights

Вы можете регистрировать аналитические мини-приложения с помощью элемента dashboard.insights. Это похоже на руководство. Создание пользовательского мини-приложения аналитики

"dashboard.insights": {
"id": "my-widget"
"type": {
	"count": {
		"dataDirection": "vertical",
		"dataType": "number",
		"legendPosition": "none",
           "labelFirstColumn": false,
		"columnsAsLabels": false
       }
   },
   "queryFile": "{your file folder}/activeSession.sql"
}

Типы контейнеров панели мониторинга

В настоящее время поддерживаются четыре типа контейнеров:

  1. widgets-container

    Widgets container

    Список мини-приложений, которые будут отображаться в контейнере. Это потоковый макет. Он принимает список мини-приложений.

    "container": {
    	"widgets-container": [
    	{
    		"widget": {
    			"query-data-store-db-insight": {
    			}
    		}
    	},
    	{
    		"widget": {
    			"explorer-widget": {
    			}
    		}
    	}
      ]
    }
    
  2. webview-container

    webview container

    Веб-представление будет занимать весь контейнер. Идентификатор веб-представления должен совпадать с идентификатором вкладки.

    "container": {
    	"webview-container": null
    }
    
  3. grid-container

    grid container

    Список мини-приложений или веб-представлений, которые будут отображаться в макете сетки.

     "container": {
     	"grid-container": [
        {
        	"name": "widget 1",
        	"widget": {
        		"explorer-widget": {
        		}
        	},
        	"row":0,
        	"col":0
        },
        {
        	"name": "widget 2",
        	"widget": {
        		"tasks-widget": {
        			"backup", 
        			"restore",
        			"configureDashboard",
        			"newQuery"
        		}
        	},
        	"row":0,
        	"col":1
        },
        {
        	"name": "Webview 1",
        	"webview": {
        		"id": "google"
        	},
        	"row":1,
        	"col":0,
        	"colspan":2
        },
        {
        	"name": "widget 3",
        	"widget": {
        		"explorer-widget": {}
        	},
        	"row":0,
        	"col":3,
        	"rowspan":2
        },
    ]
    
  4. nav-section

    nav section

    Раздел навигации будет отображаться в контейнере.

    "container": {
    	"nav-section": [
    		{
    			"id": "innerTab1",
    			"title": "inner-tab1",
    			"icon": {
    				"light": "./icons/tab1Icon.svg",
    				"dark": "./icons/tab1Icon_dark.svg"
    			},
    			"container": {
    				...
    			}
    		},
    		{
    			"id": "innerTab2",
    			"title": "inner-tab2",
    			"icon": {
    				"light": "./icons/tab2Icon.svg",
    				"dark": "./icons/tab2Icon_dark.svg"
    			},
    			"container": {
    				...
    			}
    		}
    	]
    }
    

Переменные контекста

Общие сведения о контексте в Visual Studio Code и, соответственно, в Azure Data Studio см. в статье, посвященной расширяемости.

В Azure Data Studio для расширений доступен особый контекст, связанный с подключениями к базам данных.

Информационная панель

Для панели мониторинга предоставляются следующие переменные контекста:

переменная контекста description
connectionProvider Строка с идентификатором поставщика текущего подключения. Например: connectionProvider == 'MSSQL'.
serverName Строка с именем сервера для текущего подключения. Например: serverName == 'localhost'.
databaseName Строка с именем базы данных для текущего подключения. Например: databaseName == 'master'.
connection Полный объект профиля подключения для текущего подключения (IConnectionProfile)
dashboardContext Строка с контекстом текущей страницы панели мониторинга. Возможное значение — "database" или "server". Например: dashboardContext == 'database'