Author
廣田 隆之Takayuki Hirota
はじめに
この記事は、Atlassian User Group Tokyo Advent Calendar 2016 19日目の記事です。
2015年は Qiita で投稿したのですが、今年は会社ブログで公開するがよろし、との神の声があり、このような形で書きます。
Connect Week Sydney
先日、シドニーの Atlassian 本社で開催されたイベント Connect Week Sydney に参加してきました。
Connect Week とは、各国のアドオン開発ベンダーが Atlassian Cloud のアドオン開発についての情報交換やハッカソンを実施するイベントです。
今回はアジアパシフィックのベンダーが一同に会し、(英語で・・・)トークしたり、Atlassian のエンジニアにベンダーとしての要望を伝えたり、拡張ポイントについて議論してきました。
リックソフトの Facebook ページ にも少しレポートが掲載されております。
Atlassian Connect
さて、Atlassian Connect とはなんであるか?
ひとことで言うと、Atlassian Cloud 向けのアドオンが動作するプラットフォームです。
これまで、JIRA Server や Confluence Server のアドオンを開発するときは、Atlassian Plugin SDK を使用し、Java でコードを書き、Maven でビルドして jar ファイルを作成する方法が一般的でした。
しかし、Atlassian Cloud のアドオンはプログラム言語に依存しません。
JIRA とのやり取りは REST API と Web フックで行います。
パネルやページなどの画面はアドオン開発者が独自に立てた Web サービス側で実装し、JIRA や Confluence の画面上に iframe の形で埋め込まれます。
また、REST API は Scopes という概念が導入されており、アドオンから使える API はかなり制限されています。
ですので、これまでは Java の API (これが曲者で、やろうと思えば JIRA 標準ではできないこともできちゃう)で自由気ままに JIRA を乗りこなしていたアドオン達も、Atlassian Cloud では制限がかかることになります。
また、iframe からは親のフレームに自由にアクセスすることはできないので、JavaScript や css で自由気ままに JIRA や Confluence をいじっていたアドオン達も、Atlassian Cloud ではご法度となります。
わたしも2016年という年に iframe にこのような形で再会するとは思ってもいませんでした。
二つのフレームワーク
Web サービス側はプログラム言語に依存しないと書きました。
なので、Ruby でも PHP でも C++ でも何でもいいのですが、あまり自由すぎるのもそれはそれで開発者が困ってしまうであろうとのことで、現在は Atlassian が公式にサポートするフレームワークが二つ用意されています。
一つは Atlassian Connect Express というもので、名前の通り、Node.js の Express ベースで Atlassian Cloud 対応のアドオンをお手軽に開発できるものです。
もう一つは Atlassian Connect Spring Boot で、比較的新しめのフレームワークです。こちらも名前からおわかりのように、Spring Boot で Atlassian Cloud のアドオンを書くことができます。
Server 版のアドオン開発者は Java に慣れ親しんだ方が多いはずなので、後者のほうがとっつきやすいかもしれません。
おわりに
Atlassian Cloud はまだまだこれからのサービスです。
ですので、アドオンが利用できる拡張ポイントもこれから少しずつ増えていくことと思います。
皆さんも Atlassian Cloud アドオンの一歩を私たちリックソフトと踏み出し、Atlassian や海外ベンダーと一緒に Atlassian Connect を発展させていきませんか?