InformationGrid Finestre release notes

Location

You can find the bundle repository and handbook here: https://artifacts.informationgrid.com/releases/Galibier/index.html. You’ll need credentials for this. If you don’t have these, please request them by emailing support@informationgrid.com .

Important notice: this Finestre release contains breaking changes in the API. Please be aware of this and test before you update. 

New and noteworthy

  • Enhanced UI web components; 
    • A searchable resource master and added sorting to the resource master components. 
    • Web components now also support internationalisation. 
    • Form support for uploads
    • Form support for rich text editing
    • Automatically select a single item when a dropdown only contains a single item and the field is required
  • InformationGrid now includes a content repository. This repository is configured through the IG workbench and offers a REST API for storage and retrieval
  • We’ve added support for storing blobs using a configurable backend (either the AWS or Azure blob store services)
  • Improved DSL editing support by adding support for auto completion snippets and more detail on suggestions
  • We’re hiding our IG internal configurations in the workbench (configurable using -Dcom.informationgrid.showinternalconfigurations=true|false)
  • Improved schema editing support
  • Improved PaaS usage by providing the option to generate an API client for the journal and document projections.

Blueprint workspace changes

  • Finestre uses the Amdatu Blueprint Bari release
  • Two IG features have been added: ig-contentrepository, ig-blobstore

Significant API changes

Changed Lookup API

The Lookup API has been changed. Previously a lookup would accept a list of primitive values as its input. This has been changed to a single resource. Instead of defining the input as:

List<PrimitiveType> getArgumentTypes(SchemaRepository schemaRepository)

now it is:

ResourceType getInputResourceType(SchemaRepository schemaRepository)

This means that the values that should be provided when performing a lookup have changed from a list of primitive values to a single resource value. The expression DSL has been changed accordingly. The syntax remains the same, although it only accepts a single value of type resource now.

In light of this change the DocumentCollectionLookupConfiguration was changed to accept an input resource type instead of a list of arguments. The DSL argument ‘args’ has been renamed to ‘arg’. The properties now need to conform to the resource type specified with the configuration. The existing DocumentCollectionLookup configurations need to be modified to conform to this new specification. 

In the expression DSL the lookup construct therefore no longer takes a list of arguments, but takes a single argument instead.

Before:

document.country = lookup countries as country using eventdata.student.address.country value country.name;

After:

document.country = lookup countries as country where lookup.'value' = eventdata.student.address.country value country.name;

Journal REST endpoint

The serialization for the metadata when and writeTimestamp property of events retrieved from the journal rest endpoint has changed. Instead of an object containing 2 properties (eopochSecond and nana) this is now a single timestamp property (epoch millis).

Mongo database configuration

Amdatu Mongo was changed to support configuring multiple mongo databases. To support this an additional configuration parameters was introduced “mongoalias”.

For an InformationGrid deployment this means that the configuration admin based configuration for the InformationGrid primary mongo database needs this alias set to “informationgrid”:

mongoalias=informationgrid

Please update your CloudRTi deployment settings as well as your local runner configurations to include this setting. Also for IG library users:  ensure that everywhere where you’re directly injecting the IG MongoDB service to add the correct service filter pointing to that specific database. You can use the static com.informationgrid.base.MongoDBServiceFilter.createInformationGridAliasFilter() to create such a service filter.

Form REST endpoint

Passing the locale as query param is now required for all calls to /rest/form/*

Resource expression language

It’s no longer necessary (nor allowed) to escape properties that match reserved words in resource paths. So resource.’value’ or resource.’count’ now simply should be resource.value, resource.count etcetera. DSL recipes that use escape quotes for property value names will be marked als invalid on validation.

removing an element from a collection can now be done either by index or by value. See the expression language documentation in the handbook for details.

Configuration changes

Configuration options have been added for the blobstore and content repository.

Support

If you have any questions regarding InformationGrid then please send an email to support@informationgrid.com or call +31 (0)88 – 5864 630.