Jira is a Project Management and Issue-Tracking software developed by Atlassian. It can be used by cross-functional teams for Bug-Tracking, Task Delegation, Milestone-Tracking, Customer-Ticket Tracking, and general Agile Project Management. It is very popular and used by thousands of teams worldwide.
Just like nearly every popular software, Jira allows programmatic access to developers through APIs. If you are a developer wishing to create automation using Jira or integrate Jira into your application, then you might need to understand the Jira Data Model (the database schema essentially). That is what you will look at in this article.
Table of Contents
You need to have familiarity with Jira or any other project management software to understand some of the terms used in this article. In order to follow this article step by step, you need to have Jira server software installed. You can download it from here.
Note: For a lot of people, the first introduction to Jira is through its cloud offering. You may be one of them if you have only used Jira on the web through an account on atlassian.com. In the cloud offering, the Atlassian team manages your Jira software, and you really don’t need to use their API or understand the Jira Data Model.
The Jira Data Model understanding and API usage become relevant only if you have Jira installed on your own server (your organization may have opted for this option if they are bound by strict data privacy and sharing rules). Jira will soon be discontinuing its Jira server offering. Indeed, Atlassian has announced the end of support for its server software offering in 2024. You can read in detail about it here.
What is Jira?
Atlassian created Jira as a software application for Bug Tracking and Agile Project Management. Since it supports English, French, German, Japanese, and Spanish, Jira is a popular multilingual tool.
For many types of testing, it is frequently used as an Issue-Tracking tool. It’s Project Management, Bug Tracking, Issue Tracking, and Workflow Application with incident management capabilities. It’s extremely versatile and can be tailored to any workflow. Some of the databases supported by Jira include MySQL, Oracle, PostgreSQL, and SQL.
Key Features of Jira
- Data Easily accessible: Jira gathers and organizes all of your company’s historical data. Users can quickly access and obtain data from this website anytime they need it. This application allows users to do a variety of Statistical Studies, including Trend Analysis. It also simplifies the process of creating Constructive Reports on Operational Progress.
- Engaging Workflow: Jira also offers a 360-degree view of your processes, which is really useful. This guarantees that everyone is aware of the procedures on the team and that none are forgotten. Team members can chat, share ideas, attach critical documents, and receive frequent updates on tasks and topics that interest them.
- Agile Project Management: Scrum and Kanban approaches are available on the platform, which is primarily focused on Agile Project Management. It can also keep track of regulatory evidence at various phases of development. Estimation Methods such as Hours, Storey Points, and others are available in Jira Software. This way, you can always be sure you’re working with the latest recent data.
Hevo Data, a Fully-managed No-Code Data Pipeline, can help you automate, simplify & enrich your data integration process in a few clicks. With Hevo’s out-of-the-box connectors and blazing-fast Data Pipelines, you can extract data from 100+ Data Sources(including 40+ free data sources) such as Jira for loading it straight into your Data Warehouse, Database, or any destination. To further streamline and prepare your data for analysis, you can process and enrich Raw Granular Data using Hevo’s robust & built-in Transformation Layer without writing a single line of code!
Get Started with Hevo for Free
Hevo is the fastest, easiest, and most reliable data replication platform that will save your engineering bandwidth and time multifold. Try our 14-day full access free trial to experience an entirely automated hassle-free Data Replication!
Jira Data Model Development
You can find the Jira Data Model in the Database Schema reference. For example, the Database Schema for Jira 7.9.2 can be found here.
While this may seem overwhelming at first, it shows you the fields in each table, and how the tables are related to each other, i.e. how you can perform joins on the table and using which fields. Let’s zoom in a bit.
As you can see, the qrtz_job_details table in jiradb has an ID field, which corresponds to the JOB field in the qrtz_triggers and the qrtz_job_listeners table. The ID field of qrtz_triggers further corresponds to the trigger_id of qrtz_cron_triggers, qrtz_fired_triggers, qrtz_simple_triggers, and qrtz_trigger_listeners. Now, along with the relations between the tables, you can also see the names and types of all the columns in each table.
While the above is a well-rendered depiction of the Jira Data Model, you can also find the Database Schema in the raw format in the WEB-INF/classes/entitydefs/entitymodel.xml file in your Jira application directory. On Windows, the application directory can be generally found in C:Program FilesAtlassianJiraatlassian-jira.
As you can see from the image above, in this XML as well, the table name, the fields within it, and their types are listed. If a field is a primary key, that is mentioned. Indexes in an entity are mentioned.
If you don’t like the text view of the XML file, you can try the grid view on xmlgrid.net and get a well-formed view of all the tables, their fields, primary keys, and indexes. Now, you just need to upload the XML file.
Alternatively, if you are on Jira 7 or below, you can generate the schema in a PDF or DOT format (with the help of Graphviz). You’ll need the corresponding schema generator plugin though. It can be found here.
Aggregating and Loading data Incrementally can be a mammoth task without the right set of tools. Hevo’s automated platform empowers you with everything you need to have a smooth Data Collection, Processing, and Aggregation experience. Our platform has the following in store for you!
Sign up here for a 14-Day Free Trial!
- Exceptional Security: A Fault-tolerant Architecture that ensures Zero Data Loss.
- Built to Scale: Exceptional Horizontal Scalability with Minimal Latency for Modern-data Needs.
- Built-in Connectors: Support for 100+ Data Sources, including Databases, SaaS Platforms, Files & More. Native Webhooks & REST API Connector available for Custom Sources.
- Incremental Data Load: Hevo allows the transfer of data that has been modified in real-time. This ensures efficient utilization of bandwidth on both ends.
- Auto Schema Mapping: Hevo takes away the tedious task of schema management & automatically detects the format of incoming data and replicates it to the destination schema. You can also choose between Full & Incremental Mappings to suit your Data Replication requirements.
- Blazing-fast Setup: Straightforward interface for new customers to work on, with minimal setup time.
- Live Support: The Hevo team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.
Jira Data Model Design
Now, coming to the tables, there are five major categories of tables (there are tables that don’t fall in either of these 5, but they are generally lesser-used):
- Users and Groups
- Issue status and Workflows
- Issue fields
- Change history
- Custom fields
Within the Users and Groups category, the following tables are likely to be frequently dealt with:
- app_user table: Created at the time of user sign up. Stores the user key and name for each user
- cwd_user: Contains the details of the users in the current working directory, including name, email, created_at, etc.
- cwd_group: Details of the group in the current working directory
- cwd_membership: User group mapping or parent-child mapping for nested groups
- cwd_directory: Details (like description, type, etc.) of the multiple user directories
Within the Issue status and Workflows category, the following tables are likely to be frequently accessed:
- jiraissue: All details of an issue (created by, type, summary, assignee, due date, status, etc.). The jiraissue table also has a workflow_id column. This can help identify the workflow step of that issue.
- OS_CURRENTSTEP: Shows the current step of an issue in the workflow, based on the workflow_id
- OS_WFENTRY: This shows the applicable workflow for the issue, based on the workflow_id.
You can read more about the issue status and the workflows here.
Under the Issue Fields category, the jiraissue table discussed earlier becomes important as it contains all the information pertaining to an issue. When two issues are linked to each other, the association is defined in the issuelink table, and the link type can be obtained from the issuelinktype table.
The changes to each issue are recorded in the changegroup table. This table records the issue, time of change, and the user who made that change (null for not logged in users). The actual changes (which field was changed, what was the old value, what’s the new value, and so on) are recorded in the changeitem table.
If you record any custom field for an issue, an entry is made in the customfield table, and an instance of the custom field is stored in the customfieldvalue table. Thus, while the customfield table will store the details of the field, like its type and name, the customfieldvalue table will contain the actual value for that field used in the issue.
In case the custom field has multiple values (i.e., if multi-select is possible with the custom field), there will be multiple rows in the customfieldvalue table for that field. The possible options for a custom field are stored in the customfieldoption table and the default value is stored in the genericconfiguration table. In the genericconfiguration table, because the value needs to be stored for any type of custom field, the value is stored as XML. You can read in detail about custom fields here.
You saw understanding the Jira database schema is helpful (i.e. when you are a developer trying to interface with Jira Server, not Jira Cloud). You also saw how to access the Database Schema using various methods (XML, Atlassian website, and so on). You also saw the important frequently used tables on the Jira database and their broad functions. In case you want to analyze data from Jira into your desired Database/destination, then Hevo Data is the right choice for you!
Visit our Website to Explore Hevo
Hevo Data, a No-code Data Pipeline provides you with a consistent and reliable solution to manage data transfer between a variety of sources and a wide variety of Desired Destinations, with a few clicks. Hevo Data with its strong integration with 100+ sources (including 40+ free sources) such as Jira and allows you to not only export data from your desired data sources & load it to the destination of your choice, but also transform & enrich your data to make it analysis-ready so that you can focus on your key business needs and perform insightful analysis using BI tools.
Want to take Hevo for a spin? Sign Up for a 14-day free trial and experience the feature-rich Hevo suite first hand. You can also have a look at the unbeatable pricing that will help you choose the right plan for your business needs.
Share your experience of learning about the Jira Data Model! Let us know in the comments section below!