21 October 2022

1. Cancellation of Job Execution

The possibility to validate if the job execution should continue as normal, or if it should be cancelled/aborted have been added as of this release.

In some situations, you might for example have created a TIF Job with a delayed execution, and you want to verify that certain condition(s) still are valid before executing the job.

The event section of a job configuration have been extended with a Validation event. You can per default test certain expressions against the source object OR execute some custom code to perform custom validation.

An example shown below how this could be configured:

<Job>

    <Events>
        <Validate>
            <SourceObject expression="${attribute[MyCustomAttribute]} == 0 AND current != 'Obsolete'" ifFalse="cancel" />

            <!-- use custom Java condition evaluator -->
            <Handler className="com.acme.tif.job.MyValidator" />
        </Validate>
    </Events>
</Job>

You can choose if the job should be cancelled and let the job status be either succeeded OR failed. In case of failed, you can also automatically mark the job as resolved and define a resolution.

For more details, see this document.

2. Application Tokens

You can now within the TIF administration UI create application tokens, which can be used to grant access to webservices hosted in TIF for other systems.

The Application Token can be declared to be valid during a certain time-frame and you can specify what user and roles the token should act on behalf of.

Two new roles have been added to support working with these. Those roles are called "Application Token Viewer" and "Application Token Editor".

When starting up TIF after upgrading to this release, ALL current admin users declared in the TIF database will be granted these roles.

From the Administration UI you can list the Application Tokens from the menu item "Internals" → "Application Tokens". This menu item is only available if you have the "Application Token Viewer" role.

From this page you can create new application tokens, if you have the role assigned.

image
Figure 1. Create Application Token

Once a token is created, you must store the token and keep that in a safe place as the token is not possible to reveal at a later stage.

The token should be passed as a "Basic" authorization header.
image
Figure 2. Application Token Created

See this document for more details how to configure this.

3. Instance Specific Configuration Files

As of this release, TIF have harmonized its way of loading custom property files or custom configuration files. This means that you can in addition to specify custom properties/configurations valid for all instances you use, also have instance and/or node specific configurations in its own files. This will make it easier to deal with variations among different TIF instances in an easier way.

Earlier, only the "timetable.xml" file had this support, but now we have added this support for the configuration files listed below:

  • ${TIF_ROOT}/etc/tif.custom.properties

  • ${TIF_ROOT}/modules/enovia/etc/module.custom.properties

  • ${TIF_ROOT}/modules/enovia/etc/tvc.custom.properties

Lets take one example. When TIF is starting up an instance with id TIF-1 and having its node id set to "srv142", then TIF will also search for property files with the following names and if present also include them (in the given order):

  • TIF core properties from the folder: ${TIF_ROOT}/etc

    • tif.custom.properties

    • tif.custom-TIF-1.properties

    • tif.custom-srv142.properties

    • tif.custom-srv142-TIF-1.properties

  • ENOVIA module settings from the folder: ${TIF_ROOT}/modules/enovia/etc

    • module.custom.properties

    • module.custom-TIF-1.properties

    • module.custom-srv142.properties

    • module.custom-srv142-TIF-1.properties

  • TVC settings from the folder: ${TIF_ROOT}/modules/enovia/etc

    • tvc.custom.properties

    • tvc.custom-TIF-1.properties

    • tvc.custom-srv142.properties

    • tvc.custom-srv142-TIF-1.properties

Some changes to consider:

Within the file ${TIF_ROOT}/etc/tif.properties, there was one property called customPropertyFile that could have been used to point out a different name of the custom property file. This property is as of this release removed as it cannot be supported using the new strategy of loading custom property files.
The earlier supported file name ${TIF_ROOT}/modules/enovia/etc/${INSTANCE_ID}.properties will as of this release not be used as the file naming have been harmonized. Please rename this file to module.custom-${INSTANCE_ID}.properties instead. If TIF finds such file during startup, a warning message will be logged and the file is NOT read.

4. Styling Configurability within the Administration UI

You can now control some of the look and feel of the Administration UI via properties in the "module.properties" file.

For example, you can control:

  • Application Title

  • Top bar background color and font color

This is useful for example if you want to distinguish test environments from production environments.

For example, adding these properties in the module.custom.properties file:

adminui.styling.title=Custom Title / ${tif.instance.id}
adminui.styling.topbarFontColor=#000000
adminui.styling.topbarColor=#00ea00

Would render the UI like this:

image
Figure 3. Administration UI with Custom Styling

5. ENOVIA/3DExperience Job Object Cleanser

The built-in scheduled job that removes old "TIF Job" objects from the ENOVIA/3DExperience database will as of this release only process 100 objects per execution in order to reduce possible impact of the performance.

It is possible to change this value within the module-properties file. There is a key named enoviaJobCleanser.deleteLimit. Setting this property to 0 or a negative value implies no-limit.

6. Data Directory Base Location

The data directory, which holds runtime data for a TIF instance can now be configured. E.g. you can define another location for this directory via the ${tif.home}/etc/tif.custom.properties file.

location.dataDir = ${tif.home}/data

This will be the base directory for the data, and TIF will create directories underneath this directory containing instance / node specific directories.

7. Admin UI Reload Delay Property

The property "resourceChart.reloadDelay" have been renamed to "adminui.resourceChart.reloadDelay" for consistency.

8. Response Meta Data Visible for Failed Outbound HTTP Jobs

Admin UI shows response meta data of outbound HTTP jobs that fail due to error status code.

9. Fixed Bugs

Below is the list of fixed bugs as of this release.

Issue No Description

913

Do not commit ongoing transaction during creation of TIF Job

911

Documentation error regarding configurable REST services and "Create New Job" operation

914

HTTP outbound job fails if response does not include "Content-Type" header

149

The TIF client installer does not remove old JAR files correctly when installing a new version