Learn more about the terminology associated with the Atlassian client-side extensions.

Client-side Extensions

Client-side ExtensionsA set of APIs that allow a plugin author to augment and extend an Atlassian product's runtime using client-side JavaScript code.
ExtensionIs the implementation of a set of APIs to extend the UI of a product.
Extension pointIs a specific location on the UI that can be extended in a product. The product decides when and how to render the extension, but can provide special containers where extensions can render custom content (see extension types for more)
DescriptorMetadata of the extension that is declared in the atlassian-plugin.xml. For now, we make use of the web-item plugin module to declare this metadata, but there’s a plan to provide a `clientside-extension` module in the future that provides better support for attributes.
Entry Point (or entry-point)Refers to the JavaScript file where the factory of an extension is declared and registered.
FactoryConsist of a closure function that returns a function which will be called by the plugin system to calculate the attributes of an extension.
AttributesAn object that defines properties that then are bound to the extension once rendered by the product. This attributes can be dynamic, and can also depend on context shared by products at runtime.
TypeExtensions can have a type (link, button, modal, panel), which then affects how are they going to be rendered and react to user interaction.
The registryImplements the browser runtime for the client-side extensions system, keeping track of extensions and extension points present in the screen.
The runtimeA P2 plugin that provides the REST endpoint from which the plugin system gathers the extension descriptors, and also provides a singleton of the registry.
The componentsAn npm package provided to products for an easy implementation of client-side extensions using react.
The webpack pluginA webpack plugin provided to Vendors for an easy consumption of client-side extensions API.

Atlassian Server plugin system

ProductAny product listed under “Server / Data Center products” section of this page:product-family
PluginA plugin is a bundle of code, resources and configuration files that can be dropped into an Atlassian product to add new functionality or change the behaviour of existing features. plugin-framework-2

The Atlassian Plugin Framework 2 is the latest development framework allowing developers to build plugins for Atlassian application.

P2 plugins are powered by OSGi and Spring.

Module DescriptorA Java class responsible for interpreting direct children of an atlassian-plugin XML file, converting them in to usable primitives in Java business logic.

DescriptorOften used to refer to metadata of a web-fragment.

Plugin ModulesAn Atlassian plugin can implement one or more plugin modules to affect the underlying Atlassian application.plugin-modules
Web FragmentsA web fragment is a link, a section of links or an area of HTML content (or 'panel') in a particular location of a Server Product web interface.web-fragments
- web-itemWeb Item plugin modules allow plugins to define new links in application menus.web-item-plugin-module
- web-sectionWeb Section plugin modules allow plugins to define new sections in application menus. Each section can contain one or more links.web-section-plugin-module
- web-panelWeb Panel plugin modules allow plugins to define panels, or sections, on an HTML page. A panel is a set of HTML that will be inserted into a page.web-panel-plugin-module
- “location” / “section” attribute

Denotes the place where the fragment should be rendered. Products are responsible for consuming the things registered here.

WebPanels and WebSections call it “location”.

WebItems call it “section”, mostly because they can also be rendered inside web-sections.

Web ResourcesWeb Resource plugin modules allow plugins to define downloadable resources.web-resource-plugin-module