Hello everyone,
This sprint, we have made some big changes to Indicium's query generation in order to better support OData's $apply function and we have worked towards improving the developer experience. Aside from that, we have also solved some issues.
In addition to these features that are directly visible in Indicium, we have been working on enhancements for the Universal GUI and the next Thinkwise Platform release as these also contain an Indicium component.
You can read the Indicium user manual to read about Indicium's features.
We'll keep you updated regularly about Indicium's progress.
Indicium Universal
BREAKING. As of this release of Indicium Universal, it is mandatory for the Application Pool user to have read and write access to Indicium's Cache
folder, including permissions to create it if it does not exist. Previously, Indicium would show and log an error message if the Cache
folder could not be created. The absense of the Cache
folder can cause a multitude of other issues, which have led us to make it so that Indicium no longer starts without it, to make it more clear what the actual issue is.
Improved support of OData's $apply feature
Over the last few weeks we have worked on enriching Indicium Universal's support of OData's $apply feature. It was already possible to do a single compute, groupby, aggregate, groupby+aggregate or filter transformation in the $apply clause, but as of this release it is possible to chain them indefinitely, with each transformation applying to the result set of the previous transformation.
To illustrate this, the URL below selects all customers for which more than 5 projects were done in the year 2021.
/project?$apply=compute(year(project_date) as project_year)
/filter(project_year eq 2021)
/groupby((customer_id), aggregate(project_id with count as count))
/filter(count gt 5)&$select=customer_id
Configuration option to disable scheduled system flows
In this release we have added an Agent:Enabled
setting to the appsettings.json
. The default value of this option is true.
Setting this options to false will turn off all background operations that are managed by Indicium Universal and IAM. Currently, the only example of such a background operation is the scheduling of system flows.
Example
{
"Agent":
{
// Skip registering this Indicium instance as an agent on IAM.
// Also disables adding all agent related services such as the scheduled system flow runner.
"Enabled": false
}
}
Disable Scheduled License Update Checks
In this release we have added an Licensing:ScheduleUpdate
setting to the appsettings.json
. The default value of this option is true.
Normally, Indicium Universal performs a license check on startup in order to obtain a new, updated license, if necessary. This check then recurs periodically in order to keep the license valid. When this option is set to false, Indicium will not perform this check.
Example
{
"Licensing":
{
// Only check and potentially update the current license once on startup and skip scheduling further checks from being run in the background.
"ScheduleUpdate": false
}
}
Changes
- Default values (including default expressions) are now applied to imported rows.
Minor fixes and tasks
- Various improvements have been made to Indicium's error logging. Some errors lacked the necessary information to troubleshoot them easily and in this release we have improved many of these error messages. We will continue to work on this in the future.
- Fixed an issue that caused Indicium to return records in a different order despite the $orderby parameter being the same. This could occur when the values of the sorted columns were not unique within the table for view. This has been fixed by appending the primary key to the end of the order by clause to make the sorting deterministic.
- Indicium would apply percent-encoding to file names, causing spaces to be returned as %20 for example. This has now been fixed.