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

Atlassian timeline for ending Connect support

Project Permission

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

Project permissions are scoped to projects and are useful if you need to manage permissions for operations performed on objects related to projects, like issues, comments, worklogs or your add-on's project-scoped entities.

A custom project 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_project_permission condition.

Note that there is a similar module for global permissions.

Example

1
2
{
  "modules": {
    "jiraProjectPermissions": [
      {
        "description": {
          "value": "Custom project permission for attachments"
        },
        "category": "attachments",
        "name": {
          "value": "My Project Permission"
        },
        "key": "my-project-permission"
      }
    ]
  }
}

Properties

description

Typei18n Property
Required Yes
Description

Description of the project 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
{
  "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.

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.

category

Typestring
Defaults to other
Allowed values
  • projects
  • PROJECTS
  • issues
  • ISSUES
  • voters_and_watchers
  • VOTERS_AND_WATCHERS
  • comments
  • COMMENTS
  • attachments
  • ATTACHMENTS
  • time_tracking
  • TIME_TRACKING
  • other
  • OTHER
  • administration
  • ADMINISTRATION
Description

The category of the project permission. This determines in which section the permission will be displayed.

conditions

TypeSingle Condition, Composite Condition...
Description

Conditions can be added to display only when all the given conditions are true.

Rate this page: