Jira Cloud connector
The Jira Cloud connector communicates with the Jira Cloud REST API v3 to search, create, and manage issues, projects, and users. It supports two authentication methods: Basic authentication (email and API token) and OAuth 2.0 Authorization Code flow. Both methods connect to your Atlassian site by subdomain.
You can create connectors in Stack Management > Connectors.
Jira Cloud connectors have the following configuration properties:
- Subdomain
- Your Atlassian subdomain (for example,
your-domainforhttps://your-domain.atlassian.net). - Authentication type
-
The method used to authenticate with Jira Cloud. Choose one of the following:
- Basic: Uses an email address and API token. Refer to Get API credentials.
- OAuth 2.0 Authorization Code: Uses an OAuth app for delegated, per-user access. Refer to Set up OAuth authentication.
- The email address associated with your Atlassian account.
- API token
- A Jira API token for authentication. Refer to Get API credentials for instructions.
- Client ID
- The client ID from your Atlassian OAuth 2.0 app.
- Client secret
- The client secret from your Atlassian OAuth 2.0 app.
- Cloud ID
- Your Jira Cloud site's unique identifier, required for OAuth. To find your Cloud ID, visit
https://<your-subdomain>.atlassian.net/_edge/tenant_infoand use thecloudIdvalue from the JSON response.
You can test connectors when you create or edit the connector in Kibana.
The Jira Cloud connector has the following actions:
- Search issues with JQL (
searchIssuesWithJql) -
Search or filter Jira issues using JQL (Jira Query Language).
jql(required): A JQL query string (for example,project = PROJ AND status = "In Progress").maxResults(optional): Maximum number of issues to return per page.nextPageToken(optional): Pagination token from a previous response.
- Get issue (
getIssue) -
Retrieve full details of a single Jira issue by key or ID.
issueId(required): The issue key (for example,PROJ-123) or numeric issue ID.
- Get projects (
getProjects) -
List or search Jira projects.
query(optional): Search term to filter projects by name or key.maxResults(optional): Maximum number of projects to return.startAt(optional): Index of the first result for pagination.
- Get project (
getProject) -
Retrieve full details of a single Jira project by key or ID.
projectId(required): The project key (for example,PROJ) or numeric project ID.
- Get issue types (
getIssueTypes) -
List the issue types available in a project (for example, Bug, Task, Story). Use before
createIssueto discover valid type names and IDs.projectKey(required): The project key (for example,PROJ).
- Get create metadata (
getCreateMetadata) -
Return the required and optional fields for creating an issue of a specific type. Use after
getIssueTypesto build a validcreateIssuepayload.projectKey(required): The project key.issueTypeId(required): The numeric issue type ID fromgetIssueTypes.
- Get transitions (
getTransitions) -
List the workflow transitions available for an issue. Use before
transitionIssue— Jira requires a transition ID, not a status name.issueId(required): The issue key or numeric ID.
- Get attachment (
getAttachment) -
Download the content of an attachment by its ID. Returns the file as a base64-encoded string with its MIME type. Attachment IDs are found in a
getIssueresponse.attachmentId(required): The numeric attachment ID.
- Search users (
searchUsers) -
Search for Jira users by name, username, or email. Returns
accountIdvalues required byassignIssueandaddWatcher.query(optional): A search string matching display name, email, or username.username(optional): Filter by exact username.accountId(optional): Filter by exact account ID.startAt(optional): Index of the first result for pagination.maxResults(optional): Maximum number of users to return.property(optional): A user property key to filter by.
- Create issue (
createIssue) -
Create a new Jira issue.
projectKey(required): The project key (for example,PROJ).summary(required): The issue title.issueType(required): Issue type name (for example,Bug) or numeric ID. UsegetIssueTypesto list valid types for the project.description(optional): Issue body in plain text. Newlines become separate paragraphs in Jira.priority(optional): Priority name (for example,High,Medium,Low).labels(optional): Array of label strings. Labels cannot contain spaces.assigneeAccountId(optional): Atlassian account ID of the assignee. UsesearchUsersto resolve a name or email.parent(optional): Parent issue key for creating a subtask (for example,PROJ-10).
- Update issue (
updateIssue) -
Update fields on an existing issue. Only the fields you provide are changed; omitted fields are left as-is.
issueId(required): The issue key or numeric ID.summary,description,issueType,priority,labels,parent(optional): Same format ascreateIssue.assigneeAccountId(optional): Account ID to assign, ornullto unassign.
- Add comment (
addComment) -
Post a comment on an existing issue.
issueId(required): The issue key or numeric ID.body(required): Comment text in plain text. Newlines become separate paragraphs.
- Transition issue (
transitionIssue) -
Move an issue to a new status by executing a workflow transition. Call
getTransitionsfirst to get the transition ID — Jira does not accept status names directly.issueId(required): The issue key or numeric ID.transitionId(required): The transition ID fromgetTransitions.
- Assign issue (
assignIssue) -
Assign an issue to a user, set it to the project default, or unassign it.
issueId(required): The issue key or numeric ID.accountId(required): The Atlassian account ID fromsearchUsers,"-1"for the default assignee, ornullto unassign.
- Add attachment (
addAttachment) -
Attach a file to an issue. The file content must be provided as a base64-encoded string.
issueId(required): The issue key or numeric ID.file(required): Base64-encoded file content.filename(required): Filename including extension (for example,screenshot.png).
- Link issues (
linkIssues) -
Create a directional link between two issues (for example, "Relates", "Blocks", "Duplicate").
inwardIssueKey(required): Key of the inward issue.outwardIssueKey(required): Key of the outward issue.linkType(required): Link type name as configured in your Jira instance. The value is case-sensitive and must match exactly (for example,"Relates"not"relates to").comment(optional): A plain-text comment to add to the link.
- Delete issue (
deleteIssue) -
Permanently delete an issue. This action is irreversible and is not available as an agent tool.
issueId(required): The issue key or numeric ID.deleteSubtasks(optional): Set totrueto also delete subtasks. Required if the issue has subtasks.
- Add watcher (
addWatcher) -
Add a user to the watcher list for an issue.
issueId(required): The issue key or numeric ID.accountId(required): The Atlassian account ID fromsearchUsers.
- Remove watcher (
removeWatcher) -
Remove a user from the watcher list for an issue.
issueId(required): The issue key or numeric ID.accountId(required): The Atlassian account ID of the watcher to remove.
- Create and track a remediation issue:
getIssueTypes→getCreateMetadata→createIssue→addComment→transitionIssue(close when resolved) - Transition an issue:
getTransitions(to get the transition ID) →transitionIssue - Assign an issue:
searchUsers(to get the account ID) →assignIssue - Find and update:
searchIssuesWithJql→getIssue→updateIssue
Use the Action configuration settings to customize connector networking, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use xpack.actions.customHostSettings to set per-host configurations.
To use the Jira Cloud connector with Basic authentication, you need a Jira API token:
- Log in to your Atlassian account.
- Go to Security > API tokens (or open API token management directly).
- Select Create API token.
- Enter a label (for example,
Kibana connector) and select Create. - Copy the token and store it securely. Enter this value as the API token when configuring the connector in Kibana. The email address associated with your Atlassian account is used as the username for Basic authentication.
To use the Jira Cloud connector with OAuth 2.0, you must create an OAuth app in the Atlassian Developer Console and configure it to work with Kibana.
- Go to the Atlassian Developer Console and sign in with your Atlassian account.
- Select Create and choose OAuth 2.0 integration.
- Enter a name for the app (for example,
Kibana connector) and agree to the developer terms, then select Create. - In the app settings, go to Authorization and select Add next to OAuth 2.0 (3LO).
- Set the Callback URL to your Kibana OAuth callback URL. The format is:
https://<your-kibana-url>/api/actions/connector/_oauth_callback - Select Save changes.
- In the app settings, go to Permissions.
- Find Jira API and select Add.
- Select Configure and enable the following scopes under Classic scopes:
read:jira-work— Read access to Jira project and issue data.read:jira-user— Read access to Jira user information.write:jira-work— Create and update issues, comments, attachments, transitions, and watchers.
If you previously authorized an OAuth connector without the write:jira-work scope, write actions return a 403 error until you re-authorize the connector. Basic authentication connectors are unaffected — write access is controlled by the Jira account's project permissions.
- In the app settings, go to Settings.
- Copy the Client ID and Secret values. Enter these when configuring the connector in Kibana.
- Navigate to
https://<your-subdomain>.atlassian.net/_edge/tenant_infoin your browser (replace<your-subdomain>with your Atlassian subdomain). - Copy the
cloudIdvalue from the JSON response. Enter this when configuring the connector in Kibana.
For more information on Atlassian OAuth 2.0 apps, refer to Atlassian's OAuth 2.0 (3LO) documentation.