Feature Parity
ScriptRunner for Jira Cloud does not have the same feature set as the Server/Data Center version. Listed below are the features available in ScriptRunner for Jira Cloud including links to further feature information. We have also outlined some key notes that provide you with important essential information at a glance.
Cloud Feature Name | Key Notes |
---|---|
Behaviours | You can follow the latest updates on our website here. |
Built-in Scripts | There are currently 3 built-in scripts available on Cloud. |
Escalation Services | Known as a Built-in Jobs in ScriptRunner for Server/Data Center. On Server/Data Center, the schedule is set using a custom Cron expression, but in Cloud, the schedule can only be set at hour intervals. |
Scheduled Jobs | Known as Jobs in ScriptRunner for Server/Data Center. |
JQL Functions | Both versions of ScriptRunner use JQL Functions. However, this feature has been implemented as Enhanced Search within ScriptRunner for Jira Cloud. |
Scripted Fields | Known as Script Fields in ScriptRunner for Server/Data Center. In Cloud, Scripted Fields are not stored as normal Jira custom fields. Instead, the field output is added to an issue’s properties and therefore inherits the issue’s permissions. Scripted Fields are not currently searchable with JQL, but we’re working hard to make this available as soon as possible. |
Scripted Fragments | Known as Script Fragments in ScriptRunner for Server/Data Center. |
Script Listeners | Known as Listeners in ScriptRunner for Server/Data Center. The implementation differs from Server due to inherent differences between Server and Cloud. There are also less events available in Cloud than in Server/Data Center. |
Workflow Conditions | When editing a workflow transition and adding a new Condition - select "ScriptRunner Script". Note: Jira Cloud Conditions and Validators are achieved through the use of 'Jira Expressions'. |
Workflow Post Functions | |
Workflow Validators | When editing a workflow transition and adding a new Validator - select "ScriptRunner Script". Note: Jira Cloud Conditions and Validators are achieved through the use of 'Jira Expressions'. |
Jira REST API and UI Modifications API
The varying parities between Cloud and Server/Data Center exist due to the limitations of the Jira REST API and UI Modifications API, which ScriptRunner relies on to allow certain functionality. Unfortunately, it is likely that some features cannot be part of the Cloud feature set due to restrictions in the Cloud platform. There are also some general limitations within ScriptRunner Cloud, such as script execution timeouts and script storage which we recommend reviewing.
ScriptRunner for Server/Data Center and Cloud feature parity comparison
In the table below, we have noted the parity of each ScriptRunner for Server/Data Center feature, along with any script/function alternatives where there is currently no value parity.
Key | Definition |
---|---|
Full value parity. | |
◐ | Partial value parity. |
ALT | No value parity, but custom script alternatives are available. |
No value parity or alternatives are available. |
Server/DC Feature Name | Cloud Parity | Parity Notes/Alternatives |
---|---|---|
Behaviours | ◐ | Behaviours on Cloud is only supported on the Create Issue Screen for Jira Software - Company Managed Projects. Project and Issue Types must be selected individually in the configuration, there is no All Projects or All Issue Types option. Cloud Supported Fields
Cloud Supported Functions
|
Built-In: Bulk Copy SLA Configuration | | |
Built-In: Bulk Fix Resolution | ◐ | Cloud does not allow clearing resolutions (selecting None option). |
Built-In: Bulk Import Custom Fields | ALT | The same function can be achieved by writing your own script in the Script Console but with all the caveats of time limitation, API availability, etc. |
Built-In: Change Dashboard, Filter or Board Ownership | | |
Built-In: Clean Workflows | | |
Built-In: Clear Groovy Class Loader | ||
Built-In: Configuration Exporter | ||
Built-In: Copy Custom Field Values | ◐ | Cloud currently supports:
|
Built-In: Copy Project | ALT | You can achieve the same functionality in Jira Cloud by using the Script Console and a script. |
Built-In: Generate Events | ||
Built-In: Guardrails (All) | ||
Built-In: List Scheduled Jobs | ||
Built-In: Re-index Issues | ||
Built-In: Script Registry | ||
Built-In: Service Desk Template Comments | ||
Built-In: Split Custom Field Contexts | ||
Built-In: Switch to a Different User | ||
Built-In: Test Runner | ||
Built-In: View Server Log Files | ||
Code Insights | ||
Jobs: Custom Scheduled Job | ◐ | Cloud supports:
|
Jobs: Escalation Service | ◐ | Cloud supports:
|
Jobs: Issue Archiving Job | ||
JQL Functions | This feature has been implemented as Enhanced Search within ScriptRunner for Jira Cloud. | |
JQL Functions: addedAfterSprintStart | This JQL function will identify issues that were added to an open sprint after the feature was released (21st December 2020). Historical searches for issues added to open sprints prior to that date are not supported. | |
JQL Functions: aggregateExpression | ||
JQL Functions: commented | There is not a like-for-like function in Cloud, but depending on what you want to achieve you could use some ScriptRunner JQL Keywords to achieve the same: | |
JQL Functions: completeInSprint | ||
JQL Functions: componentMatch | ◐ | To negate the function in Cloud, the not keyword must be at the start of the clause, for example, |
JQL Functions: dateCompare | ||
JQL Functions: earliestUnreleasedVersionByReleaseDate | ||
JQL Functions: epicsOf | ◐ | This JQL function is available for Classic Jira projects but not for Next-Gen projects. |
JQL Functions: expression | ||
JQL Functions: fileAttached | There is not a like-for-like function in Cloud, but depending on what you want to achieve, you could use some ScriptRunner JQL Keywords to achieve the same: | |
JQL Functions: hasAttachments | There is not a like-for-like function in Cloud, but depending on what you want to achieve, you could use the ScriptRunner JQL Keywords: | |
JQL Functions: hasComments | The ScriptRunner JQL Keyword: | |
JQL Functions: hasLinks | There is not a like-for-like function in Cloud, but depending on what you want to achieve, you could use some ScriptRunner JQL Keywords to achieve the same: | |
JQL Functions: hasLinkType | The ScriptRunner JQL Keyword: | |
JQL Functions: hasRemoteLinks | ||
JQL Functions: hasSubtasks | You could use the ScriptRunner JQL Keywords: | |
JQL Functions: inactiveUsers | ||
JQL Functions: incompleteInSprint | ||
JQL Functions: issueFieldExactMatch | This feature is called | |
JQL Functions: issueFieldMatch | ||
JQL Functions: issuesInEpics | This JQL function is available for Classic Jira projects but not for Next-Gen projects. | |
JQL Functions: jiraUserPropertyEquals | ||
JQL Functions: lastComment | There is not a like-for-like function in Cloud, but depending on what you want to achieve you could use the ScriptRunner JQL Keywords to achieve the same: | |
JQL Functions: lastUpdated | ||
JQL Functions: linkedIssuesOf | In Jira Server/Data Center, this function can be used to search for issues linked with the parent-child hierarchy provided by Advanced Roadmaps/Portfolio but not in the Jira Cloud Enhanced Search. | |
JQL Functions: linkedIssuesOfAll | ||
JQL Functions: linkedIssuesOfAllRecursive | ||
JQL Functions: linkedIssuesOfAllRecursiveLimited | ||
JQL Functions: linkedIssuesOfRecursive | ||
JQL Functions: linkedIssuesOfRecursiveLimited | ||
JQL Functions: linkedIssuesOfRemote | ||
JQL Functions: memberofRole | ||
JQL Functions: myProjects | ||
JQL Functions: nextSprint | ||
JQL Functions: overdue | ||
JQL Functions: parentsOf | ||
JQL Functions: portfolioChildrenof() | Atlassian provides the portfolioChildIssuesOf function to search for issues below an initiative, for example:
This is not the same as the ScriptRunner version in Server/DC. | |
JQL Functions: portfolioParentOf() | Atlassian provides the portfolioChildIssuesOf function to search for issues below an initiative, for example:
This is not the same as the ScriptRunner version in Server/DC. | |
JQL Functions: previousSprint | ||
JQL Functions: projectMatch | To negate the function in Cloud, the not keyword must be at the start of the clause, for example, | |
JQL Functions: projectsOfType | ||
JQL Functions: recentProjects | ||
JQL Functions: releaseDate | ||
JQL Functions: removedAfterSprintStart | ||
JQL Functions: startDate | ||
JQL Functions: subtasksOf | ||
JQL Functions: versionMatch | To negate the function in Cloud, the not keyword must be at the start of the clause, for example, | |
JQL Functions: workLogged | There is not a like-for-like function in Cloud, but depending on what you want to achieve you could use the ScriptRunner JQL Keywords: | |
Listeners | ||
Listeners: Adds the current user as a watcher | ALT | The same function can be achieved using a Custom Listener and a script. |
Listeners: Clone an issue and links | ALT | The same function can be achieved by writing your own script in the Custom Listener but with all the caveats of time limitation, API availability, etc. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips. |
Listeners: Create a sub-task | ALT | The same function can be achieved using a Custom Listener and this script for creating a subtask(s). |
Listeners: Custom Listener | ◐ | There is a limit of 120 seconds for script executions. After running for 120 seconds, the logs will be collected, and the code will be terminated. Events not supported in Cloud: All Issues Events, Issue Resolved, Issue Assigned, Issue Closed, Issue Reopened, Issue Moved, Generic Event, Issue Archived, Issue Restored, Work Logged On Issue, Worked Started On Issue, Worked Stopped On Issue, All Component Event, All Custom Field Event, All Directory Events, All Field Screen Events, AllIndexing Events, All Issue Watch Events, All Mention Events, All Project Category Events, ProjectRestoredEvent, All Project Role Events, All Property Events, All Scheme Events, AbstractVersionEvent, AffectVersionCreatedInlineEvent, FixVersionCreatedInline, RemoteVersionLinkDeleteEvent, RemoteVersionLinkPutEvent, VersionArchiveEvent, VersionCreatedViaRestEvent, VersionMergeEvent, VersionUnarchiveEvent, RemoteSprintLinkEvent, BoardEvent, KanbanBacklogToggledEvent, FeatureToggledEvent, SprintEvent, RemoteSprintLinkEvent, ImportAnalyticEvent, EpicIssueTypeChangedEvent, EpicCustomFieldChangedEvent, LexoRankChangeEvent, SprintCustomFieldChangedEvent, SprintPropertyDeletedEvent, SprintPropertySetEvent, SprintAutoStartEvent, VelocityChartIssueLimitChangedEvent, VelocityChartSprintLimitChangedEvent, UnlicensedAnalyticsEvent, CollectIssuesEvent, MoceIssueEvent |
Listeners: Execution failure notifier | | |
Listeners: Fast-track transition an issue | ALT | The same function can be achieved using a Custom Listener and a script to transition an issue. |
Listeners: Fires an event when a condition is true | ||
Listeners: Post a message to slack | ALT | The same function can be achieved using a Custom Listener and a script to Post to Slack. |
Listeners: Send a custom email (non-issue events) | ALT | The same function can be achieved using a Custom Listener and a script to send an email. The notify API doesn’t allow you to email external emails, and only allows you to notify users, groups, or user fields (such as assignee or reporter) on an issue. |
Listeners: Send a custom email | ALT | The same function can be achieved using a Custom Listener and a script to send an email. The notify API doesn’t allow you to email external emails, and only allows you to notify users, groups, or user fields (such as assignee or reporter) on an issue. |
Listeners: Version Synchronizer | ALT | The same function can be achieved by writing your own script in the Custom Listener but with all the caveats of time limitation, API availability, etc. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips. |
Mail Handler | ||
Resources: Database Connection | ||
Resources: LDAP Connection | ||
Resources: Local Database Connection | ||
Resources: Slack Connection | ||
REST End-Points: Custom End Point | ||
Script Console | There is a limit of 120 seconds for Cloud script executions. After running for 120 seconds, the logs will be collected, and the code will be terminated. | |
Script Editor | ||
Script Fragments | ◐ | Cloud supports Web Panels only. Script source must be specified (and accessible to Jira), in line script is not available. |
Script Fields | ||
Script Fields: Custom Script Fields | ◐ | In Cloud, Scripted Fields are not stored as normal Jira custom fields. Instead, the field output is added to an issue’s properties and therefore inherits the issue’s permissions. Scripted Fields are not currently searchable with JQL, but we’re working on making this available as soon as possible. |
Script Fields: Custom Picker | ||
Script Fields: Database Picker | ||
Script Fields: Date of the first transition | ALT | The same function can be achieved using a Custom Scripted Field and a script using a Text Field type. |
Script Fields: Issue(s) Picker | ||
Script Fields: LDAP Picker Field | ||
Script Fields: No. of times in a status | ALT | The same function can be achieved by writing your own script in the Custom Scripted Field but with all the caveats of time limitation, API availability, etc. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips. |
Script Fields: Remote issue(s) picker | ||
Script Fields: Show parent issue in a hierarchy | ALT | The same function can be achieved by writing your own script in the Custom Scripted Field but with all the caveats of time limitation, API availability, etc. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips. |
Script Fields: Time of Last status Change | ALT | The same function can be achieved using a Custom Scripted Field and a script using a Text Field Type. |
Settings > Script Edit Permissions | ||
Workflow Conditions | ScriptRunner for Jira Cloud provides workflow conditions using the Jira Expression Framework. It is not possible to use the REST API. | |
Workflow > Condition: All sub-tasks must be resolved | ALT | The same function can be achieved using a custom script condition and a script to check all sub-tasks are resolved. |
Workflow > Condition: Allows the transition if this query matches a JQL query | ||
Workflow > Condition: Checks the issue has been in a status previously | ALT | The same function can be achieved using a custom script condition and a script that Checks the Issue Has Been in a Status Previously. |
Workflow > Condition: Custom script condition | Cloud conditions use Jira Expression language where the result must be true or false. The custom script condition in Cloud has closer parity to Simple Scripted Condition. | |
Workflow > Condition: Field(s) required condition | ALT | The same function can be achieved using a custom script condition and a Field(s) Required script. |
Workflow > Condition: Group(s) condition | ALT | The same function can be achieved using a custom script condition and a script to check the user is within a specified user group. |
Workflow > Condition: JQL query matches condition | | |
Workflow > Condition: Linked issues condition | ALT | The same function can be achieved using a custom script condition and a Linked Issues script. |
Workflow > Condition: Project role(s) condition | ALT | The same function can be achieved using a custom script condition and a script to check the user is within a specified project role. |
Workflow > Condition: Regular expression condition | ALT | The same function can be achieved using a custom script condition and the Regular Expressions script. |
Workflow > Condition: Simple scripted condition | ◐ | Cloud conditions use Jira Expression language where the result must be true or false, it does not use Groovy. |
Workflow > Condition: User in field(s) condition | ALT | The same function can be achieved using a custom script condition and the User in Field(s) script. |
Workflow > Condition: User(s) and User Group(s) condition | ALT | The same function can be achieved using a custom script condition and the User(s) and User Group(s) script. |
Workflow Post Functions | ||
Workflow > Post Function: Add a comment to this issue | ALT | The same function can be achieved using a custom post function and a script. |
Workflow > Post Function: Add/remove from sprint | ||
Workflow > Post Function: Adds a comment to linked issues when this issue is transitioned | ALT | The same function can be achieved using a custom post function and a script. |
Workflow > Post Function: Adds the current user as a watcher | ALT | The same function can be achieved using a custom post function and a script. |
Workflow > Post Function: Archive this issue | ||
Workflow > Post Function: Assign to first member of role | ALT | The same function can be achieved using a custom post function. |
Workflow > Post Function: Assign to last role member | ALT | The same function can be achieved using a custom post function. |
Workflow > Post Function: Clear field(s) post function | ALT | The same function can be achieved using a custom post function and a script. |
Workflow > Post Function: Clones an issue, and links | ||
Workflow > Post Function: Copy field values | ALT | The same function can be achieved by writing your own script in the custom post function but with all the caveats of time limitation, API availability, etc. Check out our page on Scripting in ScriptRunner for Jira Cloud for tips. |
Workflow > Post Function: Create a sub-task | ||
Workflow > Post Function: Custom script post-function | ||
Workflow > Post Function: Fast-track transition an issue | ||
Workflow > Post Function: Fires an event when condition is true | ||
Workflow > Post Function: Post a message to Slack | ALT | The same function can be achieved using a custom script post-function with a script to post to Slack. |
Workflow > Post Function: Send a custom email | The equivalent in Cloud is “Send Notification”. | |
Workflow > Post Function: Set issue security level depending on provided condition | ||
Workflow > Post Function: Transition parent when all subtasks are resolved | ◐ | The same function can be achieved using the fast-track transition issue built-in post function and adding a condition script to verify all subtasks are resolved. |
Workflow Validator | ScriptRunner for Jira Cloud provides workflow conditions using the Jira Expression Framework. It is not possible to use the REST API. | |
Workflow > Validator: Custom script validator | Cloud conditions use Jira Expression language where the result must be true or false. The custom script validator in Cloud has closer parity to Simple Scripted Validator. | |
Workflow > Validator: Field(s) changed validator | ALT | The same function can be achieved using a custom script validator and the Field(s) Changed script. |
Workflow > Validator: Field(s) required validator | ALT | The same function can be achieved using a custom script validator and the Field(s) Required script. |
Workflow > Validator: Regular expression validator | ALT | The same function can be achieved using a custom script validator and a script. |
Workflow > Validator: Require a comment on transition | ALT | This script can be used to enforce that a comment has been given on transition. |
Workflow > Validator: Simple scripted validator | ◐ | Cloud conditions use the Jira Expression language where the result must be true or false, it does not use Groovy. |
Workflow > Validator: User in field(s) validator | ALT | The same function can be achieved using a custom script validator and a script. |