skip to main content

Release notes

Interventions executed in each release are grouped 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.18.00 (Incoming) #

Application generation & deployment

Strong improvement in average response time of complex GraphQL requests

Every Cloudlet contains a Query Generator (QG) component, responsible for translating GraphQL queries into SQL ones. When the translation of a GraphQL query takes longer than a given threshold, the corresponding SQL queries can be stored as an entry in a cache memory, so that they don’t need to be computed again.

In cloudlets generated from complex models with several derived attributes, the QG cache improves the response time of GraphQL requests up to ten times.

The QG cache has been extensively tested, however we have also provided the possibility to disable it, just in case some Cloudlet in production shows unexpected behaviours after being regenerated. Please note that running Cloudlets must be stopped and regenerated in order to take advantage of the new version of the QG featuring the cache.

Components affected: Runtime Query Generator, GraphQL Builder

Configuration of Query Generator cache

Since the QG cache introduced in this release (see above) increases the Cloudlet’s consumption of volatile memory, it is crucial to control the cache size and make sure that it only contains the translations that are most frequently needed. Therefore, we have added a new “Query generator cache settings” tab to the Cloudlet Configuration dialog, allowing to set the following cache-configuration settings:

  • Enable Query generator cache: when switched on, for every GraphQL query received in a request the Cloudlet will first search in the cache if a similar GraphQL query has been translated before into SQL queries, and if it founds a translation stored in the cache it will retrieve it rather than computing it.

  • Cache size: allows to configure the maximum number of entries (i.e. translations) the QG cache can hold.

  • Cache expire time: allows to configure the time (in minutes) an entry can be retained in the QG cache since creation or last retrieval.

  • Query min threshold: it’s not worth storing in the cache GraphQL queries whose translation is fast, because the time to retrieve them from the cache would be comparable to the time required to translate them. This parameter allows to configure how slow a translation must be in order to be stored in the QG cache.

In addition to the global cache parameter, it is possible to instruct the GraphQL engine of a Cloudlet not to use the cache for each individual requests. To do so, include the disableCache parameter in the service call and set it to true.
For example:

query {
  Class1___getPage(disableCache: true) {
    items {
      _id
    }
  }
}

Components affected: Dashboard, GraphQL Framework

GraphQL: fixed error in queries with insight flag set to FULL

The Livebase GraphQL engine allows users to obtain debug information about the engine’s internal operations and performance. These insights are enabled by adding the insight parameter to GraphQL requests, which can be set to either LIGHT or FULL, depending on the desired level of detail.
Occasionally, for particularly complex queries, requests with the insight parameter set to FULL caused an error, resulting in the failure of the entire request. This issue has now been resolved.

Components affected: GraphQL Builder

Fixed issue with saving user profile

On some Cloudlets, end-users experienced false “network issues” when attempting to save their user profile. This bug has been fixed.

Components affected: Engine Builder

Application Management

GraphQL: redesigned configuration panel

The panel controlling Cloudlet API GraphQL parameters (accessible in the Dashboard by clicking the GraphQL logo in the top-right corner of each Cloudlet box) has been redesigned to improve user experience.
The current API activation status is now more prominently displayed, and all the switches and action buttons have been grouped into a single area with clearer labels.

Components affected: Dashboard

Eliminated duplicate “Creating Engine” message

During a Cloudlet build, the Dashboard’s log panel occasionally displayed the “Creating engine” message twice. This behavior has been corrected.

Components affected: Dashboard

Release 5.17.03 #

Application generation & deployment

Created a REST endpoint to reset Cloudlet user’s password

Developers building a frontend application for a Cloudlet can now offer Cloudlet’s users the ability to reset their password.
To integrate this service, a dedicated “Forgot Password” link should be added to the login page, sending a PUT request to the following URL format:

<cloudlet_base_url>/public/administration/members/resetPassword?format=json

This request:

  • must include the Content-Type: application/json header;
  • should have the body formatted as {"username":<username_to_reset>}.

This call will send an email to the email address of the specified user (if it exists), containing a link. Clicking on this link will lead the user to a page where he will be able to set a new password.

Components affected: Engine Framework

Improved GraphQL API performance for complex models

During normal operations, Cloudlets translate GraphQL queries into SQL queries. For particularly complex models, this process has been optimized and made more efficient (up to 60% faster).

Components affected: Query Generator

Application Management

Fixed the password recovery process for Dashboard users

Some Dashboard users encountered issues when attempting to reset their password. After initiating the reset process and receiving the email with the token, they were unable to complete the procedure due to a system error. This issue has been identified and resolved.

Components affected: Dashboard, Dashboard Servant

Release 5.17.02 #

Model Design & Management

Designer: Added a command to the context menu of the class tree for generating a star diagram

During modeling activities, it is often necessary to focus on a single class and its relationships. For this purpose, there is a command called Show neighbors in new diagram placed in the context menu that appears when right-clicking on the name of a class in the Designer workspace. This command creates a new star diagram, placing the selected class in the center and showing related classes all around it.
Starting from this release, this command can also be invoked from the context menu that appears when right-clicking on a class in the class tree box located on the left side of the Designer.

Components affected: Designer

Natural language specifications: Improved textual representation for part to-one classes

Part to-one classes effectively represent a set of attributes and relationships of the whole class that the modeler decides to separate. This process can also be nested, creating part classes within other part classes.
The treatment of these elements in the automatically generated functional specification document (introduced in release 5.17.0) has now been made more comprehensive and detailed, both in the section describing the insertion/editing phase of the objects and in the section concerning the detailed view starting from a parent object.

Components affected: Dashboard, Dashboard Servant

Login issue on the Dashboard when another user session is active

Livebase does not allow simultaneous connections with the same user account. During login phase, if an active session for the entered username is detected or if the last session was not terminated correctly, the Dashboard displays a warning asking the user whether to cancel the login or continue and invalidate the previous session.
On certain installations, the buttons allowing users to make this choice were not displayed correctly.
This issue has now been completely resolved.

Components affected: Dashboard

Application generation & deployment

GraphQL: Added the ability to perform get and getPages queries for Enum classes

Get and getPages queries for classes have been supported by the Livebase GraphQL engine since the first version. Starting from this release, it is possible to perform these types of queries for Enum classes as well.

Components affected: Dashboard Servant, GraphQL Builder

Release 5.17.01 #

Model Design & Management

Generation of a natural language document describing the functional specification of a Cloudlet

The Livebase Designer now can generate a functional specification of a cloudlet executing the engine model currently edited. Such specification is generated as a natural-language document (in MD or DOCX format) by selecting the Generate Functional Specification option from the Tools menu in the Designer. Only the italian language is supported at the moment. This functionality was initially released in version 5.17.00 only to beta-testers, but starting with this release it will be available to all users.

Components affected: Designer, Dashboard Servant

New signing methodology of the Dashboard installer for Windows

The Dashboard installer for Microsoft Windows has been signed with a new extended validation certificate. This provides a stronger attestation of the authenticity of the software and also prevents the SmartScreen warnings (false positives) that some users encountered during installation.

Components affected: Dashboard

Added Dashboard for Apple Silicon

Apple users with Silicon-based machines now have their own Dashboard release. The appropriate installer is available for download, along with all other versions, in the Download section of the Livebase website.

Components affected: Dashboard

Application generation & deployment

Fixed bug on file type attributes

A bug that prevented the proper handling of file-type attributes via the GraphQL API has been fixed. This functionality is now fully operational.

Components affected: Dashboard Servant, GraphQL Builder

Release 5.17.00 #

Model Design & Management

Added Guest mode to Designer

Guest mode allows a limited use of the Livebase Designer even if you don’t have (anymore) a Livebase account. With the Livebase Designer in guest mode you can open an existing Livebase model from a local drive (as an XML file), explore all its diagrams and even create new ones (e.g. to focus on the model parts you are interested in). You can also draw a new Livebase model from scratch, for product evaluation purposes.

Components affected: Designer

[EXPERIMENTAL] Generation of a natural language document describing the functional requirements of a generated app

A new function has been implemented in the Livebase Designer, generating a functional specification document based on the model currently edited. Such document (currently available only in Italian) describes the main functionality provided by a Cloudlet executing the model (more precisely, a Cloudlet whose engine has been generated from the model). If you are a developer enrolled on our beta-testing program, you can generate the document by selecting the Generate Model Documentation option from the Tools menu in the Designer and then selecting the desired document format.

Components affected: Designer, Dashboard Servant

Application generation & deployment

Fixed the format of the uploadedOn field for mutations on file-type attributes

When updating a file-type attribute using a mutation, it is now possible to populate the uploadedOn field using the date/time format specified in the Cloudlet’s settings, similarly to what already occurs for other date/time fields.

Components affected: Dashboard Servant, GraphQL Builder

Application management

Fixed progress bar in upload plugin form

In the plugin upload form, the dialog box that prevented the correct display of the progress bar indicating the percentage of completed upload has been removed.

Components affected: Dashboard

Release 5.16.23 #

Model Design & Management

Fix relink in query attribute drag an drop

Previously, when editing a model, dragging a derived attribute from one class to another would result in the loss, without any warning, of any filters set on the attribute if those filters referenced attributes no longer accessible from the new class. Now, upon performing this operation, a dialog window is displayed warning the user of the inability to copy the filter.

Components affected: Designer

Application generation and deployment

Fix error on logout in generated application GUI

Occasionally, when using the user interface automatically generated by the platform, malfunctions could occur during user disconnection. These issues have been resolved.

Components affected: Engine Framework

Cloudlet DB can be generated in Oracle format

A new code-generation module has been developed, generating the DDL to create cloudlets’ databases in Oracle format. Although the new generation module is not yet available to developers, it’s a first significant step towards the complete support for Oracle in the Livebase platform".

Components affected: Database Coder

Release 5.16.22 #

Model Design & Management

Increased consistency of classes and attributes color codes in the Designer

In the Classes tab of the Designer, when editing an application schema or a profile schema, classes and attributes are indicated with the same color as the corresponding graphic element shown on the Canvas. For more informations about the Designer color codes, please refer to the Rights section.

Components affected: Dashboard

Application management

Fixed deletion of plugins for cloudlets deployed on AWS

Occasionally, for AWS deployments only, the delete operation of a plugin did not actually remove it from all storage systems, resulting in the plugin being accidentally restored. This behavior has been completely eliminated.

Components affected: Dashboard Servant, Hosting Servant

Release 5.16.21 #

Model Design & Management

Signed Windows Installer

Windows Dashboard installer is now digitally signed. Signed installers are more secure and antivirus software allows for their installation without false warnings.

Components affected: Dashboard

Fix inconsistent model after moving association role with selection path

Moving a role with a selection path to another class now causes the drop of the selection path itself avoiding inconsistent data models.

Components affected: Dashboard

Application generation & deployment

Introduced functionality to disable download of GraphQL schema

Owners of Cloudlets that support GraphQL APIs can now disable the download of the introspection schema. This feature improves the security of such Cloudlets because malicious users may use the introspection schema to obtain information about the internal structure of the Cloudlets and detect potential vulnerabilities within them.

Components affected: Dashboard, Dashboard Servant, GraphQL Builder

Application management

Fixed container settings

In AWS deployments, changes related to container settings are now available only when the Cloudlet is stopped. In addition, changing the size of the container now requires a full Cloudlet rebuild.

Components affected: Dashboard, Dashboard Servant, Hosting Servant

Release 5.16.20 #

Application generation & deployment

Reduced Cloudlet generation time

The engine builder now produces multiple cloudlet components simultaneously, thus improving generation speed and streamlining the entire process.

Components affected: Engine Builder

Release 5.16.19 #

Application generation & deployment

[BETA] Introduced support for Multi-instance Cloudlets on AWS

Cloudlets can now run in multiple instances on AWS, to support high-availability and high-scalability requirements.
Note: this feature is still in beta-testing, so it’s currently available only to a select group of customers. For further information, feel free to contact us.

Components affected: Hosting Servant

Release 5.16.18 #

Application generation & deployment

Fixed runtime error when retrieving a query expression with a filter

An issue related to expression queries with filters was resolved. Despite the Cloudlet having been successfully generated and deployed, a runtime error prevented the attribute on which the filter was defined from being retrieved.

Components affected: Engine Framework

Release 5.16.17 #

Model design & management

Introduced ordering of literals in Enum classes

Until now, the ordering of literals within an Enum class was dependent solely on the insertion within the class. It is now possible to freely reorder literals via drag & drop, just as with attributes of other class types. For more information about the purposes of Enum classes, see here.

Components affected: Designer

Application generation & deployment

Introduced selection of container size for AWS-deployed Cloudlets

Customers can now choose the size of the container on which a Cloudlet will be deployed in AWS environment. This allows users to decide the cost/performance ratio that best suits their needs. More information here.

Components affected: Dashboard, Dashboard Servant

Fixed exposure of incompatible services in a distributed environment

Cloudlets no longer expose server administration services, since this feature is not compatible with server management procedures in distributed and redundant environments.

Components affected: Engine Framework

Release 5.16.16 #

Application management

Improved support for distributed Cloudlet deploying

The upgrade process for Cloudlet Databases has been strengthened. In subsequent releases, this will allow Cloudlets to be properly deployed in distributed and redundant architectures.

Components affected: Cloudlet

Release 5.16.15 #

Introduced additional insights on Cloudlet renaming operations

It is now possible to get insights on Cloudlet renaming operations. As a result, the user receives more detailed info without having to access the log dialog (via the Show Log button in the Cloudlet panel).

Components affected: Dashboard, Dashboard Servant

Release 5.16.14 #

Application management

Improved ease of use for the Dashboard’s Mac installer

Mac users experienced problems in running the Livebase Dashboard if its package was not properly installed in the Applications folder. To avoid further problems, details have been added to the installation procedure.

Components affected: Livebase Portal

Fixed GraphiQL URLs not updated

Following the renaming of an AWS deployed Cloudlet, the GraphiQL console URL as shown in the Cloudlet panel was not correctly formed, thus leading to an error 404 when trying to access the client through it. The problem, which could initially be circumvented by refreshing the Dashboard, is now formally fixed and no longer requires intervention by the user.

Components affected: Dashboard

Fixed Cloudlet deploying problems on AWS

Renaming a Cloudlet allowed the use of certain characters which made that Cloudlet undeployable on AWS. Now, these invalid characters are no longer permitted and, if they are still used, an appropriate warning message will be shown.

Components affected: Dashboard

Fixed malformed tar.gz Dashboard package for Linux

There were problems in executing the Livebase Dashboard from the Linux tar.gz package available on the portal, due to the malformation of some portions of the archive. The problem is now fixed and all the Dashboard’s distribution formats are now working.

Components affected: Livebase Portal

Release 5.16.13 #

Model design & management

Fixed unsolvable Engine issues

In certain edge cases, when the user modified an Engine and issues were reported, all the necessary fixes (both automatically performed by the platform or manually executed on the Cloudlet Database) were not persisted in the Engine, even though the issues panel showed no further problems. This problem is now fixed.

Components affected: Engine builder, Designer

Application management

Introduced additional insights on all deployment operations

It is now possible to get insights on deployment operations. As a result, the user receives more detailed info without having to access the log dialog (via the Show Log button in the Cloudlet panel).

Components affected: Dashboard, Dashboard Servant

Removed Public URLs tab for headless Cloudlets

In the case of headless Cloudlets, i.e. deployed on AWS, the Public URLs tab of the API & Public URLs panel always showed an empty content. The tab has been removed to make the user interface more concise.

Components affected: Dashboard

Moved Download GraphQL schema button to API & Public URLs panel

The Download GraphQL schema button has been moved from the Manage plugins panel to the API & Public URLs panel, in order to make the user interface clearer.

Components affected: Dashboard

Release 5.16.12 #

Model design & management

Fixed wrong format for dates in the attribute Domain Editor

When defining a new range in the Domain Editor dialog for Date attributes, values prior to January 1st, 1970 were displayed in a wrong format. This problem is now fixed.

Components affected: Designer

Fixed problematic characters in attribute default values

Default values ​​assigned to String or Text attributes, containing either double quotes ("), newlines (\n) or escaped slashes (\\), caused build failures. Now, these characters can be used without any problems.

Components affected: Designer, Engine Builder

Application generation & deployment

Introduced limit on Cloudlet database size in AWS

Databases for Cloudlets deployed on AWS are now limited to 1 GB of space. The user can extend this limit to meet his/her needs by contacting the Livebase team.

Components affected: Engine Framework

Improved scalability of Livebase systems

Evolutionary changes have been made to the Livebase platform, in order to make it more scalable and flexible when operating in a distributed environment.

Components affected: Engine Builder

Fixed problems in Cloudlet logs

Cloudlets integrated with an SSO did not properly store all the values ​​required by the log pattern. This problem is now fixed.

Components affected: Engine Framework

Release 5.16.11 #

Application generation & deployment

LEGACY: Fixed failures when ordering Editables

The user encountered unexpected errors when trying to sort the records of an Editable according to a column derived from a role. The problem has been solved by making the sorting logic more robust from this point of view.

Components affected: Engine Framework

Application management

Fixed errors on plugin deployment on AWS

Due to communication problems between the Hosting Servant and AWS, deploying plugins in this environment led to unexpected errors. This problem is now fixed and all plugins are fully supported for deployment.

Components affected: Hosting Servant

Fixed impossibility to download SPI from Model or Engine

For library Models and deployed Engines, it was not possible to download the SPI multiple times in rapid succession with different versions of the same Engine Model. This problem is now fixed.

Components affected: Dashboard Servant

Fixed failures in build process

The ordering logic used for the Engine Model’s cache, which is based on the last modification date, was not overflow-safe. This led to occasional integer overflows during the evaluation of this logic, which in turn caused the whole Engine building process to fail. This problem is now fixed.

Components affected: Dashboard Servant

Fixed problems in consecutive GraphQL builds

Executing consecutive GraphQL builds on the same Cloudlet led to unexpected errors. This problem is now fixed.

Components affected: Dashboard Servant

Release 5.16.10 #

Model design & management

Fixed comments not preserved when moving related roles

When a role was dragged from one class to another, the comments defined on the role were not transferred as well. The problem is now solved.

Components affected: Designer

Application generation & deployment

Introduced courtesy page for GraphiQL client

When attempting to access the GraphiQL client of a stopped Cloudlet, a courtesy page is shown in place of a Service Unavailable HTTP error, urging the user to start the Cloudlet in order to use its GraphiQL client.

Components affected: GraphiQL

Application management

Introduced creation of Cloudlet members from the Dashboard

It is now possible to create Cloudlet members both via the GraphQL/REST API and the Dashboard. This is done by clicking the Create Member button in the Cloudlet members’ panel. At the same time, the Create Admin button has been removed and replaced with the Is admin checkbox in the member creation dialog, as shown in the following screenshot.

Cloudlet members panel

Components affected: Dashboard

Improved handling of form classes

Save and start operations executed after adding a new form class to an engine have been made more efficient by limiting the consistency checks. This has a more significant impact on large Engines.

Components affected: Dashboard Servant

Improved Cloudlet deploy workflow

Admins must now be manually created by Dashboard users, who are also reminded to do so by a warning message shown in case a Cloudlet is started without users. This simplifies the workflow on the first deploy of a Cloudlet.

Components affected: Dashboard Servant

Fixed errors during Cloudlet SPI download

Occasionally, the cloudlet SPI download failed with an error. The problem is now solved.

Components affected: Dashboard Servant

Removed deprecated functionality: sending mail to Cloudlet members from Dashboard

The deprecated functionality of sending mail to Cloudlet members has been removed. For this reason, the Send mail button has been removed from the Cloudlet members panel as well.

Componenti interessati: Dashboard

Release 5.16.9 #

Application generation & deployment

Fixed EditTable not properly showing rows

The “Editable” component of the Cloudlet’s generated GUI, i.e. an interactive table with inline record-editing capabilities, fetched certain records multiple times, thus showing duplicated rows. This problem is now fixed.

Components affected: Engine Framework

Application management

Fixed Dashboard filters not resetting after logout and new login

After logging out of the Dashboard, filters set for Engine Models in the library and on Cloudlets were not reset. This problem is now fixed.

Components affected: Dashboard

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 #

Model design & management

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

Application generation & deployment

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

Release 5.16.6 #

Application generation & deployment

[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

Documentation & demos

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

Release 5.16.5 #

Application generation & deployment

[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

[EXPERIMENTAL] Cloudlet deployment on AWS

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

Components affected: Hosting Servant

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

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