skip to main content

Release notes

Interventions executed in each release are grouped into functional areas according to their scope, and classified by type (feature, improvement, bugfix, etc.). Criteria used to group and classify interventions are as follows.

Functional areas
Intervention types

Release 5.16.8 #

Application management #

Headless Cloudlets: introduced new Mail tab in Cloudlet’s Configure panel

A headless cloudlet now provides full control over the emails sent, regarding the creation of new users and the request for a password reset. It is possible to fully configure both of the related templates via a new tab named Mail that has been added to the Cloudlet’s Configure panel.

Componenti interessati: Dashboard, Dashboard Servant

Introduced new configuration of mail settings directly from the Mail tab

It is now possible to directly modify the parameters of the Cloudlet’s SMTP server with no need to submit queries to the database. To do this, a Mail settings subsection has been added to the Mail tab.

Mail settings

Componenti interessati: Dashboard, Dashboard Servant

Full support of Cloudlet integration with custom frontend

We previously supported the three following Cloudlet integration scenarios:

  • SSO + Livebase GUI + Cloudlet : Single sign-on allowing access to Livebase default frontend that interfaces with the Cloudlet;
  • SSO + Custom GUI + Cloudlet : Single sign-on allowing access to custom frontend interfacing that interfaces with the Cloudlet;
  • Livebase GUI + Cloudlet : Direct access to Livebase default frontend that interfaces with the Cloudlet (no SSO).

We are now able to support a fourth integration scenario, that is, direct access to a custom frontend that interfaces with the Cloudlet. This is possible thanks to the new Custom URLs subsection in the Settings tab of the Cloudlet’s Configure panel, and the introduction of a REST service that allows password reset.

Custom URLs

The new configuration fields allow the user to specify the URLs of two pages: one that hosts a password reset form (which can subsequently invoke the related REST services), and one that allows login to the custom frontend. The values of the fields also impact the URLs appearing in emails sent to users.

Componenti interessati: Dashboard, Dashboard Servant

Introduced new term Engine model to refer to library models

Previously, the term Engine was used to refer to both the models archived in the platform library and those already deployed on Cloudlets. From this version on, we will refer to archived models as Engine models, reserving the Engine term for the models that have been deployed on Cloudlets. Our goal is to maintain alignment between the terminologies used in the application and the documentation.

Components affected: Dashboard

Release 5.16.7 #

Improved deployment times on AWS

The procedure deploying cloudlets on Amazon AWS has been modified in order to parallelize some operations that were previously executed sequentially. This has reduced the total deployment time by roughly 50%. Further improvements are planned.

Components affected: Dashboard Servant, Hosting Servant

Fixed error: Cannot check diff for enum table

Extending a Livebase engine model with an Enum class that contained at least one literal erroneously raised a Cannot check diff for enum table message. This issue has now been fixed.

Components affected: Dashboard Servant

Release 5.16.6 #

Introduced Cloudlet playground

In order to allow developers to try the Livebase platform with no commitment, a “playground” is now available on a dedicated server. The playground enables the submission of read-only GraphQL queries on a Cloudlet having the Example scenario engine deployed.

Components affected: Livebase Documentation

[EXPERIMENTAL] Cloudlet deployment on AWS

The Livebase Cloudlet infrastructure is being deployed on Amazon Web Services (AWS), in order to guarantee more flexibility in the management of resources associated with the Cloudlet itself.

In Livebase versions 5.16.4 and 5.16.5, interventions were made in order to integrate Cloudlet Databases with MariaDB and host Cloudlet containers on ECS. Starting with this version, Cloudlet plugins too are hosted on AWS, via S3, which acts as a persistence layer until they are made available on the proper Cloudlet container.

Components affected: Hosting Servant

Release 5.16.5 #

[EXPERIMENTAL] Cloudlet deployment on AWS

Interventions are being made to deploy the Livebase Cloudlet infrastructure on Amazon Web Services (AWS).

Components affected: Hosting Servant

Release 5.16.4 #

Application generation & deployment

Plugin API: Added merge() service to CloudletEntitySession

Plugin API’s class CloudletEntitySession now exposes a merge() method that updates the current session’s state to reflect the Cloudlet Database’s content, if the latter has been altered by direct submission of queries. This method is similar to the previously existing persist(), which flushes all modifications made in the current session to the database. In short, the merge() method aligns the session with the database, while the persist() method aligns the database with the session.

Components affected: Plugin API

Introduced reuse of already built engines

A caching system was introduced, in order to enable reuse of already built Cloudlet engines and speed up the building process.

Components affected: Engine Builder

Fixed exceptions during build of models with selection filters

The following issue was fixed: when building models with selection filters referring to a class whose name was the prefix of the source class, an exception was raised.

Components affected: Engine Builder

Fixed not working showDetail() action for ListActionHandler

An issue was fixed, that led to an exception being raised if showDetail() action was requested in a ListActionHandler assigned to a part class.

Components affected: Engine Framework

Fixed search panel hidden by Livetable inside popups

A graphical issue was fixed, which caused the search panel to be partially hidden from Livetable widgets inside popups.

Componenti interessati: Engine Framework

[EXPERIMENTAL] Cloudlet deployment on AWS

Interventions are being made to deploy the Livebase Cloudlet infrastructure on Amazon Web Services (AWS).

Components affected: Hosting Servant

Application management

Introduced functionality to download GraphQL schema

It is now possible to download a zip archive containing the GraphQL schema generated for a specific model. This is either possible by clicking a model inside the library and selecting Download GraphQL Schema..., or by accessing the Manage plugins panel of a Cloudlet and clicking the button with the same name.

Components affected: Dashboard Servant

Release 5.16.3 #

Model design & management

Fixed handling of interdependent refactorings

An error was raised whenever a model modification required interdependent refactorings to the underlying database code (e.g. renaming a class at the same time it becomes target of an association). Now, the user is simply notified that such modifications are not possible.

At the same time, it is now possible to download the database update plan even in presence of conflicting refactorings. In this case, the user will be warned about the necessity of manual intervention on the plan.

Components affected: Dashboard, Dashboard Servant

Application generation & deployment

Fixed absent close button in part objects’ popup

A close button has been added to the header of a part object’s popup, every time it is opened in read-only mode. This allows the user to immediately dismiss the popup without having to enter edit mode and click the Discard button.

Components affected: Engine Framework

Fixed paged data not loaded in Editables

The following issue has been fixed: zooming in or out in certain browsers and operating systems resulted in pages of data not loading into the editable after scrolling down to the bottom.

Components affected: Engine Framework

Application management

Made Engines and Cloudlets panels resizable

It is now possible to resize both Engines and Cloudlets panels by dragging the sliding bar between them.

Components affected: Dashboard

Removed background color from Cloudlet status bar

The status bar located at the bottom of Cloudlet descriptors has now a transparent background color.

Components affected: Dashboard

Introduced check of database structure before issue resolution

The current structure of the Cloudlet database is now checked before executing issue resolution. If the structure is out of alignment with the model and the changes requested via the Designer, the user is presented with a warning listing all of the differences and is asked to confirm the operation. This is meant to prevent the user from introducing further inconsistencies in an externally modified Cloudlet database.

Components affected: Dashboard, Dashboard Servant

Allowed download of complete update plan even in presence of high issues

The update plan of a Cloudlet database into which high issues were introduced will now also contain the statements relative to those issues, allowing the user to apply them after manually fixing the data.

Components affected: Dashboard, Dashboard Servant

Improved operation popup messages

Popup messages that open when executing dashboard operations, such as opening or saving models, have now more specific titles instead of the previously used Executing....

Components affected: Dashboard

Release 5.16.2 #

Model design & management

Inverted behavior of Last modified ordering of library models

When requesting the Last modified ordering in the model library, models are now displayed in descending order.

Components affected: Dashboard

Application generation & deployment

Improved validation error messages

The validation error messages for operations that modify cardinalities are now less technical and more clear.

Components affected: Engine Framework

Made handler parameter dialogs draggable

It is now possible to drag handler parameter dialogs by holding the left mouse button on the dialog’s header.

Components affected: Engine Framework

[EXPERIMENTAL] Fixed User class attributes incorrectly taken into account for filter optimizations

The “Cannot find attribute named username” error, which was raised with the property ATTRIBUTE_LAZY_LOADING enabled, has now been fixed.

Components affected: Engine Framework, Runtime Query Generator

Fixed unclickable close button in handler parameter dialogs

An issue has been fixed, which made the close button in handler parameter dialogs unclickable.

Components affected: Engine Framework

Application management

[EXPERIMENTAL] GraphQL: introduced ignoring of application filters when necessary

The property ATTRIBUTE_LAZY_LOADING now introduces optimizations also available for the web client users.

Components affected: Runtime Query Generator

Improved color ordering for Cloudlet

Ordering Cloudlets by Color will now also order all Cloudlets with the same color by name.

Components affected: Dashboard

Enabled download of update plan with high issues

A Cloudlet database’s update plan can now be downloaded even when high issues are present (option Download update plan, in the Cloudlet database’s Advanced Tools tab).

Components affected: Dashboard Servant

Release 5.16.1 #

Model design & management

Introduced SQL schema importer

An SQL schema importing functionality has been introduced in the Designer, to serve as a design shortcut/migration tool. It is accessible via the Tools menu, by selecting Import SQL Schema.

The importer supports the most popular SQL dialects, i.e. MySQL, PostgreSQL, Oracle, DB2 and SqlServer. It correctly recognizes the following keywords:

CREATE TABLE
  COLUMN
    CHECK BETWEEN
  CONSTRAINT
    FOREIGN KEY
    UNIQUE
    INDEX

ALTER TABLE
  ADD CONSTRAINT
    FOREIGN KEY
    UNIQUE
    INDEX
  ADD/DROP COLUMN
  RENAME TABLE
  RENAME COLUMN

DROP TABLE [IF EXISTS]

Components affected: Designer

Application management

Fixed missing scrollbar in the Cloudlets panel

An issue has been fixed, which kept the scrollbar in the Cloudlet panel hidden, even when the Cloudlet list overflowed the panel.

Components affected: Dashboard

Release 5.16.0 #

Model design & management

Introduced customizable color theme

It is now possible to customize the color theme used in the Designer. This feature will be particularly useful for color blind people who may have trouble with interpreting certain colors of the current theme.

To do this, a new tab named Theme has been added to the Preferences dialog (accessible from the Edit menu). All modifications made to the theme are persisted between work sessions, and it is possible to revert to the default settings by clicking the Reset values button in the new tab.

Components affected: Designer

Application generation & deployment

GraphQL: Fixed integration with third party tools

In order to fix problems with third party tools processing GraphQL schemas, the API generator no longer produces empty data structures nor the relative types and services which reference them, being:

  • the ValidateUpdateBulk service;
  • the UpdateBulk service;
  • the TypeBulkResult type;
  • the DraftUpdateBulk input;
  • the UpdateBulk input.

These elements are only produced if the corresponding GraphQL data structure is not empty.

Components affected: API GraphQL

Application management

Improved overall look & feel for the Dashboard

The Livebase Dashboard has undergone a complete makeover, aligning its look & feel to the material design conventions.

Components affected: Dashboard

New Cloudlet logging features

A new logging system for Cloudlets has been conceived. The most remarkable features are:

  • four-level log messages: name of executing operation, Dashboard message, Hosting Servant message (currently executing step), Hosting Servant detail;
  • when executing an operation on a Cloudlet, its descriptor will show the operation name and the sequence of Dashboard messages. In order to see the full history of the log messages, at all of the four levels of detail, the user can open a modal window by clicking Show Log... in the context menu;
  • the content of the Show Log modal can be reset any time by clicking the Clear All button. The log will also reset either when the Cloudlet is removed or the user logs out of the Dashboard.

Components affected: Dashboard, Dashboard Servant, Hosting Servant

Release 5.15.12 #

Modeling language

Language fix: names of classes belonging to java.lang package are now restricted

In order to avoid model compilation errors, all the names of classes belonging to the java.lang package have been added to the list of restricted identifiers.

Components affected: Designer

Model design & management

Added support for German localization

It is now possible to define Localization Schemas for German language: users will find the new language option in the dropdown recallable by clicking on the icon in the Designer.

Components affected: Designer, Engine Framework, Cloudlet Database

Application management

Improved security of Dashboard and Hosting Servant

The communication protocol between Dashboard and Hosting Servant has been improved by enabling certificate exchange.

Components affected: Dashboard Servant, Hosting Servant

Release 5.15.11 #

Model design & management

Changed default activation behavior of platform attribute __id and derived attributes

Platform attribute __id and all the derived attributes which use it are now enabled by default in each application schema.

Components affected: Designer

Application generation & deployment

New feature: draggable associable object picker modal

The associable object picker modal, which opens when the user clicks the Add button to add associables inside an object form, can now be freely dragged throughout the screen by holding the left mouse button on the top edge.

Components affected: Engine Framework

New feature: draggable part creator modal

The part creator modal, which opens when the user clicks the Create button to contextually create a part inside an object form, can now be freely dragged throughout the screen by holding the left mouse button on the top edge.

Components affected: Engine Framework

Improved efficiency in computation of derived attributes

Now, computation of derived attributes also takes into account the “dirty” state of roles, alongside the already existing optimizations on native attributes.

Components affected: Engine Framework

Release 5.15.10 #

Model design & management

New feature: specification of number of visible rows in composition Editable representations

When editing the Form Layout of a class, more precisely Editable representations of to-many compositions, it is now possible to define the number of rows which will be visible without scrolling.

Components affected: Designer

Application generation & deployment

[EXPERIMENTAL] Optimizations of Cloudlet operations

The following Cloudlet operations underwent proper optimizations (with lazy loading enabled as in 5.15.9)

  • Object initialization: derived attributes are not calculated in the phase of object initialization, and only strictly necessary native attributes are explicitly loaded at this point;
  • Setting of “dirty” state: only necessary attributes are now influenced by the “dirty” state, thus making lazy loading operations more efficient;
  • Associability filters: associability domains are now calculated by taking into account only the involved attributes;

Components affected: Engine Framework

[EXPERIMENTAL] Removed docker_compose_checked column in Hosting Database

The column docker_compose_checked in the workgroup table of the Hosting Database has been removed. The original intent of the column was to verify the correct generation of the docker-compose file, but now this is no longer necessary due to the implementation of new ways to carry out this verification, which do not involve accessing the column.

Components affected: Hosting Database, Hosting Servant

Application management

Improved logging of check constraint operation during engine update

Whenever an updated version of an engine is dragged from the library to an available Cloudlet, the subsequent constraint check will now be adequately logged in the descriptor. The log is comprehensive of the descriptions of the constraints that are checked during the progress.

Components affected: Dashboard Servant, Hosting Servant

Release 5.15.9 #

Model design & management

Fixed bug on check database process

A bug concerning the check database process has been solved. The bug led to the raising of an error every time a native attribute was turned into a query attribute, without renaming.

Components affected: Database Checker

Application generation & deployment

[EXPERIMENTAL] Improved access to derived attributes using ATTRIBUTE_LAZY_LOADING property

By using the ATTRIBUTE_LAZY_LOADING Cloudlet property introduced in 5.15.7, derived attributes can now be loaded only if explicitly requested by the application. These are the improved operations:

  • creation of an object;
  • opening of an object detail;
  • validation of the class warnings defined on an object.

Components affected: Engine Framework

[EXPERIMENTAL] Interventions on dockerized environment

The following interventions on dockerized environment have been carried out:

  • removal of column container_assigned_max_mem in the workgroup table of the Hosting Database: it is no longer necessary, because Docker allows allocation of containers beyond the threshold specified by that variable;
  • insertion of property virtual_host in the workgroup table of the Hosting Database, which allows to define a virtual host domain for the environment;
  • modification of start/stop logic to make it execute in the foreground, in order to reduce the number of false negatives in container health-check monitoring and to increase the stability of the architecture.

Components affected: Hosting Database, Hosting Servant

Release 5.15.8 #

Modeling language

Improved loop-check logic for model: exclude cyclic query expressions

Query expressions determining a loop in computation of default values have been excluded from the loop-check logic. The logic still takes into account native attributes and math expressions.

Components affected: Designer

Application generation & deployment

Optimization of index usage with generated SQL queries

Interventions were made to make SQL queries generated by Livebase expressions benefit from indexes defined on accessed attributes.

Components affected: Runtime Query Generator

Fixed issue with Editables having columns pointing to query attribute chains

A bug concerning Cloudlet code generation was fixed: each time an Editable widget was used to represent objects of a class, with one of its columns pointing to a chain of query attributes (i.e. it pointed to a query attribute that targeted another query attribute itself, and so forth), compilation errors were raised signalling missing getter methods in the Editable class.

Components affected: Engine Framework

Release 5.15.7 #

Modeling language

Improved loop-check logic for model: default values for attributes

Expressions determining attributes’ default values inside an application are now included in the model loop-check logic. Therefore, it is no longer possible to define an expression which causes a loop in the traversal of the model structure while a default value is being computed.

Components affected: Designer

Application generation & deployment

[EXPERIMENTAL] New feature: lazy loading of attributes

A new Cloudlet system property ATTRIBUTE_LAZY_LOADING has been introduced. The property is a boolean which allows to enable or disable lazy loading of attributes using dynamically generated queries, instead of relying on the static ones generated at build time.

Currently, the property can only be set through database querying, by updating the @sys@properties table. It is off by default, i.e. set to false. Must be set to true to enable.

Components affected: Engine Framework, Workgroup Framework

GraphQL: Improved in-memory loading of associated objects after submitting Create mutations

Previously, mutations of type Create which led to creation of new objects forcibly loaded all of its associates into memory, even if those objects did not exist by construction. This led to the submission of many unnecessary queries, which is now avoided thanks to appropriate optimizations.

Components affected: Engine Framework