Saltcorn 1.5.0 is the latest stable release of the Saltcorn database application builder. In previous releases we used a convention that odd version numbers were development and even numbers were stable, but now every whole version number is stable, following the current convention of the Linux kernel.
The major new features of this release are:
RTL mode: support for right-to-left language (e.g. Arabic). This involves switching major parts of the application including the location of sidebars, the orientation of two column forms etc to right-to-left display. When building an application you don't have to do anything - these changes will automatically happen when a user switches into an RTL language.
Multi-node: running an application with multiple application servers is now easier. When Saltcorn is run in multi-node mode, realtime collaboration, chat, dynamic updates and application build changes will automatically be propagated throughout all the servers connected to the same database. The following caveats apply: file stores are expected to be shared through a network drive. Saltcorn will not help you with this, you will have to set up your own network drive and set the Saltcorn file store to this drive. In addition, you will have to set up nodes so that only one of them run the scheduler (which runs periodic tasks and picks up suspended workflows when needed). The scheduler will be elected automatically in a future release.
Entities list: a new page for admins is available at /entities. This shows all of the major entities in a searchable list, with options to filter on entity type and tags. The entities list is already very useful but further features and UX improvements are planned for the next release.
Air gap mode: there is now enhanced support for running Saltcorn in environments that are isolated from the internet. An "air gap mode" configuration option disables some HTTP API calls to npm to avoid checking if updates are available. In addition a new docker image is distributed which contains all modules pre-installed so they can be activated without downloading code from npm. This means you can build an application including installing modules in an isolated environment.
Lazy tabs: tabs can now contain lazy content which means that any views a tab contains will only be loaded when that tab is activated. This can significantly reduce page load time.
Mobile applications: there is now an option for push-based and periodic sync of offline tables. This is only available for Android in 1.5.0, code for this for iOS has been already been merged in the 1.6.0 branch.
The code editor for JavaScript actions is now based on Monaco (which is the engine underlying visual studio code) and features type checks and intelligent code completion.
1.5.0 contains one important security fix which is also backported and included in 1.4.2. This vulnerability allows an attacker who can trick a logged in administrator to click on a link to hijack the session or execute code remotely. Thank you to Mathis Zscheischler for discovering and reporting this.