This page describes how to migrate from Jira Server or Jira Data Center to Jira Cloud and continue using the JQL Search Extensions.
Platform differences
JQL syntax
Support for JQL extensions is different in Jira server and cloud. On server, all the extensions are implemented as JQL functions and invoked as the following:
issue in commentedBefore("2018-05-26")
On the other hand in Jira Cloud, most JQL extensions are implemented as JQL aliases and invoked similarly to normal fields:
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 functions are accessible from Extended Search screen or via 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.
Execution model
On server, the search queries are executed in the same JVM as Jira. In the cloud, JQL Search Extensions service is a completely separate deployment that communicates with Jira over the REST API.
As a result, all operation in the cloud are indexed asynchronously and any changes in Jira are 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 |
| |
Fields | ||
FieldMatch | functions: | |
FieldsHaveSameValue | aliases:
| 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 | ||
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 | ||
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 at the moment |
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.
You can always ask our support for help and further guidance.