Deployment
The Imixs-Workflow engine can be deployed in various ways depending on the kind of your server environment. As Imixs-Workflow is based on Jakarta EE, the engine runs in a n EJB and Web Container. This concept gives you the flexibility to setup the Imixs-Workflow engine individually for custom applications and server infrastructure.
Before you deploy the Imixs-Workflow engine into an application server, consider the following:
- Provide a database where the workflow data will be stored
- Configure a security realm for granting access to different actors
- Optional configure a OR-Mapper like EclipseLink
If you want to start Imixs-Workflow out of the box follow the Docker Setup Guide.
Database
The Imixs-Workflow engine stores its workflow data into a database. Therefore a database pool need to be provided before you deploy Imixs-Workflow into an application server. The connection between Imixs-Workflow and the database pool is established by the Java Persistence API (JPA). So there is no need to create ad database schema manually.
See the following example of a persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="org.imixs.workflow.jpa" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/workflow</jta-data-source>
<jar-file>lib/imixs-workflow-engine-${org.imixs.workflow.version}.jar</jar-file>
<properties>
<!-- target-database Auto MySQL PostgreSQL -->
<property name="eclipselink.target-database" value="Auto" />
<property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
<property name="eclipselink.deploy-on-startup" value="true" />
<property name="eclipselink.logging.level" value="INFO" />
</properties>
</persistence-unit>
</persistence>
- The jta-data-source (in this example ‘jdbc/workflow’) must match the database pool in your application server.
- The persistence-unit name refers to the Imixs-Workflow engine and must always be set to org.imixs.workflow.jpa.
- The jar-file must match the deployed version of the Imixs-Workflow engine jar within your application (be careful with the right version number)
Security
To access the Imixs-Workflow engine, users need to be authenticated. This requires setting up a security realm. The security concept of Imixs-Workflow defines the following roles:
- org.imixs.ACCESSLEVEL.READACCESS
- org.imixs.ACCESSLEVEL.AUTHORACCESS
- org.imixs.ACCESSLEVEL.EDITORACCESS
- org.imixs.ACCESSLEVEL.MANAGERACCESS
Each user accessing the Imixs-Workflow Engine need to be assigned at least to one of these roles. To deploy the Imixs-Workflow engine a corresponding security realm have to be configured in the application server.
Configuring a security realm depends on the application server platform. See the section Security for further details.
What's Next…
Read more about deployment: