Partilhar via


Extensibilidade do Azure Data Studio

O Azure Data Studio tem vários mecanismos de extensibilidade para personalizar a experiência do usuário e disponibilizar essas personalizações para toda a comunidade de usuários. A plataforma principal do Azure Data Studio é criada com base no Visual Studio Code, portanto, a maioria das APIs de extensibilidade do Visual Studio Code está disponível. Além disso, fornecemos pontos de extensibilidade adicionais para atividades específicas de gerenciamento de dados.

Alguns dos principais pontos de extensibilidade são:

  • APIs de extensibilidade de código do Visual Studio
  • Ferramentas de criação de extensão do Azure Data Studio
  • Gerenciar contribuições do painel da guia Painel
  • Insights com experiências do Actions
  • APIs de extensibilidade do Azure Data Studio
  • APIs personalizadas do provedor de dados

APIs de extensibilidade de código do Visual Studio

Como a plataforma principal do Azure Data Studio é criada com base no Visual Studio Code, os detalhes sobre as APIs de extensibilidade do Visual Studio Code são encontrados na documentação da Extension Authoring and Extension API no site do Visual Studio Code.

Nota

As versões do Azure Data Studio estão alinhadas com uma versão recente do VS Code, no entanto, o mecanismo VS Code incluído pode não ser a versão atual do VS Code. Por exemplo, em novembro de 2020, o mecanismo VS Code no Azure Data Studio é 1.48 e a versão atual do VS Code é 1.51. A mensagem de erro "Não é possível instalar a extensão '<name>' como ela não é compatível com a versão> do VS Code<" ao instalar uma extensão é causada por uma extensão que tem uma versão posterior do mecanismo VS Code definida no manifesto do pacote (package.json). Você pode verificar a versão do mecanismo VS Code em seu Azure Data Studio por meio do menu Ajuda em Sobre.

Gerenciar contribuições do painel da guia Painel

Para obter detalhes, consulte Pontos de contribuição e variáveis de contexto.

APIs de extensibilidade do Azure Data Studio

Para obter detalhes, consulte APIs de extensibilidade.

Pontos de contribuição

Esta secção abrange os vários pontos de contribuição definidos no manifesto de extensão package.json.

O IntelliSense é suportado dentro do azuredatastudio.

Pontos de contribuição do painel

Contribua com uma guia, contêiner e/ou widget de insight para o painel.

Dashboard

dashboard.tabs

Dashboard.tabs cria as seções da guia dentro da página do painel. Ele espera um objeto ou uma matriz de objetos.

"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

Em vez de especificar o contêiner do painel em linha (dentro do dashboard.tab). Você pode registrar contêineres usando dashboard.containers. Ele aceita um objeto ou uma matriz do objeto.

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

Para se referir ao contêiner registrado, especifique a id do contêiner

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

dashboard.insights

Você pode registrar insights usando dashboard.insights. Isso é semelhante ao Tutorial: Criar um widget de insight personalizado

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

Tipos de contêiner do painel

Atualmente, há quatro tipos de contêiner suportados:

  1. widgets-container

    Contêiner de widgets

    A lista de widgets que serão exibidos no contêiner. É um layout de fluxo. Ele aceita a lista de widgets.

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

    Contêiner WebView

    O webview será exibido em todo o contêiner. Ele espera que o id webview seja o mesmo é o ID da guia

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

    Contentor de grelha

    A lista de widgets ou webviews que serão exibidos no layout da grade

     "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

    secção de navegação

    A seção de navegação será exibida no contêiner

    "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": {
    				...
    			}
    		}
    	]
    }
    

Variáveis de contexto

Para obter informações gerais sobre o contexto no Visual Studio Code e, posteriormente, no Azure Data Studio, consulte Extensibilidade.

No Azure Data Studio, temos um contexto específico em torno de conexões de banco de dados disponíveis para extensões.

Dashboard

No painel, fornecemos as seguintes variáveis de contexto:

variável de contexto descrição
connectionProvider Uma cadeia de caracteres do identificador para o provedor da conexão atual. Ex. connectionProvider == 'MSSQL'.
serverName Uma cadeia de caracteres do nome do servidor da conexão atual. Ex. serverName == 'localhost'.
databaseName Uma cadeia de caracteres do nome do banco de dados da conexão atual. Ex. databaseName == 'master'.
connection O objeto de perfil de conexão completo para a conexão atual (IConnectionProfile)
dashboardContext Uma cadeia de caracteres do contexto da página em que o painel está no momento. 'banco de dados' ou 'servidor'. Ex. dashboardContext == 'database'