Issue Fields in Next-gen Jira Cloud

G’day Atlassian developer community,

Today, I’m thrilled to make some announcements in our endeavor to support extensibility for next-gen projects. First, developers can now create issue fields (aka custom fields) for next-gen projects. Second, we’ve built an intuitive new visual interface for next-gen project administrators to make these issue fields available for their projects. This is available in all instances enrolled in the Jira Cloud Vendor First Release now, and we anticipate releasing it to all Jira Cloud instances soon.

As you might be aware, when next-gen projects were first announced in September 2018, we did not provide public REST APIs to create project-scoped entities such as issue types, statuses, and issue fields. The introduction of next-gen projects led to the undesirable side effect of developers not being able to create project configuration entities such as the ones referenced above. Existing REST APIs to create these entities worked for classic Jira projects but did not work for next-gen projects. Since then, we’ve been on a journey to get rid of this shortcoming. Our goal was to pave the path for vendors and developers to extend support to next-gen projects and make sure that apps built for classic projects can also work for next-gen projects. Let’s dive into details of the two announcements we’re making today.

Support for issue fields

We have done work to ensure that the Issue Field Connect module that is used to create issue fields for classic projects also works for next-gen projects. You do not need to change anything at your end. The module will work as-is, for next-gen projects. In particular, if you would like to create issue fields in Jira, you can use this module to specify issue fields in the connect app descriptor as you’ve been doing so far. We’ll take care of the rest. If you would like to modify issue issue field select list options, you can use the issue custom field options (apps) REST APIs. Just as for the connect module, we’ve done work to ensure that these APIs work as-is for next-gen projects, and no change is needed at your end.

As part of this work, we’ve also added support to rich_text type in the Issue Field Connect module. This enables support for multiline issue fields and, we hope, is good news for those of you who had added for it here. This support is now available for both classic and next-gen projects.

Easy-to-use project admin experience

We’ve built controls inside the Project Settings section of next-gen projects so that project admins can add or remove issue fields from next-gen projects. This means that similar to classic projects, it is now possible to show or hide issue fields, however, as next-gen projects do not have schemes it works a little differently.

Issue fields from apps can be shown or hidden in a next-gen project by toggling on or toggling off the app in Project Settings > Apps > App Fields. Here, Jira will show those apps that make use of the Issue Field Connect module in their app descriptor to specify issue fields for the app. In the example below, although there are more apps installed on the instance, only six apps specify issue fields using the Issue Field Connect module. Hence, these are the six apps that can be toggled on.

Apps start in the off state. They can be toggled on or off by next-gen project admins and Jira site admins only. App developers cannot control this behavior. However, we’ve built a new webhook that apps can use to be notified when admins toggle the app on/off. To read more about it, navigate to developer.atlassian.com. There, you’ll see a new Webhook event type called Project App Events .

By toggling on the app, issue fields specified by the app will show up when the Jira or the project administrator navigates to the issue configuration screen, also known as the SWIFT screen (see Customize an issue's fields in team-managed projects | Jira Software Cloud | Atlassian Support for more information). Here, Jira admins can associate issue fields to issue types via a simple drag-and-drop mechanism. Upon association, the issue fields are available for use in the corresponding issue types. For instance, they will appear when creating, viewing, and editing issues of the issue types to which they have been associated.

Jira admins and project admins can also navigate to Project Settings > Apps > App Fields from the SWIFT screen. On this screen, Jira will show apps, if any, that are installed on the instance and are concerned with issue fields, however, they are not toggled on for the project. Admins can then, navigate to Project Settings > Apps > App Fields and toggle on the app.

We hope you’ll like these changes and it’ll spur you to extend support to next-gen projects in your apps. The announcement today is one step in our journey to ensure all project configuration entities can be created in next-gen projects using REST APIs and connect modules. Next, we’ll be building support for issue types, statuses, workflows, etc.

FAQs related to apps on/off

  • What apps would show in Project Settings > Apps > App Fields
    • Apps that work on issue fields and apps that perform other operations in addition to working on issue fields will show in the App Fields page.
  • How does Jira detect that an app works on issue fields?
    • Jira looks at the app descriptor. If it makes use of Issue Field Connect module we deduce that the app works on issue fields and it is thus included in Project Settings > Apps > Apps Controls
  • What about apps that do not work on issue fields?
    • Jira does not support the creation of other project configuration entities, except issue fields, in next-gen projects. So it does not provide an option to toggle apps that work on these project configuration entities. Therefore, such apps would not be shown in Project Settings > Apps > App Fields. However, apps that do not work on project configuration will continue to work for next-gen projects even though they do not show in Project Settings > Apps > App Fields.
  • What about apps that are not concerned with project configuration?
    • Eventually, we plan to extend coverage to apps that work on other project configuration entities too. We’ll share more details here in the future.
  • What happens if admin turns off my app? Would it stop working?
    • Yes and no. You can continue to add options to issue fields. However, those issue fields would be hidden from issues and therefore, cannot be used to create issues, for example. Also, you won’t be able to programmatically create issues containing issue fields.
10 Likes

Looks/Sounds excellent - thanks for the detailed overview of this important feature, and for the seamless integration with the existing Connect module, that’s great DX!

One aspect missing from the FAQ is whether the resp. Forge CustomField component will also be supported automatically in a similar fashion:

The CustomField component is returned from a function defined in the app manifest to render content for a custom field.

This component can be used in Jira Core, Jira Software, and Jira Service Desk to render the field in the new issue view.

Can you already comment on when this might become available, and whether the DX and admin UX will be identical (i.e. just use it, and everything works)?

1 Like

Hello Abhinaya,
this is indeed very exciting for our apps and I’m sure that many customers will use this in their next-gen projects!

However, there still seem to be a few bugs around dynamic modules using the issue field connect module:

  • The toggle in the “App fields” view isn’t shown if issue fields are only added using dynamic modules. We were able to work around this by adding an empty list of "jiraIssueFields": [] to our descriptor.
  • In the list of custom fields on a project, the deleted custom fields from dynamic modules are shown as well. If the user tries to add one of those fields, there’s an error “Couldn’t save your changes” when trying to save the new fields.

We were also not able to use this on all our Jira instances yet. Please let us know once it is rolled out across all Jira instances so we can announce the availability of our custom fields for next-gen projects to our customers.

Thanks a lot for your efforts!

Hi @BenRomberg, Thanks for exploring the feature really quickly and for sharing your thoughts on the same.
For your concern over

  • App Fields" not available when issue fields are added dynamically:- We are working on providing a fix for that so that you no longer have to use a workaround for letting the apps shown on that page. However, one thing we would like to make clear here, as the fields are dynamically added, there might be a scenario where an app is enabled and then dynamic fields are added in that situation as fields were added post enable, “Admin”/ “Project Admin” would have to go disable and enable the app again to use that additional field start flowing in the SWIFT page. We should have this fix in the rollout phase by this month’s end.

  • 2nd point where deleted custom fields from dynamic modules are being shown as well:- This will also be addressed with the above fix.

And this feature (App fields) as of now is available to EAP customers only and we are planning to go to GA in next couple of weeks. Just to clarify the above fix will be released independently of this entire feature.

And last thanks again for putting in your thoughts and concerns and bugs over this. We would love to hear more feedback about this feature going forward

1 Like

Hello @ShubhamJaju!
Thanks for posting the updates, I really appreciate it. Please let us know once the feature has been rolled out to GA so we know when we can start communicating it to our customers.

2 Likes

Hi @sopel,

Thanks for your feedback. We’re glad you liked the feature.

For the moment, this feature is available for Connect apps only. I don’t have a timeline on support in Forge. If anything changes on that front, we’ll get back to you.

Thank you!

Hi all,

We’re pleased to announce that we are now out of Jira Cloud Vendor First Release and are live to all of our vendor/developer partners as well as customers.

Cheers,
Abhinaya

2 Likes

Hello @AbhinayaSinha @ShubhamJaju,

I just noticed that the bug with new dynamic custom fields is still not fixed. We still have to explain our customers that they have to disable and re-enable our app in order for them to see any newly added custom fields.

Could you please let me know if there’s a public issue regarding this bug that I could refer our customers to? If there is none, in which project should I create it so it gets addressed quickly?

Thanks!