This site is moving soon to become part of an integrated Appfire documentation and information site for our apps. This site will remain available during the transition to our new and improved site. Once this site is moved over, this banner will be updated with the new site link for easy access.

Take a look here! If you have any questions please email support@appfire.com

Migration Guide

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.

Platform differences

JQL syntax

The implementation of JQL Search Extensions is different for Jira Server/Data Center and Jira Cloud.

For Jira Server/Data Center, all the extensions are implemented as JQL functions that perform calculations with the value used in ().

All functions are preceded by issue in, for example, issue in commentedBefore("2022-09-11").

For Jira Cloud, most JQL extensions are implemented as JQL keywords as references to issue metadata resulting in indexed searches. Keywords are followed by operators, for example, commentedOnDate < "2018-05-26". 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 page or by using Extended Search filters in Jira advanced search.

Examples

Jira Server/ Data Center

Jira Server/ Data Center

Advanced search using JQL Search Extensions functions

 

Jira Cloud

Extended Search query using JQL Search Extensions keywords

Execution model

With the Server/Data Center version, the search queries are executed in the same Java Virtual Machine (JVM) as Jira. In the Cloud version, the JQL Search Extensions service is a separate deployment that communicates with Jira over the REST API. As a result, all operations in the cloud are indexed asynchronously and updates to issues in Jira can be reflected in the JQL with a slight delay.

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

Server/Data Center

Cloud

Notes

Projects

movedIssues()

movedProjects

 

Fields

fieldMatch()

regex(), or wildcardMatch()

 

fieldsHaveSameValue()

hasSameUpdatedAndCreatedDate

hasSameAssigneeAndReporter

hasSameVersions

Limited support at the moment but a generic function is on our roadmap

Attachments

attachedAfter()

attachedOnDate

 

attachedBefore()

attachedOnDate

 

attachedBetween()

attachedOnDate

 

attachedOnDate()

attachedOnDate

 

attachedByUser()

attachedByUser

 

attachmentExtension()

attachmentExtension

 

attachmentName()

attachedByUser

 

attachmentsCountEqualTo()

attachmentsCount

 

attachmentsCountGreaterThan()

attachmentsCount

 

attachmentsCountLessThan()

attachmentsCount

 

Comments

commentedAfter()

commentedOnDate

 

commentedBefore()

commentedOnDate

 

commentedBetween()

commentedOnDate

 

commentedOnDate()

commentedOnDate

 

commentedByUser()

commentedByUser

commentLastCreatedBy

commentLastUpdatedBy

 

commentsCountEqualTo()

commentsCount

 

commentsCountGreaterThan()

commentsCount

 

commentsCountLessThan()

commentsCount

 

Versions

affectedVersionsArchivedCountLessThan()

affectedVersionsArchived

 

affectedVersionsArchivedCountEqualTo()

affectedVersionsArchived

 

affectedVersionsArchivedCountGreaterThan()

affectedVersionsArchived

 

affectedVersionsCountLessThan()

affectedVersionsCount

 

affectedVersionsCountEqualTo()

affectedVersionsCount

 

affectedVersionsCountGreaterThan()

affectedVersionsCount

 

affectedVersionsOpenedCountLessThan()

affectedVersionsOpened

 

affectedVersionsOpenedCountEqualTo()

affectedVersionsOpened

 

affectedVersionsOpenedCountGreaterThan()

affectedVersionsOpened

 

affectedVersionsReleasedCountLessThan()

affectedVersionsReleased

 

affectedVersionsReleasedCountEqualTo()

affectedVersionsReleased

 

affectedVersionsReleasedCountGreaterThan()

affectedVersionsReleased

 

affectedVersionReleasedOnDate()

affectedVersionReleasedDate

 

affectedVersionReleasedBetweenDates()

affectedVersionReleasedDate

 

affectedVersionReleasedAfterDate()

affectedVersionReleasedDate

 

affectedVersionReleasedBeforeDate()

affectedVersionReleasedDate

 

fixVersionsArchivedCountLessThan()

fixVersionsArchived

 

fixVersionsArchivedCountEqualTo()

fixVersionsArchived

 

fixVersionsArchivedCountGreaterThan()

fixVersionsArchived

 

fixVersionsCountLessThan()

fixVersionsCount

 

fixVersionsCountEqualTo()

fixVersionsCount

 

fixVersionsCountGreaterThan()

fixVersionsCount

 

fixVersionsOpenedCountLessThan()

fixVersionsOpened

 

fixVersionsOpenedCountEqualTo()

fixVersionsOpened

 

fixVersionsOpenedCountGreaterThan()

fixVersionsOpened

 

fixVersionsReleasedCountLessThan()

fixVersionsReleased

 

fixVersionsReleasedCountEqualTo()

fixVersionsReleased

 

fixVersionsReleasedCountGreaterThan()

fixVersionsReleased

 

fixVersionReleasedOnDate()

fixVersionReleaseDate

 

fixVersionReleasedBetweenDates()

fixVersionReleaseDate

 

fixVersionReleasedAfterDate()

fixVersionReleaseDate

 

fixVersionReleasedBeforeDate()

fixVersionReleaseDate

 

latestReleaseVersionForProject()

No direct cloud equivalent at the moment

 

Links

linksCountLessThan()

linksCount

 

linksCountGreaterThan()

linksCount

 

linksCountEqualTo()

linksCount

 

linkedBy([linktype], jql-query or issuekeys)

function linkedIssuesOfQuery()

 

links(jql-query, link type)

function linkedIssuesOfQuery()

 

linksIssue()

linkedBy

linksIssue

 

linkType()

linkType

 

linkedIssueStatus()

linkedIssueStatus

 

linkedIssueStatusCategory()

linkedIssueStatusCategory

 

linkedIssueType()

linkedIssueType

 

linkedIssuePriority()

linkedIssuePriority

 

linkedByIssueProject()

linkedByIssueProject

 

Issue Updates

updatedByUserCountLessThan()

updatedByUsersCount

 

updatedByUserCountGreaterThan()

updatedByUsersCount

 

updatedByUserCountEqualTo()

updatedByUsersCount

 

updatedByUser()

updatedBy

 

transitionedByUser()

transitionedBy

 

loggedTimeByUser()

loggedTimeBy

 

Subtasks

subTaskOf(jql-query)

function subtasksOfParentsInQuery()

 

parentOf(jql-query)

functions

parentsOfIssuesInQuery()

parentsOfIssuesInQueryRecursive()

 

subtaskCountLessThan()

subtasksCount

 

subtaskCountGreaterThan()

subtasksCount

 

subtaskCountEqualTo()

subtasksCount

 

subTaskKey()

subtaskKey

 

subtaskPriority()

subtaskPriority

 

subTaskType()

subtaskIssueType

 

subTaskStatus()

subtaskStatus

 

subTaskStatusCategory()

subtaskStatusCategory

 

Software development

openPullRequestsCount()
commitsCount()
failingBuildsCount()
openReviewsCount()
pullRequestsCount()
reviewsCount()

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 childrenOfEpicsInQuery()

 

epicOf(jql-query)

function epicsOfChildrenInQuery()

 

User

userMatch

No direct cloud equivalent

 

Cloud-only features

JQL Search Extensions for Jira Cloud provides the following additional extensions not available with the Server/Data Center app.

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.