Child pages
  • Accessing Jira issue fields directly from ConfiForms using Jira issue field

This is the documentation for ConfiForms Server/Data Center app

However, this might also work for ConfiForms cloud and in most cases it does. But please see this page to understand the differences between server and cloud versions of the ConfiForms app.

In ConfiForms you have simple and "rich" fields. Simple fields (such as text or textarea) hold just the value and nothing else. You can apply the virtual functions and transform the field and nothing else.

With "rich" fields you can do a lot more - rich fields, such as smart fields or Jira issue field, or Insight object or fields backed by the database query or the web service connection, allow you to access other data associated with this field.

It is sort of a "bridge" to another form, query or your Jira.

Let's look at Jira issue field type form ConfiForms in more details

With Jira field in ConfiForms you open a "bridge" to your Jira and can access any property you Jira issue has

ConfiForms communicates with your Jira using an application link (or a web service connection if you are using ConfiForms cloud) and works with a JSON structures

How to get a JSON structure from Jira for your Jira issue


https://your_server/rest/api/latest/issue/key

for example

https://vertuna.atlassian.net/rest/api/latest/issue/TEST-30



{
  "expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
  "id": "10009",
  "self": "https://vertuna-test.atlassian.net/rest/api/2/issue/10009",
  "key": "JTEST-10",
  "fields": {
    "statuscategorychangedate": null,
    "issuetype": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/issuetype/10100",
      "id": "10100",
      "description": "A user story. Created by JIRA Software - do not edit or delete.",
      "iconUrl": "https://vertuna-test.atlassian.net/images/icons/issuetypes/story.svg",
      "name": "Story",
      "subtask": false
    },
    "timespent": null,
    "project": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/project/10000",
      "id": "10000",
      "key": "JTEST",
      "name": "JTEST",
      "projectTypeKey": "software",
      "simplified": false,
      "avatarUrls": {
        "48x48": "https://vertuna-test.atlassian.net/secure/projectavatar?avatarId=10324",
        "24x24": "https://vertuna-test.atlassian.net/secure/projectavatar?size=small&s=small&avatarId=10324",
        "16x16": "https://vertuna-test.atlassian.net/secure/projectavatar?size=xsmall&s=xsmall&avatarId=10324",
        "32x32": "https://vertuna-test.atlassian.net/secure/projectavatar?size=medium&s=medium&avatarId=10324"
      }
    },
    "customfield_10230": null,
    "customfield_10231": null,
    "fixVersions": [
      {
        "self": "https://vertuna-test.atlassian.net/rest/api/2/version/10001",
        "id": "10001",
        "name": "Version 2.0",
        "archived": false,
        "released": false,
        "releaseDate": "2017-03-06"
      }
    ],
    "customfield_10232": null,
    "aggregatetimespent": null,
    "resolution": null,
    "customfield_10233": null,
    "customfield_10234": null,
    "customfield_10114": {
      "hasEpicLinkFieldDependency": false,
      "showField": false,
      "nonEditableReason": {
        "reason": "PLUGIN_LICENSE_ERROR",
        "message": "Portfolio for Jira must be licensed for the Parent Link to be available."
      }
    },
    "customfield_10235": null,
    "customfield_10225": null,
    "customfield_10226": null,
    "customfield_10227": null,
    "customfield_10228": null,
    "customfield_10229": null,
    "resolutiondate": null,
    "workratio": -1,
    "watches": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/issue/JTEST-10/watchers",
      "watchCount": 0,
      "isWatching": false
    },
    "lastViewed": "2019-03-01T08:23:56.870+0100",
    "created": "2017-02-20T05:03:37.453+0100",
    "customfield_10220": null,
    "priority": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/priority/3",
      "iconUrl": "https://vertuna-test.atlassian.net/images/icons/priorities/medium.svg",
      "name": "Medium",
      "id": "3"
    },
    "customfield_10221": null,
    "customfield_10100": null,
    "customfield_10101": null,
    "customfield_10222": null,
    "customfield_10102": null,
    "customfield_10223": null,
    "customfield_10103": null,
    "customfield_10224": null,
    "labels": [
      
    ],
    "customfield_10216": null,
    "customfield_10217": null,
    "aggregatetimeoriginalestimate": null,
    "timeestimate": null,
    "customfield_10218": null,
    "versions": [
      
    ],
    "customfield_10219": null,
    "issuelinks": [
      
    ],
    "assignee": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/user?accountId=557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
      "name": "admin",
      "key": "admin",
      "accountId": "557058:49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
      "emailAddress": "sasha@vertuna.com",
      "avatarUrls": {
        "48x48": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
        "24x24": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
        "16x16": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
        "32x32": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
      },
      "displayName": "Alex Medved",
      "active": true,
      "timeZone": "Europe/Berlin",
      "accountType": "atlassian"
    },
    "updated": "2017-02-20T05:03:37.453+0100",
    "status": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/status/3",
      "description": "This issue is being actively worked on at the moment by the assignee.",
      "iconUrl": "https://vertuna-test.atlassian.net/images/icons/statuses/inprogress.png",
      "name": "In Progress",
      "id": "3",
      "statusCategory": {
        "self": "https://vertuna-test.atlassian.net/rest/api/2/statuscategory/4",
        "id": 4,
        "key": "indeterminate",
        "colorName": "yellow",
        "name": "In Progress"
      }
    },
    "components": [
      
    ],
    "timeoriginalestimate": null,
    "description": null,
    "timetracking": {
      
    },
    "customfield_10005": null,
    "security": null,
    "attachment": [
      
    ],
    "aggregatetimeestimate": null,
    "summary": "As a developer, I can update story and task status with drag and drop (click the triangle at far left of this story to show sub-tasks)",
    "creator": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/user?accountId=557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
      "name": "admin",
      "key": "admin",
      "accountId": "557058:49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
      "emailAddress": "sasha@vertuna.com",
      "avatarUrls": {
        "48x48": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
        "24x24": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
        "16x16": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
        "32x32": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
      },
      "displayName": "Alex Medved",
      "active": true,
      "timeZone": "Europe/Berlin",
      "accountType": "atlassian"
    },
    "subtasks": [
      {
        "id": "10010",
        "key": "JTEST-11",
        "self": "https://vertuna-test.atlassian.net/rest/api/2/issue/10010",
        "fields": {
          "summary": "Update task status by dragging and dropping from column to column >> Try dragging this task to \"Done\"",
          "status": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/status/10001",
            "description": "",
            "iconUrl": "https://vertuna-test.atlassian.net/",
            "name": "Done",
            "id": "10001",
            "statusCategory": {
              "self": "https://vertuna-test.atlassian.net/rest/api/2/statuscategory/3",
              "id": 3,
              "key": "done",
              "colorName": "green",
              "name": "Done"
            }
          },
          "priority": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/priority/3",
            "iconUrl": "https://vertuna-test.atlassian.net/images/icons/priorities/medium.svg",
            "name": "Medium",
            "id": "3"
          },
          "issuetype": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/issuetype/10102",
            "id": "10102",
            "description": "The sub-task of the issue",
            "iconUrl": "https://vertuna-test.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype",
            "name": "Sub-task",
            "subtask": true,
            "avatarId": 10316
          }
        }
      },
      {
        "id": "10011",
        "key": "JTEST-12",
        "self": "https://vertuna-test.atlassian.net/rest/api/2/issue/10011",
        "fields": {
          "summary": "When the last task is done, the story can be automatically closed >> Drag this task to \"Done\" too",
          "status": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/status/3",
            "description": "This issue is being actively worked on at the moment by the assignee.",
            "iconUrl": "https://vertuna-test.atlassian.net/images/icons/statuses/inprogress.png",
            "name": "In Progress",
            "id": "3",
            "statusCategory": {
              "self": "https://vertuna-test.atlassian.net/rest/api/2/statuscategory/4",
              "id": 4,
              "key": "indeterminate",
              "colorName": "yellow",
              "name": "In Progress"
            }
          },
          "priority": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/priority/3",
            "iconUrl": "https://vertuna-test.atlassian.net/images/icons/priorities/medium.svg",
            "name": "Medium",
            "id": "3"
          },
          "issuetype": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/issuetype/10102",
            "id": "10102",
            "description": "The sub-task of the issue",
            "iconUrl": "https://vertuna-test.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype",
            "name": "Sub-task",
            "subtask": true,
            "avatarId": 10316
          }
        }
      }
    ],
    "customfield_10240": null,
    "customfield_10120": "0|i0001z:",
    "customfield_10241": null,
    "reporter": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/user?accountId=557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
      "name": "admin",
      "key": "admin",
      "accountId": "557058:49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
      "emailAddress": "sasha@vertuna.com",
      "avatarUrls": {
        "48x48": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
        "24x24": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
        "16x16": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
        "32x32": "https://avatar-cdn.atlassian.com/8bc1a1d09dbd2d62d58acbc8e4453baa?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F8bc1a1d09dbd2d62d58acbc8e4453baa%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
      },
      "displayName": "Alex Medved",
      "active": true,
      "timeZone": "Europe/Berlin",
      "accountType": "atlassian"
    },
    "customfield_10000": "{}",
    "aggregateprogress": {
      "progress": 0,
      "total": 0
    },
    "customfield_10121": 5.0,
    "customfield_10242": null,
    "customfield_10243": null,
    "customfield_10001": null,
    "customfield_10236": null,
    "customfield_10115": null,
    "customfield_10237": null,
    "customfield_10116": [
      
    ],
    "customfield_10238": null,
    "customfield_10117": null,
    "environment": null,
    "customfield_10239": null,
    "customfield_10118": null,
    "customfield_10119": [
      "com.atlassian.greenhopper.service.sprint.Sprint@474d1d6d[id=1,rapidViewId=1,state=ACTIVE,name=Sample Sprint 2,goal=<null>,startDate=2017-02-20T04:03:39.272Z,endDate=2017-03-06T04:23:39.272Z,completeDate=<null>,sequence=1]"
    ],
    "duedate": null,
    "progress": {
      "progress": 0,
      "total": 0
    },
    "votes": {
      "self": "https://vertuna-test.atlassian.net/rest/api/2/issue/JTEST-10/votes",
      "votes": 0,
      "hasVoted": false
    },
    "comment": {
      "comments": [
        {
          "self": "https://vertuna-test.atlassian.net/rest/api/2/issue/10009/comment/10001",
          "id": "10001",
          "author": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/user?accountId=557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
            "name": "admin",
            "key": "admin",
            "accountId": "557058:49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
            "emailAddress": "sasha@vertuna.com",
            "avatarUrls": {
              "48x48": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=48&s=48",
              "24x24": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=24&s=24",
              "16x16": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=16&s=16",
              "32x32": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=32&s=32"
            },
            "displayName": "Alex Medved",
            "active": true,
            "timeZone": "Europe/Berlin",
            "accountType": "atlassian"
          },
          "body": "Joined Sample Sprint 2 7 days 9 hours 10 minutes ago",
          "updateAuthor": {
            "self": "https://vertuna-test.atlassian.net/rest/api/2/user?accountId=557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
            "name": "admin",
            "key": "admin",
            "accountId": "557058:49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6",
            "emailAddress": "sasha@vertuna.com",
            "avatarUrls": {
              "48x48": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=48&s=48",
              "24x24": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=24&s=24",
              "16x16": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=16&s=16",
              "32x32": "https://avatar-cdn.atlassian.com/557058%3A49c2eeaf-b72c-4e4d-86a7-97c1a77b50b6?by=id&d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Fdefault-avatar-1.svg&size=32&s=32"
            },
            "displayName": "Alex Medved",
            "active": true,
            "timeZone": "Europe/Berlin",
            "accountType": "atlassian"
          },
          "created": "2017-02-20T05:03:37.453+0100",
          "updated": "2017-02-20T05:03:37.453+0100",
          "jsdPublic": true
        }
      ],
      "maxResults": 1,
      "total": 1,
      "startAt": 0
    },
    "worklog": {
      "startAt": 0,
      "maxResults": 20,
      "total": 0,
      "worklogs": [
        
      ]
    }
  }
}


And anything you se here can be accessed through the ConfiForms Field macro, setting field name parameter to a "navigational expression"

For example, we have a form with Jira field and it is called "myJiraIssue"

And by default the data from the issue is represented like 


But what if we want to show the assignee or a type of issue... This is possible!

We add ConfiForms Field macros to the TableView and set the field names parameters like this

Issue typemyJiraIssue.fields.issuetype.name
assignee namemyJiraIssue.fields.assignee.name
project typemyJiraIssue.fields.project.projectTypeKey

And based on the data in our Jira the TableView will now render the following view

So, how to "read" something like this "myJiraIssue.fields.issuetype.name"?

You start with a Jira issue field in ConfiForms, and that is called "myJiraIssue" in our example form, then.. based on the data structure returned by Jira REST API we navigate to "fields" node and then further down to "issuetype" and finally to "name" node to show the value

Accessing field values and properties page shows some other properties you can always access from a Jira issue field in ConfiForms, such as key, status, summary.


Another example, what if we need to show the "fix version" details

The information is located under the "fields.fixVersions.name" - see the example JSON structure above

And therefore the field name parameter in ConfiForms Field macro shall be set to 


Again, we use "myJIraIssue" field we have defined in our form as a "bridge" to Jira and then tell the app to navigate through the details to the name of the version to get "Version 2.0" value