Atlassian has announced the timeline for Connect's phased end-of-support.
From Sep 17, 2025, only Forge apps can be submitted to the Atlassian Marketplace. All new extensibility features will be delivered only on Forge.
Have an existing Connect app? Find out how to incrementally adopt Forge from Connect.
Want to quickly build your UI?
Pages (for Confluence, Jira) in Forge let you quickly build user interfaces consistent to Atlassian Design using pre-built components.
Already have a Connect app? Start adding Forge features in less than an hour.
Page modules allow add-ons to insert new pages into Atlassian products. These can be automatically resized to the width and height of your add-on's content. The location attribute defines where links to the new page appear.
Each type of page displays differently:
You can also define a page module to be shown when a user is administering your add-on via the Universal Plugin Manager. An add-on can only define a single page of this type. It should each be defined in the descriptor as a single JSON object, not as a JSON array like other modules.
The content for a page module is injected into the Atlassian application in the form of a "seamless" iframe. Seamless iframes are regular HTML iframes but with the characteristics described below.
As implied here, for most page content modules, you do not need to be concerned with iframe sizing. It's all handled for you. However, an exception exists for inline macros.
For example, using ACE:
1 2<script src="{{hostScriptUrl}}" type="text/javascript" data-options="sizeToParent:true;hideFooter:true"> </script>
1 2{ "modules": { "generalPages": [ { "url": "/my-general-page", "icon": { "width": 80, "height": 80, "url": "/maps/icon.png" }, "name": { "value": "My General Page" }, "key": "my-general-page" } ], "postInstallPage": { "url": "/my-post-install-page", "name": { "value": "My Post-Install Page", "i18n": "mypostinstallpage.name" }, "key": "my-post-install-page" } } }
Type | string |
Max length | 100 |
Required | Yes |
Pattern | ^[a-zA-Z0-9-]+$ |
Description | A key to identify this module. This key must be unique relative to the add on, with the exception of Confluence macros: Their keys need to be globally unique. Keys must only contain alphanumeric characters and dashes. The key is used to generate the url to your add-on's module. The url is generated as a combination of your add-on key and module key. |
For example, an add-on which looks like:
1 2{ "key": "my-addon", "modules": { "configurePage": { "key": "configure-me", } } }
Will have a configuration page module with a URL of /plugins/servlet/ac/my-addon/configure-me
.
Type | i18n Property |
Required | Yes |
Description |
A human readable name. Represents a string that can be resolved via a localization properties file. You can use the same |
1 2{ "value": "My text" }
value |
| ||||||||
i18n |
|
Type | string |
Format | uri-template |
Required | Yes |
Description | The url to retrieve the content from. |
Type | boolean |
Defaults to | false |
Description | Returns whether the URL should be cacheable. Cacheable URLs are taken directly from the add-on descriptor, and
lack all additional query parameters:
|
Type | [Composite Condition, Single Condition, ...] |
Description | Conditions can be added to display only when all the given conditions are true.
The supported conditions for pages are: Common conditions
Jira conditions
Confluence conditions
|
Type | Icon |
Description | An optional icon to display with the link text or as the link, specified by URL to its hosted location.
You can specify a particular width and height for the icon. Most link icons in Atlassian applications
are 16 by 16 pixels.
Defines an icon to display. |
1 2{ "icon": { "width": 16, "height": 16, "url": "/my-icon.png" } }
url |
| ||||||||
height |
| ||||||||
width |
|
Type | string |
Max length | 100 |
Description | The location in the application interface where the page's link should appear. For the Atlassian application interface, a location is something like the coordinates on a map. It points to a particular drop-down menu or navigation list in the UI. Places in the Atlassian UI are identified by what are known as "well-known locations." For example, the "system.admin/globalsettings" location is in the administrative menu link on the left side of the Administration Console. Find product locations with the Extension Point Finder: You can also find all Confluence locations on this page. If the Jira:
Confluence:
You may wish to have no link to the page shown anywhere - for example, if you are using the page as the target of a JavaScript API dialog. |
Type | object |
Description | This object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively. |
1 2{ "params": { "someOtherProperty": "someValue", "myCustomProperty": "myValue" } }
Type | integer |
Defaults to | 100 |
Description | Determines the order in which the page's link appears in the menu or list.
The "lightest" weight (i.e., lowest number) appears first, rising relative to other items, while the "heaviest" weights sink to the bottom of the menu or list. Built-in web items have weights that are incremented by numbers that leave room for additional items, such as by 10 or 100. Be mindful of the weight you choose for your item, so that it appears |
Rate this page: