Ir al contenido

Configuration

OKMFlow se configura a través del fichero $TOMCAT_HOME/okmflow.properties. Cualquier propiedad que no esté presente ahí recurre al valor por defecto incluido en la aplicación. Esta página documenta las propiedades que un administrador puede necesitar cambiar; las propiedades que no aparecen aquí son configuración interna de Spring Boot y no deben tocarse.

Propiedad Por defecto Descripción
spring.datasource.driver-class-name org.mariadb.jdbc.Driver Clase del driver JDBC. Cámbiela junto con la URL al usar un motor de base de datos distinto de MariaDB (vea la guía de Installation para ejemplos con MySQL, PostgreSQL, SQL Server y Oracle).
spring.datasource.url jdbc:mariadb://localhost:3306/okmflow?… URL de conexión JDBC, incluyendo host, puerto y nombre de la base de datos.
spring.datasource.username openkm Usuario de la base de datos.
spring.datasource.password openkm Contraseña de la base de datos.
Propiedad Por defecto Descripción
spring.jpa.hibernate.ddl-auto validate Debe permanecer en validate. Desde v1.8, Flyway es el único mecanismo permitido para cambiar el esquema de la base de datos; Hibernate solo comprueba que las entidades coincidan con él.
spring.jpa.properties.hibernate.dialect org.hibernate.dialect.MariaDBDialect Dialecto SQL de Hibernate; debe coincidir con el motor de base de datos configurado.
spring.flyway.enabled true Activa las migraciones de esquema de Flyway al arrancar. No debería desactivarse.

spring.flyway.baseline-on-migrate / spring.flyway.baseline-version: solo necesarias una vez, temporalmente, al poner una instalación previa a Flyway bajo el control de Flyway. Vea la guía Migration from v1.7 to v1.8.

Propiedad Por defecto Descripción
openkm.rest.url http://localhost:8080/openkm URL base de la instancia de OpenKM a la que se conecta OKMFlow mediante web services/REST.
openkm.rest.user okmAdmin Usuario de OpenKM con el que OKMFlow inicia sesión para leer/escribir documentos, notificar a usuarios, etc. Necesita privilegios de administrador en el lado de OpenKM.
openkm.rest.password admin Contraseña de openkm.rest.user.
openkm.rest.token.expiration 365 Minutos que permanece válido el token de sesión de OpenKM obtenido al iniciar sesión. OKMFlow guarda el token en caché y solo vuelve a iniciar sesión cuando expira; reducir este valor fuerza una reautenticación más frecuente.
Propiedad Por defecto Descripción
server.port 8180 Puerto TCP en el que escucha el Tomcat embebido.
server.servlet.context-path /workflow Ruta base de la aplicación web y su API REST. Cambiarla cambia todas las URL, incluida la configurada en OpenKM como workflow.adapter.url.

Las instancias de proceso se ejecutan de forma asíncrona en un pool de hilos dedicado.

Propiedad Por defecto Descripción
core.pool.size 5 Número de hilos que el pool mantiene siempre activos para ejecutar instancias de proceso.
max.pool.size 10 Número máximo de hilos hasta el que puede crecer el pool una vez la cola de abajo está llena.
queue.capacity 25 Número de ejecuciones pendientes que el pool encola antes de crecer por encima de core.pool.size. Si la cola está llena y el pool ya está en max.pool.size, la tarea se ejecuta en el hilo que la invoca en vez de ser rechazada.
Propiedad Por defecto Descripción
max.search.results 500 Número máximo de filas devueltas por el panel de búsqueda de procesos/tareas. Aumentarlo permite más resultados por búsqueda a costa de más memoria y respuestas más lentas.
Propiedad Por defecto Descripción
scheduled.actions.rate PT60S Con qué frecuencia (duración ISO-8601) OKMFlow comprueba las instancias de proceso en ejecución/espera en busca de acciones de nodo programado (temporizadores) pendientes. Reducirlo hace los temporizadores más reactivos a costa de más carga en la base de datos.
pending.task.instances.rate PT60S Con qué frecuencia (duración ISO-8601) OKMFlow revisa las instancias de tarea pendientes en busca de fechas vencidas y dispara la notificación de retraso.
Propiedad Por defecto Descripción
task.notification.subject New task assigned: … Asunto del correo enviado cuando se asigna una tarea a un usuario. Admite marcadores de FreeMarker como ${taskInstance.taskNodeName}.
task.notification.overdue.subject Overdue task: … Asunto del correo enviado cuando una tarea asignada queda vencida.
task.notification.body classpath:tpl/task-assignment-body.html Ubicación de la plantilla HTML usada como cuerpo del correo de asignación de tarea. Apúntela a file:/path/to/custom.html para usar una plantilla personalizada sin reconstruir la aplicación.
task.notification.overdue.body classpath:tpl/task-overdue-body.html Ubicación de la plantilla HTML usada como cuerpo del correo de tarea vencida. Misma sustitución file: que arriba.
Propiedad Por defecto Descripción
grouped.notifications.enabled false Activa la agrupación de notificaciones de tarea por destinatario, enviándolas en un único correo diario en vez de un correo por tarea.
grouped.notifications.cron 0 0 0 * * * Expresión cron que controla cuándo se agrupan y envían las notificaciones acumuladas.

Estos trabajos eliminan datos antiguos de auditoría/historial para que la base de datos no crezca indefinidamente. Todos están desactivados por defecto.

Process instance purge: elimina instancias de proceso finalizadas (y sus instancias de tarea, variables y logs) más antiguas que el periodo de retención. Las instancias en ejecución, espera, pausadas y con error nunca se tocan.

Propiedad Por defecto Descripción
process.instance.purge.enabled false Activa el trabajo.
process.instance.purge.cron 0 0 3 * * * Expresión cron que controla cuándo se ejecuta.
process.instance.purge.retention.days 90 Número de días que se conserva una instancia de proceso finalizada antes de eliminarla.

Process instance log purge: elimina filas del log de auditoría de instancias de proceso más antiguas que el periodo de retención.

Propiedad Por defecto Descripción
process.instance.log.purge.enabled false Activa el trabajo.
process.instance.log.purge.cron 0 0 2 * * * Expresión cron que controla cuándo se ejecuta.
process.instance.log.purge.retention.days 90 Número de días que se conserva una fila del log de auditoría antes de eliminarla.

Variable log purge: elimina filas del log de auditoría de cambios de variables de flujo de trabajo más antiguas que el periodo de retención.

Propiedad Por defecto Descripción
variable.log.purge.enabled false Activa el trabajo.
variable.log.purge.cron 0 0 2 * * * Expresión cron que controla cuándo se ejecuta.
variable.log.purge.retention.days 90 Número de días que se conserva una fila del log de auditoría antes de eliminarla.
Propiedad Por defecto Descripción
logging.file.name ${catalina.home}/logs/okmflow.log Ruta del fichero de log de la aplicación. Revíselo primero al resolver problemas.