Confluence should not send "field=allcustom" parameter for Jira Issue Macro to avoid performance hit

XMLWordPrintable

    • Type: Suggestion
    • Resolution: Unresolved
    • None
    • Component/s: Macros - Jira Macros
    • None
    • 2

      Summary

      Based on a number of fixed bugs in the past, including field=allcustom in Jira Issue Macro request is identified to be able to cause performance impact on Jira.

      While inserting a Jira Issue Macro from the UI may no longer trigger the inefficient field=allcustom parameter, but a Jira Issue Macro that has missing parameter in it's storage format can still trigger this.

      Expected Behavior

      Inserting Jira Issue Macro - From UI

      1. Insert a Jira Issue Macro (table) into Confluence and configure it to display extra fields in Columns to display
        • in this example, Labels is selected
      2. Save and Publish the page, this should produce a storage format like below:
        <p>
          <ac:structured-macro ac:macro-id="4f5471fe-a27d-474c-b1ce-a83f34dd8d89" ac:name="jira" ac:schema-version="1">
            <ac:parameter ac:name="server">Jira</ac:parameter>
            <ac:parameter ac:name="columnIds">issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution,labels</ac:parameter>
            <ac:parameter ac:name="columns">key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution,labels</ac:parameter>
            <ac:parameter ac:name="maximumIssues">20</ac:parameter>
            <ac:parameter ac:name="jqlQuery">project = MSK </ac:parameter>
            <ac:parameter ac:name="serverId">25bbb593-9282-39de-b5e5-975284a9da9e</ac:parameter>
          </ac:structured-macro>
        </p>
        

      When a user load the page with Jira Issue Macro above, Confluence sends the URL below to Jira to retrieve the issues information:

      GET 
      <Jira_Base_URL>/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?tempMax=20&returnMax=true&jqlQuery=project+%3D+MSK+&field=issuekey&field=summary&field=issuetype&field=created&field=updated&field=duedate&field=assignee&field=reporter&field=priority&field=status&field=resolution&field=labels&field=link&field=type
      

      Unexpected Behavior

      Inserting Jira Issue Macro - using Storage Format

      There are other ways to Create/Edit a page to insert a Jira Issue Macro such as using REST API, where the storage format is provided as is.
      For example, a similar storage format for Jira Issue Macro like the above is added onto a page via REST API:

      <p>
        <ac:structured-macro ac:macro-id="4f5471fe-a27d-474c-b1ce-a83f34dd8d89" ac:name="jira" ac:schema-version="1">
          <ac:parameter ac:name="server">Jira</ac:parameter>
      
          <ac:parameter ac:name="columns">key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution,labels</ac:parameter>
          <ac:parameter ac:name="maximumIssues">20</ac:parameter>
          <ac:parameter ac:name="jqlQuery">project = MSK </ac:parameter>
          <ac:parameter ac:name="serverId">25bbb593-9282-39de-b5e5-975284a9da9e</ac:parameter>
        </ac:structured-macro>
      </p>
      

      Notice the absent of columnIds, and the rest of the storage format are identical
      Storage format like this can come from the time before the bug reports mentioned above are fixed (eg: Confluence 7.4.0)

      When a user load the page with Jira Issue Macro above, Confluence sends the URL below to Jira to retrieve the issues information:

      GET 
      <Jira_Base_URL>/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?tempMax=20&returnMax=true&jqlQuery=project+%3D+MSK+&field=summary&field=type&field=created&field=updated&field=due&field=assignee&field=reporter&field=priority&field=status&field=resolution&field=allcustom&field=labels&field=link&field=type
      

      Notice the field=allcustom parameter is now included
      The Jira Issue Macro can be displayed as expected (but with an impact to Jira's performance from the extra parameter)

      Why this is Important

      While including the field=allcustom parameter in the request URL helps Confluence to obtain the required information to display Jira Issue Macro correctly, the extra performance impact to Jira will be vary depending on the size of the Jira instance.
      If the use of field=allcustom is removed from the fixed bug reports mentioned above because of performance impact, Confluence should also handle an incomplete Jira Issue Macro storage format (eg: missing columnIds) more gracefully instead of sending field=allcustom.

      At the creation of this Suggestion, the behavior above is observed in:

      • Confluence 8.5.17
      • Confluence 9.1.1

        1. JIM adding label.png
          226 kB
          Damien Tan

              Assignee:
              Unassigned
              Reporter:
              Damien Tan
              Votes:
              8 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: