-
Notifications
You must be signed in to change notification settings - Fork 908
Extension Authoring
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
**NOTE: **For extensions owned by Azure Data Studio team, please follow the instructions: here.
To publish your new extension to Azure Data Studio:
- Fork or make a child branch of the branch
release/extensions
- 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).
- 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".
- Create a PR against
release/extensions
branch - For Microsoft owned extensions, please include a link to the new VSIX file (make sure the link is accessible to Microsoft Employees) in the PR description, you can set the
Microsoft.VisualStudio.Services.VSIXPackage
as:https://sqlopsextensions.blob.core.windows.net/extensions/[extension-name]/[vsix-file]
(replace the [extension-name] and [vsix-file] accordingly). We will create a folder in our storage account using extension's name and upload the file to it. - 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
Some extensions have to download additional binaries based on the OS and processor architecture after installation, that means users with no internet access won't be able to use the common extension installer, extension authors should produce platform specific extension installers with the binaries bundled in so that no download is needed at runtime.
Currently the Azure Data Studio's extension marketplace doesn't support multiple extension installers, extension authors should include a section in the extension readme file which contains the URL to the platform specific extension installers.
Documentation
- Get Started
- Install Azure Data Studio
- Telemetry
- Microsoft Ready 2019 Lab
- MS Docs Overview
- Debug Trace Logging
- Troubleshoot Azure Authentication Issues
- FAQ
Contributing
- How to Contribute
- Developer Getting Started
- Submitting Bugs and Suggestions
- Localization
- Troubleshooting Build Issues
- Engineering FAQ
- How to update typings files
- Importing and using modules
- UI Guidelines
- Angular UI Guidelines
- Contributor License Agreement
- Azure Data Studio Tests
- Why is the Azure Data Studio license different than the repository license?
Tool Services
Extensibility Reference
- Getting Started
- Extensibility API
- Contribution Points
- Context Variables
- Servers and Data Explorer Tree Views
- Debugging with VS Code
- Extension Authoring
- Building multiple insight widgets
- Microsoft Ignite lab
- List of Extensions
- Replace sqlops namespace
Project Management