Cloud Integration CLI in Golang (CIG)

Hello,

A few weeks ago I was transferring integration flow to a production system. I was surprised that I could not import iflow with the same name and after moving the iflow I had to manually recreate the configuration of the new version of the iflow. At the same time, I was learning the go programming language. I thought it would be good to combine learning with something useful.

I would like to introduce the Cloud Integration CLI for manage and query integration artifacts of design time and runtime.

The tool is written in go language. Go is cross-platform, which means that the tool will work on different operating systems, including Windows, Linux, and macOS.

Personally, I use this tool to transport iflows between systems (cig flow transport), update flow configurations (cig flow describe-configs / cig flow update-configs) and update resources, such as groovy script (cig resource update).

The project repository is available at:
https://github.com/tobiaszgithub/cig

Executable files for the various operating systems are available at:
https://github.com/tobiaszgithub/cig/releases

The first thing after downloading the tool is to create a configuration file:
To generate the configuration file, you can use the generate-config command, please check the following screenshot:generating%20configuration%20file

generating configuration file

Update the data in the file and leave the file where it was generated or move it to a directory:
USER_HOME_DIRECTORY/.cig

Multiple tenants can be added to the configuration file. The value from the “activeTenantKey” field will be used as the default tenant for the commands being executed. I tested the tool in the Neo and Cloud Foundry environments. In the case of Neo, ‘basic’ authorization type can be used and in the case of Cloud Foundry you have to use ‘oauth’ authorization type.
How to generate oauth credentials in the cloud foundry can be found here:
https://blogs.sap.com/2021/07/13/using-cloud-integration-apis-with-tools-on-cloud-foundry-creating-a-service-key/

Some screenshot of the running application:

Below I attach a description to the current commands (application version v0.1.1)

Using this tool it is possible to manage and query integration artifacts of design time and runtime.

Usage:
cig [command]

Available Commands:

  • completion – Generate the autocompletion script for the specified shell
  • flow – Command related to the processing of an integration flow
  • generate-config – Generate config file
  • help – Help about any command
  • package – Command related to the processing of integration packages
  • resource – Command related to the processing of resources of an integration flow

Flags:
-h, –help  help for cig
-t, –tenant-key  string  Tenant key from configuration file

Use “cig [command] –help” for more information about a command.

cig flow

Command related to the processing of an integration flow.

Usage:
cig flow [command]

Available Commands:

  • copy – Copy an integration flow
  • create – Create or upload an integration flow
  • deploy – Deploy an integration flow
  • describe-configs – Get configurations of an integration flow by Id and version
  • download – Download an integration flow as zip file
  • inspect – Get integration flow by id and version
  • transport – Transport an integration flow between systems
  • update – Update an integration flow
  • update-configs – Update configuration parameters of an integration flow

Flags:
-h, –help  help for flow

Global Flags:
-t, –tenant-key  string  Tenant key from configuration file

Use “cig flow [command] –help” for more information about a command.

cig generate-config

Generate configuration file. This file is nessesary for the operation of the cig tool. Configuration file should be placed in working directory or userhome/.cig/ directory

Usage:
cig generate-config [flags]

Flags:
-h, –help  help for generate-config
-o, –output-file  string  The output file with empty configuration parameters that will be created (default “config.json”)

Global Flags:
-t, –tenant-key  string  Tenant key from configuration file

cig package

Command related to the processing of integration packages

Usage:
cig package [flags]
cig package [command]

Aliases:
package, ls, p

Available Commands:

  • download – Download integration package by ID
  • inspect – Get integration package by ID
  • ls – Get all integration packages as list or get all integration flow of the package

Flags:
-h, –help  help for package

Global Flags:
-t, –tenant-key  string  Tenant key from configuration file

cig resource

Command related to the processing of resources of an integration flow

Usage:
cig resource [command]

Available Commands:

  • update – Update a resource of an integration flow

Flags:
-h, –help  help for resource

Global Flags:
-t, –tenant-key  string  Tenant key from configuration file

Use “cig resource [command] –help” for more information about a command.