Jira
Purpose
Collects one Jira Cloud site's users, groups and group membership, admin groups, projects, project roles and their actors, and permission schemes. Use it to see who can administer or browse each project.
This sync module is separate from the Jira ticketing integration under Settings > Integrations. That integration uses OAuth to create issues; this module reads access data with an API token. Configure each independently.
Secret fields below accept either an AWS Secrets Manager ARN or a value pasted directly into SubImage's managed vault. See Secrets for details.
Required Fields
| Field | Secret? | Description |
|---|---|---|
jira_cloud_id |
No | Jira Cloud site ID (UUID). Scopes every synced ID to this site. |
jira_email |
No | Email address of the Atlassian account that owns the API token |
jira_api_token |
Yes | Atlassian API token: its AWS Secrets Manager ARN, or the vault value |
Optional Fields
| Field | Description |
|---|---|
jira_site_url |
Site origin, e.g. https://acme.atlassian.net. Only needed for an unscoped API token; leave empty for a scoped one. |
Required Permissions
The token's account needs both Jira global permissions below. The sync checks them before reading anything, because a less privileged account gets a silently filtered project list.
| Permission | Purpose |
|---|---|
| Browse users and groups | List every user and group, including membership |
| Administer Jira | List every project and read its roles and permission scheme |
A scoped token also needs these granular read scopes:
read:application-role:jira
read:avatar:jira
read:field:jira
read:group:jira
read:issue-type-hierarchy:jira
read:issue-type:jira
read:permission-scheme:jira
read:permission:jira
read:project-category:jira
read:project-role:jira
read:project-version:jira
read:project.component:jira
read:project.property:jira
read:project:jira
read:user:jiraSetup Steps
- Find your site's Cloud ID by opening
https://<your-site>.atlassian.net/_edge/tenant_infoand copying thecloudIdvalue. - Sign in as an account with the two global permissions above and open API token settings.
- Select Create API token with scopes, name it
SubImage, choose an expiry date, and pick Jira as the app. - Add all 15 read scopes listed above and create the token. Copy it now; Atlassian only shows it once.
- In SubImage, enter
jira_cloud_id, the account'sjira_email, and the token injira_api_token. - Save the module and run a sync.
Notes
- Only Jira Cloud is supported. Jira Data Center and Server are not.
- The sync is read-only; it only issues
GETrequests and changes no Jira configuration. - An existing unscoped API token also works. Set
jira_site_urlto your site'shttps://<site>.atlassian.netorigin; the sync verifies it matches the Cloud ID. - Atlassian profile visibility can hide some users' email addresses, even from administrators. Those users are still synced by account ID.
- Atlassian API tokens expire. Rotate the token before its expiry date and update the module configuration.
Troubleshooting
- Jira permissions missing: the token's account lacks Administer Jira or Browse users and groups. Grant both, or use a token owned by a Jira administrator.
- Jira site misconfigured: the site is not Jira Cloud, or
jira_site_urlpoints at a different site thanjira_cloud_id. - 401 Unauthorized: the token expired or was revoked,
jira_emailis not the token owner, or an unscoped token is missingjira_site_url. - 403 Forbidden: a scoped token is missing one of the read scopes above. Create a new token with all 15.