Confluence 6.8から対応したConfluence Server mobile appを試す

ねんがんのServer版アプリがきましたね！

* [Confluence 6\.8 Release Notes \- Atlassian Documentation](https://confluence.atlassian.com/doc/confluence-6-8-release-notes-946014166.html)

## Confluence 6.8の準備

httpsが必須っぽい気がするので、ドメイン持ってるサーバーのApacheからreverse proxyでConfluenceにアクセスさせるようにしようと思います。

Confluenceは適当なサーバーのDocker上に立てることにします。
（Dockerで立てる意味は特にありません、なんとなく今回はDockerにしてみました）

### Dockerコンテナの作成

* [cptactionhank/docker\-atlassian\-confluence: Atlassian Confluence wrapped in a Docker image](https://github.com/cptactionhank/docker-atlassian-confluence)

Dockerfileは上記リポジトリのをcloneして使います。
バージョンが最新ではないのでDockerfileを修正。

```dockerfile:Dockerfile
ENV CONF_VERSION  6.8.0
```

buildしてReverseProxy用の環境変数渡しつつrun。

```bash
docker build ./ -t confluence-server:6.8
docker docker run -e X_PROXY_NAME=confluence.yourdomain.com -e X_PROXY_PORT=443 -e X_PROXY_SCHEME=https -e X_PROXY_SECURE=true --detach --publish 8090:8090 confluence-server:6.8
```

### Apacheの設定

証明書設置したVirtuslHostにProxyPassを記述。

```apache:httpd.conf
ProxyPass / http://ec2-xxxxx.compute-1.amazonaws.com:8090/
ProxyPassReverse / http://ec2-xxxxx.compute-1.amazonaws.com:8090/
```

`https://confluence.yourdomain.com` にアクセスして初期設定をしておきます。

### アプリからのアクセスからのみ何か制限したい場合

Server版だとIPアドレス制限をしている方も多いと思います。
スマホ版は当然ながらIPアドレス制限をしていると使えません。
IPアドレスを固定化したいときは、プロキシ設定の項目はなかったので、VPNを通すような対処が必要になります。

VPN面倒だから、認識外のIPアドレスのアクセス時はアプリだけに限定したいという場合、アプリからのリクエスト時はヘッダー情報として　`mobile-app-request:true` という独自情報を送っているので、それを使えばなにかしら制限できるかもしれません。

```
+8672:5ab0baca:1|GET /rest/nativemobile/1.0/content/65585/metadata HTTP/1.1|Cookie:authenticated=false; JSESSIONID=7133B1ADB365EDB022D70B6E1E73F8EA; seraph.confluence=491523%253Ae604df13a8399f00000000005edc856e1fc1faa7c|Content-Type:application/json|Accept:application/json|mobile-app-request:true|User-Agent:android|Host:confluence.yourdomain.com|Connection:Keep-Alive|Accept-Encoding:gzip
```

今回は特になにもせずに全開けで試してます。

## Confluence Server mobile appのインストール

* [Confluence Server on the App Store](https://itunes.apple.com/us/app/id1288365159?mt=8)
* [Confluence Server \- Google Play の Android アプリ](https://play.google.com/store/apps/details?id=com.atlassian.confluence.server)

## Confluence Server mobile appの初期設定

以降Android版で説明していきます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/135041/e1934c49-4d0d-7691-95b9-bdd34fe9bbbf.png" width=50%>

アプリを起動するとConfluence ServerのURLの入力を求められます。
フィールドにフォーカスすると `https://` がデフォルトで入力されるため、httpsが必須だと思われます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/135041/0d27d3fa-4118-bbca-e026-531c90e947cf.png" width=50%>

Confluence ServerのURLを入力後にログイン画面が出てきます。
これはWEBで使っているのと同じID/PWを入力してログインすることができます。
ログイン後はConfluenceのダッシュボードに遷移します。

## アプリ版でできるようになったこと

### ページの作成・編集ができる

WEBスマホ版ではページに対して　`コメント追加` か `ウォッチ` 、 `いいね` しかできなかったが、アプリ版では `ページの作成・編集・お気に入り` ができるようになりました。
さらに `ページ制限` や `ページの移動` もできるようになっています。

ただし編集時に使える文字装飾は `見出し・太字・斜体、リスト` 程度しかありません。
画像・ファイルの添付もできないというのは、ちょっと困るところ。
このあたりは今後のアップデートに期待しましょう。

### プッシュ通知が受け取れる

メールによる更新通知と同じ感覚でプッシュ通知が受け取れます。
設定から通知を送る動作を変更することができます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/135041/64a041ef-fa4a-6072-d605-456add438ee1.png" width=50%>

### セッション時間の永続化？

これはバグかもしれませんが、アプリを落として再度立ち上げたり、１日経ってもログインセッションが生きていました。
WEBのほうは普通にセッション切れていたので設定値の問題ではないと思うのですが。。。

便利といえば便利なのですが、任意の期間でセッションを無効化したいのも事実、どうやればいいのだろうか。

## WEBデスクトップ版やWEBスマホ版との見た目の違い

|WEB DESK|WEB SP|APP|
|---|---|---|
|![default_page.png](https://qiita-image-store.s3.amazonaws.com/0/135041/ffbeb7e6-6166-0ad1-d0e5-a75a46132526.png)|![default_page_sp.png](https://qiita-image-store.s3.amazonaws.com/0/135041/c0f9ffc4-7d87-8fd8-8318-7b74cea81a1e.png)|![Screenshot_20180323-091526.png](https://qiita-image-store.s3.amazonaws.com/0/135041/4a1c7a73-9932-4e5b-fd5a-822b1f154a42.png)|

閲覧状態で見る限り要素的な違いは少ない。
WEBスマホ版よりもアプリ版のほうが、ちゃんとマテリアルUIで見た目が洗練されている。

|WEB DESK|WEB SP|APP|
|---|---|---|
|![roadmap.png](https://qiita-image-store.s3.amazonaws.com/0/135041/bc990ef5-d275-2e56-9635-95e8fb083470.png)|![roadmap_sp.png](https://qiita-image-store.s3.amazonaws.com/0/135041/72c63682-d686-d048-b8a0-511c9220528c.png)|![Screenshot_20180323-105011.png](https://qiita-image-store.s3.amazonaws.com/0/135041/514d63f8-cc4d-c8bf-b476-320a376d5d75.png)|

一部マクロについてはWEBスマホ版と同じく表示できない。
編集画面ではこのようなマクロは画像読み込み失敗のようなアイコンで表示される。

## 未確認事項

* Jiraのissue埋め込みは表示できるのか
* Bitbucketのソース埋め込み（プラグイン）は表示できるのか
* htmlマクロによるjavascriptごりごりフォームは動くのか

## 遭遇したバグ

初期リリースだからかバグが普通にありました。
以下のバグはAndroid版v0.1.34で遭遇したもので、他のOSやバージョンでは再現しないかもしれません。

* アプリ版非対応マクロがあるページを編集して保存したあとにフリーズする（保存はされてる）