License Activation and Enforcement

TIBCO Flogo® app deployment requires activation via a license to start. Licenses can be generated in the TIBCO® Software Downloads site at https://www.tibco.com/downloads.

Important: TIBCO Flogo® application will shut down when you reach the end date of your entitlement to the product, and will not restart until you replace your license file with one that contains a new entitlement end date. It is recommended that you do so well in advance of your entitlement end date to avoid business disruption.

Modes of License Enforcement

There are two modes of License enforcement:

  • Production mode

  • Non-production or Developer mode

Note: The license enforcement mode (Production vs. Non-Production) is determined by how and where the application is built, not by the license type.

Production Mode

Note: Ensure that the GCC compiler is installed on the Docker container or build machine before compiling production binaries.

There are two options for activating this product: In-Product Activation (local activation) and TIBCO Activation Service.

In-Product Activation

In production mode, a valid license file having TIBCO Flogo product entitlement is required to activate and start your Flogo app.

The license file can be provided via the environment variable TIB_ACTIVATION.

The environment variable can be set to the path of a file or a directory.

  • File: Set the variable to the path of a license bin file and then run the Flogo app executable.

    export TIB_ACTIVATION="<path of license bin file>"
    ./your-flogo-app
  • Directory: Set the variable to the path of a directory where license bin files are located.

    export TIB_ACTIVATION="<path of license folder>"
    ./your-flogo-app
    Note: If the folder contains more than one file, the Flogo engine scans all the files and picks the file that has the latest expiry date for the Flogo entitlement.

For an app running as a Docker container:

Docker: Create the base image and application image. Keep your license file on the local system and volume mount the license file or the directory having license files.

  • To mount a license file, run the following command:

    docker run -it -v <local_license_folder>:<container_location> -e TIB_ACTIVATION=<container_location/license_file> <application_image>
  • To mount a license directory, run the following command:

    docker run -it -v <local_license_folder>:<container_location> -e LICENSE_SOURCE=<container_location> <application_image>

TIBCO® Activation Service

Install TIBCO Activation Service software and upload your license file to the running instance. Consult the TIBCO Activation Service documentation for installation instructions and to determine the URL for running your TIBCO Activation Service instance.

Pass the URL as an environment variable in the following form:

export TIB_ACTIVATION="TIBCO Activation service URL"
./your-flogo-app

For an application running in a Docker container, run the following command:

docker run -it -e TIB_ACTIVATION=<TIBCO Activation service URL> <application_image>

When the Flogo engine successfully validates a license bin file, it stores the license details in a Trusted Storage (cache) folder. This storage is by default set as /tmp/tibco.

You can edit this path to store the license information at some other location. The path can be set to any folder that has the write permission by setting the following variable:

export TIB_ACTIVATION_CACHE_PATH="<path of trusted storage folder>"
Note: If the Trusted Storage folder does not have write permission, then the Flogo engine shows an error, and the Flogo app does not run.

Embedding a License File in a Flogo App Executable for Serverless Deployment

For serverless deployment, you can embed a license file with the Flogo app executable so you do not have to provide a license file externally. This approach is only recommended when access to TAS or passing the license file externally is not possible.

In case of updating or renewal of the license you must rebuild the Flogo app executable by embedding the updated license file.

For a Lambda function, build a Lambda Linux/AMD64 Flogo app executable with an embedded renewed license file and update the function as described in Deploying a Flow as a Lambda Function on AWS.

A license file can be embedded in a Flogo app executable while building via Flogo - App Build CLI using flag -l or --license-file "<path of license bin file>"

For example:

$./flogobuild build-exe -f /Downloads/flogoapp.flogo  -l
/Downloads/LicenseFile/flogo-license-file.bin -p linux/amd64
Note: For license file embedded in a Flogo application, we recommend redeploying applications with a new license well in advance of the expiration date to avoid business disruption.

Non-Production Mode (Development)

This mode is for developing and testing the Flogo app executable and Flogo app Docker images in a non-production environment. In this mode, the Flogo engine is designed to run for 24 hours, after which the Flogo app terminates. The engine prints a warning message with time left for termination every one hour.

License Enforcement Mode by Build Tool and Platform

The license enforcement mode (production or non-production) of a Flogo app is determined by the build tool and the operating system that it is built on.

  • Flogo Extension for Visual Studio Code: Flogo applications built using Visual Studio Code on all operating systems, whether as an executable or a Docker app, always run in non-production (developer) mode.

  • Flogo - App Build CLI and Flogo Maven Plugin on Linux: Since cross-compilation is not supported, only app executables or Docker images built on the Linux platform using Flogo - App Build CLI or Flogo Maven Plugin will run in production mode.

The following table summarizes the license enforcement mode for each combination.

Platform Visual Studio Code Flogo - App Build CLI Flogo Maven Plugin
Linux (X64) Non-production mode Production mode Production mode
Windows (X64) Non-production mode Non-production mode Non-production mode
macOS (X64/ARM64) Non-production mode Non-production mode Non-production mode
macOS (X64) Non-production mode Non-production mode Non-production mode

Build Support: Distributions and Architectures

The following table lists the supported distributions and architectures for building Flogo applications, either as executables or as Docker images.

Distributions AMD64 ARM64 (Cross-compilation) Additional Libraries Required in the Docker Image
Golang Debian 1.25.3-bookworm Yes Yes (with gcc-aarch64-linux-gnu library) None
Debian Yes Yes (with gcc-aarch64-linux-gnu library) Gcc Golang

CentOS

Yes No Gcc Golang
Fedora Yes No Gcc Golang
Amazon Linux 2023 Yes No Gcc Golang
RedHat UBI (RHEL) Yes No Gcc Golang
Note: If the app contains Flogo Connector for EMS, then building app executable fails on CentOS base image and RedHat UBI (RHEL).

Runtime Support: Distributions and Architectures

The following table lists the supported distributions and architectures for running Flogo applications, either as executables or as Docker images.

Distributions AMD64 ARM64 Additional Libraries Required
Debian Yes Yes NA
CentOS Yes Yes NA
Fedora Yes Yes NA
Amazon Linux 2023 Yes Yes NA
Amazon Graviton(2023) Yes Yes NA
RedHat UBI(RHEL) Yes Yes NA
gcr.io/distroless/base Yes Yes NA
Alpine Yes No gcompat
    Note:
  • A Flogo app with Flogo Connector for Oracle Database does not run on distorless because Oracle Instant Client needs system libraries, for example libaio and libnsl. Distroless only has the absolute minimum, such as libc and libssl, and there is no package manager to install additional dependencies.

  • If the app has Flogo Connector for SAP Solutions, Flogo Connector for Oracle Database, or Flogo Connector for IBM MQ, it does not run on distroless due to missing the libuuid.so.1 shared libraries.

  • SAP NetWeaver RFC SDK is not compatible with Alpine Linux.

  • Apps with Flogo Connector for SAP Solutions, Flogo Connector for EMS, or Flogo Connector for IBM MQ do not run on Alpine.

Note: Sample Dockerfiles for building and running Flogo applications as Docker images on various distributions are available on GitHub. You can access them at: https://github.com/TIBCOSoftware/flogo-enterprise-hub/tree/master/samples/DockerFiles.

Limitations

  • On Windows and macOS, CLI and Flogo Maven Plugin build a Flogo app executable in non-production mode, which means the engine shuts down after 24 hours. Users still have the option to build custom Docker images for the production Flogo app executable.

  • With TIBCO Flogo® Extension for Visual Studio Code extension, you can build non-production Flogo applications in all operating systems. However, cross-compilation is not supported.

  • For embedded license in a Flogo app executable, if the license expires then you must rebuild the Flogo app executable with an updated license file and redeploy the Flogo app.

  • You can build a Linux ARM64 Flogo app executable only on Debian/Ubuntu OS.

  • Alpine OS is not supported for building Flogo app executables.

  • ARM-based Docker images are not supported for EMS, TDV, SAP, and IBM MQ applications.

  • If the app contains Flogo Connector for Oracle Database and builder has been used as Fedora then it only runs on Fedora. On all other distros, you get incompatible glibc error.

  • For Flogo apps, the gcr.io/distroless/static distribution is not supported on AMD64 or ARM64 architecture.