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.
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.
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.
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 theClear 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 theworkgroup
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 theworkgroup
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