Saltcorn 0.8.9 - Mobile sync, predictive analytics, bulk operations

By Tom Nielsen
Published on 

Saltcorn 0.8.9 has just been released! It brings the following improvements:

Mobile app table data sync: previously when building mobile (Android or iOS) applications you had to choose whether tables were server-based (no offline access) or entirely local (no sharing or backup, the data stays entirely on device). Now there is an option for synchronizing tables to the server, so an application can still be used offline with shared data.

Predictive models: we have added a capability for adding predictive models based on table data. Predictive modelling in Saltcorn will be the subject of a separate blog post, but for the moment there is one module providing predictive modeling (sklearn-regression) which has more documentation. The predictive modeling system has been designed to accommodate both supervised (regression and classification), unsupervised (e.g. anomaly detection in gaussian mixture models) and newly fashionable prompt-based language models (using llama.cpp or OpenAI-compatible APIs).

Multiple filter actions and multirow edits: previously there was very limited support for bulk operations on multiple rows, and one usually had to resort to writing a script. The main problem with this is that Saltcorn is meant to be a no code tool and needing to write scripts undermines that premise. Now we have two new tools for bulk updates. First, when adding an action to a filter view you can choose to have the action run for every row matching the current filter state. For instance you could use this to select a criteria and then delete every row matching this criteria. (There is now also an option for running the action with the current filter state as the input to the action). The second new facility for bulk updates is the ability to add an action in edit that applies the values in the form to every row in the matching filter state. this means you can choose a subset of the rows in a table by some criterion and apply a user input value to specific fields in those rows.

Pageload event: you can now define a trigger, or record in the event log, an event for every page load (every page or view visit). This is mainly useful for gathering statistics and analytics about your site/app usage without using a third party tool such as Google Analytics.

Field minimum role: you can now specify the minimal role required to write individual fields. This is used when you have certain fields that are protected in a table with wider access rights.

New CLI tools: list-tenants, list-triggers, list-users, run-js, run-sql, run-trigger command line commands were written by Aleksandr Sokolov.

The facility for local state introduced in the previous version has been extended to views so show and filter views can now embed views with local (isolated) state. The local state system has also been extended to now cover pagination, sorting and the ListShowList view. 

Toasts: the notification system has been redesigned to appear in small notification toasts in the upper right hand corner. These do not cause the page content to shift like the previous alerts

Sinhala translation by @kkumara3

Version 0.8.8 was skipped because of a network or NPM outage during the release process.

Looking forward, the next release will be 0.9.0 starting a development cycle focused on reliability, documentation, consistency, small quality-of-life improvements and completion of existing features and user experience improvements. The major features are largely in place for version 1.0 and there does need to be a period of stabilization and refinement before the release of 1.0. 


Recent posts