Development and collaboration software vendor Atlassian held its annual developer conference AtlasCamp in Berlin, focusing on the recently launched Atlassian Connect 1.0, the new REST APIs for Confluence and HipChat as well as the JIRA and Confluence Data Center offerings for high availability and performance at scale.
As previously covered, Connect is Atlassian’s new distributed add-on technology for adding new functionality to applications like JIRA, Confluence and HipChat, integrating with third party services, or even implementing a separate product that runs within the Atlassian application.
Fundamentally, Atlassian Connect add-ons are web applications that operate remotely over HTTP and have three major capabilities:
- insert content in certain defined places in the Atlassian application's UI
- make calls to the Atlassian application's REST API
- listen and respond to webooks fired by the Atlassian application
Embracing these familiar web development techniques enables an arbitrary choice of programming languages, technologies and hosting scenarios and opens the platform to a much larger developer audience. While the existing OSGi based add-on framework for on-premises applications will remain supported to allow more deeply integrated solutions, Connect is the only available add-on technology for Atlassian’s fast growing hosted ‘Cloud’ offerings (formerly ‘OnDemand’) and will also be available for the on-premises 'Server' offerings and Bitbucket later on. Accordingly, JIRA General Manager Bryan Rollins classified Connect as "the biggest strategic opportunity for the JIRA ecosystem".
On the flipside, this increased flexibility for developers implies new operational challenges for add-on vendors, who are now responsible for the performance, reliability, scalability and security of their own software as a service (SaaS) stack. Atlassian does not offer hosting of Connect add-ons and the add-ons operations guide recommends using established platform as a service (PaaS) or hosting providers instead.
Tim Pettersen demonstrated a particularly well received approach how to avoid the requirement to operate a backend service all together by implementing ‘static’ add-ons that run entirely in the user’s browser with the help of client side JavaScript frameworks like AngularJS. For more advanced persistence and business logic needs he still suggests evaluating what he called a ‘hybrid’ add-on by integrating third party SaaS solutions like Firebase before resorting to a custom backend service.
Steve Lancashire introduced the new Confluence REST API, which provides access to content like pages, blogs, comments and attachments and other resources like spaces and labels. Noteworthy additions are Confluence content properties, which enable persistence of an up to 32 KB JSON key/value pair collection on any piece of content. These properties can be indexed and queried via the REST APIs. The same mechanism is also available in JIRA as entity properties.
Steve also unveiled the upcoming Confluence Query Language (CQL), which is modelled after the JIRA Query Language (JQL). Other than JQL, CQL will not be user-facing, rather only serve as an API for developers to search and retrieve content without the complexities of the current Java API. Just like JQL, CQL is extensible and will initially support functions and indexed fields, with more advanced features scheduled for a subsequent release.
Will DeHaan presented Atlassian Connect add-ons for HipChat, which facilitate the new HipChat REST API v2 including webhooks and can be installed into chat rooms from a listing on the Atlassian Marketplace. The new API supports one to one and group messaging, access to the chat history, users, rooms and statistics. In addition to the previously available room access authentication tokens, it now also offers personal access tokens, thereby enabling integration development by unprivileged users. Future development of the API revolves around data im- and export, search and an extensible UI.
Atlassian also covered the new ‘Data Center’ editions of JIRA (meanwhile released) and Confluence. A similar offering for their on-premises Git source code management solution Stash is planned as well. These higher priced editions aim to support clustered operation of the products for high availability and scalability with features such as:
- active-active clustering
- joining of new nodes without downtime
- arbitrary choice of hard- or software load-balancing
- quality of service control via dedicated nodes for automated tasks
As detailed by Chris Fuller, developers may need to adjust their add-ons to account for new caching requirements and migrate shared state to the new shared file system.
Presentation videos and slides from AtlasCamp 2014 are available online. The Atlassian developers site provides documentation for 'Cloud' add-ons build with Atlassian Connect and 'Server' add-ons build with the Atlassian Plugin SDK. Community assistance is available via the developer relations portal and a Connect specific Google group enables more involved participation.