jira:customField with unlicensedAccess: customer not rendered for JSM portal-only customers despite correct manifest configuration

XMLWordPrintable

    • Minor

      Issue Summary:

      •  Forge custom fields (jira:customField) configured with unlicensedAccess: [customer] and portal-request edit experience are not visible to JSM portal-only customers (helpseeker users with no Jira product licence)
      •  When a portal request form loads, the JSM Help Center UI (jsm-help-center-ui) makes an internal access check to /rest/atlassian-connect/latest/addon-access
      •  For portal-only customers (no Jira licence), this check returns HTTP 403, "The user does not have the correct application access required for this resource"
      •  The portal frontend treats this 403 as a blanket gate and suppresses all Forge extension rendering, without consulting the per-extension unlicensedAccess declaration in the manifest
      •  As a result, the unlicensedAccess: [customer] manifest setting is completely bypassed, making this documented Forge feature non-functional for its intended use case
      •  Workaround: Changing unlicensedAccess: [customer] to unlicensedAccess: [unlicensed] in the manifest resolves the issue, the field renders correctly for portal-only customers
      •  The underlying fix needs to be applied in jsm-help-center-ui to check per-extension unlicensedAccess before suppressing rendering on a 403

      Steps to Reproduce

      1. Create a Forge app with a jira:customField module with the following manifest configuration:

       

      modules:
        jira:customField:
          - key: promo-code-validator
            name: Promo Code Validator
            type: string
            unlicensedAccess:
              - customer
            edit:
              resource: edit
              render: native
              isInline: true
              experience:
                - portal-request 

       

      2. Deploy and install the app on a JSM site
      3. Add the custom field to a JSM request type form
      4. Create a portal-only customer account a user who is only in the jira-servicemanagement-customers group with ari:cloud:jira-servicedesk::role/product/helpseeker role, and no Jira product licence.
      5. Open the JSM Help Center portal as that customer account
      6. Navigate to the request type form that has the custom field

      Expected Results

      The custom field should be visible and interactive for the portal-only customer, as:

      • The manifest correctly declares unlicensedAccess: [customer]
      • The Forge documentation explicitly states that jira:customField with portal-request experience supports customer unlicensed access
      • Per the docs, customer is defined as: "A user who is logged in to their Atlassian account who has limited access... JSM customers are considered customer unlicensed users"

      Actual Results

      The custom field is not visible to the portal-only customer. The JSM Help Center UI (jsm-help-center-ui/entry.js) makes a POST to /rest/atlassian-connect/latest/addon-access which returns:

      HTTP 403
      "The user does not have the correct application access required for this resource"

      The portal frontend treats this 403 as a hard gate and suppresses all Forge extension rendering without consulting the per-extension unlicensedAccess declaration in the manifest.

      Workaround

      Change unlicensedAccess from customer to unlicensed in the app manifest:

      # Change this:
      unlicensedAccess:
        - customer
      
      # To this:
      unlicensedAccess:
        - unlicensed 

              Assignee:
              Unassigned
              Reporter:
              Chandra Shekhar Pandey
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: