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.3 #

Model design & management

Fix 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

Fix 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

Fix 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

Make 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

Remove 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

Introduce 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

Allow 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

Invert 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] Fix 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

Fix 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: ignoring 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

Enable 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

Fix 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: Fix 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

Change 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