under construction!!!
under construction!!!
Introduction
- JS7 JOC Cockpit can be configured to connect to Git repositories to store its configuration objects such as workflows and jobs.
- Configuration objects can be versioned (tagged) and can be rolled out to different JS7 instances via Git. This allows to create and to test workflows in a development environment and to perform a roll-out to a production environment by use of a Git repository.
- JOC Cockpit is the leading system to store configuration objects in its database. A connection to a Git repository is considered an additional option manage versions and roll-outs of JS7 configuration objects.
Configuration Objects
Configuration objects that can be stored in a Git repository include
- Workflows
- Locks
- File Order Sources
- Job Resources
- Notice Boards
- Calendars
- Schedules
Settings
Settings are properties for JOC Cockpit to work properly. The configuration items for JOC Cockpit to work with a Git repository include
git_repository_url
- URL of the remote repository to connect to
git_account
- account that it used to connect to Git
git_key_file
- file name of the private key file
git_access_token
- access token for Git access as an alternative to use of a private key file
The JOC Cockpit user menu offers the "Settings" menu item that displays the settings group git
:
TODO: INSERT SCREENSHOT
Git Repository Usage
The JS7 - REST Web Service API executes a set of Git operations by use of the JGit implementation.
Management
JS7 configuration objects are managed in a Git repository via the JS7 REST Web Service API.
The following operations are available:
git-add
- adds (new) configuration objects from a working copy to a local repository
git-delete
- removes an already added configuration object from the local repository
git-commit
- commits newly added, updated or removed configuration objects to a local repository
git-push
- pushes changes from the local repository to the remote repository
Versioning
Versioning of JS7 configuration objects is performed with the tagging capabilities of Git.
The JS7 REST Web Service API manages the Git tagging process.
The following operations are available:
git-tag
- tags the current commit with a version label
git-push
- see above
Roll-out
Roll-out between different JS7 instances can be performed with the Git functionality.
The JS7 REST Web Service API manages the processes for checkout and cloning.
The following operations are available:
git-checkout
- checks out a specific branch or tag from the repository
git-clone
- initially clones a repository
git-pull
- pulls the recent changes from the remote repository to the local repository
Force Overwrite
Forcefully overwrites a target configuration with the source configuration in use.
The JS7 REST Web Service API manages to forcefully overwrite configuration objects in the Git repository.
The following operations are available depending on the force direction:
- JS7 JOC Cockpit instance => Git repository
git-add
- adds (new) configuration objects from a working copy to a local repository
git-delete
- removes an already added configuration object from the local repository
git-commit
- commits newly added, changed or removed configuration objects to a local repository
git-push
- pushes the changes from the local repository to the connected remote repository
- Git repository => JS7 JOC Cockpit instance
git-checkout
- checks out a specific branch or tag from the repository
git-clone
- initially clones a repository
git-pull
- pulls recent changes from the remote repository to the local repository
- If merging of configuration objects between different Git repositories or between different branches of a single GIT repository is required then additional tools such as Git Extensions can be used.
Use Cases
Single Client - Single Branch
Scenario
- The Git repository is used as a backup storage for JS7 configuration objects.
- Additionally, the Git repository is used to version JS7 configuration objects.
Repository Operations
- management
- versioning
- roll-out
Requirements
- The JOC Cockpit database is the leading system holding the configuration objects.
Single Client - Multiple Branches (dev, test, prod)
Scenario
- The Git repository is used to hold a copy of JS7 configuration objects.
- Additionally, the GIT repository is used to version JS7 configuration objects.
- The Git repository is used to rollout JS7 configuration objects to different JS7 instances (e.g. dev => test => prod).
Repository Operations
- management
- versioning
- roll-out
- force overwrite
Requirements
- The JOC Cockpit database is the leading system holding the current configuration objects:
- each JS7 instance is connected to its own database.
- each branch is connected to an individual JOC Cockpit instance.
- each branch makes use of its own version
- force overwrite is possible
Multiple Clients - Multiple Branches (dev, test, prod)
Scenario
- The Git repository is used to hold a copy of JS7 configuration objects.
- Additionally, the Git repository is used to version JS7 configuration objects.
- The Git repository is used to roll-out JS7 configuration objects to different JS7 instances (e.g. dev => test => prod).
Operations
- management
- versioning
- rollout
- force overwrite
Requirements
- The JOC Cockpit database is the leading system holding the configuration objects:
- each JOC Cockpit instance is connected to its own database.
- each branch is connected to one JOC Cockpit instance.
- Each branch makes use of an individual version.
- Each user (client) makes use of an individual JOC Cockpit instance.
- If merging of configuration objects is required then additional tools such as Git Extensions can be used.