Version 4.1.2¶
Really happy to release this version that is an important part of making LiberaForms a scalable software.
In the beginning our database(s) were tiny, just a handful of users and forms. When an Admin was reading User or Form data, we would package everything on the server and send the whole lot down to the frontend that is built to display, order, and search data items. It worked fine.
But, as our SASS installations started to hold more data, it became obvious that we needed to change things. When we hit 1000+ forms it simply took too long (eight+ seconds) to markup 1000 items and send them to the client. And why send all that data anyway?
Server side pagination to the rescue!
Pagination entailed some work on the VueJs data-display component to handle both paginated data and form Answer data. Yes, we don't paginate Answers (think E2EE).
But the heavy lifting happened on the backend. I enjoyed learning more about SQLAlchemy and in the process better understanding how we were querying the database in general. All of which lead to improving some other semi-unrelated queries.
So, with this release the frontend can now handle tens and hundreds of thousands of data items.
We've been running this new code on my.liberaforms.org for the last few weeks and the difference is spectacular!
This release also comes with an improved docker-compose.yml and documentation, and updates Tamil L10n. Thank you to you both! ♥
And special thanks to NLnet for supporting this release.
Enjoy!
Upgrade from v4.*.*
¶
Stop LiberaForms
sudo supervisorctl stop liberaforms
sudo supervisorctl stop liberaforms-logs
Fetch version 4.1.2
git fetch origin tag v4.1.2 --no-tags
git checkout v4.1.2 -b v4.1.2
cat VERSION.txt
Upgrade python packages (not required if upgrading from v4.0.1 or later)
source ./venv/bin/activate
pip install --upgrade pip
pip install -r ./requirements.txt
Upgrade the database schema to 3303df362482
(not required if upgrading from v4.1.1)
flask db upgrade
See the installed versions
flask site get-versions
Restart the supervisor processes.
sudo supervisorctl start liberaforms-logs
sudo supervisorctl start liberaforms