Database Schema

When the modeler is enabled (cibseven.webclient.modeler.enabled: true), the webclient requires a database schema to store diagrams, forms, and user sessions. The required tables must be created before startup. The webclient can connect to and use the database, but it does not create, update, or validate the schema itself (ddl-auto: none).

When the modeler is disabled (cibseven.webclient.modeler.enabled: false), all modeler-related persistence components are disabled. No datasource configuration or database connection is required at all, as JPA is not initialized.

Schema creation is the responsibility of the parent application (e.g. cibseven-bpm-run). Refer to the parent application’s documentation for the DDL scripts and migration tooling it provides.

Database Tables

Table Description
mod_processes_diagrams Stores BPMN and DMN diagram metadata and the raw XML
mod_forms Stores form schemas as JSON
mod_user_sessions Tracks open editing sessions per user
mod_diagram_usage Associates a user session with a specific diagram
mod_form_usage Associates a user session with a specific form
mod_element_templates Stores reusable element template definitions
mod_processes_diagrams_aud Stores one snapshot of a diagram per save, so earlier states can be browsed, restored and compared. Written only by the enterprise edition; the community edition leaves it empty
mod_revinfo Numbers those snapshots and records when each was written. Enterprise Edition only
chat_messages Stores real-time chat messages per room. Deleted messages are soft-deleted: the content is cleared and the row is retained as a tombstone, marked by deleted_at, so that polling clients learn about the deletion. Enterprise Edition only.
chat_presence Tracks active users per chat room for the long-polling transport. Each row is a heartbeat record refreshed on every poll; stale entries are purged automatically. Enterprise Edition only.

Enterprise Feature

The chat_messages and chat_presence tables are only required when the enterprise edition is active, cibseven.webclient.modeler.enabled: true, and cibseven.webclient.modeler.chat.enabled: true. They are not created in the community edition.

Schema Updates

The modeler tables are part of the engine schema, so they are updated with it. Follow the database schema update guide — either the Liquibase changelog or the $DATABASENAME_engine_$X_to_$Y.sql scripts — rather than applying modeler DDL by hand.

2.2 to 2.3

The long-polling chat transport added two schema changes, both applied by the 2.2-to-2.3 changelog entry and by the $DATABASENAME_engine_2.2_to_2.3.sql scripts:

  • the chat_presence table
  • the deleted_at column on chat_messages

A 2.2 installation that already used the chat over the websocket transport needs this update before switching to longpolling: without chat_presence and deleted_at, presence and deletion events cannot be served from the database.

chat_messages has to exist

The update alters chat_messages, so that table must already be present. Installations updated from 2.1 have it, because the 2.1 to 2.2 update creates it. An installation that was set up fresh at 2.2 only has it if the modeler creation script was applied. Where it is missing, apply that script before the update — otherwise the update fails on the chat_messages change, whether or not the chat is enabled.

Diagram snapshots

From 2.3.0 the enterprise edition writes the diagram snapshots itself, where earlier versions had Hibernate Envers write them. This needs no schema change and no migration: mod_processes_diagrams_aud and mod_revinfo keep the shape they had, snapshots written by 2.2 stay readable, and snapshots written by 2.3 have the same columns filled.

What does change is that spring.jpa.properties.hibernate.integration.envers.enabled no longer has any effect and can be dropped from the configuration — including from the Helm values, where it was set for the webclient deployment. Leaving it in place is harmless: nothing reads it any more.

Supported Databases

Refer to Prerequisites for supported database versions.

On this Page: