Joget Workflow Cloud Edition is an enhanced version of Joget Workflow 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.
The installation steps are similar to the installation for the standard Joget Workflow Enterprise.
Refer to the Knowledge Base at Installation using the Linux Bundle for more detailed instructions.
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:
In this case, requests to all subdomains of example.com (e.g. account1.example.com, account2.example.com, account3.example.com) are directed to Joget.
For local testing purposes, it is possible to just modify the local hosts file http://en.wikipedia.org/wiki/Hosts_(file) . Please note that typically, hosts file configuration does not support wildcards so it will be necessary to add separate entries for each subdomain (e.g., account1.example.com, account2.example.com, etc.).
Each account (tenant) is tied to a datasource profile. More info on profiles can be found at Custom Database Configuration.
In the Community or Enterprise Edition, only 1 profile is selected at a time. In the Cloud Edition, this is enhanced such that all accounts and profiles are enabled concurrently.
Open the file (joget.home)/wflow/app_datasource.properties. Here's an example of the file content:
account1.example.com=jwc_account1 account2.example.com=jwc_account2 currentProfile=default
There are a few approaches to provision (create) an account.
As described in the previous Accounts Configuration section, each account is essentially a datasource profile. So an account can be manually created as follows:
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 (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)
Joget home directory; defaults to current directory
Joget configuration directory; defaults to ./wflow
MySQL host name
Database server host name
Database admin user (with permission to create database)
Database admin password
For convenience, a simple Joget app is provided to automate the account request approval and provisioning process.
In a production environment, it is recommended for security purposes that this app be installed on a specific profile instead of the default profile.
To disable an account, perform the following:
To fully delete the account:
As with a standard Joget installation on Apache Tomcat, the log file is at (joget.home)/apache-tomcat-xxxx/logs/catalina.out.
Updates to WAR files are done as per standard Joget Workflow installation.
Backups should be done for all MySQL databases as well as configuration and data files in (joget.home)/wflow.