OKMFlow is configured through the $TOMCAT_HOME/okmflow.properties file. Any property not present there falls back to the default value bundled in the application. This page documents the properties an administrator may need to change; properties not listed here are internal Spring Boot wiring and should be left untouched.
JDBC driver class. Change it together with the URL when using a database engine other than MariaDB (see the Installation guide for MySQL, PostgreSQL, SQL Server and Oracle examples).
spring.datasource.url
jdbc:mariadb://localhost:3306/okmflow?…
JDBC connection URL, including host, port and database name.
Must stay set to validate. Since v1.8, Flyway is the only mechanism allowed to change the database schema; Hibernate only checks that the entities match it.
spring.jpa.properties.hibernate.dialect
org.hibernate.dialect.MariaDBDialect
Hibernate SQL dialect, must match the configured database engine.
spring.flyway.enabled
true
Enables Flyway schema migrations on startup. Should not be disabled.
spring.flyway.baseline-on-migrate / spring.flyway.baseline-version: only needed once, temporarily, when bringing a pre-Flyway installation under Flyway control. See the Migration from v1.7 to v1.8 guide.
Base URL of the OpenKM instance OKMFlow connects to via web services/REST.
openkm.rest.user
okmAdmin
OpenKM user that OKMFlow logs in as to read/write documents, notify users, etc. Needs administrator privileges on the OpenKM side.
openkm.rest.password
admin
Password for openkm.rest.user.
openkm.rest.token.expiration
365
Minutes the OpenKM session token obtained on login stays valid. OKMFlow caches the token and only logs in again once it expires; lowering this forces more frequent re-authentication.
Process instances run asynchronously on a dedicated thread pool.
Property
Default
Description
core.pool.size
5
Number of threads the pool keeps alive at all times to execute process instances.
max.pool.size
10
Maximum number of threads the pool can grow to once the queue below is full.
queue.capacity
25
Number of pending executions the pool queues before growing past core.pool.size. If the queue is full and the pool is already at max.pool.size, the task runs on the calling thread instead of being rejected.
Maximum number of rows returned by the process/task search panel. Raising it allows more results per search at the cost of more memory and slower responses.
How often (ISO-8601 duration) OKMFlow checks running/waiting process instances for scheduled node actions (timers) that are due. Lowering it makes timers more reactive at the cost of more database load.
pending.task.instances.rate
PT60S
How often (ISO-8601 duration) OKMFlow scans pending task instances for overdue dates and triggers the overdue notification.
Subject of the e-mail sent when a task is assigned to a user. Supports FreeMarker placeholders such as ${taskInstance.taskNodeName}.
task.notification.overdue.subject
Overdue task: …
Subject of the e-mail sent when an assigned task becomes overdue.
task.notification.body
classpath:tpl/task-assignment-body.html
Location of the HTML template used as the task assignment e-mail body. Point it to file:/path/to/custom.html to use a custom template without rebuilding the application.
task.notification.overdue.body
classpath:tpl/task-overdue-body.html
Location of the HTML template used as the overdue task e-mail body. Same file: override as above.
These jobs delete old audit/history data so the database does not grow indefinitely. All are disabled by default.
Process instance purge: deletes ended process instances (and their task instances, variables and logs) older than the retention period. Running, waiting, paused and error instances are never touched.
Property
Default
Description
process.instance.purge.enabled
false
Enables the job.
process.instance.purge.cron
0 0 3 * * *
Cron expression controlling when it runs.
process.instance.purge.retention.days
90
Number of days an ended process instance is kept before being deleted.
Process instance log purge: deletes rows from the process instance audit log older than the retention period.
Property
Default
Description
process.instance.log.purge.enabled
false
Enables the job.
process.instance.log.purge.cron
0 0 2 * * *
Cron expression controlling when it runs.
process.instance.log.purge.retention.days
90
Number of days an audit log row is kept before being deleted.
Variable log purge: deletes rows from the workflow variable change audit log older than the retention period.
Property
Default
Description
variable.log.purge.enabled
false
Enables the job.
variable.log.purge.cron
0 0 2 * * *
Cron expression controlling when it runs.
variable.log.purge.retention.days
90
Number of days an audit log row is kept before being deleted.