Sign inSign up

jdidata/flowbot

By jdidata

•Updated over 2 years ago

FlowBot is an end-user configurable workflow engine. mcr.microsoft.com/dotnet/aspnet:5.0-focal

Image
0

10K+

jdidata/flowbot repository overview

Base image: mcr.microsoft.com/dotnet/aspnet:5.0-focal

FlowBot is a rules-driven business engine that is designed to allow people to extend the capabilities of existing systems and applications through a web-based graphical user interface. The goal of FlowBot was to accomplish this without requiring any programming changes (or at least minimal changes) - which avoids the extremely expensive Software Development Life Cycle (SDLC).

FlowBot can do things like:

  1. Send an email
  2. Send a TXT message
  3. Generate documents in various formats
  4. Generate machine-readable files
  5. Hook into 3rd party databases to extract data
  6. Analyze an image (object & scene detection)
  7. Invoke a REST API

Apart from attaching to other systems, FlowBot has built-in "Listeners" for watching the following and can take action triggered by these monitors:

  1. FTP/FTPS/SFTP sites for changes
  2. Windows filesystems for changes
  3. Office 365 mailboxes for new messages
  4. Digital pin state changes on a Raspberry Pi
  5. Analog pin state changes on a Raspberry Pi + the MCP3008 ADC

Your system can tell FlowBot to do something on-demand using FlowBot's REST API or by queuing a message on Amazon SQS. Only REST will work out-of-the-box with no additional configuration or 3rd party services.

Once you start FlowBot, the following URLs will be of interest:
http://localhost:8080⁠
http://localhost:8080/api⁠
http://localhost:8080/swagger⁠

NOTE: By default, FlowBot runs on port 8080 but that can be changed if needed

The following batch files might be of some assistance when trying to run FlowBot on the Microsoft Windows platform on the latest version of FlowBot.

run_container.bat

@echo off

echo. 
echo ================================================================
echo Welcome to the JDi Data FlowBot Docker Container Run Script
echo ================================================================
echo. 
echo ***Docker Community Edition MUST be installed BEFORE running this script***
echo. 
echo This script will run the user-specified version of FlowBot. Please select a version that is available in the "jdidata / flowbot" repository on Docker Hub.
echo.
echo Please note that this script is NOT designed to start FlowBot in production environments

SETLOCAL ENABLEDELAYEDEXPANSION

SET VERSION=
SET DB_SERVER=
SET REUSE_VOLUME=
SET EXISTS=1

SET VOLUME_NAME=flowbot_vol

if not exist env.list (
	echo. 
	echo ERROR: You must create an env.list file that will contain the runtime environment variables for FlowBot. See SAMPLE_env.list for an example.
	exit /B
)

:prompt1
	set /p VERSION="Version: (i.e. 2019.02.32753): "
	IF "%VERSION%" == "" (
		goto :prompt1
	)
	echo.

:prompt2
	docker volume inspect %VOLUME_NAME%	> nul 2>&1
	IF ERRORLEVEL 1 SET EXISTS=0

	IF "%REUSE_VOLUME%" == "" (
		IF "%EXISTS%" == "1" (
			echo Provided you have not changed versions of FlowBot, you may reuse your existing storage volume to preserve your data stored within FlowBot.	
			CHOICE /M "Reuse existing volume?"
			IF ERRORLEVEL 1 SET REUSE_VOLUME=y
			IF ERRORLEVEL 2 SET REUSE_VOLUME=n
			echo.
			echo.
		)
	)
	
set IMAGE_NAME=jdidata/flowbot:%VERSION%

REM docker container kill flowbot_app > nul 2>&1
REM docker container rm flowbot_app > nul 2>&1

IF "%REUSE_VOLUME%" == "n" (
	echo Deleting volume %VOLUME_NAME%...
	docker volume rm %VOLUME_NAME% > nul 2>&1
	SET EXISTS=0
)

IF "%EXISTS%" == "0" (
	echo Creating volume %VOLUME_NAME%...
	docker volume create %VOLUME_NAME% > nul 2>&1
)

docker run -p 8080:80 -it --rm --name flowbot_app --mount source=%VOLUME_NAME%,target=/flowbot_data --env-file ./env.list %IMAGE_NAME%

The following batch files might be of some assistance when trying to run FlowBot on the Linux/Unix platforms on the latest version of FlowBot.

run_container.sh

#!/bin/bash

echo
echo "=============================================================="
echo "Welcome to the JDi Data Claims Manager Docker Startup Script"
echo "=============================================================="
echo 
echo "***Docker Community Edition MUST be installed BEFORE running this script***"
echo
echo "This script will run the user-specified version of FlowBot. Please select a version that is available in the jdidata / flowbot repository on Docker Hub."
echo
echo "Please note that this script is NOT designed to start FlowBot in production environments"

VOLUME_NAME=flowbot_vol

if [ ! -f "env.list" ]; then
    echo ERROR: You must create an env.list file that will contain the runtime environment variables for FlowBot. See SAMPLE_env.list for an example of what your env.list file should contain.
    exit
fi

while [ -z ${VERSION+x} ]; do
    read -p "Version: (i.e. 2019.02.32753): " VERSION
done

VOLUME_EXISTS=$(docker volume inspect $VOLUME_NAME 2>/dev/null)
if [ "$VOLUME_EXISTS" != "[]" ]; then
    EXISTS=1
    echo "Provided you have not changed versions of FlowBot, you may reuse your existing storage volume to preserve your data stored within FlowBot."
    echo "Reuse existing volume (y/n)?"
    options=("Yes" "No")
    select opt in "${options[@]}"
    do
	case $opt in
	    "Yes") 
		REUSE_VOLUME=y
		break
		;;
	    "No") 
		REUSE_VOLUME=n
		break
		;;
	    *)
		echo "Invalid entry '$REPLY'. You must enter 1 or 2.";;
	esac
    done
fi

IMAGE_NAME=jdidata/flowbot:$VERSION

if [[ "$EXISTS" == "1" && "$REUSE_VOLUME" == "n" ]]; then
    echo "Deleting volume $VOLUME_NAME..."
    docker volume rm $VOLUME_NAME > /dev/null 2>&1
    EXISTS=0
fi

if [ "$EXISTS" == "0" ]; then 
    echo "Creating volume $VOLUME_NAME..."
    docker volume create $VOLUME_NAME > /dev/null 2>&1
fi

docker run -p 8080:80 -it --rm --name flowbot_app --mount source=$VOLUME_NAME,target=/flowbot_data --env-file ./env.list $IMAGE_NAME

SAMPLE_env.list

DB_SERVER=localhost
DB_NAME=cor
DB_USER=someuser
DB_PASS=somepass

MessageQueueOptions__MQQueueingEnabled=false
MessageQueueOptions__QueueUrl=
CacheManagerOptions__DistributedCacheType=Memory
ThirdPartyOptions__AmazonSQSOptions__AccountId= 
ThirdPartyOptions__AmazonSQSOptions__AccessKey= 
ThirdPartyOptions__AmazonSQSOptions__SecretKey= 
ThirdPartyOptions__AmazonSQSOptions__RegionName= 
ThirdPartyOptions__AmazonIoTOptions__AccessKey=
ThirdPartyOptions__AmazonIoTOptions__SecretKey=
ThirdPartyOptions__AmazonIoTOptions__IoTEndpoint=
ThirdPartyOptions__TemplateProviderOptions__AsposeAPIOptions__AsposeCloudAPPSid=
ThirdPartyOptions__TemplateProviderOptions__AsposeAPIOptions__AsposeWordCloudAppKey=
ThirdPartyOptions__TemplateProviderOptions__AsposeAPIOptions__AsposeFolderPath=
ThirdPartyOptions__TemplateProviderOptions__ASPPDFOptions__ASPPDFLicenseKey=
[email protected]
System__SystemAdminPassword=
SmtpServer__SMTPServer=
SmtpServer__SMTPUser=
SmtpServer__SMTPPassword=
SmtpServer__SMTPPort=
SmtpServer__RequireSMTPAuthentication=
RecaptchaSettings__RecaptchaSiteKey=
RecaptchaSettings__RecaptchaSecretKey=
RecaptchaSettings__RecaptchaServiceVersion=
SelfTestOptions__QueueAPITestOptions__QueuingUserName=
SelfTestOptions__QueueAPITestOptions__QueuingEncryptedPassword=

Tag summary

Content type

Image

Digest

sha256:049082a40…

Size

643.2 MB

Last updated

over 2 years ago

docker pull jdidata/flowbot:2022.01.46925