Service Discovery in the DocumentDB extension for Visual Studio Code

The DocumentDB extension for Visual Studio Code is built with an open architecture. While the extension focuses on developer productivity (data exploration, running queries, and importing/exporting data), the core connectivity is centered around connection strings.

How Service Discovery Works

A Service Discovery plugin is designed to understand a specific vendor environment. Its responsibilities include:

  • Authentication: Handling the process of logging in or obtaining credentials for the target platform.
  • Navigation: Guiding the user through the internal platform, systems, or APIs to locate relevant resources.
  • Discovery: Identifying available database services or endpoints.
  • Connection Sharing: Once discovery is complete, the plugin provides a connection string to the extension. From there, the extension manages the connection and enables you to work with your data.

This approach allows you to connect to a variety of platforms without needing to manually gather connection details. The plugin handles the complexity of each environment, so you can focus on your development tasks.

Available Service Discovery Plugins

Currently, the following service discovery plugins are available:

See each plugin guide for provider-specific setup, filtering, credential handling, and troubleshooting steps.

All service discovery plugins are visible by default. If a provider is not relevant to your workflow, you can hide it from the Service Discovery tree and bring it back later with Explore Providers….

API and Extensibility

The Service Discovery API is under active development and refinement. At present, service providers are implemented directly within our repository. Once the API stabilizes, we plan to make it even easier to add new providers through a pluggable architecture.

If you are interested in contributing, now is a great time to get involved and help shape the direction of this feature.

Get Involved

Would you like to add your own service discovery provider? Would you like to suggest a provider to be added? Do you have feedback or suggestions about the existing plugins?

We encourage you to join the discussion board and share your ideas or questions. Collaboration and feedback from developers like you are essential to making the extension more useful and adaptable to a wide range of environments.