Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
This is a new feature in Joget DX
Joget DX provides an automatic integration with Git behind the scenes. All app definitions and components are stored in the filesystem and version controlled using Git, including plugins and resources. Should you wish to integrate with an external Git, Git Configuration allows users to integrate with an external version control using Git.
To access into the built-in Git, the local repository is in <Joget installation folder>\wflow\app_src\<App ID>\<App ID_version number>
C:\Joget-DX7-Enterprise\wflow\app_src\expenseclaim\expenseclaim_1
For more information on the built-in Git repository directory structure, see Built-in Git Project Directory Structure
Currently, Users will not be able to customize the Git Message during Commit.
Figure 1: Git Configuration Properties
Name | Description |
---|---|
Remote Git URL | The URL to the remote Git server (e.g. GitHub, BitBucket, GitLab, internal servers, etc) to push commits to |
Remote Git Username | The username to authenticate to the remote Git server |
Remote Git Password | The password to authenticate to the remote Git server |
Exclude App Configuration (Environment Variables and Plugin Default Properties) | Check this to NOT commit environment variables and plugin default properties. This is meant for configuration values (e.g. settings that might differ in development vs testing vs production) |
Always Pull from Remote Server | Check this to allow pull from the remote Git server on every request. If unchecked, it will only pull before it attempts to push any updates. This greatly slows down the request and should only be used in a development environment.
|
Auto Sync DB From Git | Check this to automatically check for updates in the Git project files and to update the DB definitions accordingly |
Git app definition files are saved in the following directory structure:
wflow
|- app_src
|- appId
|- app.properties
|- appId_version
|- appDefinition.xml
|- appConfig.xml
|- package.xpdl
|- forms
| |- form.json
|- lists
| |- list.json
|- userviews
| |- userview.json
|- resources
| |- file.ext
|- plugins
|- plugin.jar
File / Directory Name | Description |
---|---|
app_src | Directory under wflow containing all the Git projects |
appId | Each app has a directory with the app ID as its name e.g. “crm" |
app.properties | Configuration file containing the settings as saved in the app Git Configuration UI. This file applies for all app versions. |
appId_version | Under the app directory, each app version has its own directory e.g. version 3 of app ID “crm” would be “crm_3”. This is the directory that contains an entire app version including its dependencies e.g. plugins. Note Within this directory, each app version is a separate Git branch. It might seem then it is being duplicated for each version, but this is required to cater to the possibility of different app versions being worked on concurrently.
|
appDefinition.xml | XML containing the main app definition, including the process mappings, message and resource records. |
appConfig.xml | XML containing environment variables and plugin default properties. This file is meant to keep configuration values (e.g. settings that might differ in development vs testing vs production), that can be omitted from Git commits if required. |
package.xpdl | XPDL definition for the app processes. |
forms | Directory containing form JSON definitions. Each form is saved as 1 JSON file. |
lists | Directory containing datalist JSON definitions. Each datalist is saved as 1 JSON file. |
userviews | Directory containing form JSON definitions. Each userview is saved as 1 JSON file. |
resources | Directory containing uploaded resource files. |
plugins | Directory containing custom plugins used. |
Beginning from v7.0.6 release, we added a new JAVA_OPT parameter to disable or turn off the Git. This is done by adding -Dgit.disabled=true
to your Joget startup script, for example:
set JAVA_OPTS=-Xmx2048M -Dwflow.home=./wflow/ -Dgit.disabled=true -javaagent:./wflow/aspectjweaver-1.8.5.jar -javaagent:./wflow/glowroot/glowroot.jar
If you opt to disable Git in Joget DX, you can delete the ".\wflow\app_src" folder content to save some hard disk space in your development servers.
Synchronizing app builder JSON files with each save request creates a lot of push history. Managing versions has made it possible for tedious tasks to be performed such as tracking,reverting, merging and clone code from GitHub
One can find the documentation of managing version from the training slides entitled "12-Version Control" which can be obtained from our Joget Academy at https://academy.joget.org/course/jogetdx8trainingslides