Joget Workflow v3 Cloud Edition
Overview
Joget Workflow v3 Cloud Edition is an enhanced version of Joget Workflow v3 Enterprise that supports multi-tenancy, allowing for multiple accounts (tenants) to be hosted on one webapp. Each account appears to be a separate installation.
The architecture is based on a shared webapp connecting to separate databases or schemas. This allows for more cost effective delivery of services, since many accounts can be hosted on a single app server. At the same time, each account has its own separate database and file upload directory to preserve data isolation.
Installation
Prerequisites
- Linux (The current bundle is only packaged for Linux)
- Java 6 and above
- MySQL 5 and above
Installation Steps
The installation steps are similar to the installation for the standard Joget Workflow v3.
...
8. Access the default Workflow Management Console at http://localhost:8080/jw
Configuration
DNS Configuration
Each account / tenant is identified by a domain name, so the DNS needs to be configured to point desired domains to Joget. For convenience, it is recommended to use a wildcard DNS record (http://en.wikipedia.org/wiki/Wildcard_DNS_record). For example:
...
For local testing purposes, it is possible to just modify the local hosts file http://en.wikipedia.org/wiki/Hosts_(file)
Profile Configuration
Each account (tenant) is tied to a datasource profile. More info on profiles can be found at Custom Database Configuration
...
- The key to the left of the equals is the domain name, while the value to the right is the profile.
- Each profile has a corresponding file app_datasource-(profile).properties which contains the database settings.
- When a request is received, any matching domain name will use the associated profile.
- currentProfile is a special key to indicate the default profile to use if there are no matching domains.
- In terms of file uploads and system generated files, each profile stores its files in the subdirectory (joget.home)/wflow/app_profiles/(profile)
Account Provisioning
There are a few approaches to provision (create) an account.
Manual Provisioning
As described in the previous Accounts Configuration section, each account is essentially a datasource profile. So an account can be manually created as follows:
...
- Create a new profile file (joget.home)/wflow/app_datasource-(profile).properties by copying from app_datasource-default.properties and changing the values accordingly.
- Add an entry into (joget.home)/wflow/app_datasource.properties. The entry would be (domain name)=(profile)
- The profile is active immediately, and no restart is necessary.
Scripted Provisioning
There is also an Ant build file and script available that simplifies account creation.
...
Account Profile Name | Desired account name e.g. demo |
Main Domain | Main domain e.g. example.com |
Account Domain Name | Account domain e.g. demo.example.com |
Account Database Name | Database name for the account e.g. jwc_demo |
Account Database User | Database user for the account e.g. jwc_demo |
Account Database Password | Database password for the account e.g. jwc_demo |
Home Directory | Joget home directory, defaults to current directory . |
wflow Directory | Joget configuration directory, defaults to ./wflow |
MySQL host name | Database server host name |
MySQL port | Database port |
MySQL username | Database admin user (with permission to create database) |
MySQL password | Database admin password |
Cloud Admin App
For convenience, a simple Joget app is provided to automate the account request approval and provisioning process.
...
- Go to Processes > Map Participants to Users to map the participants accordingly
- Go to Processes > Map Tools to Plugins, and configure the Email Tools to key in the appropriate email settings and email messages
- Edit Forms > Account Request Form to modify the form contents where necessary
Account Removal
Manual Removal
To disable an account, perform the following:
...
- Remove the profile entry from (joget.home)/wflow/app_datasource.properties.
- Delete the profile properties file (joget.home)/wflow/app_datasource-(profile).properties
- Delete the associated account database
- Delete the associated account profile directory (joget.home)/wflow/app_profiles/(profile)
- If the Cloud Admin App is used, delete the record from the db table app_fd_cloud_account
Maintenance
Logging
As with a standard Joget installation on Apache Tomcat, the log file is at (joget.home)/apache-tomcat-6.0.18/logs/catalina.out
Updates
Updates are to WAR files are done as per a standard Joget Workflow installation.
Backup
Backups should be done on all the MySQL databases, as well as the configuration and data files in (joget.home)/wflow