Version 4.9.0¶
Pleased to announce this release with a mixed bag of new features. 🎉
Editors¶
- Individual answers can be downloaded one at a time as PDFs.
- Forms' expiry date and time now respect your personal timezone configuration.
- Chronological graphs display dates and times correctly adjusted to your timezone.
Moderators¶
The new auto-expire form feature can enabled/disabled on a user to user basis.
Admins¶
When your site is Invitation only a new option Generic invitation link can optionally be enabled.
Anyone with a copy of this link can create a user account.
Sysadmins¶
Auto expire, auto purge¶
Form can be forced to expire and optionally, deleted after X days.
See dotenv.example and docs/expire-purge-forms.md for more info.
Rate limiting¶
This release comes with backend rate limiting.
In version 4.7.0 we added rate limiting on the client, but that was only half the plan.
Sysadmins can now configure limits on public form, and user landing (such as login) endpoints.
See dotenv.example and docs/limiter.md for more info.
User registration honeypots¶
We've added honeypots to the new user registration form.
Thanks¶
Thank you @barthalion for diving into the code and building the Individual answer PDF export feature.
Thank you NLnet for supporting in part this release.
Upgrade from v4.7.0 or later¶
Important
If you are upgrading from a version prior to v4.7.0 please read those upgrade notes first.
Stop LiberaForms
sudo supervisorctl stop liberaforms
sudo supervisorctl stop liberaforms-logs
Fetch version 4.9.0
git fetch origin tag v4.9.0 --no-tags
git checkout v4.9.0 -b v4.9.0
cat VERSION.txt
Upgrade python packages
source ./venv/bin/activate
pip install --upgrade pip
pip install -r ./requirements.txt
Upgrade the database schema to c9a9428490fa
flask db upgrade
See the installed versions
flask site get-versions
Restart the supervisor processes.
sudo supervisorctl start liberaforms-logs
sudo supervisorctl start liberaforms
Container volumes¶
Breaking change
logs and uploads are now managed by the container engine. You will need to create the volumes and copy your existing data.
https://codeberg.org/LiberaForms/server/src/branch/main/docs/container.md
# Start the stack with Compose to create the volumes.
podman compose up -d
# Stop the stack.
podman compose stop
# Copy the logfiles and uploads into the newly created volumes.
podman cp /opt/liberaforms_logs/* liberaforms-app:/app/logs/
podman cp /opt/liberaforms_uploads/* liberaforms-app:/app/uploads/
# Start the stack.
podman compose up -d
# Check that everything's in place.
podman exec liberaforms-app ls -l /app/logs
podman exec liberaforms-app ls -l /app/uploads