Live Fields Cloud vs. Live Fields Data Center

There are several differences between Live Fields for Jira Cloud and Live Fields on Jira Data Center.

Live Fields on Data Center is a core part of the Power Scripts app. However, due to architectural differences between Jira Data Center and Jira Cloud, Live Fields has been established as its own app; luckily this allows for expanded compatibility with other apps, including JMWE for Jira Cloud as well as Power Scripts for Jira Cloud with additional compatibilities planned for future releases!

Note: migration from Jira Data Center to Jira Cloud is currently not supported.

Language

Live Fields for Jira Data Center is written using the SIL language, which is a language created for the Power Scripts application. Live Fields for Jira Cloud was created using Atlassian’s provided APIs it has to use languages compatible with those API’s; this includes JavaScript and TypeScript.

API

Data Center API vs Cloud API

The table below details the availability of Data Center APIs in Live Fields for Jira Cloud, and the equivalent API, if available.

SIL Function

Description

Available in Cloud?

Comment

Cloud API Equivalent

SIL Function

Description

Available in Cloud?

Comment

Cloud API Equivalent

lfShowAll 

Shows the given fields, panels and tabs.

*

While not identical, the ability to show all screen elements can be achieved with the Cloud API.

setVisible

lfEnable 

Enables the given field.

 

setReadOnly

lfHideTab 

Hides the specified tab.

The Cloud API does not provide a method for hiding an entire tab. However, it is possible to achieve similar results by hiding all elements on the tab.

 

lfShowTab 

Shows the specified tab.

 

 

lfHideAllExcept 

Hides all given fields, panels, and tabs except the ones given as parameters.

*

Currently, elements must be hidden individually using setVisible for each.

setVisible

lfSet 

Sets the field with the given values.

 

setValue

lfAllowSelectOptions 

Restricts a field's selectable values to the list of options given as a parameter of the routine.

*

 

setOptionsVisibility

lfDialogMessage 

Displays a global message in a dialog box.

At this time, the Cloud API does not provide the ability to display messages to the user in this way.

 

lfDisable 

Disables the given field.

 

setReadOnly

lfDisableTab 

Disables the given tab of a provided name.

The Cloud API does not provide a method for disabling an entire tab. However, it is possible to achieve similar results by disabling all elements on the tab.

 

lfEnableTab 

Enables the given tab.

See comment above.

 

lfExecuteJS 

Gives you the possibility to run your own JavaScript code.

The Cloud API does not allow for the direct execution of JavaScript.

 

lfGlobalMessage 

Displays a global message.

At this time, the Cloud API does not provide the ability to display messages to the user in this way.

 

lfHide 

Hides the given field.

 

setVisible

lfHideFieldMessage 

Hides a message for the given field.

At this time, the Cloud API does not provide the ability to display messages to the user in this way.

 

lfInstantHook 

Executes the given SIL script passing the screen values for the specified dependent fields.

While this functionality does exist in Cloud, it is achieved with an option set in the configuration and not in the script.

 

lfRedirect 

Redirects to the specified URL.

 

 

lfRefreshScreen 

Performs a page reload.

 

 

lfRestrictSelectOptions 

Restricts certain options from the list of options for the field.

 

setOptionsVisibility

lfShow 

 Shows the given field.

 

setVisible

lfShowFieldMessage 

 Displays a message for the given field.

At this time, the Cloud API does not provide the ability to display messages to the user in this way.

 

lfWatch 

Attaches listeners for the events that you give as parameters in the function.

While this functionality does exist in Cloud, it is achieved with an option set in the configuration and not in the script.

 

Cloud only API

Some functionality does exist in Live Fields Cloud that is not currently available in Data Center.

Cloud API

Description

Comment

Cloud API

Description

Comment

setDescription

Set the description of the field on the screen.

Only possible using JavaScript on Data Center.

setName

Set the name of the field on the screen.

Only possible using JavaScript on Data Center.

setRequired

Make the field required in order to submit changes on the issue.

Only possible using a combination of Data Center API’s and JavaScript with Data Center.

API behavior differences

It is important to note that even though there can be equivalent API’s between Cloud and Data Center that there may be a behavior difference in that API.

Known differences

  • lfSet (DC) and setValue (Cloud) - While both API’s set the value of the field, lfSet will only set the value on the screen and the value will not be assigned to the issue until the change is committed. Alternately, setValue does not just change the value on the screen but updates the stored value in the issue.

Execution

The Power Scripts app controls the execution of Live Fields for Jira Data Center and can be fine-tuned for ultimate control. Live Fields for Jira Cloud was built using Atlassian Forge components, which dictate when the UI modifications are executed.

Known execution differences

  • Changing projects and issue types—In Data Center, the Live Fields script will be re-executed every time the project or issue type is changed when creating an issue. This is not how Atlassian implemented the UI modification feature, and therefore, the UI modification does not get executed when these parameters change on the create issue screen.

Next up: Script comparisons