You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
This feature is part of the ongoing effort to support more DCM features natively in the Blueriq Runtime. Its modules and behavior may change over time. Please check release notes and upgrade instructions when using it.
The Case Engine component manages all operations on cases, case data and tasks. It communicates with the Blueriq Runtime through asynchronous messages and a REST API.
The Case Engine component is essential to use DCM 2.0 and depends on multiple other components to function properly.
This section explains how to install the Case Engine component, how to configure it and which other components are needed to be installed.
Installation
The Case Engine will be delivered with the runtime and can be downloaded in the artifactory. Alternatively you can also use the DCM 2.0 beta release which also includes the case engine
The case engine is a standalone application and should be started directly in Java using the command line:
$ java -Dserver.port=18081 -Dspring.config.additional-location=file:/// config/ /DCM2/CaseEngine/config -jar blueriq-dcm-case-engine-14.11.0.4888.jar
Dependencies
The case engine component depends on the following components:
- Audit component
- DCM Lists Components
- Timeline SQL Store component
- Trace SQL Store component [editor]
- DCM queueing RabbitMQ
- Document database MongoDB
- Customerdata service
- Process SQL store component
- Case Engine Scheduler
- Case Engine Scheduler Quartz
The bootstrap.properties file needs to have the following content to enable these components:
spring.profiles.active=native,\ case-engine,\ customerdata-client,\ dcm-lists-publisher,\ externaldatasources,\ process-sql-store,\ timeline-event-publisher-amqp,\ trace-event-publisher-amqp,\ audit
Configuration
Specific for the case engine there are mutliple properties that needs to be set.
These properties are divided into three files:
- application.properties: common properties that concern security, logging and the connection to the customer data
- application-case-engine.properties: properties for several queues, mongoDB and quartz
- application-external-datasource.properties: properties that enable the case engine to communicate with the process data sql store
Create the files in the additional config location of the case engine and copy and paste the corresponding properties into each file.
### Users ### blueriq.security.auth-providers.local01.type=in-memory blueriq.security.auth-providers.local01.users.location=users.properties blueriq.security.auth-providers-chain=local01 ### Customerdata ### blueriq.customerdata-client.url=http://localhost:30002/customerdata/api/v1/ blueriq.customerdata-client.username=blueriq blueriq.customerdata-client.password=welcome ### Exports ### blueriq.exports.description=Exports blueriq.exports.prefix=export blueriq.exports.folder=exports blueriq.exports.enabled=true ### Security settings ### blueriq.security.csrf-protection.enabled=false ### Blueriq logging ### logging.level.com.aquima=DEBUG logging.level.com.blueriq=DEBUG logging.file.name=logs/case-engine.log spring.main.allow-circular-references=true
blueriq.case.engine.rabbitmq.host=localhost blueriq.case.engine.rabbitmq.port=30010 blueriq.case.engine.rabbitmq.username=blueriq blueriq.case.engine.rabbitmq.password=welcome blueriq.case.engine.rabbitmq.virtualHost=/ blueriq.case.engine.rabbitmq.ssl.enabled=false blueriq.case.engine.rabbitmq.queueNames=dcmEventsQueue blueriq.case.engine.rabbitmq.exchangeName=dcmEvents blueriq.process.engine.v2.rabbitmq.host=localhost blueriq.process.engine.v2.rabbitmq.port=30010 blueriq.process.engine.v2.rabbitmq.username=blueriq blueriq.process.engine.v2.rabbitmq.password=welcome blueriq.process.engine.v2.rabbitmq.virtualHost=/ blueriq.process.engine.v2.rabbitmq.ssl.enabled=false blueriq.process.engine.v2.rabbitmq.exchangeName=dcmTasksEvents blueriq.case.engine.scheduler.rabbitmq.host=localhost blueriq.case.engine.scheduler.rabbitmq.port=30010 blueriq.case.engine.scheduler.rabbitmq.username=blueriq blueriq.case.engine.scheduler.rabbitmq.password=welcome blueriq.case.engine.scheduler.rabbitmq.virtualHost=/ blueriq.case.engine.scheduler.rabbitmq.ssl.enabled=false blueriq.case.engine.scheduler.rabbitmq.exchangeName=dcmScheduledEvents blueriq.case.engine.maintenance.rabbitmq.host=localhost blueriq.case.engine.maintenance.rabbitmq.port=30010 blueriq.case.engine.maintenance.rabbitmq.username=blueriq blueriq.case.engine.maintenance.rabbitmq.password=welcome blueriq.case.engine.maintenance.rabbitmq.virtualHost=/ blueriq.case.engine.maintenance.rabbitmq.ssl.enabled=false blueriq.case.engine.maintenance.rabbitmq.exchangeName=dcmMaintenanceEvents blueriq.case.engine.data.mongodb.host=localhost blueriq.case.engine.data.mongodb.port=30012 blueriq.case.engine.data.mongodb.database=caseEngine blueriq.locking.mongodb.host=localhost blueriq.locking.mongodb.port=30012 blueriq.locking.mongodb.database=locks spring.quartz.job-store-type=memory spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool spring.quartz.properties.org.quartz.threadPool.threadCount=2
#### Datasources H2 ### blueriq.datasource.process-sql-store.url=jdbc:h2:./dcm;AUTO_SERVER=TRUE blueriq.datasource.process-sql-store.username=sa blueriq.datasource.process-sql-store.password= blueriq.datasource.process-sql-store.driverClassName=org.h2.Driver blueriq.hibernate.process-sql-store.hbm2ddl.auto=create blueriq.hibernate.process-sql-store.dialect=org.hibernate.dialect.H2Dialect blueriq.hibernate.process-sql-store.criteria.literal_handling_mode=BIND blueriq.hibernate.process-sql-store.globally_quoted_identifiers=true blueriq.hibernate.process-sql-store.globally_quoted_identifiers_skip_column_definitions=true
Authentication
The synchronous operations are protected with basic authentication. To specify the credentials required to log in to the Case Engine, create a user in user.properties
with the case-engine
role.
users.properties
|
If you are using a different authentication provider, like LDAP, you can create a user in that provider instead of users.properties
, as long as it has the proper role.