Skip to content

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