This page describes how to migrate from Jira Server or Jira Data Center to Jira Cloud and continue using the JQL Search Extensions.Are you using JQL Search Extensions for Jira Server/Data Center and want to continue using JQL Search Extensions on Jira Cloud? This page describes the key platform and feature differences. You can also find a list of the additional Cloud-only extensions that are available to you with JQl Search Extensions for Jira Cloud.
In this section:
|
Platform differences
JQL syntax
Support for JQL extensions The implementation of JQL Search Extensions is different in Jira server and cloud. On serverfor Jira Server/Data Center and Jira Cloud.
For Jira Server/Data Center, all the extensions are implemented as JQL functions and invoked as the following:issue in that perform calculations with the value used in ()
.
All functions are preceded by issue in
, for example, issue in commentedBefore("20182022-0509-2611")
.
On the other hand in For Jira Cloud, most JQL extensions are implemented as JQL aliases and invoked similarly to normal fields: keywords as references to issue metadata resulting in indexed searches. Keywords are followed by operators, for example, commentedOnDate < "2018-05-26"
Or invoked as functions in the Extended Search screen.
JQL aliases added by the app are accessible in Jira Advanced Search. JQL . Other, more complex searches are implemented as JQL functions.
Usage
In JQL Search Extensions for Jira Server/Data Center, you can use the extensions in Jira’s advanced search.
In JQL Search Extensions for Jira Cloud, JQL keywords provided by the app can be used in Jira’s advanced search and the Extended Search page. JQL functions are accessible from the Extended Search screen page or via by using Extended Search filters in Jira advanced search.Refer to the table in the next section to see the mapping between server and cloud JQL functions.
Examples
Jira Server/ Data Center |
---|
Jira Cloud |
Execution model
On serverWith the Server/Data Center version, the search queries are executed in the same Java Virtual Machine (JVM) as Jira. In the cloudCloud version, the JQL Search Extensions service is a completely separate deployment that communicates with Jira over the REST API. As a result, all operation operations in the cloud are indexed asynchronously and any changes updates to issues in Jira are can be reflected in the JQL with a slight delay.
The service is maintained and supported by our team.
JQL functions
The following table lists the JQL extensions available on server and their cloud counterparts. Almost all functions from server have an equivalent in cloud.
See the full list of Cloud JQL extensions with examples: JQL aliases and functions (reference)
...
JQL on Server and DC
...
JQL in Cloud
...
Comments
...
Projects
...
MovedIssues
...
movedProjects
...
Fields
...
FieldMatch
...
functions: regex
or wildcardMatch
...
FieldsHaveSameValue
...
Migration pathway
Queries are not migrated. If you want to use any saved queries from your Server/Data instance in Jira Cloud, the first step is to identify queries that use JQL Search Extensions. You should especially look at:
filters
board filters
automation rules
dashboard gadgets
plugins that accept filters and JQL queries
Once you have identified where the saved queries are used, translate them to the Cloud-equivalent JQL extension using the table below. You can also build new queries using the additional extensions provided by JQL Search Extensions for Jira Cloud. If you need further guidance, contact our support team.
Feature parity comparison
The table below lists the parity between JQL Search Extensions for Jira Server/Data Center and Jira Cloud. Note the difference in syntax for Server/Data Center functions and Cloud keywords.
Server/Data Center | Cloud | Notes |
---|---|---|
Projects | ||
movedIssues() |
| |
Fields | ||
fieldMatch() |
| |
fieldsHaveSameValue() |
| Limited support at the moment but a generic function is on our roadmap |
Attachments |
attachedAfter() |
|
attachedBefore() |
|
attachedBetween() |
|
attachedOnDate() |
|
attachedByUser() |
|
attachmentExtension() |
|
attachmentName() |
|
attachmentsCountEqualTo() |
|
attachmentsCountGreaterThan() |
|
attachmentsCountLessThan() |
| |
Comments |
commentedAfter() |
|
commentedBefore() |
|
commentedBetween() |
|
commentedOnDate() |
|
commentedByUser() |
|
commentsCountEqualTo() |
|
commentsCountGreaterThan() |
|
commentsCountLessThan() |
| |
Versions |
affectedVersionsArchivedCountLessThan() |
|
affectedVersionsArchivedCountEqualTo() |
|
affectedVersionsArchivedCountGreaterThan() |
|
affectedVersionsCountLessThan() |
|
affectedVersionsCountEqualTo() |
|
affectedVersionsCountGreaterThan() |
|
affectedVersionsOpenedCountLessThan() |
|
affectedVersionsOpenedCountEqualTo() |
|
affectedVersionsOpenedCountGreaterThan() |
|
affectedVersionsReleasedCountLessThan() |
|
affectedVersionsReleasedCountEqualTo() |
|
affectedVersionsReleasedCountGreaterThan() |
|
affectedVersionReleasedOnDate() |
|
affectedVersionReleasedBetweenDates() |
|
affectedVersionReleasedAfterDate() |
|
affectedVersionReleasedBeforeDate() |
|
fixVersionsArchivedCountLessThan() |
|
fixVersionsArchivedCountEqualTo() |
|
fixVersionsArchivedCountGreaterThan() |
|
fixVersionsCountLessThan() |
|
fixVersionsCountEqualTo() |
|
fixVersionsCountGreaterThan() |
|
fixVersionsOpenedCountLessThan() |
|
fixVersionsOpenedCountEqualTo() |
|
fixVersionsOpenedCountGreaterThan() |
|
fixVersionsReleasedCountLessThan() |
|
fixVersionsReleasedCountEqualTo() |
|
fixVersionsReleasedCountGreaterThan() |
|
fixVersionReleasedOnDate() |
|
fixVersionReleasedBetweenDates() |
|
fixVersionReleasedAfterDate() |
|
fixVersionReleasedBeforeDate() |
|
latestReleaseVersionForProject() |
No direct cloud equivalent at the moment | ||
Links |
linksCountLessThan() |
|
linksCountGreaterThan() |
|
linksCountEqualTo() |
|
linkedBy([linktype], jql-query or issuekeys) | function |
links(jql-query, link type) | function |
linksIssue() |
|
linkType() |
|
linkedIssueStatus() |
|
linkedIssueStatusCategory() |
|
linkedIssueType() |
|
linkedIssuePriority() |
|
linkedByIssueProject() |
|
Updated
Issue Updates | ||
updatedByUserCountLessThan() |
|
updatedByUserCountGreaterThan() |
|
updatedByUserCountEqualTo() |
|
updatedByUser() |
|
transitionedByUser() |
|
loggedTimeByUser() |
| |
Subtasks |
subTaskOf(jql-query) | function |
parentOf(jql-query) | functions
|
subtaskCountLessThan() |
|
subtaskCountGreaterThan() |
|
subtaskCountEqualTo() |
|
subTaskKey() |
|
subtaskPriority() |
|
subTaskType() |
|
subTaskStatus() |
|
subTaskStatusCategory() |
| |
Software development |
CommitsCount
FailingBuildsCount
OpenReviewsCount
PullRequestsCount
ReviewsCount
openPullRequestsCount() | There is no support in JQL Search Extensions | If you linked your development tools, refer to the native Jira Cloud JQL documentation https://confluence.atlassian.com/jirasoftwareserver/advanced-searching-development-fields-reference-973491363.html |
Issue hierarchy |
allIssuesInEpic(jql-query or issuekey) | function |
epicOf(jql-query) | function | |
User | ||
|
No direct cloud equivalent |
Migration steps
The first step is to identify queries that are using JQL extensions. You should especially look at:
filters
board filters
automation rules
dashboard gadgets
plugins that accept filters and JQL queries
Once the queries were identified, translate the calls to JQL extension functions using the table above.
...
Cloud-only features
JQL Search Extensions for Jira Cloud provides the following additional extensions not available with the Server/Data Center app.
Aura inline button | ||||
---|---|---|---|---|
|
Agile |
nextSprint() previousSprint() addedToSprintAfterStart() |
Epics |
epicsOfChildrenInQuery() childrenOfEpicsInQuery() issuesInEpicCount bugsInEpicCount storiesInEpicCount issuesInEpicToDoCount issuesInEpicInProgressCount issuesInEpicDoneCount bugsInEpicToDoCount bugsInEpicInProgressCount bugsInEpicDoneCount storiesInEpicToDoCount storiesInEpicInProgressCount storiesInEpicDoneCount |
Field Comparison |
dateCompare() dateCompareIgnoreTime() |
Issue & Project Updates |
updatedOnDates lastUpdatedBy movedProjectsCount |
Jira Hierarchy and Advanced Roadmaps |
parentsOfIssuesInQuery() parentsOfIssuesInQueryRecursive() childrenOfIssuesInQuery() childrenOfIssuesInQueryRecursive() |
Subtasks |
parentSummary parentPriority parentIssueType parentStatus parentStatusCategory |
Text |
exactTextMatch() exactTextMatchCaseInsensitive() |
Web Links (Remote Links) |
remoteLinkUrl remoteLinkUrlPartialMatch remoteLinkApplicationName remoteLinkApplicationType remoteLinkHost remoteLinkQuery remoteLinkPath remoteLinkTitle remoteLinkTitlePartialMatch remoteLinkRelationship remoteLinksCount |
See the full list of Cloud JQL extensions with examples: JQL Functions Reference.