Jira Connector
Documentation
Version: 11
Documentation

Jira Connector - Using T-SQL / Linked Server


T-SQL is a programming language used for managing and querying data in Microsoft SQL Server databases. We provides tools for data integration, automation, and connectivity.

If you want to use T-SQL with ZappySys, you can use our Connector, which allows you to connect to SQL Server databases and execute T-SQL queries from Jira.

Create Data Source in ZappySys Data Gateway based on API Driver

  1. Download and install ZappySys ODBC PowerPack.

  2. Search for gateway in start menu and Open ZappySys Data Gateway:
    Open ZappySys Data Gateway

  3. Go to Users Tab to add our first Gateway user. Click Add; we will give it a name tdsuser and enter password you like to give. Check Admin option and click OK to save. We will use these details later when we create linked server:
    ZappySys Data Gateway - Add User

  4. Now we are ready to add a data source. Click Add, give data source a name (Copy this name somewhere, we will need it later) and then select Native - ZappySys API Driver. Finally, click OK. And it will create the Data Set for it and open the ZS driver UI.

    JiraDSN

    ZappySys Data Gateway - Add Data Source

  5. When the Configuration window appears give your data source a name if you haven't done that already, then select "Jira" from the list of Popular Connectors. If "Jira" is not present in the list, then click "Search Online" and download it. Then set the path to the location where you downloaded it. Finally, click Continue >> to proceed with configuring the DSN:

    JiraDSN
    Jira
    ODBC DSN Template Selection

  6. Now it's time to configure the Connection Manager. Select Authentication Type, e.g. Token Authentication. Then select API Base URL (in most cases, the default one is the right one). More info is available in the Authentication section.

    Steps how to get and use Jira credentials
    Firstly, login into your Atlassian account and then go to your Jira profile:

    1. Go to Profile > Security.
    2. Click Create and manage API tokens.
    3. Then click Create API token button and give your token a label.
    4. When window appears with new API token, copy and use it in this connection manager.
    5. That's it!

    Fill in all required parameters and set optional parameters if needed:

    JiraDSN
    Jira
    API Key based Authentication [Http]
    https://[$Subdomain$].atlassian.net/rest/api/3
    Required Parameters
    Subdomain Fill-in the parameter...
    Atlassian User Name (email) Fill-in the parameter...
    API Key Fill-in the parameter...
    Optional Parameters
    CustomColumnsRegex
    ODBC DSN HTTP Connection Configuration
    Steps how to get and use Jira credentials
    Follow official Atlassian instructions on how to create a PAT (Personal Access Token) for JIRA

    Fill in all required parameters and set optional parameters if needed:

    JiraDSN
    Jira
    Personal Access Token (PAT) Authentication [Http]
    https://[$Subdomain$].atlassian.net/rest/api/3
    Required Parameters
    Subdomain Fill-in the parameter...
    Token (PAT Bearer Token) Fill-in the parameter...
    Optional Parameters
    CustomColumnsRegex
    ODBC DSN HTTP Connection Configuration

    OAuth App must be created in Atlassian Developer Console. It is found at https://developer.atlassian.com/console/myapps/ [API reference]

    Steps how to get and use Jira credentials
    Firstly, login into your Atlassian account and then create Jira application:

    1. Go to Atlassian Developer area.
    2. Click Create and select OAuth 2.0 integration item to create an OAuth app: Create OAuth integration app in Atlassian
    3. Give your app a name, accept the terms and hit Create: Name OAuth app in Atlassian
    4. To enable permissions/scopes for your application, click Permissions tab, then hit Add button, and click Configure button, once it appears: Enable scopes in OAuth app in Atlassian
    5. Continue by hitting Edit Scopes button to assign scopes for the application: Edit scopes in OAuth app in Atlassian
    6. Select these scopes or all of them: Add Jira scopes in OAuth app in Atlassian
    7. Then click Authorization option on the left and click Add button: Add authorization in OAuth app in Atlassian
    8. Enter your own Callback URL (Redirect URL) or simply enter https://zappysys.com/oauth, if you don't have one:
    9. Set callback URL for OAuth app in Atlassian
    10. Then hit Settings option and copy Client ID and Secret into your favorite text editor (we will need them in the next step): Get Jira data via REST API and OAuth
    11. Now go to SSIS package or ODBC data source and in OAuth authentication set these parameters:
    • For ClientId parameter use Client ID value from the previous steps.
    • For ClientSecret parameter use Secret value from the previous steps.
    • For Scope parameter use the Scopes you set previously (specify them all here):
      • offline_access (a must)
      • read:jira-user
      • read:jira-work
      • write:jira-work
      • manage:jira-project
      • manage:jira-configuration
      NOTE: A full list of available scopes is available in Atlassian documentation.
    • For Subdomain parameter use your Atlassian subdomain value (e.g. mycompany, if full host name is mycompany.atlassian.net).
  7. Click Generate Token to generate tokens.
  8. Finally, select Organization Id from the drop down.
  9. That's it! You can now use Jira Connector!

Fill in all required parameters and set optional parameters if needed:

JiraDSN
Jira
OAuth (**Must change API Base URL to V3 OAuth**) [OAuth]
https://[$Subdomain$].atlassian.net/rest/api/3
Required Parameters
ClientId Fill-in the parameter...
ClientSecret Fill-in the parameter...
Scope Fill-in the parameter...
ReturnUrl Fill-in the parameter...
Organization Id (Select after clicking [Generate Token]) Fill-in the parameter...
Optional Parameters
Custom Columns for output (Select after clicking [Generate Token])
ODBC DSN Oauth Connection Configuration

  • Once the data source has been configured, you can preview data. Select the Preview tab and use settings similar to the following to preview data:
    ODBC ZappySys Data Source Preview

  • Click OK to finish creating the data source.

  • Read data in SQL Server from the ZappySys Data Gateway

    1. To read the data in SQL Server the first thing you have to do is create a Linked Server. Go to SQL Server Management Studio and configure it in a similar way:
      SSMS SQL Server Configure Linked Server

    2. Then click on Security option and configure username we created in ZappySys Data Gateway in one of the previous steps:
      SSMS SQL Server Configure Linked Server User Name

    3. Optional: Under the Server Options, Enable RPC and RPC Out and Disable Promotion of Distributed Transactions(MSDTC).

      RPC and MSDTC Settings

      You need to enable RPC Out if you plan to use EXEC(...) AT [MY_LINKED_SERVER_NAME] rather than OPENQUERY.
      If don't enabled it, you will encounter the Server 'MY_LINKED_SERVER_NAME' is not configured for RPC error.

      Query Example:

      EXEC('Select * from Products') AT [MY_LINKED_SERVER_NAME]


      If you plan to use 'INSERT INTO...EXEC(....) AT [MY_LINKED_SERVER_NAME]' in that case you need to Disable Promotion of Distributed Transactions(MSDTC).
      If don't disabled it, you will encounter the The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "MY_LINKED_SERVER_NAME" was unable to begin a distributed transaction. error.

      Query Example:

      Insert Into dbo.Products
       EXEC('Select * from Products') AT [MY_LINKED_SERVER_NAME]
      


    4. Finally, open a new query and execute a query we saved in one of the previous steps:

      SELECT * FROM OPENQUERY([MY_LINKED_SERVER_NAME], 'SELECT * FROM Products');

      SSMS SQL Server Query Data Results

    Create Linked Server using Code

    In previous section you saw how to create a Linked Server from UI. You can do similar action by code too (see below). Run below script after changing necessary parameters. Assuming your Data Source name on ZappySys Data Gateway UI is 'JiraDSN'
    
        USE [master]
        GO
        --///////////////////////////////////////////////////////////////////////////////////////
        --Run below code in SSMS to create Linked Server and use ZappySys Drivers in SQL Server
        --///////////////////////////////////////////////////////////////////////////////////////
    
        //Replace YOUR_GATEWAY_USER, YOUR_GATEWAY_PASSWORD
        //Replace localhost with IP/Machine name if ZappySys Gateway Running on different machine other than SQL Server
        //Replace Port 5000 if you configured gateway on a different port
    
    
        --1. Configure your gateway service as per this article https://zappysys.com/links?id=10036
    
        --2. Make sure you have SQL Server Installed. You can download FREE SQL Server Express Edition from here if you dont want to buy Paid version https://www.microsoft.com/en-us/sql-server/sql-server-editions-express
    
        --Uncomment below if you like to drop linked server if it already exists
        --EXEC master.dbo.sp_dropserver @server=N'LS_JiraDSN', @droplogins='droplogins'
    
        --3. Create new linked server
    
        EXEC master.dbo.sp_addlinkedserver
          @server = N'LS_JiraDSN'  --Linked server name (this will be used in OPENQUERY sql
        , @srvproduct=N''
        ---- For MSSQL 2012,2014,2016 and 2019 use below (SQL Server Native Client 11.0)---
        , @provider=N'SQLNCLI11'
        ---- For MSSQL 2022 or higher use below (Microsoft OLE DB Driver for SQL Server)---
        --, @provider=N'MSOLEDBSQL'
        , @datasrc=N'localhost,5000' --//Machine / Port where Gateway service is running
        , @provstr=N'Network Library=DBMSSOCN;'
        , @catalog=N'JiraDSN' --Data source name you gave on Gateway service settings
    
        --4. Attach gateway login with linked server
    
        EXEC master.dbo.sp_addlinkedsrvlogin
        @rmtsrvname=N'LS_JiraDSN'  --linked server name
        , @useself=N'False'
        , @locallogin=NULL
        , @rmtuser=N'YOUR_GATEWAY_USER' --enter your Gateway user name
        , @rmtpassword='YOUR_GATEWAY_PASSWORD'  --enter your Gateway user's password
        GO
    
        --5. Enable RPC OUT (This is Optional - Only needed if you plan to use EXEC(...) AT YourLinkedServerName rather than OPENQUERY
        EXEC sp_serveroption 'LS_JiraDSN', 'rpc', true;
        EXEC sp_serveroption 'LS_JiraDSN', 'rpc out', true;
    
        --Disable MSDTC - Below needed to support INSERT INTO from EXEC AT statement
        EXEC sp_serveroption 'LS_JiraDSN', 'remote proc transaction promotion', false;
    
        --Increase query timeout if query is going to take longer than 10 mins (Default timeout is 600 seconds)
        --EXEC sp_serveroption 'LS_JiraDSN', 'query timeout', 1200;
        GO