Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Info
titleunder 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.

...

Use of Git somewhat contradicts the use of a database as the leading system to store configuration data.

...

  • 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 to that can be stored in a Git repository :include

  • Workflows
  • Locks
  • File Order Sources
  • Job Resources
  • Notice Boards
  • Calendars
  • Schedules

...

Settings

Configuration Items Settings are configuration properties for JOC Cockpit to function work properly. The configuration items for JOC Cockpit to work with a Git repository are:include

  • git_repository_url
    • Url URL of the remote repository to connect to
  • git_account
    • account that it used to connect to Git
  • git_key_file
    • filename file name of the private key file
  • git_access_token
    • access token for the Git access

Either git_key or git_token can be used exclusively.

GIT Repository Usage

The JOC web services execute a set of Git commands with the implementation of JGit.

...

    • 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:

Status
colourYellow
titleTODO: 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 stored to managed in a Git repository via JOC web services.the JS7 REST Web Service API.

The following operations are available:Commands / Services

  • git-add
    • Adds adds (new) configuration object(s) objects from a working copy (currently the DB) to a local repository.
  • git-delete
    • Removes removes an already added configuration object from the local repository.
  • git-commit
    • Commits commits newly added, changed updated or removed configuration objects to a local repository.
  • git-push
    • Pushes the pushes changes from the local repository to the connected remote repository.

Versioning

Versioning of JS7 configuration objects will be done is performed with the tagging functionality capabilities of Git. 

The JOC Cockpit Web Services can manage JS7 REST Web Service API manages the Git tagging process.Commands / Services

The following operations are available:

  • git-tag
    • tags the current commit with a version label
  • git-push
    • see above

Rollout

Roll-out

Roll-out Rollout between different JS7 instances can be performed with the Git functionality.

The JOC Cockpit Web Services manage the checkout- and clone processes.Commands / ServicesJS7 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 locally for the first time.
  • git-pull
    • pulls the recent changes from the remote repository into to the local repository

Force Overwrite

Overwrites forcefully Forcefully overwrites a target confguration configuration with the chosen source configuration .

Note
  • JOC will not support merging between different Git repositories or between different branches of one GIT repository as this is standard GIT functionality and can be done with any git tools outside of JOC Cockpit.

The JOC web services manage the force overwrite process.

A force direction has to be provided.

Commands / Services

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 JS7 instance → Git repository
    • git-add
      • Adds adds (new) configuration object(s) objects from a working copy (currently the DB) to a local repository.
    • git-delete
      • Removes removes an already added configuration object from the local repository.
    • git-commit
      • Commits commits newly added, changed or removed configuration objects to a local repository.
    • git-push
      • Pushes pushes the changes from the local repository to the connected remote repository.
  • Git repository → repository => JS7 JOC Cockpit instance
    • git-checkout
      • checks out a specific branch or tag from the repository.
    • git-clone
      • initially clones a repository locally for the first time.
    • git-pull
      • pulls the recent changes from the remote repository into to the local repository


Note
  • 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 stored version JS7 configuration objects.

GIT repository usage:

Repository Operations

  • managementstorage
  • versioningrollout
  • roll-out

Requirements

  • The JOC Cockpit database is the leading system holding the current configuration objects.

Single Client - Multiple Branches (dev, test, prod

...

)

...

Scenario

  • The Git repository is used as a backup storage for to hold a copy of JS7 configuration objects.
  • Additionally, the GIT repository is used to version stored version JS7 configuration objects.
  • The Git repository is used to rollout JS7 configuration objects to different JS7 instances (e.g. dev => test => prod).

GIT repository usage:

Repository Operations

  • managementstorage
  • versioningrollout
  • 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 one JS7 instancean individual JOC Cockpit instance.
  • each branch has makes use of its own version
  • force overwrite is possible

Multiple Clients - Multiple Branches (dev, test, prod

...

)

...

Scenario

  • The Git repository is used as a backup storage for to hold a copy of JS7 configuration objects.
  • Additionally, the Git repository is used to version stored version JS7 configuration objects.
  • The Git repository is used to rollout roll-out JS7 configuration objects to different JS7 instances (e.g. dev => test => prod).

Git repository usage:

Operations

  • managementstorage
  • versioning
  • rollout
  • force overwrite

...

  • The JOC Cockpit database is the leading system holding the current configuration objects.:
    • each JS7 JOC Cockpit instance is connected to its own database.
    • each branch is connected to one JS7 JOC Cockpit instance.
  • each branch has its own version
  • Each branch makes use of an individual version.
  • Each As JOC Cockpit will not support Git merge operation each user (client) has to have his/her own 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.