# Upgrading to GROWI v7.1.x
GROWI v7.1 adds GROWI AI functionality, allowing GROWI to be used as a Retrieval-Augmented Generation (RAG) tool.
# Table of Contents
# [New Feature] GROWI AI (Beta)
In GROWI v7.1.x, the GROWI AI has been newly added with the aim of improving the efficiency of information collection and management in the knowledge base. The GROWI AI is a general term for a group of functions that utilize generative AI, such as the knowledge assistant that has been added this time and the vector search that will be implemented in the future.
The first of the GROWI AI features, Knowledge Assistant, is a function that generates answers based on information in GROWI in response to questions from users in chat format. This allows users to obtain the information they need quickly and efficiently.
Currently, the GROWI AI works with the OpenAI API, and the model used is fixed to gpt-4o. Future updates are planned to include integration with Azure OpenAI Service, model selection functionality, and even integration with LLMs other than OpenAI. Advanced functions such as vector search are also planned to be added in the future.
For more information, please see label.
# For Admin
# [Deprecated] End of Support for MongoDB 4.4 and 5.0
In GROWI v7.1.x, support for the database MongoDB versions 4.4 and 5.0 has ended. Systems using these versions should upgrade to MongoDB 6.0 or higher.
# [Specification Change] Changing the default value of ACL settings when using AWS S3
# Background
In the GROWI system up to v7.0.x, when uploading a file to AWS S3 (PutObject operation), ACL: 'public-read'
is set for the object.
This was inherited from the Crowi implementation, which was the fork of the system,
and was maintained for a long time for backward compatibility, but will be changed from v7.1.x onwards for security reasons.
Reference for background
# Changes
Version | Behavior when uploading a file (PutObject operation) |
---|---|
v7.0.x or earlier | Request to add object ACL setting ACL: 'public-read' |
v7.1.x or later | Request not to set object ACL |
# Impact on viewing attachments
You may be unable to access attachments uploaded from very old GROWI systems. Specifically, these are attachments that meet the following criteria:
- Attachments uploaded when using a system prior to v3.3.0
- URLs such as the following written in Markdown
https://${AWS bucket name}.s3.amazonaws.com/attachment/5d091f611fe336003eec5bfd/foobar.jpg
# Recommended settings for v7.1.x and later
- Change the bucket settings as follows according to the official docs: Security best practices for Amazon S3 (opens new window)
- Disable ACLs for S3 bucket
- Block Public Access to S3 bucket
- If the environment variable
S3_OBJECT_ACL=public-read
is set for GROWI, change the value toprivate
or delete the setting
# Continue using the same S3 bucket settings as before on v7.1.x or later (not recommended)
- Set the environment variable
S3_OBJECT_ACL=public-read
for GROWI
# [Specification Change Due to Deprecation] パッケージマネージャー・タスクランナーの変更
TIP
- Systems using official Docker images (opens new window) are not affected
Previously, yarn (v1) was used as the package manager and the task runner, but starting with GROWI v7.1, pnpm has been adopted.
- Refer to the 'Installation' page on the official pnpm site (opens new window) for installation instructions.
- Install version 9.4 or higher.
- Replace instances where npm scripts are executed with the
yarn
command withpnpm run
ornpm run
.
# For developer
# Update development environment
Previously, yarn (v1) was used as the package manager, but starting with GROWI v7.1, pnpm has been adopted.
- Please refer to Getting Started v6 to rebuild your development environment.
# Check before upgrading
- Check your GROWI uses MongoDB 4.4 or 5.0
- Check your GROWI specifies AWS S3 as the file upload method
- Consider measures for attachments that may become inaccessible
- Check the current S3 bucket settings
- Delete or set a new value for the environment variable
S3_OBJECT_ACL
- Inform GROWI users about the change.
- Consider measures for attachments that may become inaccessible
- Check if you are using the official Docker image
- Check if the
yarn
command is used during build and startup
- Check if the