Crowi v1.7.8 (と v1.7 の新機能ダイジェスト)
v1.7.8 リリースをリリースしました。v1.7.8 は v1.7 系としては最後のリリースとなり、今後は v1.8 にむけて開発を進めていく予定です。にもかかわらず、Crowi Book としては v1.6.2 以来リリースノートを書いていなかったので、1.7 系のリリースをダイジェストでお伝えします。
なお v1.7.x に入ったリリースでその後のリリースで変更されたものは基本 v1.7.8 ベースで紹介します。
⚠️XSS の脆弱性を修正しました (v1.7.6)
URL をもとにページタイトルを決定するため、scriptタグをURLに書き込むことで任意のJavaScriptコードの実行が可能であるセキュリティ上の問題を修正しました。
v1.7.6 以前を利用している方は速やかに最新版への更新をお願いします。
GitHub 連携でのログイン設定がきるようになりました (v1.7.0)
特に G Suite を利用していないような団体 (研究室やOSS 等) では有効かもしれません。
GitHub/Google の連携強制化 + パスワードログイン禁止の設定ができるようになりました (v1.7.8)
特に企業で利用されるケースで G Suite アカウントとの連携を必須にしたいケースに対応するため、Google / GitHub アカウントの連携のされていない人を強制化し、パスワードログインを禁止にする (Google/GitHub 連携でのみログインできる) という設定ができるようになりました。
ある程度 SSO 的に利用可能ですが、そういった設定をした場合でも新規登録時にパスワードの設定が必要等、まだイケてない部分が残っているので、今後このあたりは更に改善していく予定です。
階層をまるごと移動できるようになりました (v1.7.0)
たとえば /hoge/fuga を /hoge/piyo に移動しようとした際、下層ページもすべてまとめで move できるようになりました。
この機能を利用した場合、最新の更新日時を変更しないようになっています (v1.7.8 で変更)。これは、大量に移動した際に大量に updated が書き換えられてしまいトップページが混乱する、また、基本的に更新日時順でページが並べられているため、更新日時順序を考慮せずに update をかけると、コンテキストが失われてしまう事が多いからです。
非ログインユーザーに向けてページをシェアできるようになりました (v1.7.0)
アカウントのない人にむけて、シェア用の URL を生成し、ページをシェアできるようになりました。業務上連携をしている社外の人等にページ内容を共有する際に有用かと思います。この機能を有効にするには、管理設定が必要です。
例えば、Crowi の開発チームで利用している Wiki のあるページはこのようにシェアできます。
検索結果が Portal, Public, User の3つに分割されるようになりました (v1.7.0)
特に、User ページ以下の memo や日報等が大量に引っかかった際、それ以外のページ (プロジェクトやチームで利用しているページ) が検索結果に埋もれてしまう問題を解決するため、Portal と、/user/xxx 以下のページと、それ以外のページ (public) で結果を分割して表示するようにしました。
サジェストではない結果ページのほうでは、デフォルトが今の所 All (まぜこぜ) になっていますが、用意に絞り込みができるようになっています。
検索のスコアリングを改善しました (v1.7.5)
検索スコアに、Bookmark 数を反映するようにしました。多くのユーザーが定期的にアクセスするような重要なページが相対的に上に来やすくなっています。
なお、Like は反映していません。これは、Like は一過性の情報に当たることが多いためです。例えば、”XXXの分析結果” や調査メモ、ポエムっぽいページなどが、Like を集めやすいが、検索として重要性が高いわけではない事が多い、といった現実的なユースケースをもとにしたロジックとなっています。
最近見たページ (v1.7.8)
検索窓にフォーカスしたときにデフォルトで最近見たページの5件を表示するようにしました。個人的に Crowi を利用していて特に最近関わっているプロジェクト、とかだとやはり最近見たページに再度アクセスする、ということがよくあるから … です。
こちらは Redis が有効になっているときにのみ有効になる機能です。
Slack の unfurl に対応しました (v1.7.8)
Slack に Crowi の URL を貼った際、内容が展開されます。
この設定を有効にするには、Slack App の設定が必要です。お使いの Slack App の Event Subscription で link_shared を有効にしてください。詳しくは管理画面の “通知設定” タブに説明の記載があります。
その他の改善
- 個別ページやリストページ等で不要な処理を削ることで、高速化しました。
- ユーザー管理画面で、ユーザー検索機能を追加しました。
- プロフィール画像をアップロード前に resize するように変更しました。
- svg+xml 形式の画像アップロードに対応しました。
- 検索インデックス再構築時に、検索のDowntimeが発生しないようになりました。(これまでは、Index を削除→作成→全ページの追加、という処理を行っていましたが、Index を新規に作成し全ページを追加したあとで Index を切り替える、という処理になりました)
- 複数台の node.js サーバーを利用して運用している場合に設定が各サーバーに適用されない問題を修正しました。
- Authorization: Bearer 形式の認証ヘッダに対応しました。
コミュニティについてのご連絡
これまで、Gitter に部屋を設けてきたのですが、今後これを廃止し、
- コアコミッターのコミュニケーションとしての Slack
- サポートやユーザーコミュニティとしての Spectrum
を活用していこうと思っています。
Spectrum のほうはぜひ皆さんもジョインしてください。
Slack については、今後方針を変更する可能性もあります (月1のミーティングを Discord でしているので、いっそ Discord でも良いという話はあるのですが、通知系の Integration の Dogfooding や、使い慣れという点で今の所 Slack を利用しています)
謝辞
今回も、コアコミッター以外からの多くのみなさまの Pull Request や Issue により多くの改善や機能追加を行うことができました。ありがとうございました。
v1.8 に向けて
v1.7.8 がリリースできたことにより、開発のメインストリームを v1.8.x に変更していきます。(master も近いうち)
v1.8 では通知機能やバックリンク等、また新機能モリモリなので楽しみにしていてください。
それではまた。