Config.json

Config.json


The config.json is an internal configuration file in the product, an example file can be seen at the end of this page and modified at will. To update the config.json, a user needs to upload it to the resource folder (Administration > Resources) of either the tenant or in general to the whole application via the super/admin. Only the changed and updated features to the resource folder will be overwritten in the product according to the new configuration.

→ If the document is uploaded to a super/admin, the changed config.json will be applied to all tenants of the environment.
→ If the document is uploaded only to a specific tenant, the changed config.json will only be applied to that tenant and will not affect the other tenants or the super/admin environment.

→ If the document is uploaded to both super/admin and a tenant, the tenant version of the document is considered.

For example, the config.json file uploaded to the super/admin has the showHome property set to false and the config.json file uploaded to one tenant under this super/admin has showHome property set to true. In this case, the home icon will be shown for that specific tenant, and it won’t be shown for the super/admin and other tenants under this super/admin.

  • Some properties might only take effect or make sense when the config.json is uploaded via the super/admin, like:

    • loginPage > tenants

    • loginPage > additionalHtml

Comments with /*COMMENT HERE*/ are not allowed in config.json


Overview of configuration file - config.json

We can do configurations in the product via config.json. The full overview of the file is as follows.

{ "autoRefreshInterval": 300000, "filterDateFields": [], "showHome": true, "features": { "documents": true, "notes": true, "efforts": true, "processModel": true, "cpm": true, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": true }, "tasks": { "showAdhoc": true, "showQuery": true }, "loginPage": { "tenants": [], "additionalHtml": "" }, "registerPage": { "additionalHtml": "" }, "preCacheSmartformData": { "allUsers": false, "allGroups": false, "csvPreloading": [] }, "documents": { "countDocumentsRecursive": true }, "tsdConfig": { "allowPasswordFields": false, "enableLogging": false, "clearConsoleBeforeLog": false, "trustHtml": true }, "table": { "bulkActions": { "useNew": true }, "filter": { "useNew": true } } }

 

The config.json is invalid once there is a missing comma or any other syntax problem. You could use https://jsonlint.com/ to easily validate your config.json.


Home menu - How to hide home from the menu

We can easily configure our config.json to hide the “Home” icon from the menu. The file should be configured as follows:

{ "showHome": false }

The home icon is hidden successfully. Users will automatically be redirected to “my open tasks” list.

image-20250903-130623.png

DatePicker activation

Scenario 1: to activate the datepicker for specific index columns, update the config.json file by updating it to [smartFormIndex1]. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "datepicker" is now visible on the index1 field

"filterDateFields" : ["smartFormIndex1"]


The Datepicker is activated successfully

image-20250903-135928.png

 

Scenario 2: to activate more than one datepicker, values can be written comma-separated if more than one index column will be filtered.

"filterDateFields" : ["smartFormIndex1","smartFormIndex2"]


The datepickers are activated successfully.

image-20250903-141238.png

Hiding tabs

These parameters determine the features document, notes, efforts, process model for the tasks and CPM info for the instances should be disabled. If parameters are set to false, features will be disabled.

Hide “Documents” Tab

Scenario 1: To hide the "Documents" tab in the product interface, update the config.json file by setting the status of the "documents" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Documents" tab is no longer visible.

{ "features": { "documents": false, "notes": true, "efforts": true, "processModel": true, "cpm": true, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": true } }


The “Documents” tab is hidden successfully

image-20250903-134436.png

Hide “Notes” Tab

Scenario 2: To hide the "Notes" tab in the product interface, update the config.json file by setting the status of the "notes" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Notes" tab is no longer visible.

{ "features": { "documents": true, "notes": false, "efforts": true, "processModel": true, "cpm": true, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": true } }


The “Notes” tab is hidden successfully

image-20250903-134739.png

Hide “Efforts” Tab

Scenario 3: To hide the “Efforts" tab in the product interface, update the config.json file by setting the status of the "efforts" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Efforts" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": false, "processModel": true, "cpm": true, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": true } }


The “Efforts” tab is hidden successfully

image-20250903-135244.png

Hide “Process model” Tab

Scenario 4: To hide the “Process model" tab in the product interface, update the config.json file by setting the status of the "processModel" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Process model" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": true, "processModel": false, "cpm": true, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": true } }


The “Process model” tab is hidden successfully.

image-20250903-141445.png

Hide “CPM” Tab

Scenario 5: To hide the “CPM" tab in the product interface, update the config.json file by setting the status of the "cpm" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "CPM" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": true, "processModel": true, "cpm": false, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": true } }


The “CPM” tab is hidden successfully.

image-20250903-141850.png

Hide “Gantt” Tab

Scenario 6: To hide the “Gantt" tab in the product interface, update the config.json file by setting the status of the "gantt" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Gantt" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": true, "processModel": true, "cpm": true, "gantt": false, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": true } }

The “Gantt” tab is hidden successfully.

image-20250903-142020.png

Hide “Activities” Tab

Scenario 7: To hide the “Activities" tab in the product interface, update the config.json file by setting the status of the "activities" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Activities" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": true, "processModel": true, "cpm": true, "gantt": true, "activities": false, "swimlanes": true, "assignmenthistory": true, "templates": true } }

The “Activities” tab is hidden successfully.

image-20250903-142201.png

Hide “Swimlanes” Tab

Scenario 8: To hide the “Swimlanes" tab in the product interface, update the config.json file by setting the status of the "swimlanes" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Swimlanes" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": true, "processModel": true, "cpm": true, "gantt": true, "activities": true, "swimlanes": false, "assignmenthistory": true, "templates": true } }

The “Swimlanes” tab is hidden successfully.

image-20250903-142329.png

Hide “Assignment history” Tab

Scenario 9: To hide the “Assignment history" tab in the product interface, update the config.json file by setting the status of the "assignmenthistory" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Assignment history" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": true, "processModel": true, "cpm": true, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": false, "templates": true } }

The “Assignment history” tab is hidden successfully.

image-20250903-142455.png

Hide “Templates” Tab

Scenario 10: To hide the “Templates" tab in the product interface, update the config.json file by setting the status of the "templates" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Templates" tab is no longer visible.

{ "features": { "documents": true, "notes": true, "efforts": true, "processModel": true, "cpm": true, "gantt": true, "activities": true, "swimlanes": true, "assignmenthistory": true, "templates": false } }

The “Templates” tab is hidden successfully.

image-20250903-142615.png

Task properties

Hiding the ”Ad-hoc” button from task properties

Scenario 1: To hide the “Ad-hoc" button from task properties, update the config.json file by setting the status of the "showAdhoc” to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Ad-hoc" button is no longer visible.

{ "tasks": { "showAdhoc": false, "showQuery": true } }


Ad-hoc button is hidden successfully

image-20250903-142913.png

Hiding the “Show Query” button from task properties

Scenario 2: To hide the “Show Query" button from task properties, update the config.json file by setting the status of the "showQuery” to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Show Query" button is no longer visible.

{ "tasks": { "showAdhoc": true, "showQuery": false } }

 

Show Query button is hidden successfully

image-20250903-143125.png

Login Page dropdown

To activate the “dropdown" button box on login page, update the config.json file by setting the status of the "loginPage” according to the configuration file displayed below. You can specify a different label that will be shown for a specific tenant name. E.g. tenant name is “X124” but “admin” should be shown.

Once updated, upload the modified file to the "Resources" section. This action will ensure that the "dropdown box" button is displayed.

If the config.json file is uploaded on super tenant, the dropdown box is activated for every tenant.

{ "loginPage": { "tenants": [ {"label": "actionhandler", "value": "actionhandler"}, {"label": "admin", "value": "X124"}, {"label": "assignment", "value": "assignment"}, {"label": "basic", "value": "basic"} ], "additionalHtml": "\n\t\t\t<div><b>config.json Test</b></div>\n\t\t\t\n\t\t\t<div>\n\t\t\t\tAT349_loginSiteNeedsToBeConfigurable\t\n\t\t\t</div>" } }


The dropdown box button is displayed successfully on the login page

image-20250903-143524.png

Auto Refresh Interval

"autoRefreshInterval": 50000

This parameter determines the auto-refresh interval for the tasks and instance lists. It will reload the list every 5 minutes in case multiple users are working on the same instances and if another user completes one task or instance. The minimum value for the auto-refresh is 30 seconds.

Value is in milliseconds.

 


TFD Configuration

"tsdConfig": { "allowPasswordFields": false, "enableLogging": false, "clearConsoleBeforeLog": false, "trustHtml": true },

 

TFD Support for Advanced HTML Elements

"trustHtml": true

trustHtml - This setting controls whether the HTML snippets in TFD forms will accept all types of HTML tags or not. For security reasons, the default of this setting is false.

  • If trustHtml is disabled (false)
    Some advanced tags (like <iframe>, <script>, or other embedded content) will be removed.

  • If trustHtml is enabled (true):
    All HTML tags you enter will be displayed, including advanced ones like <iframe>.

Enable this if you need to embed external content (for example videos) inside your form.


Showing custom pages in the menu

Starting with version 9.1, it is possible to add custom icons to the menu and reference existing pages or create new HTML pages.

First of all, you need to activate this feature in the tenant profile:

image-20250923-090450.png

Enabling Custom Pages allows administrators to add custom HTML views with TIM REST API access to the main navigation (Sidebar). Please note that you are responsible for the security of the content you provide. Ensure all Custom Pages follow best practices to protect your data and users.

 

Those config.json options are available:

custom one custom element is necessary, whereas for each icon the following is needed:

icon defines which icon from resource folder is shown (e.g myIcons/icon.svg), PNG, SVG, WEBP are supported

target defines which page should be refered to (e.g. myFolder/myPage.html or http://myserver.com/myPage.html). Please note: Many servers do not allow their pages to be displayed in an iFrame.

newTab (optional) defines if the target is opened in a new tab so that external pages can be linked. Default is false.

security (optional) defines which users are allowed to see the icon. If not present, all users are able to see the icon. Please be aware that all users with the deeplink can access the target page. If this one should be confidential, you need to take additional measures within the page itself.

 

Icon library

In order to have consistent icons, we recommend to use https://fonts.google.com/icons.

 

Icon refers to one page

"custom": [ { "label": "Single custom page", "icon": "custom.svg", "target": "custom.html", "security": ["user(sys.support)", "group(testGroup)"] } ]

This block will allow the user sys.support and all members of the group testGroup to see the icon custom.svg with the mouseover Single custom page and will redirect to custom.html which is present in the resources folder.

image-20250923-110404.png

 

Icon with submenu of multiple pages

"custom": [ { "label": "Multi custom page", "icon": "custom_mult.svg", "children": [ { "label": "Custom Child 1", "target": "custom_child_1.html" }, { "label": "Custom Child 2", "target": "custom_child_2.html", "security": ["user(sys.support232)", "group(testGroup23)"] }, { "label": "Custom Child 3", "target": "custom_child_3.html" } ] } ]

This block will allow all users to see the icon custom_mult.svg and its two childs Custom Child 1 and Custom Child 3. Whereas Custom Child 2 can only be seen by user sys.support and members of the group testGroup23.

image-20250923-123329.png

In this screenshot, Custom Child 2 is not visible as the current user is not allowed to see it.

 

New Tab

As many servers do not allow their pages to be displayed within an iFrame, we need to open a tab to have an external link.

"custom": [ { "label": "Google", "icon": "google.svg", "target": "https://www.google.com" "newTab": true } ]

Clicking on this icon will open a new tab and redirect to https://www.google.com.

 

Mixed

Multiple icons can be shown together:

"custom": [ { "label": "Single custom page", "icon": "custom.svg", "target": "custom.html", "security": ["user(sys.support232)", "group(testGroup)"] }, { "label": "FEATURE1 SERVER", "icon": "google.svg", "target": "https://feature1.tim-bpm.com/tim/client", "security": ["user(sys.support232)", "group(testGroup)"] }, { "label": "Multi custom page", "icon": "custom_mult.svg", "children": [ { "label": "Custom Child 1", "target": "custom_child_1.html" }, { "label": "Custom Child 2", "target": "custom_child_2.html", "security": ["user(sys.support232)", "group(testGroup)"] }, { "label": "Custom Child 3", "target": "custom_child_3.html" } ] } ]

 

For a user which is member of group testGroup, this results in:

image-20250923-123719.png