Frameworks and Tools
Atlassian Connect add-ons can be written using many different languages, frameworks and tools. Since Atlassian Connect add-ons operate remotely over HTTP and can be written with any programming language and web framework there are many tools available for you to develop your add-ons.
Note: View the listings on the Sample Add-ons page to see some examples of these libraries and frameworks being used.
We've written two different frameworks to help you get started. These frameworks help to generate some of the plumbing required for your Connect add-on, and are officially supported by Atlassian:
Atlassian and our excellent developer community have also written a number of other frameworks that you can use. None of these frameworks are supported by Atlassian but they may be supported by members of the community:
- Play (Java)
- Play (Scala)
- Symfony2 Atlassian Connect Bundle (PHP)
The following tools can be of great help when implementing add-ons!
|JSON descriptor validator||This validator will check that your descriptor is syntactically correct. Just paste the JSON content of your descriptor in the "descriptor" field, and select the Atlassian product you want to validate against.|
|JWT decoder||An encoded JWT token can be quite opaque. You can use this handy tool to decode JWT tokens and inspect their content. Just paste the full URL of the resource you are trying to access, including the JWT token, in the URL field, e.g. https://example.atlassian.net/path/to/rest/endpoint?jwt=token|
|Entity property tool and Content property tool||Hosted data storage is one of the most useful features of Atlassian Connect add-on development. It lets you store data against the host product without requiring a backend. In JIRA hosted data storage is implemented via Entity Properties and the Entity Property tool makes it trivial to create, read, update and delete Entity Properties in JIRA. In Confluence hosted data storage is implemented via Content Properties and the Content property tool makes it trivial to create, read, updated and delete Content Properties in Confluence.|
|Web fragment finder||Available for JIRA or for Confluence.
The web fragment finder is an add-on which loads a Web Fragment (which can be a Web Item, Web Section or Web Panel) in all available locations that JIRA or Confluence Connect provides. All Web Fragments contain their location, making it easier to search, and use the right extension points for your add-on.
All Web Fragments have a unique location and it can be tricky to know which location to use. The web fragment finder add-on highlights many of the available locations, making it easy to find the location that you are looking for.
|Connect inspector||The Connect inspector allows you to generate a temporary Atlassian Connect add-on that you can install into your Cloud Development Environment. It is temporary because it will only live for three days; after which all of the data it stores will be wiped. It will store any lifecycle and webhook events that it receives; and it registers all webhook events against the system. This means that it supersedes the Webhook Inspector for Atlassian Connect development. It is an extremely useful tool for any developer wanting to get insight into the lifecycle and webhook events as you can watch the events happen live in your web browser.|
|JIRA Plugin Converter||This is a tool to convert an Atlassian Connect add-on's descriptor to a JIRA Server plugin. The remote server is shared between both. In this way, developers can build add-ons for JIRA Cloud first, then generate plugins for JIRA Server later.|