Versions Compared

Key

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

...

Code Block
titleUsage
Usage: deploy-workflow.sh [Command] [Options] [Switches]

  Commands:
    export            --file [--format] --path --type [--use-short-path] [--start-folder]
    ..                --file [--format] --folder [--recursive] [--type] [--use-short-path]
                     [--for-signing] [--no-draft] [--no-deployed] [--no-released] [--no-invalid]
    import            --file [--format] [--folder] [--overwrite] [--prefix] [--suffix]
    import-deploy     --file [--format] [--folder] [--algorithm]
    deploy            --path --type [--date-from] [--no-draft] [--no-deployed]
    ..                --folder [--recursive] [--date-from] [--no-draft] [--no-deployed]
    revoke            --path --type
    ..                --folder [--recursive]
    release           --path --type [--date-from]
    ..                --folder [--recursive] [--date-from]
    recall            --path --type
    ..                --folder [--recursive]
    store             --path --type --file
    remove            --path --type [--date-from]
    ..                --folder [--date-from]
    restore           --path --type --new-path [--prefix] [--suffix]
    ..                --folder --new-path [--prefix] [--suffix]
    delete            --path --type
    ..                --folder
    revalidate        --folder [--recursive]

  Options:
    --url=<url>                        | required: JOC Cockpit URL
    --controller-id=<id>               | required: Controller ID
    --user=<account>                   | required: JOC Cockpit user account
    --password=<password>              | optional: JOC Cockpit password
    --ca-cert=<path>                   | optional: path to CA Certificate used for JOC Cockpit login
    --client-cert=<path>               | optional: path to Client Certificate used for login
    --client-key=<path>                | optional: path to Client Key used for login
    --timeout=<seconds>                | optional: timeout for request, default: 60
    --file=<path>                      | optional: path to export file or import file
    --format=<ZIP|TAR_GZ>              | optional: format of export file or import file
    --folder=<folder[,folder]>         | optional: list of inventory folders holding objects
    --start-folder=<folder>            | optional: start folder for export with relative paths
    --path=<path[,path]>               | optional: list of inventory paths to objects
    --type=<type[,type]>               | optional: list of object types such as
                                                   WORKFLOW,FILEORDERSOURCE,JOBRESOURCE,NOTICEBOARD,LOCK
    --new-path=<path>                  | optional: new object path on restore
    --prefix=<string>                  | optional: prefix for duplicate objects on import
    --suffix=<string>                  | optional: suffix for duplicate objects on import
    --algorithm=<identifier>           | optional: signature algorithm for import, default: SHA512withECDSA
    --date-from=<date>                 | optional: update daily plan start date for deploy/release operation
    --audit-message=<string>           | optional: audit log message
    --audit-time-spent=<number>        | optional: audit log time spent in minutes
    --audit-link=<url>                 | optional: audit log link
    --log-dir=<directory>              | optional: path to directory holding the script's log files

  Switches:
    -h | --help                        | displays usage
    -v | --verbose                     | displays verbose output, repeat to increase verbosity
    -p | --password                    | asks for password
    -r | --recursive                   | specifies folders to be looked up recursively
    -o | --overwrite                   | overwrites objects on import
    -s | --for-signing                 | exports objects for digital signing
    -u | --use-short-path              | exports relative paths
    --no-draft                         | excludes draft objects
    --no-deployed                      | excludes deployed objects
    --no-released                      | excludes released objects
    --no-invalid                       | excludes invalid objects
    --show-logs                        | shows log output if --log-dir is used
    --make-dirs                        | creates directories if they do not exist

...

  • export
    • Allows to export scheduling objects such as workflows to an archive file in .zip or .tar.gz format. The command comes in two flavors:
      • export individual objects specified by the --path and --type options.
        • Should relative paths be used in the archive file then the --start-folder option and --use-short-path switch can be applied.
      • export objects from folders using the --folder option and --recursive switch.
        • Optionally the object type is specified and otherwise all objects will be exported.
        • Should relative paths be used in the archive file then the  --use-short-path switch can be applied.
    • The archive file is specified from the --file and --format options.
  • import
    • Imports an archive file to the inventory.
    • Users can specify if existing objects will be overwritten or if duplicate objects from the import file will be assigned a prefix or suffix or will be ignored.
  • import-deploy
    • Imports an archive file to the inventory and deploys the included objects. The operation is applicable if JOC Cockpit is operated for the high security level.
      • As a prerequisite the archive file must have been exported using the --for-signing switch.
      • Workflows and Job Resources from the archive file have been digitally signed by the user. Signature files have been added to the archive file.
    • On import the objects in the archive file are deployed to related Controllers as specified during export.
  • deploy
    • Allows to deploy objects such as workflows. The command can be used in two flavors:
      • deploy individual objects specified by the --path and --type options.
      • deploy objects from folders using the --folder option and --recursive switch.
    • Deploying objects forwards them to Controllers and Agents.
  • revoke
    • Allows to undeploy objects such as workflows. The command can be used in two flavors:
      • revoke individual objects specified by the --path and --type options.
      • revoke objects from folders using the --folder option and --recursive switch.
    • Revoking objects deletes them from the Controller and Agents, objects remain in draft status in the inventory.
  • release
    • Allows to release objects such as schedules. The command can be used in two flavors:
      • release individual objects specified by the --path and --type options.
      • release objects from folders using the --folder option and --recursive switch.
    • Rleasing objects activates them for example for use by the Daily Plan.
  • recall
    • Allows to unrelease objects such as schedules. The command can be used in two flavors:
      • recall individual objects specified by the --path and --type options.
      • recall objects from folders using the --folder option and --recursive switch.
    • Recalling objects deactivates them from further use, objects remain in draft status in the inventory.
  • store
    • Allows to store an object such as a workflow or schedule from a file to the inventory.
      • The --file option specifies the file that holds the JSON representation of an object.
      • The --type option specifies the object type. 
      • The --path option specifies the folders and object name of the objects inventory location.
    • Objects are stored to the inventory in draft status and can be deployed or released using the related commands.
  • remove
    • Allows to remove objects such as workflows or schedules from the inventory. The command can be used in two flavors:
      • remove individual objects specified by the --path and --type options.
      • remove objects from folders recursively using the --folder option.
    • Removing objects moves them to the trash from which they can be restored or deleted
  • restore
    • Allows to restore objects such as workflows or schedules from the trash. The command can be used in two flavors:
      • restore individual objects specified by the --path and --type options.
      • restore objects from folders recursively using the --folder option.
    • Restoring objects moves them from the trash to the inventory from which they can be deployed or released.
  • delete
    • Allows to delete objects such as workflows or schedules from the trash. The command can be used in two flavors:
      • delete individual objects specified by the --path and --type options.
      • delete objects from folders recursively using the --folder option.
    • Deleting objects will permanently wipe them from the trash.
  • revalidate
    • Allows to valildate objects such as workflows or schedules from the inventory, for example after import. The command can be used for inventory folders.

Options

  • --url
  • --user
    • Specifies the user account for login to JOC Cockpit. If JS7 - Identity Services are available for Client authentication certificates that are specified with the --client-cert and --client-key options then their common name (CN) attribute has to match the user account.
    • If a user account is specified then a password can be specified using the --password option or interactive keyboard input can be prompted using the -p switch.
  • --password
    • Specifies the password used for the account specified with the --user option for login to JOC Cockpit.
    • Consider use of the -p switch offering a secure option for interactive keyboard input.
  • --controller-id
    • Specifies the identification of the Controller that holds related orders.
    • More than one Controller ID can be specified, separated by comma, for the export operation when using the --for-signing switch.
  • --ca-cert
    • Specifies the path to a file in PEM format that holds the Root CA Certificate and optionally Intermediate CA Certificates to verify HTTPS connections to JOC Cockpit.
  • --client-cert
    • Specifies the path to a file in PEM format that holds the Client Certificate if HTTPS mutual authentication is used..
  • --client-key
    • Specifies the path to a file in PEM format that holds the Client Private Key if HTTPS mutual authentication is used..
  • --timeout
    • Specifies the maximum duration for requests to the JS7 REST Web Service. Default: 60 seconds.
  • --file
    • Specifies the location of an archive file that is used with export, import and import-deploy operations.
    • On export an existing archive file will be overwritten.
  • --format
    • Specifies the format of the archive file indicated with the --file option.
    • The format can be one of ZIP or TAR_GZ. Default: ZIP. The JS7 can process archive files in .zip format on Unix.
  • --folder
    • Specifies the inventory folder used for the related operation.
      • Folder specification starts from a / followed by a hierarchy of sub-folders.
      • More than one folder can be specified using comma as in --folder=/ProductDemo/AgentCluster,/ProductDemo/ScheduledExecution.
    • When used with the import and import-deploy operations, a single folder can be specified that is prepended the folders included with the archive file.
  • --start-folder
    • Specifies the inventory folder used for relative paths in archive files when using the export operation with the --path option, see --use-short-path switch.
  • --path
    • Specifies the path of an object such as a workflow, job resource, schedule. A path starts from a /, optionally followed by a hierarchy of sub-folders, and the object name.
    • Objects are identified from thier path and object type.
  • --type
    • Specifies the object type such as a workflow or schedule that is indicated together with the --path option to identify an object.
      • Deployable object types include: WORKFLOW, FILEORDERSOURCE, JOBRESOURCE, NOTICEBOARD, LOCK
      • Releasable object types include: INCLUDESCRIPT, SCHEDULE, WORKINGDAYSCALENDAR, NONWORKINGDAYSCALENDAR, JOBTEMPLATE, REPORT
    • When used with the export operation for folders then more than one type can be specified separated by comma, for example --type=WORKFLOW,JOBRESOURCE
  • --new-path
    • When used with the restore operation, the new path is specified to which the object will be restored in the inventory.
  • --prefix
    • When used with the import operation, a prefix can be specified that is prepended all objects that are imported.
    • If an object with the same name and prefix exists, then the object will not be imported.
  • --suffix
    • When used with the import operation, a suffix can be specified that is appended all objects that are imported.
    • If an object with the same name and suffix exists, then the object will not be imported.
  • --algorithm
    • When used with the import-deploy operation, the signature algorithm is specified that was used to digitally sign objects. Default: SHA512withECDSA.
    • The algorithm name is made up of the hash algorithm name such as SHA256, SHA512 and the encryption type of the Private Key such as ECDSA or RSA.
    • This offers to specify the following algorithm names: SHA256withECDSA, SHA256withRSA, SHA512withECDSA, SHA512withRSA.
  • --date-from
    • Specifies the date starting from which the Daily Plan will be updated:
      • The --date-from=now value specifies that the Daily Plan will be updated for orders starting from now.
      • The Daily Plan date in ISO date format can be specified, for example --date-from=2023-10-23.
      • If omitted then the Daily Plan will not be updated.
    • Orders in the Daily Plan can be updated if the underlying workflow or schedule is changed.
  • --audit-message
    • Specifies a message that is made available for the Audit Log.
    • Specification of Audit Log messages can be enforced on a per user basis and for a JS7 environment.
  • --audit-time-spent
    • Specifies the time spent to perform an operation which is added to the Audit Log.
    • The option can be specified if the --audit-message option is used.
  • --audit-link
    • Specifies a link (URL) which is added to the Audit Log.
    • The option can be specified if the --audit-message option is used.
  • --log-dir
    • If a log directory is specified then the script will log information about processing steps to a log file in this directory.
    • File names are created according to the pattern: deploy-workflow.<yyyy>-<MM>-<dd>T<hh>-<mm>-<ss>.log
    • For example: deploy-workflow.2022-03-19T20-50-45.log

...

Code Block
languagebash
titleExamples for Exporting Objects
linenumberstrue
# common options for connection to JS7 REST API
request_options=(--url=http://localhost:4446 --user=root --password=root --controller-id=controller)

# export workflows
./deploy-workflow.sh export ${request_options[@]} \
    --file=export.zip --path=/ap/ap3jobs,/ap/Agent/apRunAsUser --type=WORKFLOW

# export draft schedules
./deploy-workflow.sh export ${request_options[@]} \
    --file=export.zip --path=/ap/Agent/apAgentSchedule01,/ap/Agent/apAgentSchedule02 --type=SCHEDULE --no-released

# export objects from folder
./deploy-workflow.sh export ${request_options[@]} \
    --file=export.zip --folder=/ap --recursive

# export objects from folder using relative path
./deploy-workflow.sh export ${request_options[@]} \
    --file=export.zip --folder=/ap/Agent --recursive --use-short-path

# export objects from folder, limiting object types and validity, feeding audit log
./deploy-workflow.sh export ${request_options[@]} \
    --file=export.zip --folder=/ap --recursive --type=WORKFLOW,JOBRESOURCE --no-invalid --audit-message="export to production"

...

Code Block
languagebash
titleExamples for Importing Objects
linenumberstrue
# common options for connection to JS7 REST API
request_options=(--url=http://localhost:4446 --user=root --password=root --controller-id=controller)

# import objects
./deploy-workflow.sh import ${request_options[@]} \
    --file=export.zip --overwrite

# import objects to a new top-level folder and apply suffix
./deploy-workflow.sh import ${request_options[@]} \
    --file=export.zip --folder=/Version22 --suffix=v22

# revalidate objects from folder
./deploy-workflow.sh revalidate ${request_options[@]} \
    --folder=/Version22 --recursive

Exporting and Importing/Deploying for High Security Level

...