Integration with Requirements




Integration with third-party requirements

XStudio includes an integrated requirements management module but can also interface with third-party requirements management systems.

JIRA (XML-RPC)

You'll need to first ensure you have the XML-RPC plugin installed and activated in your JIRA install. To check if the plugin is already installed and enabled, just open a browser and enter the URL:
http://192.168.10.104:8080/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?
(just replace the IP address and the port with your own settings). You should retrieve an XML document looking like:
jira rss

If not, please check Atlassian's website for more information on how to enable the XML-RPC plugin.
Once the XML-RPC plugin is activated, run XStudio and open the menu Settings > Server Settings > Connectors > Requirements.
   integration requirements jira

Then, select JIRA (XML-RPC) in the popup's selection combobox and set the following parameters (replace the login name, the password, the IP address and the port by your JIRA settings):
Field Description
authentication You can authenticate to JIRA using two methods:
  • use specific username and password (specified below)
  • use each user's XStudio credentials (the one used to log in XStudio
    Note: if you have LDAP/Active Directory enabled, then this would be the directory's user credentials and it would act as a SSO (Single sign-on).
username Username of a full-access JIRA account able to see all the requirements you wish to retrieve
For instance:
user1
password Password associated to the username
For instance:
user1_password
url pattern This indicates the URL to use with your JIRA instance to edit a requirement.
The URL must include the tag 'requirement_id' that will be dynamically replaced by the id of the requirement to be displayed/edited
For instance:
http://192.168.100.104:8080/browse/requirement_id
url new requirement This indicates the URL to use with your JIRA instance to create a new requirement.
The URL can include the tag 'project_id' that will be used as the default project when you create a new requirement

For instance:
http://192.168.100.104:8080/secure/CreateIssue.jspa?&pid=project_id&issuetype=3

How to find the Id of an issue type?

  • In JIRA, click Administration > Issues > Issue Types
  • On the Global Issue Types sub-tab, hover your mouse cursor over the Edit operation link of an issue type
  • JIRA will display the issue type's id appended to the URL shown in the browser's status bar.
    For example, the "id" in the following link represents the id of the issue type: http://<your-server>/secure/admin/EditIssueType!default.jspa?id=10006
url server This indicates the URL of your JIRA's XML-RPC server.
For instance:
http://192.168.100.104:8080/rpc/xmlrpc
filter projects The list of project code names separated by ';' characters
For instance:
PROJ1;PROJ2
When left empty, issues from all projects are retrieved.
filter issue types The list of numeric issue types that you wish to retrieve in the tree separated by ';' characters
For instance: 3;4

By default, JIRA issue types are:
  • 1 = Bug
  • 2 = Improvement
  • 3 = New Feature
  • 4 = Task

We've been reported that with some versions of JIRA it can be:
  • 1 = Bug
  • 2 = New Functionality
  • 3 = Task
  • 4 = Improvement

In some other environments (that are localized) it can even be some very large values such as 10006 for Bug
How to find the Id of an issue type?

  • In JIRA, click Administration > Issues > Issue Types
  • On the Global Issue Types sub-tab, hover your mouse cursor over the Edit operation link of an issue type
  • JIRA will display the issue type's id appended to the URL shown in the browser's status bar.
    For example, the "id" in the following link represents the id of the issue type: http://<your-server>/secure/admin/EditIssueType!default.jspa?id=10006

When left empty, issues with any type are retrieved.
filter status The list of status that you wish to filter separated by ';' characters
For instance: Open;Resolved;Closed
When left empty, issues with any status are retrieved.
Accept ANY TLS/SSL certificate If you connect to your JIRA server using a SSL connection and you trust the network, just check this checkbox to accept any certificate.
Note that if you do so and if your environment is not safe, you're subject to a man-in-the-middle attack.
For more information on this, check the Secure connections chapter.
Certificate (needed only with https URL) If you connect to your JIRA server using a SSL connection (https:// url), you'll need to copy here the server's certificate.
For more information on this, check the Secure connections chapter.
The login and password provided will be used to authenticate to the JIRA server.
The keywords project_id and requirement_id are dynamically replaced by XStudio when necessary.



Note 1: The REST-API is preferred to XML-RPC as Atlassian is tending to remove any support on XML-RPC now.

Note 2: If you're using XML-RPC with a old version of XStudio and some of your JIRA projects contain a larger number of issues you may encounter some Access-Denied errors and the project are left empty in XStudio. This is because JIRA's XML-RPC default settings include some limits for the number of issues returned and XStudio formerly did not support the paging feature.

However, you can anyway easily fix this by following these instructions from Atlassian.
The useful parameters are jira.search.views.default.max and jira.search.views.max.limit.


JIRA (REST)

The REST API is normally activated by default in your JIRA install.
Run XStudio and open the menu Settings > Server Settings > Connectors > Requirements.
   integration requirements jira

Then, select JIRA (REST) in the popup's selection combobox and set the following parameters (replace the login name, the password, the IP address and the port by your JIRA settings):
Field Description
authentication You can authenticate to JIRA using two methods:
  • use specific username and password (specified below)
  • use each user's XStudio credentials (the one used to log in XStudio
    Note: if you have LDAP/Active Directory enabled, then this would be the directory's user credentials and it would act as a SSO (Single sign-on).
username Username of a full-access JIRA account able to see all the requirements you wish to retrieve
For instance:
user1
password Password associated to the username OR a dedicated API token
For instance:
user1_password
Starting from June 3rd, 2019, Atlassian deprecated the BasicAuth authentication with passwords.
Hence, API Tokens must be used rather than passwords.
So please generate an API token dedicated to XStudio and use this API token instead of the password in XStudio's configuration.
url pattern This indicates the URL to use with your JIRA instance to edit a requirement.
The URL must include the tag 'requirement_id' that will be dynamically replaced by the id of the requirement to be displayed/edited
For instance:
http://192.168.100.123:8080/browse/requirement_id
url new requirement This indicates the URL to use with your JIRA instance to create a new requirement.
The URL can include the tag 'project_id' that will be used as the default project when you create a new requirement

For instance:
http://192.168.100.123:8080/secure/CreateIssue.jspa?&pid=project_id&issuetype=3

How to find the Id of an issue type?

  • In JIRA, click Administration > Issues > Issue Types
  • On the Global Issue Types sub-tab, hover your mouse cursor over the Edit operation link of an issue type
  • JIRA will display the issue type's id appended to the URL shown in the browser's status bar.
    For example, the "id" in the following link represents the id of the issue type: http://<your-server>/secure/admin/EditIssueType!default.jspa?id=10006
url server This indicates the URL of your JIRA's REST-API server.
For instance:
http://192.168.100.123:8080/rest/api/latest
filter projects The list of project code names separated by ';' characters
For instance:
PROJ1;PROJ2
When left empty, issues from all projects are retrieved.
filter issue types The list of issue types that you wish to retrieve in the tree separated by ';' characters
For instance: Task;Improvement;New Feature
When left empty, issues with any type are retrieved.
filter status The list of status that you wish to filter separated by ';' characters
For instance: Open;In Progress
When left empty, issues with any status are retrieved.
Accept ANY TLS/SSL certificate If you connect to your JIRA server using a SSL connection and you trust the network, just check this checkbox to accept any certificate.
Note that if you do so and if your environment is not safe, you're subject to a man-in-the-middle attack.
For more information on this, check the Secure connections chapter.
Certificate (needed only with https URL) If you connect to your JIRA server using a SSL connection (https:// url), you'll need to copy here the server's certificate.
For more information on this, check the Secure connections chapter.
The login and password provided will be used to authenticate to the JIRA server.
The keywords project_id and requirement_id are dynamically replaced by XStudio when necessary.

VersionOne

This connector is using a standard REST API to access VersionOne data.
run XStudio and open the menu Settings > Server Settings > Connectors > Requirements.
   integration requirements jira

Then, select VersionOne in the popup's selection combobox and set the following parameters (replace the login name, the password, the IP address and the Repository by your VersionOne settings):
Field Description
authentication You can authenticate to the VersionOne using two methods:
  • use specific username and password (specified below)
  • use each user's XStudio credentials (the one used to log in XStudio
    Note: if you have LDAP/Active Directory enabled, then this would be the directory's user credentials and it would act as a SSO (Single sign-on).
username Username of a full-access VersionOne account able to see all the defects you wish to retrieve
For instance:
user1
password Password associated to the username
For instance:
user1_password
url pattern This indicates the URL to use with your VersionOne instance to edit a requirement.
The URL must include the tag 'requirement_id' that will be dynamically replaced by the id of the requirement to be displayed/edited
For instance:
https://www1.v1host.com/Acme/Default.aspx?Page=Widgets/Details/QuickEditStory&AssetContext=Story\:requirement_id
url new requirement This indicates the URL to use with your VersionOne instance to create a new requirement.
For instance:
https://www1.v1host.com/Acme/Default.aspx?page=Gadgets/AddNewAsset/DropDown/Controls/AddDefect
url xml-rpc server This indicates the URL of your VersionOne's server.
For instance:
https://www1.v1host.com/Acme
filter Projects The list of project ids separated by ';' characters
For instance:
1000;1001
When left empty, issues from all projects are retrieved.
filter issue types The list of issue types that you wish to retrieve in the tree separated by ';' characters
For instance: Story
When left empty, issues with any type are retrieved.
filter status The list of status that you wish to filter separated by ';' characters
For instance: Future;In Progress;Accepted;;Done
When left empty, issues with any status are retrieved.
Accept ANY TLS/SSL certificate If you connect to your VersionOne server using a SSL connection and you trust the network, just check this checkbox to accept any certificate.
Note that if you do so and if your environment is not safe, you're subject to a man-in-the-middle attack.
For more information on this, check the Secure connections chapter.
Certificate (needed only with https URL) If you connect to your VersionOne server using a SSL connection (https:// url), you'll need to copy here the server's certificate.
For more information on this, check the Secure connections chapter.
The login and password provided will be used to authenticate to the VersionOne server.
The keywords project_id and requirement_id are dyamically replaced by XStudio when necessary.

Both-way integration

JIRA

If you configured XStudio as described above, you have what we call a single-way integration with JIRA.
This means that:
  • you can see all the JIRA issues in XStudio's Requirements and/or Bugs trees
  • you can see all the JIRA issues linked with XStudio items in XStudio's GUI
  • you can create/update JIRA issues from XStudio:
    • either asynchronously (redirecting to JIRA appropriate URL)
    • or synchronously (using integrated GUI)

In addition to this, if you want to view/access XStudio items linked with your JIRA issues from JIRA, then you'll need to install our JIRA app on your JIRA. This is an easy setup as you'll see in the procedure below.

Benefits

When our JIRA app is installed on your JIRA instance, you'll get an additional XStudio Tests tab in the Activity section of each issue.
For bugs, the panel in this new tab includes 6 sections showing:
  • All the Tests that detected the selected issue
  • All the Test Campaigns that detected the selected issue
  • All the Sessions (campaign's execution instances) in which the selected issue has been observed
  • All the Exploratory Sessions where the selected issue has been observed
  • All the SUTs impacted by this issue
  • All the Requirements impacted by this issue

For requirements, the panel will include 3 sections showing:
  • All the SUTs covered by the selected issue
  • All the Tests verifying the selected issue
  • All the Bugs that are impacting the selected issue

All the items are clickable and redirect the user to the item in XStudio.


Data

Compatibility matrix

You need to know which version of our JIRA app is appropriate for you.
Indeed, it will depends from which type of JIRA (JIRA Server or JIRA Cloud) and which version of XStudio you're using.
There have been many changes in Atlassian strategy, APIs and recommended frameworks so the following must be read carefully.
Breaking News: Atlassian has just announced they stop selling JIRA Server license, hence we've decided to not maintain anymore our JIRA app for JIRA Server. It is still available but we do not support it anymore.

As a result, here are the options you have:

XStudio Versions
<= 4.1sp10 >= 4.1sp11
JIRA Cloud
(Atlassian's Connect API)
Not Supported
(Atlassian deprecation)
Three ways to install it:
- From the Atlassian Marketplace (using our public Connect app server)
- Manually - with your own private Connect app server (Download)
- Manually - with our public Connect app server
JIRA Server & JIRA Data-center
(Atlassian's legacy API)
Not maintained anymore as Atlassian stopped JIRA Server.
However, you can still install the old legacy version if you wish.
Two ways to install it:
- From the Atlassian Marketplace
- Manually (Download)
Not maintained anymore as Atlassian stopped JIRA Server.
Not Supported

Install from Atlassian Marketplace our JIRA Connect app

XStudio's JIRA Connect app is available directly in the Atlassian Marketplace: XStudio Integration for JIRA Cloud.
Atlassian also provides an Installation section.

  • Log into your JIRA instance as an admin
  • Open the Apps menu and select Manage your apps
    manage apps

  • Click Find new apps from the left-hand side of the page
  • Search for "XStudio"
    find xstudio

  • Select XStudio integration for Jira Cloud and click Get app
    open xstudio

  • Confirm the installation by clicking on Get it now
    get xstudio

  • After a few seconds, the XStudio integration for Jira Cloud app is confirmed to be installed
  • Click Manage apps from the left-hand side of the page and select XStudio integration for Jira Cloud
    check xstudio

  • Click on Configure
    configuration

    The configuration panel must be provided with the following information:
    Field Description
    Requirement Mapping Which issue types in JIRA are considered as requirements in XStudio.
    For instance, New Feature, Improvement and Epic
    Bug Mapping Which issue types in JIRA are considered as bugs in XStudio.
    For instance, Bug
    XStudio Base-URL The URL of the XStudio's JIRA app front-end.
    If you're using XStudio on premises:
    https://<your xstudio domain>/xqual/plugins/jira
    More specifically, if you're using XStudio Cloud:
    https://<company-name>-prod1.myxqual.com/xqual/plugins/jira
    Username the username used to fetch data from the XStudio (this account must exists in XStudio)
    Password The password corresponding to the username above
    Show inline If ticked, all the data will be displayed embedded in JIRA's interface (for security reasons, it requires a XStudio https URL though).
    If not ticked, a separate page is opened in the browser

Install manually our JIRA Connect app

If you want to install our JIRA Connect app manually, you need to use a Connect app server. You can either host it yourself (for more control) or use our global public server.

Install your own private Connect app server

  • Download the latest version of the JIRA Connect App Server from our download section
  • Remember the version that you downloaded (i.e. "6")
  • Create a directory jira-xstudio-connect-plugin-<version> under the webapps folder on your XStudio server
  • Unzip the package
  • Copy the content in the newly created folder jira-xstudio-connect-plugin-<version> on your XStudio server
  • You need to configure your Tomcat so that it match Atlassian requirements in terms of security.
    Only TLSv1.2 should be enabled (TLSv1.0 and TLSv1.1 must be forbidden)
    Check your Tomcat's documentation for more details. Most of the time, you'll just need to add in your Tomcat's 8443 connector (in server.xml) something similar to:
    <Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
        port="8443" maxThreads="150"
        scheme="https" secure="true" SSLEnabled="true"
        keystoreFile="your_jks_file_path"
        keystorePass="you_keystore_password"
        clientAuth="false"
        sslProtocol="TLSv1.2"
        sslEnabledProtocols="TLSv1.2"
        useServerCipherSuitesOrder="true"
        ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA">
    </Connector>


    HSTS should be enabled and X-Frame-Options should be authorized
    Check your Tomcat's documentation for more details. Most of the time, you'll just need to add a new filter in your Tomcat's web.xml similar to:
    <filter>
      <filter-name>httpHeaderSecurity</filter-name>
      <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
      <async-supported>true</async-supported>
      <init-param>
        <param-name>hstsEnabled</param-name>
        <param-value>true</param-value>
      </init-param>
      <init-param>
        <param-name>hstsMaxAgeSeconds</param-name>
        <param-value>31536000</param-value>
      </init-param>
      <init-param>
        <param-name>hstsIncludeSubDomains</param-name>
        <param-value>true</param-value>
      </init-param>
      <init-param>
        <param-name>antiClickJackingEnabled</param-name>
        <param-value>false</param-value>
      </init-param>
    </filter>
    <filter-mapping>
      <filter-name>httpHeaderSecurity</filter-name>
      <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

  • Restart Tomcat (for this specific service, you must use a Tomcat version >= 8.5, ideally 9)
  • Your XStudio server should look like this:
    connect server

Once this is done, you should be able to browse this url:
<your xstudio server>/jira-xstudio-connect-plugin-<version>/atlassian-connect.json
You should get a atlassian-connect.json file (probably just displayed in the page by your browser). Check this file contains correct path to this service.

Use our public Connect app server

You have nothing to do in this case.
Just check the service is up and running by browsing this url:
https://xqual-plugin-prod1.myxqual.com/jira-xstudio-connect-plugin-<version>/atlassian-connect.json.
i.e. https://xqual-plugin-prod1.myxqual.com/jira-xstudio-connect-plugin-6/atlassian-connect.json
You should get a atlassian-connect.json file (probably just displayed in the page by your browser). Check this file contains correct path to this service.

Installation

  • Log into your JIRA instance as an admin
  • Open the Apps menu and select Manage your apps
    manage apps

  • Click on the Upload app link
    upload

  • Provide the URL to the atlassian-connect.json file (served by the Connect App server we talked about above)
    i.e. https://xqual-plugin-prod1.myxqual.com/jira-xstudio-connect-plugin-6/atlassian-connect.json

    atlassian connect

  • After a few seconds, the XStudio integration for Jira Cloud app is confirmed to be installed
    upload

  • Click on Configure
    configuration

    The configuration panel must be provided with the following information:
    Field Description
    Requirement Mapping Which issue types in JIRA are considered as requirements in XStudio.
    For instance, New Feature, Improvement and Epic
    Bug Mapping Which issue types in JIRA are considered as bugs in XStudio.
    For instance, Bug
    XStudio Base-URL The URL of the XStudio's JIRA app front-end.
    If you're using XStudio on premises:
    https://<your xstudio domain>/xqual/plugins/jira
    More specifically, if you're using XStudio Cloud:
    https://<company-name>-prod1.myxqual.com/xqual/plugins/jira
    Username the username used to fetch data from the XStudio (this account must exists in XStudio)
    Password The password corresponding to the username above
    Show inline If ticked, all the data will be displayed embedded in JIRA's interface (for security reasons, it requires a XStudio https URL though).
    If not ticked, a separate page is opened in the browser

Install from Atlassian Marketplace our JIRA Legacy app

XStudio's JIRA Legacy app is available directly in the Atlassian Marketplace: XStudio JIRA Integration.
Atlassian also provides an Installation section.

  • Log into your JIRA instance as an admin
  • Open the Apps menu and select Manage your apps
    manage apps

  • Click Find new apps from the left-hand side of the page
  • Search for "XStudio"
  • Select XStudio JIRA Integration and click Get app
  • Confirm the installation by clicking on Get it now
  • After a few seconds, the XStudio JIRA integration app is confirmed to be installed
  • Click Manage apps from the left-hand side of the page and select XStudio JIRA integration
    check xstudio

  • Click on Configure The configuration panel must be provided with the following information:
    Field Description
    Requirement Mapping Which issue types in JIRA are considered as requirements in XStudio.
    For instance, New Feature, Improvement and Epic
    Bug Mapping Which issue types in JIRA are considered as bugs in XStudio.
    For instance, Bug
    REST Base-URL The URL of the REST API of your XStudio server.
    If you're using XStudio on premises:
    https://<your xstudio domain>/xqual/api
    More specifically, if you're using XStudio Cloud:
    https://<company-name>-prod1.myxqual.com/xqual/api
    XStudio Base-URL The URL of the XStudio's JIRA app front-end.
    If you're using XStudio on premises:
    https://<your xstudio domain>/xqual/plugins/jira
    More specifically, if you're using XStudio Cloud:
    https://<company-name>-prod1.myxqual.com/xqual/plugins/jira
    Username the username used to fetch data from the XStudio (this account must exists in XStudio)
    Password The password corresponding to the username above
    Show inline If ticked, all the data will be displayed embedded in JIRA's interface (for security reasons, it requires a XStudio https URL though).
    If not ticked, a separate page is opened in the browser

Install manually our JIRA Legacy app

If you don't have access to the Atlassian Marketplace (i.e. no internet acces) you can also install manually our JIRA Legacy app.

  • Log into your JIRA instance as an admin
  • Open the Apps menu and select Manage your apps
    manage apps

  • Click on the Upload app link
    upload

  • Provide the JIRA Legacy app jar file
    You can download the latest version here: JIRA Legacy app v6

    upload jar

  • After a few seconds, the XStudio JIRA integration app is confirmed to be installed
  • Click Manage apps from the left-hand side of the page and select XStudio JIRA integration
    check xstudio

  • Click on Configure The configuration panel must be provided with the following information:
    Field Description
    Requirement Mapping Which issue types in JIRA are considered as requirements in XStudio.
    For instance, New Feature, Improvement and Epic
    Bug Mapping Which issue types in JIRA are considered as bugs in XStudio.
    For instance, Bug
    REST Base-URL The URL of the REST API of your XStudio server.
    If you're using XStudio on premises:
    https://<your xstudio domain>/xqual/api
    More specifically, if you're using XStudio Cloud:
    https://<company-name>-prod1.myxqual.com/xqual/api
    XStudio Base-URL The URL of the XStudio's JIRA app front-end.
    If you're using XStudio on premises:
    https://<your xstudio domain>/xqual/plugins/jira
    More specifically, if you're using XStudio Cloud:
    https://<company-name>-prod1.myxqual.com/xqual/plugins/jira
    Username the username used to fetch data from the XStudio (this account must exists in XStudio)
    Password The password corresponding to the username above
    Show inline If ticked, all the data will be displayed embedded in JIRA's interface (for security reasons, it requires a XStudio https URL though).
    If not ticked, a separate page is opened in the browser

SSL/TLS connections

If you need to connect to a third-party bug-tracking server that uses SSL/TLS, you can provide the server certificate in the settings so that the connection can be established automatically.
For more details, please refer to the secure connections section of the documentation.