# GROWI v7.1.x へのアップグレード

GROWI v7.1 では GROWI AI 機能が追加され、GROWI を RAG (Retrieval-Augmented Generation) として活用できるようになりました。

# 目次

# [新機能] GROWI AI (ベータ)

GROWI v7.1.x では、ナレッジベースにおける情報収集と管理の効率化を目的として、GROWI AI 機能 が新たに追加されました。GROWI AI 機能は、今回搭載したナレッジアシスタントや今後実装予定のベクトル検索など、生成AIを活用した機能群の総称です。

今回 GROWI AI 機能群の第一弾として実装された ナレッジアシスタント は、チャット形式でユーザーからの質問に対して、GROWI 内の情報をもとに回答を生成する機能です。これにより、ユーザーは必要な情報を迅速かつ効率的に取得できます。

現時点では GROWI AI 機能は OpenAI API と連携しており、利用モデルは gpt-4o に固定されています。今後のアップデートでは、Azure OpenAI Service との連携、モデルの選択機能、さらには OpenAI 系以外の LLM との連携も計画されています。また、ベクトル検索などの高度な機能も順次追加される予定です。

詳しくは label をご覧ください。

# 管理者向け

# [廃止] MongoDB 4.4 および 5.0 サポートの終了

GROWI v7.1.x ではデータベースとして利用している MongoDB のバージョン 4.4 および 5.0 のサポートを終了しました。該当バージョンを利用しているシステムでは MongoDB 6.0 以上へアップグレードしてください。

# [仕様変更] AWS S3 利用時の ACL 設定(初期値)の変更

# 経緯

v7.0.x までの GROWI システムでは AWS S3 へのファイルアップロード時 (PutObject オペレーション時) に ACL: 'public-read' をオブジェクトに対して設定します。 これはフォーク元の Crowi 実装から引き継がれ、後方互換のために長らく維持されていた仕様でしたが、セキュリティの観点から v7.1.x 以降で変更されます。

経緯参考

# 変更内容

バージョン ファイルアップロード時 (PutObject オペレーション時) の挙動
v7.0.x 以前 オブジェクト ACL 設定 ACL: 'public-read' を付加するリクエスト
v7.1.x 以降 オブジェクト ACL を設定しないリクエスト

# 添付ファイル閲覧に関する影響

古いシステムからアップロードされた添付ファイルにアクセスできなくなる可能性があります。具体的には以下の条件に合致する添付ファイルです。

  • v3.3.0 以前のシステム利用時にアップロードされた添付ファイル
    • Markdown 中に記述されている以下のような URL
    • https://${AWS bucket name}.s3.amazonaws.com/attachment/5d091f611fe336003eec5bfd/foobar.jpg

# v7.1.x 以降の推奨設定

  • AWS 公式の S3 のベストプラクティス (opens new window) に則り、バケットの設定を以下のように変更する
    • S3 バケットの ACL を無効にする
    • S3 バケットに対するパブリックアクセスをブロック
  • GROWI に対して環境変数 S3_OBJECT_ACL=public-read を設定している場合は値を private に変更するか、もしくは設定を削除する

# v7.1.x 以降で、S3 バケットの設定を変えずこれまで通りの運用をする場合 (非推奨)

  • GROWI に対して環境変数 S3_OBJECT_ACL=public-read を設定する

# [廃止を伴う仕様変更] パッケージマネージャー・タスクランナーの変更

TIP

従来、パッケージマネージャーおよびタスクランナーとして yarn (v1) を利用していましたが、GROWI v7.1 以降で pnpm を採用することとなりました。

# 開発者向け

# 開発環境の更新

従来、パッケージマネージャーとして yarn (v1) を利用していましたが、GROWI v7.1 以降で pnpm を採用することとなりました。

# アップグレード前にチェックすべきこと

  • MongoDB 4.4 および 5.0 を利用しているシステムか
  • ファイルアップロードの方式として AWS S3 を指定しているシステムか
    • アクセス不能になる可能性のある添付ファイルついて、対応を検討したか
      • S3 バケットの設定を見直したか
      • 環境変数 S3_OBJECT_ACL の設定を削除、もしくは新たな値の設定をしたか
    • ユーザーに周知したか
  • 公式の Docker イメージを使用しているか
    • ビルドおよび起動時に yarn コマンドを使用しているか