Enable issue and custom field population in issue creation for external users

Description

Add the ability to include custom fields in the issue creation screen for external share users.
This feature should allow users to view and modify custom fields when creating issues.


Accepted criteria

  • Custom fields should be visible and editable for external share users in the issue creation screen.

  • We should read what fields are required on create screen and allow external user to edit them

Fields

Only found as “single” (non array type):

Type

system

custom

notes

any

com.pyxis.greenhopper.jira:gh-lexo-rank
com.atlassian.jpo:jpo-custom-field-parent
com.atlassian.jira.ext.charting:timeinstatus
com.atlassian.jconnect.jconnect-plugin:location
com.pyxis.greenhopper.jira:gh-epic-link
... more ...


No need to support it right now.
Maybe once will will integrate with some plugins.

comments-page

comment

date

duedate

com.atlassian.jira.plugin.system.customfieldtypes:datepicker
com.atlassian.jpo:jpo-custom-field-baseline-start
com.atlassian.jpo:jpo-custom-field-baseline-end

datetime

statuscategorychangedate, resolutiondate, lastViewed, created, updated

com.atlassian.jira.plugin.system.customfieldtypes:datetime
com.atlassian.servicedesk:sd-request-feedback-date
com.atlassian.jira.ext.charting:firstresponsedate
read-only-date-issue-field
... more ...

issuerestriction

issuerestriction

no need to support it

number

timespent, timeoriginalestimate, aggregatetimespent, aggregatetimeestimate, workratio, timeestimate, aggregatetimeoriginalestimate

jira.polaris:formula
jira.polaris:boolean
com.atlassian.jira.plugins.proforma-managed-fields:forms-locked-field-cftype
com.atlassian.jira.plugins.proforma-managed-fields:forms-total-field-cftype
... more ...

object

... some auto-generated trash ...

option-with-child

com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect

priority

priority

progress

aggregateprogress, progress

project

project

com.atlassian.jira.plugin.system.customfieldtypes:project

resolution

resolution

sd-approvals

com.atlassian.servicedesk.approvals-plugin:sd-approvals

sd-customerrequesttype

com.atlassian.servicedesk:vp-origin

sd-feedback

com.atlassian.servicedesk:sd-request-feedback

sd-request-lang

com.atlassian.servicedesk.servicedesk-lingo-integration-plugin:sd-request-language

sd-servicelevelagreement

com.atlassian.servicedesk:sd-sla-field

securitylevel

security

no need to support it

status

status

team

com.atlassian.jira.plugin.system.customfieldtypes:atlassian-team

timetracking

timetracking

votes

votes

watches

watches

Only as array:

Type

system

custom

notes

issuelinks

subtasks, issuelinks

attachment

attachment

worklog

worklog

json

com.pyxis.greenhopper.jira:gh-sprint

Needs research

sd-customerorganization

com.atlassian.servicedesk:sd-customer-organizations

component

component

service-entity-field

com.atlassian.jira.plugins.service-entity:service-entity-field-cftype

cmdb-object-field

com.atlassian.jira.plugins.cmdb:cmdb-object-cftype

Needs research

sd-asset

com.atlassian.servicedesk.assets-plugin:assetfield

Needs research

Mixed, found as single and as array:

Type

system

custom

notes

option

com.atlassian.jira.plugin.system.customfieldtypes:select
com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes
com.atlassian.jira.plugin.system.customfieldtypes:jwm-category
com.pyxis.greenhopper.jira:gh-epic-status
com.atlassian.jira.plugin.system.customfieldtypes:multiselect
com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons

user

creator, assignee, reporter

com.atlassian.jira.plugin.system.customfieldtypes:people
com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker
com.atlassian.servicedesk:sd-request-participants
com.atlassian.jira.plugin.system.customfieldtypes:userpicker
com.atlassian.jira.toolkit:participants
... more ...

string

labels, description, summary, environment

jira.polaris:interval
com.atlassian.jira.plugin.system.customfieldtypes:textarea
read-only-string-issue-field
com.atlassian.jira.plugin.system.customfieldtypes:textfield
com.atlassian.jira.plugin.system.customfieldtype
... more ...

This requires research. How to know if this is rich text and which one is simple string? Only by ‘custom’ field?

For rich text we need to use custom WYSIWYG editor.

Labels - simple comma separated string.

version

fixVersions, versions

com.atlassian.jira.plugin.system.customfieldtypes:version
com.atlassian.jira.plugin.system.customfieldtypes:multiversion

group

com.atlassian.jira.plugin.system.customfieldtypes:multigrouppicker
com.atlassian.jira.plugin.system.customfieldtypes:grouppicker

option2

com.atlassian.plugins.atlassian-connect-plugin:com.gebsun.plugins.jira.issuechecklist__issue-checklist-templates
com.atlassian.plugins.atlassian-connect-plugin:eu.softwareplant.bigpicture__mode
com.atlassian.plugins.atlassian-connect-plugin:eu.softwareplant.bigpicture__risk-probability
com.atlassian.plugins.atlassian-connect-plugin:eu.softwareplant.bigpicture__risk-consequence
com.atlassian.plugins.atlassian-connect-plugin:io.tempo.jira__team
... more ...

Requires research

Child issues

Issue Type Icon ESFJ-1224 Issue Creation (Parent) - Create subtask from share issue Priority: Lowest
Backlog
Issue Type Icon ESFJ-1225 Issue Creation (Parent) - pick parent on share board/jql/roadmap Priority: Lowest
Backlog

Linked issues

relates to
Issue Type Icon ESFJ-1206 Implement support for issue transition screens Priority: Medium
In Progress

Activity

Automation for Jira 6 December 2024, 09:43

Hello @Mykhailo Iereshchenko,

Please merge code to dev branch.
This is the best moment to add more information that can be helpful to prepare release notes.

  • Can you prepare short overview of change that can be used in release notes?

  • Please provide short GIF that showcase feature.

  • If GIF make no sense, can you provide image that highlights feature that can be used in release notes (cropped & annotated)?

Polina Naumenko 6 December 2024, 09:42

Improvement implemented - QA env

Polina Naumenko 3 December 2024, 14:35
[00000000e8c06b60] 2024-12-03T15:33:14.892+01:00 ERROR 833110 --- [XNIO-1 task-11] o.a.j.s.config.CustomExceptionHandler    : Error in request: ServletWebRequest: uri=/issue/99123450-361d-4676-81f8-c6f2f988872f/create;client=79.184.249.241

ovh.atlasinc.connect.jira.Jira$JiraException: POST https://np1.atlassian.net/rest/api/3/issue failed with HTTP status code 400
    at ovh.atlasinc.connect.jira.Jira$HttpErrorHandler.apply(Jira.java:1556)
    at ovh.atlasinc.connect.jira.Jira$HttpErrorHandler.apply(Jira.java:1541)
    at ovh.atlasinc.guarana.http.HttpClient.checkHttpStatus(HttpClient.java:387)
    at ovh.atlasinc.guarana.http.HttpClient.exchange(HttpClient.java:372)
    at ovh.atlasinc.guarana.http.HttpClient.exchange(HttpClient.java:354)
    at ovh.atlasinc.guarana.http.HttpClient.post(HttpClient.java:151)
    at ovh.atlasinc.connect.jira.Jira.createIssue(Jira.java:135)
    at ovh.atlasinc.jira.share.share.external.SharePageController.createIssue(SharePageController.java:287)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:153)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
    at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Polina Naumenko 26 November 2024, 14:13
  • service management project - components

Polina Naumenko 15 November 2024, 13:21
{
    "message": "{customfield_10061=Specify a valid 'id' or 'name' for Category} (Error code: 0000000008fa6c46)"
}

Project: work management

 {
    "id": "customfield_10061",
    "key": "customfield_10061",
    "name": "Category",
    "untranslatedName": "Category",
    "custom": true,
    "orderable": true,
    "navigable": true,
    "searchable": true,
    "clauseNames": [
      "Category[Category]",
      "cf[10061]"
    ],
    "schema": {
      "type": "option",
      "custom": "com.atlassian.jira.plugin.system.customfieldtypes:jwm-category",
      "customId": 10061
    }
Polina Naumenko 15 November 2024, 13:11

Request type: No request type by default

Polina Naumenko 15 November 2024, 13:03
{
"message": "{customfield_10052=Specify a valid 'id' or 'name' for Pending reason, customfield_10053=Operation value must be an array of group objects, customfield_10050=Specify a valid 'id' or 'name' for Urgency} (Error code: 000000006f226aa3)"
}
  {
    "id": "customfield_10052",
    "key": "customfield_10052",
    "name": "Pending reason",
    "untranslatedName": "Pending reason",
    "custom": true,
    "orderable": true,
    "navigable": true,
    "searchable": true,
    "clauseNames": [
      "cf[10052]",
      "Pending reason",
      "Pending reason[Dropdown]"
    ],
    "schema": {
      "type": "option",
      "custom": "com.atlassian.jira.plugin.system.customfieldtypes:select",
      "customId": 10052
    }

Polina Naumenko 6 November 2024, 09:51

@Mykhailo Iereshchenko when a ticket is being created in Jira

  • priority is Medium by default

The field is empty in ES:

Unable to open a new created share

  • long name does not fix in a frame

  • should an external user be able to create a new label like in Jira?

Currently he can only select from a list of created ones

  • not sure what is with ‘Your new issue was created but could not be opened’, i tried to find a sequence of steps to reproduce it but every time it’s random to me, most of the time it happens when i fill out all fields

Mykhailo Iereshchenko 5 November 2024, 16:17

We also do not support following types: request-language, affected services, team, user

Polina Naumenko 31 October 2024, 15:19

@Mykhailo Iereshchenko

Missing Reporter, Assignee, Team

Mykhailo Iereshchenko 31 October 2024, 11:02

@Polina Naumenko color issue is fixed

Polina Naumenko 29 October 2024, 15:26
  • Components, Fix versions, labels are not in dark mode

  • Create button in Create issue window doesn’t work @Mykhailo Iereshchenko

Polina Naumenko 29 October 2024, 13:01

@Mykhailo Iereshchenko

  • create button is not displayed in the preview and a share

The button also does not function

Automation for Jira 18 October 2024, 08:54

Hello @Mykhailo Iereshchenko

This is the best moment to add more information that can be helpful for tester.

  • What areas are affected?

  • What are potential edge cases?

  • Was it checked for XSS problems?

  • Does change affect security, is new data exposed?

Please attach - Before / After screenshot if possible.

Automation for Jira 24 September 2024, 06:06

Hello [~accountid:],
Task is ready for review.

@Mykhailo Iereshchenko please make sure reviewer
have easy access to contend to be reviewed.

If this is code change. Please make sure PR is created.
If this is new documentation, blogpost, etc. Please provide link to page.