Skip to main content

Getting Started

Welcome to the Public Beta release of XTP.

Once you've created an account, you will be walked through the creation of a team, application, and extension point. After you've completed this process, consult the "Integrating XTP" section to start running plugins. If you'd like a hands-on example of how to integrate XTP using an example app, check out the XTP integration exercise repo.

To help get your bearings, check out the following glossary of terms!

Glossary

Team

This is the "organization" that manages various Apps, e.g. a company name like Acme, Inc.

Team Member

Another person with access to your team via an XTP account to help administer your Apps and Extension Points. Members may be "owners" or "members" of the team: owners control billing details for the team.

App

The software you will be defining extension points on (e.g., "vscode".) Guests of your application can supply plug-ins to call. You can create applications under your personal account to get a feel for XTP or under a Team to share management of extension points.

It's common have apps for your development, staging, and production environments.

Extension point

A specific interface inside your application which you'd like your guests to be able to configure. Extension points use the XTP schema format to describe their interface.

Guest

Guests represent people who develop plugins for one of your team's applications. Your application is responsible for assigning them a unique identifier, known as a "guest key", which is known only to your application and XTP. Guests may see all applications to which they have invitations and any associated extension point schemas. Guests cannot see each other's plugins.

Plugins

A unit of code built against a specific extension point, submitted by a Guest. Plugins are represented as "artifacts" -- a series of releases of a given plugin. Plugins are validated by XTP against your schema.

Bindings

Guests install plugins to your application's extension points by "binding" them. Usually, the binding name will match the plugin name! See "Bindings" for more detail!