Introduction

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>

Example
C:\Joget-DX8-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.

Git Configuration Properties

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

Built-in Git Project Directory Structure


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

Description of each file / directory

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.


Disabling Git In Joget DX

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 the Git in Joget DX, you can delete the ".\wflow\app_src" folder content to save some hard disk space in your development servers.

Managing version

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





  • No labels