Welcome to JIRA Server development! This overview will cover everything you need to know to integrate with JIRA Server. This includes the P2 framework for building add-ons, as well as JIRA features and services that you can use when integrating with JIRA.
We recommend that you read this entire page if you are new to JIRA Server development, but if you want to skip to a specific section, use the links below:
- Developing with Plugins2: The framework for building add-ons for JIRA Server
- Modules: Integration points for interacting with JIRA, including the JIRA UI
- Entity properties: Key-values stores in JIRA
- JIRA APIs: This includes REST APIs for the JIRA platform and the JIRA products
- Webhooks: User-defined callbacks over HTTP
- Security: Authentication and authorization
- JIRA Data Center: Tools for working with the JIRA UI, like the Atlassian Connect JS API, conditions, and context parameters.
Building an add-on
If you want to build an add-on for JIRA Server, then you will be using the Atlassian add-on development platform via the Atlassian SDK. The platform consists of the Plugins2 framework (also known as the P2 framework) and a set of components that provide useful tools to developers, as shown below.
For more information on the components in this platform, see Atlassian Platform Common Components.
A JIRA Plugins2 add-on is a bundle of code, resources and configuration files that can be installed in JIRA. Fundamentally, add-ons can do following:
- Add content or features, like pages, panels, reports, JQL functions, gadgets, in certain defined places in the JIRA UI via modules.
- Make secure requests to JIRA's APIs.
- Listen and respond to webhooks fired by the Atlassian application.
For more information, see JIRA Plugins2 overview.
Developing with Plugins2
If you are building an add-on with Plugins2, you'll also need to understand a number of key development processes:
- Implementing security: Implementing security is a crucial part of integrating with JIRA. Robust authentication and authorization help prevent malicious access to customer data. To learn more about authentication and authorization for JIRA Server, see the Security overview.
- Listing your add-on on the Atlassian Marketplace and implementing licensing: Listing your add-on on the Atlassian Marketplaces and licensing it are necessary, if you want to make your add-on available to the public. See the Marketplace documentation for more instructions.
- Designing your add-on: Since Plugins2 add-ons can insert content directly into the Atlassian host application, it is critical that add-ons are visually compatible with the Atlassian application’s design. Our designers and developers have created a number of resources to help you with this:
Modules are the most important component of your JIRA add-on or integration. Simply put, these are the integration points that your add-on uses to provide rich interactions with JIRA. There are two types of modules: basic iframes that allow you to display content in different places in JIRA, and more advanced modules that let you provide advanced JIRA-specific functionality. JIRA Service Desk and JIRA Software also have their own application-specific modules (UI-related only).
For more information, see About JIRA modules.
Entity properties are key-value stores attached to JIRA objects, that can be created, updated, and deleted via the JIRA REST APIs. This is a powerful system for storing data on the JIRA host; it easily support imports, exports, and migrations between instances because the data is stored locally with the JIRA instance. Here’s how entity properties can help you with your JIRA Server integration:
- Simplify your add-on or integration by reducing how much data you store on your own server.
- Improve performance by evaluating
- Implement advanced features like JQL integration using search extractions.
To learn more about JIRA entity properties, see entity properties.
Use the JIRA APIs to interact with JIRA from your integration. You should also read the Security overview to learn how to secure any interactions with the JIRA APIs.
You should use the REST APIs for most integrations. Each of the JIRA Server applications have a REST API that allows you to interact with the objects in that application (e.g. sprints for JIRA Software). The JIRA Server platform REST API is common to all JIRA products.
- JIRA Server platform REST API (latest)
- JIRA Software Server REST API (latest)
- JIRA Service Desk Server REST API (latest)
To learn more, see About the JIRA Server REST APIs. See the Webhooks section below as well.
The Java APIs are primarily used when building a P2 add-on. Similar to the REST APIs, each of the JIRA Server applications have a Java API.
- JIRA Server platform Java API (latest)
- JIRA Software Server Java API (all versions)
- JIRA Service Desk Server Java API (latest)
Webhooks are outgoing messages from JIRA that allow your add-on or integration to react to events, like someone transitioning an issue or closing a sprint. Like the REST APIs, there is a set of platform-level webhooks and additional advanced webhooks for JIRA Software and JIRA Service Desk.
To learn more about webhooks, see Webhooks.
JIRA Data Center
JIRA Data Center is the enterprise implementation of JIRA, providing high availability and performance at scale. If you are developing for JIRA Data Center, you need to be aware of the guidelines for building add-ons for high availability and clustered environments.
To learn more, see About JIRA Data Center.
Time to get hands-on with JIRA Server development! Read our Getting started guide to learn how to set up a development environment and build a JIRA Server add-on.