Lutece V7 first Release Candidate is now available

What's new in Lutece v7

 

An independence from the CSS frameworks

Before Lutece v7, each version of the core was linked to a version of a CSS framework. Since Lutece v4, the core relied only on the Twitter Bootstrap framework which brings all the "Responsive Design" features to adapt to mobile navigation. Each major evolution of this framework made a complete break of compatibility with the previous versions. This resulted in the necessity to modify all the HTML templates when the Lutece core was upgrading its version of Bootstrap. In Lutece v6, a set of macros of the Freemarker HTML template engine have been created to encapsulate the management of the CSS classes depending on the version of Bootstap. This effort has been finalized in Lutece v7 so that the macros allow the creation of HTML templates completely independently from the CSS Framework. To reach this result and validate it, Lutece v7 aimed at supporting at least 3 frameworks simultaneously :

  • Bootstrap 3 - for compatibility with v6 plugins which do not use macros encapsulating CSS styles
  • Bootstrap 4 - to support new features
  • Bulma - to demonstrate the independence from Bootstrap. For each of these frameworks, Lutece v7 provides a specific implementation of macros. To support another CSS framework, you just have to create a new implementation of the set of macros.

This feature represents a strategic turning point for the platform. It ensures the resilience of the developments by preserving them from technological evolutions which are often faster yet more disorganised.

 

A new graphics appearance for the Back Office

The possible independence of the CSS framework allowed to choose a look and feel based on the very trendy "Material Design" charter launched by Google for Android and then Angular. The macros Style Guide

Upward compatibility

Upward compatibility was a major concern in the design of Lutece v7. A few Freemarker macros and Java classes have been removed to clean up obsolete functions, but alerts are generated by Sonar analyses in order to evaluate any corrections that need to be made to be fully compatible with Lutece v7. Beyond that, Lutece v7 offers a compatibility mode based on Bootstrap3 which retains the deleted macros in the standard version in order to run a v6 plugin in Lutece v7.

A new organization in the technical settings

The layout of the technical settings in the Back Office has been completely redesigned to bring all these functions together in a single menu. This makes it possible to reduce the number of functions appearing here and there in the Back Office menus.

Support for configuration settings by environment variables

New functions allow you to set bookmarks from environment variables values. The first application is for setting up the db.properties file in which the database server, database and connection information can be defined using environment variables. If the name of the environment variable ends with _FILE, the value must be taken from the file named by the current value of the variable.

Example: To evaluate the string "${DB_PASSWORD_FILE}" where the file DB_PASSWORD_FILE=/run/secrets/mariadb-pwd

the method sets the value with the content of the file. This feature is useful to manage Docker secrets

LThe tracking of events

New functionalities for event tracking are offered by Lutece v7. They are intended for applications which need to keep a history of certain sensitive actions for security audit purposes.

Support for Java 11

The compilation version of Lutece v7 remains Java 8, however compilation is possible in Java 11 thanks to the addition of the dependencies removed in versions subsequent to JDK8.

Management of access controls to resources extended to the Front Office

The management of RBAC (Role Based Access Control) roles has been extended to back office users. This will allow very precise management of access rights to resources, particularly in the context of workflows. These mechanisms can also be implemented for daemons or REST web services.

PluginWizard and CodeWizard code generators updated

The PluginWizard (generation of a complete plugin) and CodeWizard (generation of unit files) code generators now produce code for Lutece v7, in particular HTML templates using the new macros.