You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

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.



  • No labels