Extensibility Service

This document describes how to use the Extensibility Service REST API.

What Is the Extensibility Service?

The Extensibility service enables you to manage extensions, plugins, and wizard states.

Typical Use Cases

You can use the Extensibility REST API to:

Key Concepts

Host Application

A host application is a web application that is being extended with a pluggable UI. The host application discovers plugins, manages plugin life cycle, and serves the UI from the plugin extensions to the extension hosts.

Plugin

A plugin is a packaged set of extensions, and possibly extension hosts. Commonly, a plugin contains JavaScript that runs in the browser along with other web resources like HTML and CSS.

Extension

An extension is a component that extends the functionality of another component based on a predefined contract. Extensions are packaged in plugins and contain metadata that describes what component it is to be extended and how it is extended.

Extension Host

An extension host is a component that can be extended with an extension. To become an extension host, a component defines one or more extension points. The host application provides the framework for making the extensions available to an extension host. In many cases, extension hosts are UI widgets, for example, a tabbed view that dynamically adds tabs defined in extensions.

Extension Point

An extension point defines the contract between an extension host and extensions. It has a unique identifier that extensions use to hook into extension hosts. The extension host also defines the properties that should be provided by extensions of a given extension point.

Wizard State

The application has goal based wizards to enable users to complete a number of steps to achieve a goal. Wizard state is a domain object persisting the last step visited by the user. It does not imply that they have completed all preceding steps, nor even the current step.