Global Permission

This module allows add-ons to define custom global permissions.

Global permissions are not related to any particular entity and are useful if you need to manage permissions for operations performed on global objects, like users or global settings.

A custom global permission behaves as any other Jira permission. Administrators may manage it in the UI, and your add-on can access it through REST APIs. Permissions you define in your add-on can be used in the has_global_permission condition.

Note that there is a similar module for project permissions.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "modules": {
    "jiraGlobalPermissions": [
      {
        "description": {
          "value": "Custom global permission for my add-on"
        },
        "anonymousAllowed": false,
        "defaultGrants": [
          "all"
        ],
        "name": {
          "value": "My Global Permission"
        },
        "key": "my-global-permission"
      }
    ]
  }
}

Properties

description
Type
Required
Yes
Description

Description of the global permission. It will be displayed under the permission's 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
3
4
{
  "value": "My text"
}

Properties

value
Type
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
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.


key
Type
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
3
4
5
6
7
8
9
{
    "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
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
3
4
{
  "value": "My text"
}

Properties

value
Type
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
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.


anonymousAllowed
Type
Defaults to
true
Description

Specifies if this permission can be granted to anonymous users.


defaultGrants
Type
Description

Specifies group of users that will be granted this permissions when the add-on is first installed. Please note that existing permission configuration won't be overwritten during add-on upgrades or re-installations.

Allowed values:

  • NONE - Permission will not be granted to anyone by default
  • ALL - If anonymousAllowed is set to true, every user, both logged in and anonymous, will be granted the permission. Otherwise, permission will be granted to every user with application role assigned.
  • JIRA-ADMINISTRATORS - Every user with jira administration permission will be granted this permission.