Hello everyone,
In this sprint, we have added a health check endpoint and a button to return to the application. We have also fixed the EML file preview.
You can read more about Indicium's features in the Indicium user manual .
We will keep you updated regularly about Indicium's progress.
About Indicium
Two types of the Thinkwise Indicium Application Tier are available:
-
Indicium: for use with the Universal GUI and via APIs. This version uses the full range of Indicium functionality.
Download Indicium release 2023.3.11 here. -
Indicium Basic: for use with the Windows GUI and Mobile GUI. This basic version does not support features such as system flows and OpenID.
There is no Indicium Basic release 2023.3.11.
Contents
Breaking
File extension whitelist will also apply to downloads and previews
Indicium
The file extension whitelist that can be configured on storage configurations will now also apply to downloads and previews, instead of just uploads. This can be a breaking change if your storage location already contained files that are outside of your configured whitelist. If this is the case, then we recommend either expanding the whitelist or removing that file.
For icons that are stored in the application model in the Software Factory and Intelligent Application Manager, only the following file extensions are allowed: .svg, .png, .jpg, .jpeg, .gif and .bmp. If you are using another file type as an icon for your application, please let us and postpone the installation of this version of Indicium.
Indicium - New
Return to the application button
Indicium
new
We have added a new button to the Indicium root page: Return to the application. This button will make it easier to go to the application from the root page.
The value of this redirect button can be set in the appsettings.json
. In most cases, you would set this to the URL of the Universal GUI. This way the button will redirect the user back to the Universal GUI.
"LoginOptions":
{
"ApplicationRedirectURL": "<your value>"
}
Health check endpoint
Indicium
Community idea
Application administrator
new
We have added a /health
endpoint that can be used by monitoring software to periodically check the status of Indicium.
The endpoint can be accessed anonymously. If Indicium has been started successfully, it will return one of the following responses:
200 OK
{
"status": "Healthy"
}
200 OK
{
"status": "Degraded"
}
503 Service Unavailable
{
"status": "Unhealthy"
}
- A "Healthy" status indicates that Indicium is running as expected as far as the health checks can determine.
- A "Degraded" status indicates that the connection to the meta source (IAM) works as expected, but one or more application connections are having issues.
- An "Unhealthy" status indicates that Indicium's connection to the meta source is having issues.
Use in Developer mode
Developer mode
The endpoint returns more information if accessed by a user who has been assigned Developer mode access in IAM. For example, a basic result when everything is healthy:
200 OK
{
"status": "Healthy",
"reports": {
"meta_source": {
"status": "Healthy",
"description": "Status of the connection to the meta source database.",
"duration": 78.8475,
"data": {
"assembly_version": "0.0.0.0",
"result_loaded_from_cache": false,
"sub_reports": {
"iam_connection": {
"status": "Healthy",
"description": "Connection to IAM was successful.",
"data": {}
},
"version": {
"status": "Healthy",
"description": "The metasource version of the database and the one that Indicium started with are the same.",
"data": {
"expected_version": "2023.2.13",
"current_version": "2023.2.13"
}
},
"time_difference": {
"status": "Healthy",
"description": "The time difference between the server Indicium is running on and the database server must be less than 20 seconds.",
"data": {}
}
}
}
},
"application": {
"status": "Healthy",
"description": "Connection status of each application that is currently active in IAM.",
"duration": 168.6951,
"data": {
"sub_reports": {
"itst": {
"status": "Healthy",
"description": "Connection status to the database of application itst.",
"data": {
"application_id": 52,
"application_alias": "itst",
"model_id": "INDICIUM_INTEGRATION_TEST",
"model_version": "MAIN",
"result_loaded_from_cache": false,
"cache_result_expiration": "2023-09-26T15:48:33.9810801Z"
}
},
"sf": {
"status": "Healthy",
"description": "Connection status to the database of application sf.",
"data": {
"application_id": 64,
"application_alias": "sf",
"model_id": "SQLSERVER_SF",
"model_version": "2023.2.13",
"result_loaded_from_cache": false,
"cache_result_expiration": "2023-09-26T15:48:34.0123615Z"
}
}
}
}
}
}
}
The meta_source
report contains data about the connection to the meta source that has been configured for this Indicium instance.
- The
assembly_version
property contains the full product version of Indicium itself according to the assembly file, for example, "2023.2.13.0-ga9a28b0-0". - The
agent_id
contains the ID that this Indicium instance communicates towards IAM to facilitate agent services such as system flows.- It is only present if the
Agent:Enabled
setting in the Indicium configuration has been set to true.
- It is only present if the
- The
result_loaded_from_cache
property indicates whether or not the current request used a cached result for the entire check.- All checks are always performed, even if the endpoint is accessed anonymously.
- To prevent checks from hitting the database too often, a caching mechanism has been added for some checks.
- The duration of the cache time can be changed; see the configuration options further below.
- The
sub_reports
property contains more information about each sub-check that was done to determine the status of themeta_source
check.iam_connection
checks if Indicium can still connect to the meta-source database.version
checks if the version of the meta-source still matches the one that Indicium found when first starting up.time_difference
checks if the time difference between the system clock of the server Indicium is running on does not deviate too much from what the database server reports. If the difference is too great, features such as system flow scheduling might experience issues.- If any of these checks report "Unhealthy", there is something wrong with Indicium, and it might need to be restarted in order to continue providing service.
The application
report contains data about the connection status to each currently available application within the meta-source.
- Each sub-report is about an application of which the connection was checked.
- The ID of the sub-report is either the application's alias or if the alias is not set, the ID of the application.
- Each sub-report contains the following data properties:
- The
application_id
- the ID of the application that was checked. - The
application_alias
- the alias of the application that was checked. - The
model_id
of the application. - The
model_version
of the application. - The
result_loaded_from_cache
property indicates whether this result was currently loaded from the cache. - The
cache_result_expiration
property contains a UTC timestamp indicating when the cached result expires, and the connection will be checked once more.- The "Healthy" and "Unhealthy" statuses have different cache durations. Both can be changed in the configuration of Indicium; see the configuration example further below.
- The
- The sub-reports will indicate either a "Healthy" or "Unhealthy" status. However, the main status of this report will indicate "Degraded" in case one of the applications indicates an "Unhealthy" status. The reason for this is that an application connection failing does not necessarily indicate that the entire Indicium service is running incorrectly. Furthermore, some monitoring software on Azure, for example, will attempt to restart Indicium if the health endpoint returns an HTTP status code outside the 200 range. Since an "Unhealthy" status returns a 503 Service Unavailable response code, this would be the case. However, a restart probably will not fix the issue in case of an application connection failure. Therefore, we return a "Degraded" health status instead to indicate that something is still wrong, but the service will not be restarted because a "Degraded" status also returns a 200 OK HTTP response code.
Below are the configuration options that are available for the health checks and their default values:
{
"HealthCheck": {
"MetaSource": {
"CacheDurationInSeconds": 60
},
"Application": {
"Enabled": true,
"Include": ],
"Exclude": b],
"CacheDurationInSeconds": {
"Healthy": 300,
"Unhealthy": 60
}
}
}
}
HealthCheck:MetaSource:CacheDurationInSeconds
controls the cache duration of the entire meta source check result.- The default value is 60 seconds (1 minute).
HealthCheck:Application:Enabled
controls whether the application connection check is enabled.- The default value is true.
- If set to false, a report is still added, but it will always return "Healthy".
HealthCheck:Application:Include
can be used to only perform the application connection check on the provided application aliases/IDs.- By default, all active applications are included.
- If you set this value to
e "sf", "example", "96" ]
, for example, only the connection to these applications will be checked:- Alias: sf
- Alias: example
- ID: 96
HealthCheck:Application:Exclude
can be used to exclude certain applications by alias/ID from the check.- By default, no applications are excluded
- Setting this value to
o "example", "96" ]
, for example, would cause these applications to be excluded from the check. - This setting gets applied after "Include", so combining the two examples above would result in only the following application connection being checked:
- Alias: sf
HealthCheck:Application:CacheDurationInSeconds:Healthy
can be used to control the cache duration of each application connection result that reports a "Healthy" status.- The default value is 300 seconds (5 minutes).
- The minimum value that can be configured is 10 seconds.
HealthCheck:Application:CacheDurationInSeconds:Unhealthy
can be used to control the cache duration of each application connection result that reports an "Unhealthy" status.- The default value is 60 seconds (1 minute).
- The minimum value that can be configured is 10 seconds.
Fixed
Fixed non-HTML EML file preview
Indicium
fix
We have fixed a problem that prevented previewing .eml
files (emails) that have plain text bodies instead of HTML bodies. We have also fixed a related issue where in some cases the file size of attachments would not be displayed correctly. They would erroneously show 0 bytes.
Questions or suggestions?
Questions or suggestions about the release notes? Let us know in the Thinkwise Community!