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

Compare with Current View Page History

« Previous Version 8 Next »

under construction!!!

Introduction

JS7 JOC should be able to connect to Git repositories to store JS7 configuration objects. Configuration objects can be versioned (tagged) and 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.

JS7 is the leading system to store configuration data. A connection to a GIT repository can only be seen as an additional opportunity to version and to rollout JS7 configuration objects.

Configuration Objects

Configuration objects to be stored in a Git repository:

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

Configuration Items

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

  • repository_url
    • Url of the remote repository to connect to
  • git_key
    • filename of the private key file
  • git_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.

Storage

JS7 configuration objects are stored to a Git repository via JOC web services.

Commands / Services

  • git-add
    • Adds (new) configuration object(s) from a working copy (currently the DB) 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.

Versioning

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

The JOC Cockpit Web Services can manage the Git tagging process.

Commands / Services

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

Rollout

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

The JOC Cockpit Web Services manage the checkout- and clone processes.

Commands / Services

  • git-checkout
    • checks out a specific branch or tag from the repository.
  • git-clone
    • clones a repository locally for the first time.
  • git-pull
    • pulls the recent changes from the remote repository into the local repository

Force Overwrite

Overwrites forcefully a target confguration with the chosen source configuration.

  • 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

  • JS7 instance → Git repository
    • git-add
      • Adds (new) configuration object(s) from a working copy (currently the DB) 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 instance
    • git-checkout
      • checks out a specific branch or tag from the repository.
    • git-clone
      • clones a repository locally for the first time.
    • git-pull
      • pulls the recent changes from the remote repository into the local repository


Use Cases

Single Client (Single Branch)

Usage:

  • The Git repository is used as a backup storage for JS7 configuration objects.
  • Additionally, the Git repository is used to version stored JS7 configuration objects.

GIT repository usage:

  • storage
  • versioning
  • rollout

Requirements

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

dev, test, prod - Single Client (Multiple Branches)

Usage:

  • The Git repository is used as a backup storage for JS7 configuration objects.
  • Additionally, the GIT repository is used to version stored 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:

  • storage
  • versioning
  • rollout
  • 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 instance
  • each branch has its own version
  • force overwrite is possible

dev, test, prod - Multiple Clients (Multiple Branches)

Usage:

  • The Git repository is used as a backup storage for JS7 configuration objects.
  • Additionally, the Git repository is used to version stored 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:

  • storage
  • versioning
  • rollout
  • 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 instance
  • each branch has its own version
  • As JOC Cockpit will not support Git merge operation each user (client) has to have his/her own JOC Cockpit instance.
  • No labels