Page History
...
- Settings are used to determine which scheduling objects are considered
local
to an environment and which scheduling objects should be used forrollout
to subsequent environments such as in a sequence dev -> test -> prod. For details see JS7 - Git Repository Interface, chapter: Scheduling Object Mappings. - Settings for each scheduling object type determine whether they it should be considered for
local
use or forrollout
to a remote Git repository:git_hold_workflows
: see JS7 - Workflowsgit_hold_resource_locks
: see JS7 - Resource Locksgit_hold_file_order_sources
: see JS7 - Job Resourcesgit_hold_notice_boards
: see JS7 - Notice Boardsgit_hold_script_includes
: see JS7 - Script Includesgit_hold_job_resources
: see JS7 - Job Resourcesgit_hold_calendars
: see JS7 - Calendarsgit_hold_schedules
: see JS7 - Schedules
...
JOC Cockpit holds a number of local repositories inside the /local
and /rollout
subfolders sub-folders of the JETTY_BASE/resources/joc/repositories
folders. Each top-level folder in the JS7 Configuration view JOC Cockpit inventory can be mapped to a Git repository.
- The local repository for a JS7 top-level folder is created when a user performs the
checkout
orclone
operation for the Git repository via JOC Cockpit. - The local repository is persistent and is updated from the JOC Cockpit database (
store
inventory operation) and from the remote Git repository (pull
Git operation). - The remote Git repository is updated from the local repository using the
push
Git operation. - The JS7 - Cleanup Service removes any local repositories if the JS7 top-level folder no longer exists, i.e. if a top-level folder has been was dropped from JOC Cockpit.
The JS7 JOC Cockpit can be used to interface with remote Git repositories to store and to rollout its scheduling objects such as workflows and jobs.
- JS7 JOC Cockpit supports use of Git compliant servers to manage remote repositories such as GitLab, GitHub.
- JS7 makes JOC Cockpit makes use of a Git CLI Client that has to be provided by the user and has to be accessible to the run-time account of the JOC Cockpit daemon or Windows Service.
Inventory Operations
All inventory operations are based on top-level folders that are mapped to Git repositories, see JS7 - Git Repository Interface, chapter: Folder Mappings. Basic inventory Inventory operations do not require a Git Client but are performed directly by JOC Cockpit.
...
Update Objects from local Repository
This operation updates scheduling objects in the JOC Cockpit database inventory from objects in the file system which holds the local Git repository.
...
- Handle recursively
- The checkbox allows selection of a top-level folder to include any sub-folders and objects.
- Tree
- The Object object types offered, such as Workflows, Resource Locks etc., depend on the settings for the object type: see the Settings section.
...
- Handle recursively
- The checkbox allows selection of a top-level folder to include any sub-folders and objects.
- The Object object types offered, such as Workflows, Resource Locks etc. depend on the settings for the object type: see the Settings section.
...
Depending on the Security Level that JOC Cockpit is operated for the following applies:
- LOWLow: Git credentials are added to the default account, typically the
root
account. - MEDIUMMedium: Git credentials are added per user account.
- HIGHHigh: Git credentials are not added to JOC Cockpit.
For low and medium Security Levels the Profile view offers the Git Management tab like this:
...
- Git Server: Credentials are managed per Git Server.
- The Git Server entry has to be unique. Users can manage different credential sets for different Git Servers. Should different Git Accounts be used for the same Git Server then different JOC Cockpit accounts have to be used.
- The Git Server is specified from the hostname and optionally the port of the Git Server.
- Git Account, User Name, E-Mail Address: The Git Account has to be available with the Git Server, the User Name and E-Mail Address can be freely chosen.
- Authentication Type: This offers to use one of the following options:
- Password: The authentication method is denied by a larger number of Git Servers.
- Private Key: The authentication method makes use of Secure Shell (SSH) that is included with the Git Client.
- The location of the Private Key file can be specified like this:
- file name: JOC Cockpit creates the directory
JETTY_BASE/resources/joc/repositories/private
to which the private key file has to be stored by the user. JOC Cockpit will use this directory to identify the Private Key file and to authenticate with the Git Server. - empty file name: JOC Cockpit will use the Private Key file
~/ssh/id_rsa
from the JOC Cockpit account's home directory. - path to a file: JOC Cockpit makes use of the indicated path to a Private Key file. The path has to be accessible to the run-time account of the JOC Cockpit servlet containerdaemon or Windows Service.
- file name: JOC Cockpit creates the directory
- Users have to manually store the Private Key file to the indicated location.
- Permissions for Private Key files have to be considered: read/write permissions for the owner account, no permissions for groups and others.
- The location of the Private Key file can be specified like this:
- Access Token: The authentication method is considered similarly insecure as use of Passwords and is not offered by all Git Servers.
- The Access Token is created and is stored with the Git Server.
...
- Git URL: The URL
git@github.com:sos-berlin/js7-demo-inventory-rollout-test.git
from the example includes the following parts:git@
: Thegit@
prefix is a constant value.github.com:
: The hostname and optionally port - separated by a colon - of the Git Server.sos-berlin/
: The owner account of the repository.js7-demo-inventory-rollout-test
: The name of the repository..git
: The.git
suffix is a constant value.
- Folder Name: The input field is available if the clone operation is invoked from the root folder / to clone to a new top-level folder. The name of the new top-level has to be addedspecified.
After cloning a popup window presents a the feedback message like this:
...
To push changes to scheduling objects from a local repository to the remote Git repository the Repository->Local|Rollout->Git->Push action menu item has to be invoked like this:
The push operation includes to reflected reflects scheduling objects that have been added, updated or removed. In addition, the changes are committed to the local repository staging area and request require a message to be added by the user like this:
...