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.
This module will eventually replace the Issue Glance module (soon to be deprecated from both Connect and Forge). The Issue context module is designed to provide better visibility for your app and improve the experience of updating your app. If your app uses the Issue Glance module, refer to our instructions in the How to future-proof your Issue Glance implementation document for this transition.
The Issue context module creates a collapsible panel on the right-hand side of the Issue view, below Field groups. This panel lets your app provide specified information to users relating to the issue.
In addition, the panel also remembers whether a user expanded or collapsed it last time. If a user expands the panel before they exit the issue, it'll be expanded again when they revisit it.
The Issue context object (which includes your icon, content, and URL) is defined using the Issue context module.
1 2{ "modules": { "jiraIssueContexts": [ { "icon": { "width": 0, "height": 0, "url": "my_icon.svg" }, "content": { "type": "label", "label": { "value": "my label" } }, "target": { "type": "web_panel", "url": "/panel_url" }, "jiraNativeAppsEnabled": true, "name": { "value": "My Issue Context Panel " }, "key": "my-issue-context-panel" } ] } }
This will show up like below:
The status of an Issue Context panel for a specific an issue can be set using the Set issue property API.
The issue property key needs to be formatted as com.atlassian.jira.issue:[addonKey]:[moduleKey]:status
to set the status.
The JSON in your PUT request to set the status should follow this format depending on the type of status you wish you display:
1 2{ type: 'lozenge', value: { label: 'Hello', type: 'default', } }
For available lozenge types, refer to lozenge appearance.
1 2{ type: 'icon', value: { label: '/img/tick.png' } }
Note that label is the URL relative to your app's base URL.
1 2{ type: 'badge', value: { label: '123' } }
Note that label must be a numeric string.
More recommended usage and user experience suggestions are available in the design guidelines.
Apps can receive a frontend event notifying them that an issue changed, either by being updated or commented on. This event is only available for Jira issue view modules.
1 2AP.events.on('ISSUE_CHANGED', function (data) { console.log('ISSUE_CHANGED (Connect)', data); });
However, if you have multiple issue view modules in your app, you should use the Jira issue view background script module. This will give you a central place for fetching issue details, thus reducing the number of network requests and improving the user experience. Fetching issue details separately for every module would introduce unnecessary overhead and degrade performance.
1 2{ "issueId": string, "projectId": string, "changes":[{ "changeType": "updated" | "commented", "atlassianId": string }] }
issueId
- ID of the issue the app is rendered onprojectId
- ID of the project the issue belongs tochanges
- the list of issue changeschangeType
- type of the changecommented
- a new comment was added to the pageupdated
- the issue has been updatedatlassianId
- ID of the user who made the changeLimitations
To use this module, add the jiraIssueContexts
module to your app descriptor. This module uses the following properties:
Type | object |
Required | Yes |
Description | This content becomes the label next to the icon. It's handy for communicating a small amount of information. Read about Issue Context Content Label. |
Type | i18n Property |
Required | Yes |
Description | Specifies an icon to display at the left of the context view control. The icon resource provided in this field should be 24x24 pixels or larger, preferably in SVG format. Defines an icon to display. |
1 2{ "icon": { "width": 16, "height": 16, "url": "/my-icon.png" } }
url |
| ||||||||
height |
| ||||||||
width |
|
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 | object |
Required | Yes |
Description | Specifies the target action when clicking on the context panel. Read about Issue Context Target Web Panel. |
Type | Single Condition, Composite Condition... |
Description | Conditions can be added to display only when all the given conditions are true. |
Type | boolean |
Defaults to | true |
Description | Specifies whether the issue context will be shown in the Jira mobile clients. The issue context panel will be shown in Jira Cloud for iOS from version 165, and in Jira Cloud for Android from version 103. Read about enabling your app for the Jira mobile and desktop clients. |
Rate this page: