Skip to content

Extension Authoring

Alan Ren edited this page Jul 2, 2021 · 32 revisions

If you're interested in extending Azure Data Studio, you can do that by creating your own extension and publish it to the Azure Data Studio extension gallery.

Writing an Extension

Prerequisites

To develop an extension you need Node.js installed and available in your $PATH. Node.js includes npm, the Node.js Package Manager, which will be used to install the extension generator.

To start your new extension, you can use the Azure Data Studio Extension generator. The Yeoman extension generator makes it very easy to create simple extension projects. To Launch the generator, type the following in a command prompt:

npm install -g yo generator-azuredatastudio

yo azuredatastudio

Extensibility References

Please see Extensibility References to learn about Azure Data Studio Extensibility API. You can also see examples of how to use the API in existing samples.

Debugging Extension

You can debug your new extension using Visual Studio Code extension SQL Operations Studio Debug.

Steps

  • Open your extension with Visual Studio Code
  • Install Azure Data Studio Debug extension
  • Press F5 or click the Debug icon and click Start
  • A new instance of Azure Data Studio will start in a special mode (Extension Development Host) and this new instance is now aware of your extension.

Creating Extension Package

After writing your extension, you need to create a VSIX package to be able to install it in Azure Data Studio. You can use vsce to create VSIX package.

npm install -g vsce

npm install

vsce package

Publishing the Extension

**NOTE: **For extensions owned by Azure Data Studio team, please follow the instructions: here.

To publish your new extension to Azure Data Studio:

  1. Fork or make a child branch of the branch release/extensions
  2. Add your extension to the extension gallery file or edit it if updating your extension. update these 2 files accordingly: extensionsGallery.json(If the new extension release works with the latest stable version of ADS) and extensionsGallery-insider.json(If the new extension release works with the insiders build of ADS).
  3. Third party extensions: We don't have support to host third party extensions for now. Instead of downloading the extension, ADS has the option to browses to the download page. To be able to set a download page for your extension please set the value of asset "Microsoft.SQLOps.DownloadPage".
  4. Create a PR against release/extensions branch
  5. For Microsoft owned extensions, please include a link to the new VSIX file in the PR description and we will upload it to the storage account. you can set the Microsoft.VisualStudio.Services.VSIXPackage as: https://sqlopsextensions.blob.core.windows.net/extensions/[extension-name]/[vsix-file]
  6. Your PR will be reviewed and you will be notified when the changes are published.

Here are example PRs:

3rd party extension: https://github.com/microsoft/azuredatastudio/pull/14926

Microsoft owned extension: https://github.com/microsoft/azuredatastudio/pull/12135

Clone this wiki locally