LogicBlox 4.31


LogicBlox 4.31.1

Release Date: March 5, 2021

Corrected Issues

The issues listed below have been corrected since the 4.31.0 release:

  • Modeler IDE
    • Resolved an issue that prevented user permissions functionality from working properly. Protected cells were not being marked as read-only.

    • Resolved a rendering issue that caused the dimensions browser in the "Fields Configuration" tab on the "Sheets" view to be stretched out.

  • Tools, Database, and Services
    • Fixed a bug in the LogiQL compiler's derivation type inference that could cause an exception when refmodes or constructors were improperly declared.

  • Measure service
    • Resolved an issue that in some cases prevented CubiQL rules from being installed in the measure model.

Known Issues

The issues listed below are known to exist in the 4.31.1 release.

  • Modeler
    • Modeler will now automatically redirect the user to the workbook list view for Modeler applications built with workbooks. In this release, there is a known issue on multi-node environments with the new /info service introduced for this functionality. The available work-around for this issue is to use the global proto for the /info service in the proxy service_config and add the /info proto to the .project file. A permanent fix for this problem will be part of LogicBlox release 4.32.0.

  • Tools, Database, and Services
    • This release contains changes to some lb-workflow tasks related to workbook creation. These fixes have not been applied yet to lb.wb.CreateWorkbook, which means errors related to recent changes in the LB runtime that imposes restrictions on string lengths can still occur. Please note that this known issue does apply to lb.wb.util.CreateWorkbook.

  • Notice for macOS 10.15 Catalina users
    • LogicBlox builds are not signed with an Apple developer certificate. This may result in error messages stating that LogicBlox originates from an "unidentified developer". To ensure the LogicBlox services will run on your system, apply the following command on the distribution tarball you downloaded from this website:

      $ xattr -d com.apple.quarantine logicblox-osx-<VERSION>.tar.gz

      Additionally, LogicBlox services will not function correctly when using a signed/notarized Java Runtime Environment. For instance, AdoptOpenJDK version 11.0.6 is the latest version that works with LogicBlox without causing signing issues.

      For more information about running apps from an unidentified developer, see Apple's macOS User Guide.

LogicBlox 4.31.0

Release Date: February 4, 2021

What's New

LogicBlox 4.31.0 introduces the following enhancements:

  • Modeler
    • Chart Mode functionality in Modeler's sheet views has been completely revamped. Charts are now rendered with a more powerful Javascript library (Chart.js) and expose more configuration options.

      The sheet toolbar contains a new "Chart Sizing" option in Chart Mode. Modeler supports the following chart sizing settings:

      • Default - the size of the chart is calculated based on the configuration and amount of data.
      • Fit Width - Modeler will try to fit the chart(s) into the available horizontal space.
      • Fit Height - Modeler will try to fit the chart(s) into the available vertical space.
      • Fit Screen - the previous two settings combined.

      We've also updated the "Chart Configuration" side panel which already allowed you to configure elements of the chart such as its title and subtitle. The following new options are available:

      • Chart Presets - these presets transform the existing view configuration to get a better visualisation. There are six presets available at the moment: Simple bar chart, Stacked bar chart, Grouped bar chart, Pie chart, Line chart, and Multi line chart. Presets can be applied to a sheet view by selecting one of the preset icons at the top of the "Chart Configuration" panel.
      • Chart Type - there are currently three chart types available: Bar, Line, and Pie.

      Example 1. 

      The following example uses the "Grouped bar chart" preset to visualize Net Sales per Year. Chart Sizing has been set to "Fit Width". Notice how chart data can be inspected by hovering the mouse over elements of interest in the chart.

      The following Modeling Features related to charts have been added:

      • numLoadingCellsThreshold - the maximum amount of cells that can be loaded.
      • maxChartsThreshold - the maximum number of charts that can be rendered on a view.

      Please note that the Modeling Features exportAsPng, viewSource, openInVegaEditor, and complexityIndexThreshold are no longer supported by Modeler.

      Example 2. 

      The following code snippet is an example of a valid modelingFeatures.chart configuration:

      {
        "modelingFeatures": {
            "chart": {
                "numLoadingCellsThreshold": 10000,
                "maxChartsThreshold": 100
            }
        }
      }

      Changes were made to the sheet JSON configuration for charts. Existing sheet configurations can be updated automatically with the Modeler migration tool. For more information, see the Upgrade Information section.

    • Modeler will now automatically redirect the user to the workbook list view for Modeler applications built with workbooks.

      The displayWorkbookList has been removed from the Modeler configuration because it's no longer needed. This setting has also been removed from the "Settings" view of the Modeler IDE.

      Please note that this feature relies on a new web service. If your application uses a proxy and doesn't use the modeler-proxy library, make sure that you properly forward requests to the new /info service.

  • Modeler IDE
    • The Modeler IDE now generates completely separate measure models for master and workbooks, including both the measure service’s measure model and generated LogiQL.

    • The Modeler IDE now supports incremental build. This new feature improves developer productivity by providing an "Update" button on the "Build" view of the Modeler IDE to quickly update an existing build after making changes to a navigation, canvas, sheets, and/or the measure model. Before this change, the developer had to wait for a complete build to succeed before being able to test these type of changes.

      The incremental build feature is only available for workflows that do not include workbook creation. To simulate a build with workbooks, developers can toggle the "Apply Workbook Template Settings" option to build and test the Modeler IDE project without workbooks while using the navigation and project file as configured in the selected workbook template.

      Example 3. 

      The following example shows the "Build" view of the Modeler IDE with the new "Update" option that can be used by the application developer to perform an incremental build. The "Apply Workbook Template Settings" option is checked, which means this build results in a Modeler IDE application without workbooks using the navigation and project file of the "PartitionedByClass" workbook template.

    • The navigation panel of the Modeler IDE has been redesigned. It's possible to dock the navigation panel which gives the application developer more screen real estate. The navigation panel will expand automatically when the user hovers their mouse over it. You can switch between docked and expanded mode using the new navigation toggle button located on the edge of the navigation panel.

      Additionally, users can now use the Back and Forward arrows in the top menu bar of the Modeler IDE to navigate quickly between previously opened views.

      Example 4. 

      The following example shows the Modeler IDE with a docked navigation panel. The Back button in the top menu can be used to quickly navigate to the previous view.

    • The CubiQL editor of the Modeler IDE now supports auto-completion for derived measures when editing the rules and inverses of a concrete measure. The editor will also auto-complete derived measures when editing CubiQL expressions in the "Expressions" view of the Modeler IDE.

    • The "Intersections" view of the Modeler IDE now has auto-save.

  • Tools, Database, and Services
    • The LogicBlox platform now runs on 64-Bit ARM processors under Linux (such as the AWS Graviton). We won't be automatically building and distributing these binaries yet, but they can be made available upon request. We suspect it will also run on "Apple Silicon" as well, but we have not yet verified this.

    • Added support for printing LogiQL annotations in log statements for long-running rules. The runtime will now include annotations starting with the prefixes 'source_' and 'comment_' in long running rule reports. This will help in narrowing down the provenance of some slow logic.

    • More performance logging added to the bloxoptimize function.

    • Added freelist reporting to the dlbatch profileDiskReport command. This can help identify page management problems in a LogicBlox workspace.

    • Added guidelines regarding the use of concurrent branch operations to the LogicBloxCore Reference Manual.

    • Added a discussion about the use of default-valued predicates in TDX export configurations to the LogicBlox Core Reference Manual.

  • Measure service
    • Introduced a new notification_dir configuration option that can be used to change the location where fifos are created for communication with the runtime. This defaults to /tmp. The other recommended location would be /run/logicblox, but that directory would need to be created with the correct permissions first.

Corrected Issues

The issues listed below have been corrected since the 4.30.0 release:

  • Modeler IDE
    • Fixed rendering issue in "Navigations" view. The menu with extra options is no longer displayed behind table header.

    • Fixed errors in the validation console to show label or name instead of IDs for some entities.

    • Modeler IDE uses Electron version 11 now. This should resolve issues with an occasional corrupted macOS build on Hydra.

  • Tools, Database, and Services
    • Corrected an internal runtime error that could result in a "Dereference of null" error when evaluating max aggregation rules involving default valued predicates.

    • The string:at function will now return positive integers for non-ASCII characters.

    • Fixed an issue that could result in a rule leak or runtime crash when removing blocks that contain default value logic.

    • Fixed a bug in linear recursion when non-write-optimized or IDB predicates are used as the base or recursive predicates.

    • Fixed a bug in linear recursion when non-write-optimized predicates are used as first/next predicates or group-by predicates in the rule body.

    • Fixed a bug in the parsing of P2P arguments that made it impossible to specify required keys while allowing other arbitrary keys.

    • Fixed a bug in the workspace archive command that caused various errors when trying to archive a workspace that had been closed and reopened (i.e. via a restart of LB services).

Known Issues

The issues listed below are known to exist in the 4.31.0 release.

  • Modeler
    • Modeler will now automatically redirect the user to the workbook list view for Modeler applications built with workbooks. In this release, there is a known issue on multi-node environments with the new /info service introduced for this functionality. The available work-around for this issue is to use the global proto for the /info service in the proxy service_config and add the /info proto to the .project file. A permanent fix for this problem will be part of LogicBlox release 4.32.0.

  • Tools, Database, and Services
    • This release contains changes to some lb-workflow tasks related to workbook creation. These fixes have not been applied yet to lb.wb.CreateWorkbook, which means errors related to recent changes in the LB runtime that imposes restrictions on string lengths can still occur. Please note that this known issue does apply to lb.wb.util.CreateWorkbook.

  • Notice for macOS 10.15 Catalina users
    • LogicBlox builds are not signed with an Apple developer certificate. This may result in error messages stating that LogicBlox originates from an "unidentified developer". To ensure the LogicBlox services will run on your system, apply the following command on the distribution tarball you downloaded from this website:

      $ xattr -d com.apple.quarantine logicblox-osx-<VERSION>.tar.gz

      Additionally, LogicBlox services will not function correctly when using a signed/notarized Java Runtime Environment. For instance, AdoptOpenJDK version 11.0.6 is the latest version that works with LogicBlox without causing signing issues.

      For more information about running apps from an unidentified developer, see Apple's macOS User Guide.

Installation Information

Install LogicBlox 4.31.0 by following the steps outlined below:

  1. Download the LogicBlox installation package for Linux or macOS from the LogicBlox developer website.
  2. Extract the tarball into a directory, which we refer to as <LOGICBLOX_HOME>.
  3. Run the following commands:
    source <LOGICBLOX_HOME>/etc/profile.d/logicblox.sh
    source <LOGICBLOX_HOME>/etc/bash_completion.d/logicblox.sh
    NOTE: these scripts automatically set all the necessary environment variables (please be aware that this script only works if you use bash as your shell). You might want to add these commands to your .bashrc.

Upgrade Information

  • Modeler
    • The library containing the Modeler migration tool is included in the distribution under <LOGICBLOX_HOME>/lib/npm/modeler-migrations-<VERSION>.tgz and contains a command line tool for doing various transformations/migrations of modeler configurations.

      To use the npm module, you first need to install it by running npm install --no-save <LOGICBLOX_HOME>/lib/npm/modeler-migrations-<VERSION>.tgz. You will then be able to use the command line tool. The module contains a README.md file that lists all available transformations as well as detailed instructions for use.

      To automatically upgrade a Modeler application from one version to another, run the upgrade script to upgrade between versions:

      ./node_modules/.bin/migrate-modeler --fromVersion <prevVer> --toVersion <toVer> /path/to/my/modelerapp

      where the version numbers refer to LogicBlox releases (e.g. 4.31.0).

      NOTE: If you installed the npm module globally, you won't need the ./node_modules/.bin prefix on the command.

Release Information

  • Server requirements
    • Operating System: 64-bit Linux; Apple macOS 10.10+ is supported for local development
    • Java Runtime Environment 11
    • Python 3.5 or higher
  • Client requirements
    • Applications using LogicBlox Modeler: Modeler supports major browsers not older than 1 year. Google Chrome provides the best performance.
    • Requirements for applications using non-LogicBlox Modeler components may vary per application.