Framework overview
Building blocks
Security for Connect apps
Modules
JavaScript API
Last updated Sep 8, 2025

Atlassian timeline for ending Connect support

Operations Information

This module allows third-party providers to send operations information to Jira.

Supplied operations information will be presented in the new Incidents page in Jira Software

This module also provides actions to be called by Jira.

Operations information is written/deleted via REST. This API is part of the Jira Software REST documentation.

Information in the module key and name are not considered private so they should not contain sensitive or personally identifiable information.

When a user uninstalls an app, all the data that the app sent to Jira is deleted. If the app is reinstalled, this data won't be added back unless the app resends historical information to Jira.

Example

1
2
{
  "modules": {
    "jiraOperationsInfoProvider": {
      "homeUrl": "https://myoperationsprovider.com",
      "logoUrl": "https://myoperationsprovider.com/images/logo.svg",
      "documentationUrl": "https://myoperationsprovider.com/docs/jira-integration",
      "actions": {
        "fetchWorkspaces": {
          "templateUrl": "https://myoperationsprovider.com/workspaces"
        },
        "searchContainers": {
          "templateUrl": "https://myoperationsprovider.com/containers/search"
        },
        "onEntityAssociated": {
          "templateUrl": "https://myoperationsprovider.com/containers/onentityassociated"
        },
        "onEntityDisassociated": {
          "templateUrl": "https://myoperationsprovider.com/containers/onentitydisassociated"
        }
      },
      "name": {
        "value": "My Operations Provider"
      },
      "key": "operations-integration"
    }
  }
}

Properties

homeurl

Type
string
Format
uri
Required
Yes
Description

URL to the provider's homepage

key

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.

Example

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.

name

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 i18n Property key and value in multiple places if you like, but identical keys must have identical values.

Example

1
2
{
  "value": "My text"
}

Properties

value
Type
string
Max length
1500
Required
Yes
Description

The human-readable default value. This will be used if no translation exists. Only the following HTML tags are supported: b, i, strong, em, and code.

i18n
Type
string
Max length
300
Description

The localization key for the human-readable value. Translations for the keys are defined at the top level of the add-on descriptor.

actions

Type Operations Information Actions
Description

Required actions to hydrate security workspace data.

Operations Information actions that can be performed by Jira users.

Each action is optional (unless indicated otherwise). The absence of an action indicates that the action is not supported by the provider.

Properties

fetchWorkspaces
Type object
Required Yes
Description

Action for fetching operations workspaces by IDs.

Example request

The templateUrl property of this action will receive a GET request with a searchQuery query params when this action is invoked.

1
2
"https://my.security.provider.com/containers/search?searchQuery=my-container-name" 
Example response
1
2
 {
   "containers": [
     {
       // Identifier of the security container which will be used to hydrate container details. This should be in this regex format: [a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*.
       id: "f730ce9c-3442-4f8a-93a4-a44f3b35c46b/target/111-222-333",
       // Human readable name of the container
       name: "my-container-name",
       // Url allowing Jira to link directly to the provider's container
       url: "https://my.operations.provider.com/f730ce9c-3442-4f8a-93a4-a44f3b35c46b/container/f730ce9c-3442-4f8a-93a4-a44f3b35c46b",
       // Url providing the avatar for the container.
       avatarUrl: "https://res.cloudinary.com/operator/image/upload/v1584038122/groups/Atlassian_Logo.png",
       // The date and time this container was last scanned/updated
       lastUpdatedDate: "2022-01-19T23:27:25+00:00"
     }
   ]
searchContainers
Type object
Required Yes
Description

Action for showing any partial or full matches using a search on the operations container name for all workspaces.

Example request

The templateUrl property of this action will receive a GET request with a searchQuery query params when this action is invoked.

1
2
"https://my.security.provider.com/containers/search?searchQuery=my-container-name"
Example response
1
2

 {
   "containers": [
     {
       // Identifier of the security container which will be used to hydrate container details. This should be in this regex format: [a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*.
       id: "f730ce9c-3442-4f8a-93a4-a44f3b35c46b/target/111-222-333",
       // Human readable name of the container
       name: "my-container-name",
       // Url allowing Jira to link directly to the provider's container
       url: "https://my.operations.provider.com/f730ce9c-3442-4f8a-93a4-a44f3b35c46b/container/f730ce9c-3442-4f8a-93a4-a44f3b35c46b",
       // Url providing the avatar for the container.
       avatarUrl: "https://res.cloudinary.com/operator/image/upload/v1584038122/groups/Atlassian_Logo.png",
       // The date and time this container was last scanned/updated
       lastUpdatedDate: "2022-01-19T23:27:25+00:00"
     }
   ]
onEntityAssociated
Type object
Description

Action to notify the operations provider when an incident or post-incident-review has been associated with jira issue

Example request

The templateUrl property of this action will receive a PUT request when this action is invoked. The entity.id is the providers external ID

1
2

 {
   "entity": {
     // This is an operations Atlassian Resource Identifier (ARI). This should be in format: ari:cloud:jira:{siteId}:incident/activation/{activationId}/{incidentId} or ari:cloud:jira:{siteId}:post-incident-review/activation/{activationId}/{post-incident-reviewId}
     "ari": "ari:cloud:jira:f730ce9c-3442-4f8a-93a4-a44f3b35c46b:/activation/111-222-333/111111",
     // This is the identifier provided by the provider, the type of entity can be determined from the ari field.
     "id": "1234"
   },
   "associatedWith": {
     // This is jira issue Atlassian Type Identifier (ATI)
     "ati": "ati:cloud:jira:issue",
     // This is jira issue Atlassian Resource Identifier (ARI) that get associated with the incident. This should be in format: ari:cloud:jira:{siteId}:issue/{issueId}
     "ari": "ari:cloud:jira:f730ce9c-3442-4f8a-93a4-a44f3b35c46b:issue/1234"
     // This is the siteId
     "cloudId": "f730ce9c-3442-4f8a-93a4-a44f3b35c46b",
     // This is jira issue identifier
     "id": "1234"
   }
 }
onEntityDisassociated
Type object
Description

Action to notify the operations provider when incident or post-incident-review has its association removed from jira issue

Example request

The templateUrl property of this action will receive a PUT request when this action is invoked. The entity.id is the providers external ID

1
2

 {
   "entity": {
     // This is an operations Atlassian Resource Identifier (ARI). This should be in format: ari:cloud:jira:{siteId}:incident/activation/{activationId}/{incidentId} or ari:cloud:jira:{siteId}:post-incident-review/activation/{activationId}/{post-incident-reviewId}
     "ari": "ari:cloud:jira:f730ce9c-3442-4f8a-93a4-a44f3b35c46b:incident/activation/111-222-333/111111",
     // This is the identifier provided by the provider, the type of entity can be determined from the ari field.
     "id": "1234"
   },
   "disassociatedFrom": {
     // This is jira issue Atlassian Type Identifier (ATI)
     "ati": "ati:cloud:jira:issue",
     // This is jira issue Atlassian Resource Identifier (ARI) get disassociated from the incident. This should be in format: ari:cloud:jira:{siteId}:issue/{issueId}
     "ari": "ari:cloud:jira:f730ce9c-3442-4f8a-93a4-a44f3b35c46b:issue/1234"
     // This is the siteId
     "cloudId": "f730ce9c-3442-4f8a-93a4-a44f3b35c46b",
     // This is jira issue identifier
     "id": "1234"
   }
 }

documentationUrl

Type
string
Format
uri
Description

Optional URL to documentation about the provider's Jira integration

logoUrl

Type
string
Format
uri
Description

Optional URL to the provider's logo, which will be displayed in the UI

Rate this page: