From ef0f2895c56428b7891e66030937d96dc0bbdbe1 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Mon, 10 Oct 2022 15:57:45 +0530 Subject: [PATCH 01/70] Update docker-compose.yml --- docker-compose/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index e1ac913..5b64f7b 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -76,7 +76,7 @@ services: POSTGRES_PASSWORD: ${CAMUNDA_JDBC_PASSWORD:-changeme} POSTGRES_DB: ${CAMUNDA_JDBC_DB_NAME:-formsflow-bpm} volumes: - - ./postgres/camunda:/var/lib/postgresql/data + - ./postgres/camunda:/var/lib/postgresql/data 777 ports: - "5432:5432" @@ -120,7 +120,7 @@ services: POSTGRES_PASSWORD: ${FORMSFLOW_API_DB_PASSWORD:-changeme} POSTGRES_DB: ${FORMSFLOW_API_DB_NAME:-webapi} volumes: - - ./postgres/webapi:/var/lib/postgresql/data + - ./postgres/webapi:/var/lib/postgresql/data 777 ports: - "6432:5432" From 1213bc6ff781be81c204b83e401dd6a508a72695 Mon Sep 17 00:00:00 2001 From: Tiago Graf <60719756+tiagograf-AOT@users.noreply.github.com> Date: Mon, 28 Nov 2022 16:24:23 -0800 Subject: [PATCH 02/70] Fix Authorization: command not found Fixes "install.bash: line 93: Authorization: command not found" --- scripts/install.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.bash b/scripts/install.bash index ca6e08c..9f713b0 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -90,7 +90,7 @@ function forms-flow-analytics REDASH_DATABASE_URL=postgresql://postgres:changeme@postgres/postgres REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=* REDASH_REFERRER_POLICY=no-referrer-when-downgrade - REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type, Authorization + REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type,Authorization echo REDASH_HOST=$REDASH_HOST>>.env echo PYTHONUNBUFFERED=$PYTHONUNBUFFERED>>.env echo REDASH_LOG_LEVEL=$REDASH_LOG_LEVEL>>.env From f7638f1dcc9c1f384db7ee6d6dade866e9f2eca7 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Tue, 27 Dec 2022 12:51:45 +0530 Subject: [PATCH 03/70] Updated script --- docker-compose/docker-compose.yml | 3 +-- scripts/install.bash | 28 +++++++++------------------- scripts/install.bat | 28 ++++++---------------------- scripts/uninstall.bat | 2 ++ 4 files changed, 18 insertions(+), 43 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 5b64f7b..a4945c8 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -70,7 +70,7 @@ services: - forms-flow-forms-db forms-flow-bpm-db: - image: postgres:latest + image: postgres:14 environment: POSTGRES_USER: ${CAMUNDA_JDBC_USER:-admin} POSTGRES_PASSWORD: ${CAMUNDA_JDBC_PASSWORD:-changeme} @@ -177,5 +177,4 @@ services: volumes: - mdb-data: postgres: diff --git a/scripts/install.bash b/scripts/install.bash index ca6e08c..1c87777 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -10,6 +10,15 @@ if [[ $choice == "y" ]]; then elif [[ $choice == "n" ]]; then ANALYTICS=0 fi +echo "Confirm that your IPv4 address is $ipadd [y/n]" +read choice +if [[ $choice == "y" ]]; then + ipadd=$ipadd + echo "$ipadd" +elif [[ $choice == "n" ]]; then + read -p "Enter your IP Adress: " ipadd + echo "$ipadd" +fi ############################################################# ######################### main function ##################### ############################################################# @@ -117,16 +126,11 @@ function forms-flow-bpm { FORMSFLOW_API_URL=http://$ipadd:5000 WEBSOCKET_SECURITY_ORIGIN=http://$ipadd:3000 - FORMIO_DEFAULT_PROJECT_URL=http://$ipadd:3001 - WEBSOCKET_ENCRYPT_KEY=giert989jkwrgb@DR55 echo KEYCLOAK_URL=$KEYCLOAK_URL >> .env echo KEYCLOAK_BPM_CLIENT_SECRET=$KEYCLOAK_BPM_CLIENT_SECRET >>.env - echo KEYCLOAK_URL_REALM=$KEYCLOAK_URL_REALM >>.env echo FORMSFLOW_API_URL=$FORMSFLOW_API_URL >>.env echo WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN >> .env - echo WEBSOCKET_ENCRYPT_KEY=$WEBSOCKET_ENCRYPT_KEY >> .env - echo FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL >> .env docker-compose -f docker-compose.yml up --build -d forms-flow-bpm } @@ -136,28 +140,19 @@ function forms-flow-bpm function forms-flow-api { - FORMSFLOW_API_URL=http://$ipadd:5000 BPM_API_URL=http://$ipadd:8000/camunda - FORMSFLOW_API_CORS_ORIGINS=* if [[ $ANALYTICS == 1 ]]; then ( echo What is your Redash API key? read INSIGHT_API_KEY INSIGHT_API_URL=http://$ipadd:7000 ) fi - echo KEYCLOAK_URL=$KEYCLOAK_URL >>.env - echo KEYCLOAK_BPM_CLIENT_SECRET=$KEYCLOAK_BPM_CLIENT_SECRET >> .env - echo KEYCLOAK_URL_REALM=$KEYCLOAK_URL_REALM >> .env - echo KEYCLOAK_ADMIN_USERNAME=$KEYCLOAK_ADMIN_USERNAME >> .env - echo KEYCLOAK_ADMIN_PASSWORD=$KEYCLOAK_ADMIN_PASSWORD >> .env echo BPM_API_URL=$BPM_API_URL >> .env - echo FORMSFLOW_API_CORS_ORIGINS=$FORMSFLOW_API_CORS_ORIGINS >> .env if [[ $ANALYTICS == 1 ]]; then ( echo INSIGHT_API_URL=$INSIGHT_API_URL >> .env echo INSIGHT_API_KEY=$INSIGHT_API_KEY >> .env ) fi - echo FORMSFLOW_API_URL=$FORMSFLOW_API_URL>>.env docker-compose -f docker-compose.yml up --build -d forms-flow-webapi } @@ -168,12 +163,8 @@ function forms-flow-api function forms-flow-forms { cd ../docker-compose - FORMIO_ROOT_EMAIL=admin@example.com - FORMIO_ROOT_PASSWORD=changeme FORMIO_DEFAULT_PROJECT_URL=http://$ipadd:3001 - echo FORMIO_ROOT_EMAIL=$FORMIO_ROOT_EMAIL>>.env - echo FORMIO_ROOT_PASSWORD=$FORMIO_ROOT_PASSWORD>>.env echo FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL>>.env docker-compose -f docker-compose.yml up --build -d forms-flow-forms @@ -203,7 +194,6 @@ function keycloak read that echo Please wait, keycloak is setting up! docker-compose -f docker-compose.yml up -d - echo KEYCLOAK_BPM_CLIENT_SECRET=$KEYCLOAK_BPM_CLIENT_SECRET >> .env } } function orderwithanalytics diff --git a/scripts/install.bat b/scripts/install.bat index 593b9eb..571e0a5 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -41,6 +41,12 @@ EXIT /B %ERRORLEVEL% :find-my-ip FOR /F "tokens=4 delims= " %%i in ('route print ^| find " 0.0.0.0"') do set ip-add=%%i + set /p ip-add=Confirm that your IPv4 address is %ip-add%? [y/n] + if %ip-add%==y ( + EXIT /B 0 + ) else ( + set /p ip-add="What is your IPv4 address?" + ) EXIT /B 0 :set-common-properties @@ -60,9 +66,6 @@ EXIT /B %ERRORLEVEL% docker-compose -f %~1\docker-compose.yml up --build -d keycloak timeout 5 set KEYCLOAK_URL=http://%ip-add%:8080 - set KEYCLOAK_URL_REALM=forms-flow-ai - set KEYCLOAK_ADMIN_USERNAME=admin - set KEYCLOAK_ADMIN_PASSWORD=changeme ) EXIT /B 0 @@ -72,14 +75,8 @@ EXIT /B %ERRORLEVEL% :forms-flow-forms - set FORMIO_ROOT_EMAIL=admin@example.com - set FORMIO_ROOT_PASSWORD=changeme set FORMIO_DEFAULT_PROJECT_URL=http://%ip-add%:3001 - - echo FORMIO_ROOT_EMAIL=%FORMIO_ROOT_EMAIL%>>%~1\.env - echo FORMIO_ROOT_PASSWORD=%FORMIO_ROOT_PASSWORD%>>%~1\.env echo FORMIO_DEFAULT_PROJECT_URL=%FORMIO_DEFAULT_PROJECT_URL%>>%~1\.env - docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-forms timeout 5 EXIT /B 0 @@ -144,15 +141,11 @@ EXIT /B %ERRORLEVEL% SETLOCAL set FORMSFLOW_API_URL=http://%ip-add%:5000 set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 - set FORMIO_DEFAULT_PROJECT_URL=http://%ip-add%:3001 echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env - echo KEYCLOAK_URL_REALM=%KEYCLOAK_URL_REALM%>>%~1\.env echo FORMSFLOW_API_URL=%FORMSFLOW_API_URL%>>%~1\.env echo WEBSOCKET_SECURITY_ORIGIN=%WEBSOCKET_SECURITY_ORIGIN%>>%~1\.env - echo WEBSOCKET_ENCRYPT_KEY=%WEBSOCKET_ENCRYPT_KEY%>>%~1\.env - echo FORMIO_DEFAULT_PROJECT_URL=%FORMIO_DEFAULT_PROJECT_URL%>>%~1\.env ENDLOCAL docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-bpm timeout 6 @@ -205,25 +198,16 @@ EXIT /B %ERRORLEVEL% SETLOCAL - set FORMSFLOW_API_URL=http://%ip-add%:5000 set BPM_API_URL=http://%ip-add%:8000/camunda - set FORMSFLOW_API_CORS_ORIGINS=* if %~2==1 ( set /p INSIGHT_API_KEY="What is your Redash API key?" set INSIGHT_API_URL=http://%ip-add%:7000 ) - echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env - echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env - echo KEYCLOAK_URL_REALM=%KEYCLOAK_URL_REALM%>>%~1\.env - echo KEYCLOAK_ADMIN_USERNAME=%KEYCLOAK_ADMIN_USERNAME%>>%~1\.env - echo KEYCLOAK_ADMIN_PASSWORD=%KEYCLOAK_ADMIN_PASSWORD%>>%~1\.env echo BPM_API_URL=%BPM_API_URL%>>%~1\.env - echo FORMSFLOW_API_CORS_ORIGINS=%FORMSFLOW_API_CORS_ORIGINS%>>%~1\.env if %~2==1 ( echo INSIGHT_API_URL=%INSIGHT_API_URL%>>%~1\.env echo INSIGHT_API_KEY=%INSIGHT_API_KEY%>>%~1\.env ) - echo FORMSFLOW_API_URL=%FORMSFLOW_API_URL%>>%~1\.env ENDLOCAL docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-webapi diff --git a/scripts/uninstall.bat b/scripts/uninstall.bat index c344f88..8c39da8 100644 --- a/scripts/uninstall.bat +++ b/scripts/uninstall.bat @@ -72,3 +72,5 @@ EXIT /B %ERRORLEVEL% :prune-docker docker volume prune -f + docker system prune + docker container prune From 963d5f7c623c758ab73c94ac89d8a51b50ea2c7c Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Tue, 27 Dec 2022 18:57:47 +0530 Subject: [PATCH 04/70] updated script to avoid overlapping --- docker-compose/docker-compose.yml | 2 +- scripts/install.bat | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index a4945c8..7ea0960 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -113,7 +113,7 @@ services: - keycloak forms-flow-webapi-db: - image: postgres:11 + image: postgres:14 restart: always environment: POSTGRES_USER: ${FORMSFLOW_API_DB_USER:-postgres} diff --git a/scripts/install.bat b/scripts/install.bat index 571e0a5..2116e70 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -41,11 +41,11 @@ EXIT /B %ERRORLEVEL% :find-my-ip FOR /F "tokens=4 delims= " %%i in ('route print ^| find " 0.0.0.0"') do set ip-add=%%i - set /p ip-add=Confirm that your IPv4 address is %ip-add%? [y/n] - if %ip-add%==y ( + set /p ip-addr=Confirm that your IPv4 address is %ip-add%? [y/n] + if %ip-addr%==y ( EXIT /B 0 ) else ( - set /p ip-add="What is your IPv4 address?" + set /p ip-addr="What is your IPv4 address?" ) EXIT /B 0 From bf8d40d5bbce436b6fbb470997f5cd5eb9148270 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Tue, 27 Dec 2022 19:38:51 +0530 Subject: [PATCH 05/70] variable namings and cmmands updated --- scripts/install.bash | 14 +++++++------- scripts/install.bat | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/scripts/install.bash b/scripts/install.bash index 1c87777..5dbafd3 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -114,8 +114,8 @@ function forms-flow-analytics echo REDASH_REFERRER_POLICY=$REDASH_REFERRER_POLICY>>.env echo REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=$REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS>>.env - docker-compose -f analytics-docker-compose.yml run --rm server create_db - docker-compose -f analytics-docker-compose.yml up --build -d + docker-compose run --rm server create_db + docker-compose up --build -d } ############################################################# @@ -131,7 +131,7 @@ function forms-flow-bpm echo KEYCLOAK_BPM_CLIENT_SECRET=$KEYCLOAK_BPM_CLIENT_SECRET >>.env echo FORMSFLOW_API_URL=$FORMSFLOW_API_URL >>.env echo WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN >> .env - docker-compose -f docker-compose.yml up --build -d forms-flow-bpm + docker-compose up --build -d forms-flow-bpm } ############################################################# @@ -153,7 +153,7 @@ function forms-flow-api echo INSIGHT_API_KEY=$INSIGHT_API_KEY >> .env ) fi - docker-compose -f docker-compose.yml up --build -d forms-flow-webapi + docker-compose up --build -d forms-flow-webapi } ############################################################# @@ -167,13 +167,13 @@ function forms-flow-forms echo FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL>>.env - docker-compose -f docker-compose.yml up --build -d forms-flow-forms + docker-compose up --build -d forms-flow-forms } function forms-flow-web { cd ../docker-compose/ -docker-compose -f docker-compose.yml up --build -d forms-flow-web +docker-compose up --build -d forms-flow-web echo "********************** formsflow.ai is successfully installed ****************************" } @@ -193,7 +193,7 @@ function keycloak printf "%s " "Press enter to continue" read that echo Please wait, keycloak is setting up! - docker-compose -f docker-compose.yml up -d + docker-compose up --build -d keycloak } } function orderwithanalytics diff --git a/scripts/install.bat b/scripts/install.bat index 2116e70..3b952b7 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -41,11 +41,11 @@ EXIT /B %ERRORLEVEL% :find-my-ip FOR /F "tokens=4 delims= " %%i in ('route print ^| find " 0.0.0.0"') do set ip-add=%%i - set /p ip-addr=Confirm that your IPv4 address is %ip-add%? [y/n] - if %ip-addr%==y ( + set /p choice=Confirm that your IPv4 address is %ip-add%? [y/n] + if %choice%==y ( EXIT /B 0 ) else ( - set /p ip-addr="What is your IPv4 address?" + set /p ip-add="What is your IPv4 address?" ) EXIT /B 0 From a3116943fe60b76a902d0fa786138083df6bd7a1 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Tue, 27 Dec 2022 19:51:43 +0530 Subject: [PATCH 06/70] file-name chnages --- scripts/install.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install.bash b/scripts/install.bash index 5dbafd3..98287ff 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -114,8 +114,8 @@ function forms-flow-analytics echo REDASH_REFERRER_POLICY=$REDASH_REFERRER_POLICY>>.env echo REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=$REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS>>.env - docker-compose run --rm server create_db - docker-compose up --build -d + docker-compose -f analytics-docker-compose.yml run --rm server create_db + docker-compose -f analytics-docker-compose.yml up --build -d } ############################################################# From 43b492cb7c7ba6eec4394b4dbb6ec0a2f1dc763a Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Wed, 11 Jan 2023 10:18:26 +0530 Subject: [PATCH 07/70] V5.1.0 image added --- docker-compose/docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 7ea0960..a7803a6 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -46,7 +46,7 @@ services: - "27018:27017" forms-flow-web: - image: formsflow/forms-flow-web:v5.0.1 + image: formsflow/forms-flow-web:v5.1.0 volumes: - ./configuration/config.js:/usr/share/nginx/html/config/config.js links: @@ -55,7 +55,7 @@ services: - "3000:8080" forms-flow-forms: - image: formsflow/forms-flow-forms:v5.0.1 + image: formsflow/forms-flow-forms:v5.1.0 restart: always environment: DEBUG: formio:* @@ -81,7 +81,7 @@ services: - "5432:5432" forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.0.1 + image: formsflow/forms-flow-bpm:v5.1.0 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -125,7 +125,7 @@ services: - "6432:5432" forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.0.1 + image: formsflow/forms-flow-webapi:v5.1.0 restart: always links: - forms-flow-webapi-db From fdbcb69863d72ccfba33e30e7aaa557f3c090bff Mon Sep 17 00:00:00 2001 From: sreehari ps Date: Thu, 12 Jan 2023 10:19:26 +0530 Subject: [PATCH 08/70] Remove unused config --- scripts/install.bash | 2 -- scripts/install.bat | 2 -- 2 files changed, 4 deletions(-) diff --git a/scripts/install.bash b/scripts/install.bash index 98287ff..9ce9fc9 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -61,7 +61,6 @@ function installconfig REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55" REACT_APP_APPLICATION_NAME="formsflow.ai" REACT_APP_WEB_BASE_CUSTOM_URL="" - REACT_APP_FORMIO_JWT_SECRET="--- change me now ---" REACT_APP_USER_ACCESS_PERMISSIONS="{accessAllowApplications:false,accessAllowSubmissions:false}" echo window["_env_"] = "{">>config.js @@ -76,7 +75,6 @@ function installconfig echo REACT_APP_WEBSOCKET_ENCRYPT_KEY:$REACT_APP_WEBSOCKET_ENCRYPT_KEY>>config.js echo REACT_APP_APPLICATION_NAME:$REACT_APP_APPLICATION_NAME>>config.js echo REACT_APP_WEB_BASE_CUSTOM_URL:$REACT_APP_WEB_BASE_CUSTOM_URL>>config.js - echo REACT_APP_FORMIO_JWT_SECRET:$REACT_APP_FORMIO_JWT_SECRET>>config.js echo REACT_APP_USER_ACCESS_PERMISSIONS:$REACT_APP_USER_ACCESS_PERMISSIONS>>config.js echo "}";>>config.js } diff --git a/scripts/install.bat b/scripts/install.bat index 3b952b7..4e9b716 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -102,7 +102,6 @@ EXIT /B %ERRORLEVEL% set REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55", set REACT_APP_APPLICATION_NAME="formsflow.ai", set REACT_APP_WEB_BASE_CUSTOM_URL="", - set REACT_APP_FORMIO_JWT_SECRET="--- change me now ---", set REACT_APP_USER_ACCESS_PERMISSIONS={accessAllowApplications:false, accessAllowSubmissions:false} echo window["_env_"] = {>>%~1\config.js @@ -117,7 +116,6 @@ EXIT /B %ERRORLEVEL% echo REACT_APP_WEBSOCKET_ENCRYPT_KEY:%REACT_APP_WEBSOCKET_ENCRYPT_KEY%>>%~1\config.js echo REACT_APP_APPLICATION_NAME:%REACT_APP_APPLICATION_NAME%>>%~1\config.js echo REACT_APP_WEB_BASE_CUSTOM_URL:%REACT_APP_WEB_BASE_CUSTOM_URL%>>%~1\config.js - echo REACT_APP_FORMIO_JWT_SECRET:%REACT_APP_FORMIO_JWT_SECRET%>>%~1\config.js echo REACT_APP_USER_ACCESS_PERMISSIONS:%REACT_APP_USER_ACCESS_PERMISSIONS%>>%~1\config.js echo };>>%~1\config.js EXIT /B 0 From b1090d5298b7728fff2f77ff9d99eb149ec8e8c3 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Thu, 12 Jan 2023 11:41:09 +0530 Subject: [PATCH 09/70] latest changes --- docker-compose/docker-compose.yml | 1 + docker-compose/sample.env | 1 + 2 files changed, 2 insertions(+) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index a7803a6..8f6918a 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -63,6 +63,7 @@ services: ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_CLIENT_UI: ${FORMIO_CLIENT_UI:-false} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} ports: - "3001:3001" diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 4f69fea..2db6379 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -40,6 +40,7 @@ FORMIO_DEFAULT_PROJECT_URL=http://{your-ip-address}:3001 #FORMIO_ROOT_EMAIL=admin@example.com ##form.io admin password #FORMIO_ROOT_PASSWORD=changeme +#FORMIO_CLIENT_UI=false #++++++++++++++++--- FORM.IO ENV Variables - END ---+++++++++++++++++++++++++# From 31a9c06845eebe861baec68df88cae58f8ae427a Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Thu, 12 Jan 2023 16:56:12 +0530 Subject: [PATCH 10/70] env added --- docker-compose/analytics-docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose/analytics-docker-compose.yml b/docker-compose/analytics-docker-compose.yml index 72190e6..1b9870f 100644 --- a/docker-compose/analytics-docker-compose.yml +++ b/docker-compose/analytics-docker-compose.yml @@ -17,6 +17,7 @@ services: - '7000:5000' environment: REDASH_WEB_WORKERS: 4 + REDASH_MULTI_ORG: ${REDASH_MULTI_ORG:-false} scheduler: <<: *redash-service command: scheduler From 0931757a4251b04337157c1a5c76a2094d612d9e Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Thu, 12 Jan 2023 11:48:56 -0800 Subject: [PATCH 11/70] Adding new config and missing configs --- docker-compose/docker-compose.yml | 7 +++++++ scripts/install.bash | 2 ++ scripts/install.bat | 2 ++ 3 files changed, 11 insertions(+) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 8f6918a..bb3e5b9 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -107,6 +107,13 @@ services: - DATA_ANALYSIS_URL=${DATA_ANALYSIS_URL} - CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} - CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} + - MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - FORMSFLOW_ADMIN_URL=${FORMSFLOW_ADMIN_URL:-} + - REDIS_ENABLED=${REDIS_ENABLED:-false} + - REDIS_HOST=${REDIS_HOST} + - REDIS_PORT=${REDIS_PORT:-6379} + - REDIS_PASSCODE=${REDIS_PASSCODE:-changeme} + - SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-true} ports: - "8000:8080" links: diff --git a/scripts/install.bash b/scripts/install.bash index 9ce9fc9..c19c5ce 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -124,11 +124,13 @@ function forms-flow-bpm { FORMSFLOW_API_URL=http://$ipadd:5000 WEBSOCKET_SECURITY_ORIGIN=http://$ipadd:3000 + SESSION_COOKIE_SECURE=false echo KEYCLOAK_URL=$KEYCLOAK_URL >> .env echo KEYCLOAK_BPM_CLIENT_SECRET=$KEYCLOAK_BPM_CLIENT_SECRET >>.env echo FORMSFLOW_API_URL=$FORMSFLOW_API_URL >>.env echo WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN >> .env + echo SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE} >> .env docker-compose up --build -d forms-flow-bpm } diff --git a/scripts/install.bat b/scripts/install.bat index 4e9b716..5fbd058 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -139,11 +139,13 @@ EXIT /B %ERRORLEVEL% SETLOCAL set FORMSFLOW_API_URL=http://%ip-add%:5000 set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 + set SESSION_COOKIE_SECURE=false echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env echo FORMSFLOW_API_URL=%FORMSFLOW_API_URL%>>%~1\.env echo WEBSOCKET_SECURITY_ORIGIN=%WEBSOCKET_SECURITY_ORIGIN%>>%~1\.env + echo SESSION_COOKIE_SECURE=%SESSION_COOKIE_SECURE%>>%~1\.env ENDLOCAL docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-bpm timeout 6 From 58873e2615fccfa52734dec377f0b38191a62ba1 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Wed, 18 Jan 2023 16:37:12 -0800 Subject: [PATCH 12/70] Docker compose file for ARM processors --- .gitignore | 3 + docker-compose/docker-compose-arm64.yml | 191 ++++++++++++++++++++++++ docker-compose/docker-compose.yml | 2 +- docs/docker-compose/README.md | 15 +- 4 files changed, 203 insertions(+), 8 deletions(-) create mode 100644 docker-compose/docker-compose-arm64.yml diff --git a/.gitignore b/.gitignore index e69de29..7e45fe5 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,3 @@ + +docker-compose/mongodb/data/* +docker-compose/.DS_Store diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml new file mode 100644 index 0000000..a74526d --- /dev/null +++ b/docker-compose/docker-compose-arm64.yml @@ -0,0 +1,191 @@ +version: '3.7' + +services: + keycloak-db: + image: postgres:14 + volumes: + - ./postgres/keycloak:/data/postgres + environment: + POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} + POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} + POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} + + keycloak: + image: formsflow/forms-flow-keycloak-arm64:14.0.0 + volumes: + - ./configuration/imports:/opt/jboss/keycloak/imports + command: + - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING" + environment: + - DB_VENDOR=POSTGRES + - DB_ADDR=keycloak-db + - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} + - DB_USER=${KEYCLOAK_JDBC_USER-admin} + - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} + - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USER:-admin} + - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + ports: + - "8080:8080" + links: + - keycloak-db + + + forms-flow-forms-db: + image: mongo:5.0 + restart: always + environment: + MONGO_INITDB_ROOT_USERNAME: ${FORMIO_DB_USERNAME:-admin} + MONGO_INITDB_ROOT_PASSWORD: ${FORMIO_DB_PASSWORD:-changeme} + MONGO_INITDB_DATABASE: ${FORMIO_DB_NAME:-formio} + volumes: + - ./../../formsflow-forms/mongo_entrypoint/001_user.js:/docker-entrypoint-initdb.d/001_user.js:ro + - ./mongodb/data/db/:/data/db/ + - ./mongodb/data/log/:/var/log/mongodb/ + - ./mongodb/mongod.conf:/etc/mongod.conf + ports: + - "27018:27017" + + forms-flow-web: + image: formsflow/forms-flow-web:v5.1.0 + volumes: + - ./configuration/config.js:/usr/share/nginx/html/config/config.js + links: + - forms-flow-webapi + - keycloak + ports: + - "3000:8080" + + forms-flow-forms: + image: formsflow/forms-flow-forms:v5.1.0 + restart: always + environment: + DEBUG: formio:* + NODE_CONFIG: "{\"mongo\":\"mongodb://${FORMIO_DB_USERNAME:-admin}:${FORMIO_DB_PASSWORD:-changeme}@forms-flow-forms-db:27017/${FORMIO_DB_NAME:-formio}?authMechanism=SCRAM-SHA-1&authSource=admin\"}" + ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} + ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} + FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_CLIENT_UI: ${FORMIO_CLIENT_UI:-false} + FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} + ports: + - "3001:3001" + links: + - forms-flow-forms-db + + forms-flow-bpm-db: + image: postgres:14 + environment: + POSTGRES_USER: ${CAMUNDA_JDBC_USER:-admin} + POSTGRES_PASSWORD: ${CAMUNDA_JDBC_PASSWORD:-changeme} + POSTGRES_DB: ${CAMUNDA_JDBC_DB_NAME:-formsflow-bpm} + volumes: + - ./postgres/camunda:/var/lib/postgresql/data 777 + ports: + - "5432:5432" + + forms-flow-bpm: + image: formsflow/forms-flow-bpm:v5.1.0-arm64 + restart: always + environment: + - KEYCLOAK_URL=${KEYCLOAK_URL} + - KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} + - KEYCLOAK_CLIENTID=${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} + - KEYCLOAK_CLIENTSECRET=${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} + - CAMUNDA_JDBC_URL=${CAMUNDA_JDBC_URL:-jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm} + - CAMUNDA_JDBC_USER=${CAMUNDA_JDBC_USER:-admin} + - CAMUNDA_JDBC_PASSWORD=${CAMUNDA_JDBC_PASSWORD:-changeme} + - CAMUNDA_JDBC_DRIVER=${CAMUNDA_JDBC_DRIVER:-org.postgresql.Driver} + - CAMUNDA_APP_ROOT_LOG_FLAG=${CAMUNDA_APP_ROOT_LOG_FLAG:-error} + - FORMSFLOW_API_URL=${FORMSFLOW_API_URL} + - FORMIO_URL=${FORMIO_DEFAULT_PROJECT_URL} + - FORMIO_ROOT_EMAIL=${FORMIO_ROOT_EMAIL:-admin@example.com} + - FORMIO_ROOT_PASSWORD=${FORMIO_ROOT_PASSWORD:-changeme} + - APP_SECURITY_ORIGIN=${APP_SECURITY_ORIGIN:-*} + - WEBSOCKET_SECURITY_ORIGIN=${WEBSOCKET_SECURITY_ORIGIN} + - WEBSOCKET_MESSAGE_TYPE=${WEBSOCKET_MESSAGE_TYPE:-TASK_EVENT} + - WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-giert989jkwrgb@DR55} + - DATA_BUFFER_SIZE=${DATA_BUFFER_SIZE:-2} + - IDENTITY_PROVIDER_MAX_RESULT_SIZE=${IDENTITY_PROVIDER_MAX_RESULT_SIZE:-250} + - DATA_ANALYSIS_URL=${DATA_ANALYSIS_URL} + - CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} + - CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} + - MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - FORMSFLOW_ADMIN_URL=${FORMSFLOW_ADMIN_URL:-} + - REDIS_ENABLED=${REDIS_ENABLED:-false} + - REDIS_HOST=${REDIS_HOST} + - REDIS_PORT=${REDIS_PORT:-6379} + - REDIS_PASSCODE=${REDIS_PASSCODE:-changeme} + - SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-true} + ports: + - "8000:8080" + links: + - forms-flow-bpm-db + - keycloak + + forms-flow-webapi-db: + image: postgres:14 + restart: always + environment: + POSTGRES_USER: ${FORMSFLOW_API_DB_USER:-postgres} + POSTGRES_PASSWORD: ${FORMSFLOW_API_DB_PASSWORD:-changeme} + POSTGRES_DB: ${FORMSFLOW_API_DB_NAME:-webapi} + volumes: + - ./postgres/webapi:/var/lib/postgresql/data 777 + ports: + - "6432:5432" + + forms-flow-webapi: + image: formsflow/forms-flow-webapi:v5.1.0 + restart: always + links: + - forms-flow-webapi-db + - forms-flow-forms + - keycloak + entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- ./entrypoint.sh " + + volumes: + - ./:/app:rw + environment: + INSIGHT_API_KEY: ${INSIGHT_API_KEY} + INSIGHT_API_URL: ${INSIGHT_API_URL} + DATABASE_URL: ${FORMSFLOW_API_DB_URL:-postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi} + BPM_TOKEN_API: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/token + BPM_CLIENT_ID: ${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} + BPM_CLIENT_SECRET: ${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} + BPM_API_URL: ${BPM_API_URL} + FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} + JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration + JWT_OIDC_ALGORITHMS: 'RS256' + JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs + JWT_OIDC_ISSUER: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} + JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + JWT_OIDC_CACHING_ENABLED: 'True' + JWT_OIDC_JWKS_CACHE_TIMEOUT: 300 + KEYCLOAK_URL: ${KEYCLOAK_URL} + KEYCLOAK_URL_REALM: ${KEYCLOAK_URL_REALM:-forms-flow-ai} + WEB_API_BASE_URL: ${FORMSFLOW_API_URL} + FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} + FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} + CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH} + CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} + CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} + FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + ports: + - "5000:5000" + + proxy: + image: nginx:stable-alpine + volumes: + - ./configuration/conf.d/nginx.conf:/etc/nginx/nginx.conf + restart: unless-stopped + links: + - forms-flow-bpm + - forms-flow-web + - forms-flow-webapi + - forms-flow-forms + ports: + - "8081:8081" + + +volumes: + postgres: diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index bb3e5b9..aa6fe05 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -138,7 +138,7 @@ services: links: - forms-flow-webapi-db - forms-flow-forms - entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- ./entrypoint.sh" + entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- ./entrypoint.sh " volumes: - ./:/app:rw environment: diff --git a/docs/docker-compose/README.md b/docs/docker-compose/README.md index 9e04cac..8dc9f88 100644 --- a/docs/docker-compose/README.md +++ b/docs/docker-compose/README.md @@ -3,12 +3,13 @@ In this document, you will see the basic details to install and run the application manually and automatically. ## Table of Contents -1. [Manual Installation](#Manual-Installation) - * [Health Check](#health-check) - * [Running the application](#Running-the-application) - * [Stop the application](#To-stop-the-application) -2. [Quick Installation](#Quick-Installtion) -3. [Health Check](#health-check) +- [Forms-flow-ai Installation](#forms-flow-ai-installation) +- [Table of Contents](#table-of-contents) +- [Manual Installation](#manual-installation) + - [Running the application- "Analytics"](#running-the-application--analytics) + - [To stop the application](#to-stop-the-application) +- [Quick Installation](#quick-installation) + - [Health Check](#health-check) ## Manual Installation @@ -20,7 +21,7 @@ In this document, you will see the basic details to install and run the applicat * **NOTE : `{your-ip-address}` given inside the `.env` file should be changed to your host system IP address. Please take special care to identify the correct IP address if your system has multiple network cards** * Run `docker-compose up -d keycloak` to start keycloak -* Run `docker-compose up -d` to start. +* Run `docker-compose up -d` to start. (PS: Use docker-compose-arm64.yml file for ARM processors. e.g, Apple M1) *NOTE: Use --build command with the start command to reflect any future **.env** / code changes eg : `docker-compose up --build -d`* From fb0ab14af15c1a87c4ad68636cf473733afd27f3 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Thu, 19 Jan 2023 10:07:39 -0800 Subject: [PATCH 13/70] Incorporating PR comments --- docker-compose/configuration/config.js | 2 +- docker-compose/docker-compose-arm64.yml | 2 +- docker-compose/docker-compose.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose/configuration/config.js b/docker-compose/configuration/config.js index ec71f71..1280439 100644 --- a/docker-compose/configuration/config.js +++ b/docker-compose/configuration/config.js @@ -6,7 +6,7 @@ REACT_APP_KEYCLOAK_CLIENT:"forms-flow-web", REACT_APP_KEYCLOAK_URL_REALM:"{realm-name}", REACT_APP_KEYCLOAK_URL:"http://{your-ip-address}:8080", REACT_APP_WEB_BASE_URL:"http://{your-ip-address}:5000", -REACT_APP_BPM_API_URI:"http://{your-ip-address}:8000/camunda", +REACT_APP_BPM_URL:"http://{your-ip-address}:8000/camunda", REACT_APP_WEBSOCKET_ENCRYPT_KEY:"giert989jkwrgb@DR55", REACT_APP_APPLICATION_NAME:"formsflow.ai", REACT_APP_WEB_BASE_CUSTOM_URL:"", diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index a74526d..a45b9ab 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -140,7 +140,7 @@ services: - forms-flow-webapi-db - forms-flow-forms - keycloak - entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- ./entrypoint.sh " + entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " volumes: - ./:/app:rw diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index aa6fe05..2fb91d2 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -138,7 +138,7 @@ services: links: - forms-flow-webapi-db - forms-flow-forms - entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- ./entrypoint.sh " + entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " volumes: - ./:/app:rw environment: From ea91e7976192c30c9f79e5778e1c51a0f6e941c8 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Thu, 19 Jan 2023 10:22:10 -0800 Subject: [PATCH 14/70] Update sample.env --- docker-compose/sample.env | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 2db6379..8efdd32 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -191,3 +191,4 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #++++++++++++++++--- formsflow.ai Web Export PDF ENV Variables - END ---+++++++++++++++++++++++++# +#SESSION_COOKIE_SECURE=true From 1994c46897cf741885a03ac82837688d29b3ccc1 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Tue, 7 Feb 2023 16:21:36 -0800 Subject: [PATCH 15/70] Fixing issue with bash scripts on Mac (and ARM) --- docker-compose/analytics-docker-compose.yml | 2 +- scripts/install.bash | 76 ++++++++++++++------- 2 files changed, 51 insertions(+), 27 deletions(-) diff --git a/docker-compose/analytics-docker-compose.yml b/docker-compose/analytics-docker-compose.yml index 1b9870f..7427fa0 100644 --- a/docker-compose/analytics-docker-compose.yml +++ b/docker-compose/analytics-docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" x-redash-service: &redash-service - image: redash/redash:10.1.0.b50633 + image: formsflow/redash:10.1.4 depends_on: - postgres - redis diff --git a/scripts/install.bash b/scripts/install.bash index c19c5ce..5f6ab53 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -1,5 +1,14 @@ #!/bin/bash ipadd=$(hostname -I | awk '{print $1}') +if [ "$(uname)" == "Darwin" ]; then + ipadd=$(ipconfig getifaddr en0) +fi + +docker_compose_file='docker-compose.yml' +if [ "$(uname -m)" == "arm64" ]; then + docker_compose_file='docker-compose-arm64.yml' +fi + KEYCLOAK_BPM_CLIENT_SECRET="e4bdbd25-1467-4f7f-b993-bc4b1944c943" KEYCLOAK_URL="http://$ipadd:8080" KEYCLOAK_URL_REALM="forms-flow-ai" @@ -28,6 +37,7 @@ function main keycloak if [[ $ANALYTICS == 1 ]]; then forms-flow-analytics + forms-flow-forms elif [[ $ANALYTICS == 0 ]]; then forms-flow-forms fi @@ -37,19 +47,32 @@ function main forms-flow-web } +function is_up +{ + # Check if the web api is up + api_status="$(curl -LI http://$ipadd:5000 -o /dev/null -w '%{http_code}\n' -s)" + if [[ $api_status == 200 ]]; then + echo "********************** formsflow.ai is successfully installed ****************************" + else + echo "Finishing setup" + sleep 5 + is_up + fi + +} + ############################################################# ######################## creating config.js ################# ############################################################# function installconfig { - mkdir ../configuration - cd ../configuration/ + cd configuration/ pwd if [[ -f config.js ]]; then rm config.js fi - window["_env_"]="{" + NODE_ENV="production" REACT_APP_API_SERVER_URL="http://$ipadd:3001" REACT_APP_API_PROJECT_URL="http://$ipadd:3001" @@ -57,26 +80,27 @@ function installconfig REACT_APP_KEYCLOAK_URL_REALM="forms-flow-ai" REACT_APP_KEYCLOAK_URL="http://$ipadd:8080" REACT_APP_WEB_BASE_URL="http://$ipadd:5000" - REACT_APP_CAMUNDA_API_URI="http://$ipadd:8000/camunda" + REACT_APP_BPM_URL="http://$ipadd:8000/camunda" REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55" REACT_APP_APPLICATION_NAME="formsflow.ai" REACT_APP_WEB_BASE_CUSTOM_URL="" REACT_APP_USER_ACCESS_PERMISSIONS="{accessAllowApplications:false,accessAllowSubmissions:false}" - - echo window["_env_"] = "{">>config.js - echo NODE_ENV:%NODE_ENV%>>config.js - echo REACT_APP_API_SERVER_URL:$REACT_APP_API_SERVER_URL>>config.js - echo REACT_APP_API_PROJECT_URL:$REACT_APP_API_PROJECT_URL>>config.js - echo REACT_APP_KEYCLOAK_CLIENT:$REACT_APP_KEYCLOAK_CLIENT>>config.js - echo REACT_APP_KEYCLOAK_URL_REALM:$REACT_APP_KEYCLOAK_URL_REALM>>config.js - echo REACT_APP_KEYCLOAK_URL:$REACT_APP_KEYCLOAK_URL>>config.js - echo REACT_APP_WEB_BASE_URL:$REACT_APP_WEB_BASE_URL>>config.js - echo REACT_APP_CAMUNDA_API_URI:$REACT_APP_CAMUNDA_API_URI>>config.js - echo REACT_APP_WEBSOCKET_ENCRYPT_KEY:$REACT_APP_WEBSOCKET_ENCRYPT_KEY>>config.js - echo REACT_APP_APPLICATION_NAME:$REACT_APP_APPLICATION_NAME>>config.js - echo REACT_APP_WEB_BASE_CUSTOM_URL:$REACT_APP_WEB_BASE_CUSTOM_URL>>config.js - echo REACT_APP_USER_ACCESS_PERMISSIONS:$REACT_APP_USER_ACCESS_PERMISSIONS>>config.js - echo "}";>>config.js + + echo window['"_env_"'] = "{">>config.js + echo '"NODE_ENV"':"\""$NODE_ENV"\"",>>config.js + echo '"REACT_APP_API_SERVER_URL"':"\""$REACT_APP_API_SERVER_URL"\"",>>config.js + echo '"REACT_APP_API_PROJECT_URL"':"\""$REACT_APP_API_PROJECT_URL"\"",>>config.js + echo '"REACT_APP_KEYCLOAK_CLIENT"':"\""$REACT_APP_KEYCLOAK_CLIENT"\"",>>config.js + echo '"REACT_APP_KEYCLOAK_URL_REALM"':"\""$REACT_APP_KEYCLOAK_URL_REALM"\"",>>config.js + echo '"REACT_APP_KEYCLOAK_URL"':"\""$REACT_APP_KEYCLOAK_URL"\"",>>config.js + echo '"REACT_APP_WEB_BASE_URL"':"\""$REACT_APP_WEB_BASE_URL"\"",>>config.js + echo '"REACT_APP_BPM_URL"':"\""$REACT_APP_BPM_URL"\"",>>config.js + echo '"REACT_APP_WEBSOCKET_ENCRYPT_KEY"':"\""$REACT_APP_WEBSOCKET_ENCRYPT_KEY"\"",>>config.js + echo '"REACT_APP_APPLICATION_NAME"':"\""$REACT_APP_APPLICATION_NAME"\"",>>config.js + echo '"REACT_APP_WEB_BASE_CUSTOM_URL"':"\""$REACT_APP_WEB_BASE_CUSTOM_URL"\"",>>config.js + echo '"REACT_APP_USER_ACCESS_PERMISSIONS"':"$REACT_APP_USER_ACCESS_PERMISSIONS"}>>config.js + + cd ../ } ############################################################# @@ -97,7 +121,7 @@ function forms-flow-analytics REDASH_DATABASE_URL=postgresql://postgres:changeme@postgres/postgres REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=* REDASH_REFERRER_POLICY=no-referrer-when-downgrade - REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type, Authorization + REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type,Authorization echo REDASH_HOST=$REDASH_HOST>>.env echo PYTHONUNBUFFERED=$PYTHONUNBUFFERED>>.env echo REDASH_LOG_LEVEL=$REDASH_LOG_LEVEL>>.env @@ -131,7 +155,7 @@ function forms-flow-bpm echo FORMSFLOW_API_URL=$FORMSFLOW_API_URL >>.env echo WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN >> .env echo SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE} >> .env - docker-compose up --build -d forms-flow-bpm + docker-compose -f $docker_compose_file up --build -d forms-flow-bpm } ############################################################# @@ -153,7 +177,7 @@ function forms-flow-api echo INSIGHT_API_KEY=$INSIGHT_API_KEY >> .env ) fi - docker-compose up --build -d forms-flow-webapi + docker-compose -f $docker_compose_file up --build -d forms-flow-webapi } ############################################################# @@ -167,14 +191,14 @@ function forms-flow-forms echo FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL>>.env - docker-compose up --build -d forms-flow-forms + docker-compose -f $docker_compose_file up --build -d forms-flow-forms } function forms-flow-web { cd ../docker-compose/ -docker-compose up --build -d forms-flow-web -echo "********************** formsflow.ai is successfully installed ****************************" +docker-compose -f $docker_compose_file up --build -d forms-flow-web +is_up } ############################################################# @@ -193,7 +217,7 @@ function keycloak printf "%s " "Press enter to continue" read that echo Please wait, keycloak is setting up! - docker-compose up --build -d keycloak + docker-compose -f $docker_compose_file up --build -d keycloak } } function orderwithanalytics From 2be24323ecf716110892eee450acc3ce8eef346b Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Thu, 9 Feb 2023 13:17:23 -0800 Subject: [PATCH 16/70] Changes to fix installation issue --- docker-compose/docker-compose-arm64.yml | 2 +- docker-compose/docker-compose.yml | 2 +- scripts/install.bash | 59 ++++++++++++------------- scripts/uninstall.bash | 13 ++++++ 4 files changed, 44 insertions(+), 32 deletions(-) create mode 100644 scripts/uninstall.bash diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index a45b9ab..134d6ca 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -4,7 +4,7 @@ services: keycloak-db: image: postgres:14 volumes: - - ./postgres/keycloak:/data/postgres + - ./postgres/keycloak:/var/lib/postgresql/data environment: POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 2fb91d2..3081fcf 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -4,7 +4,7 @@ services: keycloak-db: image: postgres:14 volumes: - - ./postgres/keycloak:/data/postgres + - ./postgres/keycloak:/var/lib/postgresql/data environment: POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} diff --git a/scripts/install.bash b/scripts/install.bash index 5f6ab53..26fc1f5 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -36,18 +36,19 @@ function main { keycloak if [[ $ANALYTICS == 1 ]]; then - forms-flow-analytics - forms-flow-forms + formsFlowAnalytics + formsFlowForms elif [[ $ANALYTICS == 0 ]]; then - forms-flow-forms + formsFlowForms fi - forms-flow-bpm + + formsFlowBpm installconfig - forms-flow-api - forms-flow-web + formsFlowApi + formsFlowWeb } -function is_up +function isUp { # Check if the web api is up api_status="$(curl -LI http://$ipadd:5000 -o /dev/null -w '%{http_code}\n' -s)" @@ -56,7 +57,7 @@ function is_up else echo "Finishing setup" sleep 5 - is_up + isUp fi } @@ -87,18 +88,18 @@ function installconfig REACT_APP_USER_ACCESS_PERMISSIONS="{accessAllowApplications:false,accessAllowSubmissions:false}" echo window['"_env_"'] = "{">>config.js - echo '"NODE_ENV"':"\""$NODE_ENV"\"",>>config.js - echo '"REACT_APP_API_SERVER_URL"':"\""$REACT_APP_API_SERVER_URL"\"",>>config.js - echo '"REACT_APP_API_PROJECT_URL"':"\""$REACT_APP_API_PROJECT_URL"\"",>>config.js - echo '"REACT_APP_KEYCLOAK_CLIENT"':"\""$REACT_APP_KEYCLOAK_CLIENT"\"",>>config.js - echo '"REACT_APP_KEYCLOAK_URL_REALM"':"\""$REACT_APP_KEYCLOAK_URL_REALM"\"",>>config.js - echo '"REACT_APP_KEYCLOAK_URL"':"\""$REACT_APP_KEYCLOAK_URL"\"",>>config.js - echo '"REACT_APP_WEB_BASE_URL"':"\""$REACT_APP_WEB_BASE_URL"\"",>>config.js - echo '"REACT_APP_BPM_URL"':"\""$REACT_APP_BPM_URL"\"",>>config.js - echo '"REACT_APP_WEBSOCKET_ENCRYPT_KEY"':"\""$REACT_APP_WEBSOCKET_ENCRYPT_KEY"\"",>>config.js - echo '"REACT_APP_APPLICATION_NAME"':"\""$REACT_APP_APPLICATION_NAME"\"",>>config.js - echo '"REACT_APP_WEB_BASE_CUSTOM_URL"':"\""$REACT_APP_WEB_BASE_CUSTOM_URL"\"",>>config.js - echo '"REACT_APP_USER_ACCESS_PERMISSIONS"':"$REACT_APP_USER_ACCESS_PERMISSIONS"}>>config.js + echo "NODE_ENV":"\""$NODE_ENV"\"",>>config.js + echo "REACT_APP_API_SERVER_URL":"\""$REACT_APP_API_SERVER_URL"\"",>>config.js + echo "REACT_APP_API_PROJECT_URL":"\""$REACT_APP_API_PROJECT_URL"\"",>>config.js + echo "REACT_APP_KEYCLOAK_CLIENT":"\""$REACT_APP_KEYCLOAK_CLIENT"\"",>>config.js + echo "REACT_APP_KEYCLOAK_URL_REALM":"\""$REACT_APP_KEYCLOAK_URL_REALM"\"",>>config.js + echo "REACT_APP_KEYCLOAK_URL":"\""$REACT_APP_KEYCLOAK_URL"\"",>>config.js + echo "REACT_APP_WEB_BASE_URL":"\""$REACT_APP_WEB_BASE_URL"\"",>>config.js + echo "REACT_APP_BPM_URL":"\""$REACT_APP_BPM_URL"\"",>>config.js + echo "REACT_APP_WEBSOCKET_ENCRYPT_KEY":"\""$REACT_APP_WEBSOCKET_ENCRYPT_KEY"\"",>>config.js + echo "REACT_APP_APPLICATION_NAME":"\""$REACT_APP_APPLICATION_NAME"\"",>>config.js + echo "REACT_APP_WEB_BASE_CUSTOM_URL":"\""$REACT_APP_WEB_BASE_CUSTOM_URL"\"",>>config.js + echo "REACT_APP_USER_ACCESS_PERMISSIONS":"$REACT_APP_USER_ACCESS_PERMISSIONS"}>>config.js cd ../ } @@ -107,7 +108,7 @@ function installconfig ###################### forms-flow-Analytics ################# ############################################################# -function forms-flow-analytics +function formsFlowAnalytics { REDASH_HOST=http://$ipadd:7000 PYTHONUNBUFFERED=0 @@ -144,7 +145,7 @@ function forms-flow-analytics ######################## forms-flow-bpm ##################### ############################################################# -function forms-flow-bpm +function formsFlowBpm { FORMSFLOW_API_URL=http://$ipadd:5000 WEBSOCKET_SECURITY_ORIGIN=http://$ipadd:3000 @@ -162,21 +163,19 @@ function forms-flow-bpm ######################## forms-flow-webapi ################## ############################################################# -function forms-flow-api +function formsFlowApi { BPM_API_URL=http://$ipadd:8000/camunda + echo BPM_API_URL=$BPM_API_URL >> .env if [[ $ANALYTICS == 1 ]]; then ( echo What is your Redash API key? read INSIGHT_API_KEY INSIGHT_API_URL=http://$ipadd:7000 - ) - fi - echo BPM_API_URL=$BPM_API_URL >> .env - if [[ $ANALYTICS == 1 ]]; then ( echo INSIGHT_API_URL=$INSIGHT_API_URL >> .env echo INSIGHT_API_KEY=$INSIGHT_API_KEY >> .env ) fi + docker-compose -f $docker_compose_file up --build -d forms-flow-webapi } @@ -184,7 +183,7 @@ function forms-flow-api ######################## forms-flow-forms ################### ############################################################# -function forms-flow-forms +function formsFlowForms { cd ../docker-compose FORMIO_DEFAULT_PROJECT_URL=http://$ipadd:3001 @@ -194,11 +193,11 @@ function forms-flow-forms docker-compose -f $docker_compose_file up --build -d forms-flow-forms } -function forms-flow-web +function formsFlowWeb { cd ../docker-compose/ docker-compose -f $docker_compose_file up --build -d forms-flow-web -is_up +isUp } ############################################################# diff --git a/scripts/uninstall.bash b/scripts/uninstall.bash new file mode 100644 index 0000000..5a01a2e --- /dev/null +++ b/scripts/uninstall.bash @@ -0,0 +1,13 @@ +#!/bin/bash +docker_compose_file='docker-compose.yml' +if [ "$(uname -m)" == "arm64" ]; then + docker_compose_file='docker-compose-arm64.yml' +fi + +echo "Do you want to uninstall formsflow.ai installation? [y/n]" +read choice +if [[ $choice == "y" ]]; then + cd ../docker-compose + docker-compose -f analytics-docker-compose.yml down + docker-compose -f $docker_compose_file down +fi From 025a20ab9280e75fbbe8c2cde666d44c38ed9e7a Mon Sep 17 00:00:00 2001 From: Sumesh Punakkal Kariyil Date: Sun, 5 Mar 2023 23:24:37 -0800 Subject: [PATCH 17/70] Changing port for webapi from reserved 5000 for Mac installations --- .gitignore | 1 + docker-compose/docker-compose-arm64.yml | 2 +- scripts/install.bash | 8 +++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 7e45fe5..9d87475 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ docker-compose/mongodb/data/* docker-compose/.DS_Store +docker-compose/postgres/* diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 134d6ca..42b1981 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -171,7 +171,7 @@ services: CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} ports: - - "5000:5000" + - "5001:5000" proxy: image: nginx:stable-alpine diff --git a/scripts/install.bash b/scripts/install.bash index 26fc1f5..3771822 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -1,7 +1,9 @@ #!/bin/bash ipadd=$(hostname -I | awk '{print $1}') +webapi_port=5000 if [ "$(uname)" == "Darwin" ]; then ipadd=$(ipconfig getifaddr en0) + webapi_port=5001 fi docker_compose_file='docker-compose.yml' @@ -51,7 +53,7 @@ function main function isUp { # Check if the web api is up - api_status="$(curl -LI http://$ipadd:5000 -o /dev/null -w '%{http_code}\n' -s)" + api_status="$(curl -LI http://$ipadd:$webapi_port -o /dev/null -w '%{http_code}\n' -s)" if [[ $api_status == 200 ]]; then echo "********************** formsflow.ai is successfully installed ****************************" else @@ -80,7 +82,7 @@ function installconfig REACT_APP_KEYCLOAK_CLIENT="forms-flow-web" REACT_APP_KEYCLOAK_URL_REALM="forms-flow-ai" REACT_APP_KEYCLOAK_URL="http://$ipadd:8080" - REACT_APP_WEB_BASE_URL="http://$ipadd:5000" + REACT_APP_WEB_BASE_URL="http://$ipadd:$webapi_port" REACT_APP_BPM_URL="http://$ipadd:8000/camunda" REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55" REACT_APP_APPLICATION_NAME="formsflow.ai" @@ -147,7 +149,7 @@ function formsFlowAnalytics function formsFlowBpm { - FORMSFLOW_API_URL=http://$ipadd:5000 + FORMSFLOW_API_URL=http://$ipadd:$webapi_port WEBSOCKET_SECURITY_ORIGIN=http://$ipadd:3000 SESSION_COOKIE_SECURE=false From ce445d3c8bb1632117c962e1fedfa864c25a62c0 Mon Sep 17 00:00:00 2001 From: Sumesh Punakkal Kariyil Date: Mon, 6 Mar 2023 15:07:11 -0800 Subject: [PATCH 18/70] Changing analytics server expose port to 7001 --- README.md | 19 ++++++++++++------- docker-compose/analytics-docker-compose.yml | 2 +- .../imports/formsflow-ai-realm.json | 4 ++-- docker-compose/sample.env | 4 ++-- docs/docker-compose/README.md | 2 +- docs/forms-flow-ai-properties.md | 2 +- docs/helm/sample.env | 2 +- scripts/install.bash | 13 ++++++++----- scripts/install.bat | 4 ++-- 9 files changed, 30 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 74a7165..5044cc1 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,17 @@ In the following document, we’ll describe about the different project dependen ## Table of Contents -1. [Prerequisites](#prerequisites) -2. [Download the formsflow.ai](#download-the-formsflowai) -3. [Installation](#installation) - * [Docker](#docker-based-installation) - * [Openshift](#openshift-based-installation) -4. [Verifying the Installation Status](#verifying-the-installation-status) +- [Download and Installation](#download-and-installation) + - [Table of Contents](#table-of-contents) + - [Prerequisites](#prerequisites) + - [Download the formsflow.ai](#download-the-formsflowai) + - [Installation](#installation) + - [Docker Based Installation](#docker-based-installation) + - [Docker single click installation](#docker-single-click-installation) + - [Docker Full Deployment](#docker-full-deployment) + - [Openshift Based Installation](#openshift-based-installation) + - [Openshift Full Deployment](#openshift-full-deployment) + - [Verifying the Installation status](#verifying-the-installation-status) ## Prerequisites @@ -59,7 +64,7 @@ Follow the instructions on [docker installation guide](./docs/docker-compose/REA --- | --- | --- | --- | --- 1|`Keycloak`|Authentication|`http://localhost:8080`| `admin/changeme` 2|`forms-flow-forms`|form.io form building. This must be started earlier for resource role id's creation|`http://localhost:3001`|`admin@example.com/changeme` -3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7000`|Use the credentials used for registration / [Default user credentials](../docs/forms-flow-ai-properties.md) +3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7001`|Use the credentials used for registration / [Default user credentials](../docs/forms-flow-ai-properties.md) 4|`forms-flow-web`|formsflow Landing web app|`http://localhost:3000`|[Default user credentials](../docs/forms-flow-ai-properties.md) 5|`forms-flow-api`|API services|`http://localhost:5000`|`Authorization tocken from keycloak role based user credentials` 6|`forms-flow-bpm`|Camunda integration|`http://localhost:8000/camunda`| [Default user credentials](../docs/forms-flow-ai-properties.md) diff --git a/docker-compose/analytics-docker-compose.yml b/docker-compose/analytics-docker-compose.yml index 7427fa0..cb2d51b 100644 --- a/docker-compose/analytics-docker-compose.yml +++ b/docker-compose/analytics-docker-compose.yml @@ -14,7 +14,7 @@ services: <<: *redash-service command: server ports: - - '7000:5000' + - '7001:5000' environment: REDASH_WEB_WORKERS: 4 REDASH_MULTI_ORG: ${REDASH_MULTI_ORG:-false} diff --git a/docker-compose/configuration/imports/formsflow-ai-realm.json b/docker-compose/configuration/imports/formsflow-ai-realm.json index 6066193..864d395 100644 --- a/docker-compose/configuration/imports/formsflow-ai-realm.json +++ b/docker-compose/configuration/imports/formsflow-ai-realm.json @@ -816,14 +816,14 @@ { "clientId": "forms-flow-analytics", "description": "Redash-Analytics", - "adminUrl": "http://localhost:7000/saml/callback?org_slug=default", + "adminUrl": "http://localhost:7001/saml/callback?org_slug=default", "surrogateAuthRequired": false, "enabled": true, "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", "secret": "**********", "redirectUris": [ - "http://localhost:7000/*", + "http://localhost:7001/*", "*" ], "webOrigins": [], diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 8efdd32..2ada7e0 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -69,7 +69,7 @@ KEYCLOAK_URL=http://{your-ip-address}:8080 #----Insight Api Variables--------# ##Insight Api base end-point -INSIGHT_API_URL=http://{your-ip-address}:7000 +INSIGHT_API_URL=http://{your-ip-address}:7001 ##API_KEY from REDASH INSIGHT_API_KEY={API Key from Redash} @@ -77,7 +77,7 @@ INSIGHT_API_KEY={API Key from Redash} #++++++++++++++++--- formsflow.ai analytics - START ---+++++++++++++++++++++++++# -REDASH_HOST=http://{your-ip-address}:7000 +REDASH_HOST=http://{your-ip-address}:7001 PYTHONUNBUFFERED=0 REDASH_LOG_LEVEL=INFO REDASH_REDIS_URL=redis://redis:6379/0 diff --git a/docs/docker-compose/README.md b/docs/docker-compose/README.md index 8dc9f88..d7dc659 100644 --- a/docs/docker-compose/README.md +++ b/docs/docker-compose/README.md @@ -44,7 +44,7 @@ In this document, you will see the basic details to install and run the applicat * Now just run install.bat/bash according to your operating system. ### Health Check -* Analytics should be up and available for use at port defaulted to 7000 i.e. http://localhost:7000/ +* Analytics should be up and available for use at port defaulted to 7001 i.e. http://localhost:7001/ * Business Process Engine should be up and available for use at port defaulted to 8000 i.e. http://localhost:8000/camunda/ * FormIO should be up and available for use at port defaulted to 3001 i.e. http://localhost:3001/ * formsflow.ai Rest API should be up and available for use at port defaulted to 5000 i.e. http://localhost:5000/checkpoint diff --git a/docs/forms-flow-ai-properties.md b/docs/forms-flow-ai-properties.md index 1642149..00e9864 100644 --- a/docs/forms-flow-ai-properties.md +++ b/docs/forms-flow-ai-properties.md @@ -32,7 +32,7 @@ Variable name (Docker-compose) | Variable name (Docker) | Descreption | Default `DATA_BUFFER_SIZE`|` maxInMemorySize`|Configure a limit on the number of bytes that can be buffered for webclient|`2 (In MB)` `IDENTITY_PROVIDER_MAX_RESULT_SIZE`|` maxResultSize`|Maximum result size for Keycloak user queries|`250` `BPM_CLIENT_CONN_TIMEOUT`|`connectionTimeout `|Webclient Connection timeout in milli seconds|`5000` -`INSIGHT_API_URL`:triangular_flag_on_post: | | The forms-flow-analytics Api base end-point| +`INSIGHT_API_URL`:triangular_flag_on_post: | | The forms-flow-analytics Api base end-point| `INSIGHT_API_KEY` :triangular_flag_on_post: | | The forms-flow-analytics admin API key| `Get the api key from forms-flow-analytics (REDASH) by following the 'Get the Redash API Key' steps from [here](../forms-flow-analytics/README.md#get-the-redash-api-key)` `FORMSFLOW_API_DB_USER`|` POSTGRES_USER`|formsflow database postgres user used on installation to create the database|`postgres` `FORMSFLOW_API_DB_PASSWORD`|`POSTGRES_PASSWORD `|formsflow database postgres password used on installation to create the database|`changeme` diff --git a/docs/helm/sample.env b/docs/helm/sample.env index 8207514..41d6645 100644 --- a/docs/helm/sample.env +++ b/docs/helm/sample.env @@ -59,7 +59,7 @@ KEYCLOAK_BPM_CLIENT_SECRET={Client secret of forms-flow-bpm client} #----Insight Api Variables--------# ##Insight Api base end-point -INSIGHT_API_URL=http://{your-ip-address}:7000 +INSIGHT_API_URL=http://{your-ip-address}:7001 ##API_KEY from REDASH INSIGHT_API_KEY={API Key from Redash} diff --git a/scripts/install.bash b/scripts/install.bash index 3771822..625db2a 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -11,9 +11,7 @@ if [ "$(uname -m)" == "arm64" ]; then docker_compose_file='docker-compose-arm64.yml' fi -KEYCLOAK_BPM_CLIENT_SECRET="e4bdbd25-1467-4f7f-b993-bc4b1944c943" -KEYCLOAK_URL="http://$ipadd:8080" -KEYCLOAK_URL_REALM="forms-flow-ai" + echo "Do you wish to continue installation that include ANALYTICS? [y/n]" read choice if [[ $choice == "y" ]]; then @@ -30,6 +28,11 @@ elif [[ $choice == "n" ]]; then read -p "Enter your IP Adress: " ipadd echo "$ipadd" fi + +KEYCLOAK_BPM_CLIENT_SECRET="e4bdbd25-1467-4f7f-b993-bc4b1944c943" +KEYCLOAK_URL="http://$ipadd:8080" +KEYCLOAK_URL_REALM="forms-flow-ai" + ############################################################# ######################### main function ##################### ############################################################# @@ -112,7 +115,7 @@ function installconfig function formsFlowAnalytics { - REDASH_HOST=http://$ipadd:7000 + REDASH_HOST=http://$ipadd:7001 PYTHONUNBUFFERED=0 REDASH_LOG_LEVEL=INFO REDASH_REDIS_URL=redis://redis:6379/0 @@ -172,7 +175,7 @@ function formsFlowApi if [[ $ANALYTICS == 1 ]]; then ( echo What is your Redash API key? read INSIGHT_API_KEY - INSIGHT_API_URL=http://$ipadd:7000 + INSIGHT_API_URL=http://$ipadd:7001 echo INSIGHT_API_URL=$INSIGHT_API_URL >> .env echo INSIGHT_API_KEY=$INSIGHT_API_KEY >> .env ) diff --git a/scripts/install.bat b/scripts/install.bat index 5fbd058..45ac590 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -158,7 +158,7 @@ EXIT /B %ERRORLEVEL% :forms-flow-analytics SETLOCAL - set REDASH_HOST=http://%ip-add%:7000 + set REDASH_HOST=http://%ip-add%:7001 set PYTHONUNBUFFERED=0 set REDASH_LOG_LEVEL=INFO set REDASH_REDIS_URL=redis://redis:6379/0 @@ -201,7 +201,7 @@ EXIT /B %ERRORLEVEL% set BPM_API_URL=http://%ip-add%:8000/camunda if %~2==1 ( set /p INSIGHT_API_KEY="What is your Redash API key?" - set INSIGHT_API_URL=http://%ip-add%:7000 + set INSIGHT_API_URL=http://%ip-add%:7001 ) echo BPM_API_URL=%BPM_API_URL%>>%~1\.env if %~2==1 ( From 4dbb9307df2d87204cf59084234817061b533d87 Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Thu, 9 Mar 2023 18:28:51 +0530 Subject: [PATCH 19/70] uninstall.bat script updated --- scripts/uninstall.bat | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/uninstall.bat b/scripts/uninstall.bat index 8c39da8..d59f7e2 100644 --- a/scripts/uninstall.bat +++ b/scripts/uninstall.bat @@ -72,5 +72,7 @@ EXIT /B %ERRORLEVEL% :prune-docker docker volume prune -f - docker system prune - docker container prune + set images="31557345b2e8" "68141167a247" "8a7391477d59" "59baa6e3d1a8" "176399451347" "a12419875629" "360e5a526f8d" + (for %%a in (%images%) do ( + docker rmi %%a -f + )) From d8c59bdefe453b59af2438484c27fbf97228cfbe Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Mon, 13 Mar 2023 14:46:58 +0530 Subject: [PATCH 20/70] docker compose and sample.env updated --- docker-compose/docker-compose.yml | 2 +- docker-compose/sample.env | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 3081fcf..f33347a 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -63,8 +63,8 @@ services: ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} - FORMIO_CLIENT_UI: ${FORMIO_CLIENT_UI:-false} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} + NO_INSTALL: ${NO_INSTALL:-1} ports: - "3001:3001" links: diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 8efdd32..cc43e1d 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -23,6 +23,7 @@ ##URL of forms-flow-forms FORMIO_DEFAULT_PROJECT_URL=http://{your-ip-address}:3001 #FORMIO_JWT_SECRET=--- change me now --- +#NO_INSTALL=1 #-----Environment Variables for FormIO Datastore-----# From 7b8f442bcb58e3460c879492a56ad34f778b1e92 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Tue, 14 Mar 2023 09:52:35 +0530 Subject: [PATCH 21/70] readme updations --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 74a7165..0b8cb4d 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Follow the instructions on [docker installation guide](./docs/docker-compose/REA --- | --- | --- | --- | --- 1|`Keycloak`|Authentication|`http://localhost:8080`| `admin/changeme` 2|`forms-flow-forms`|form.io form building. This must be started earlier for resource role id's creation|`http://localhost:3001`|`admin@example.com/changeme` -3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7000`|Use the credentials used for registration / [Default user credentials](../docs/forms-flow-ai-properties.md) -4|`forms-flow-web`|formsflow Landing web app|`http://localhost:3000`|[Default user credentials](../docs/forms-flow-ai-properties.md) +3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7000`|Use the credentials used for registration / [Default user credentials](./docs/forms-flow-ai-properties.md) +4|`forms-flow-web`|formsflow Landing web app|`http://localhost:3000`|[Default user credentials](./docs/forms-flow-ai-properties.md) 5|`forms-flow-api`|API services|`http://localhost:5000`|`Authorization tocken from keycloak role based user credentials` -6|`forms-flow-bpm`|Camunda integration|`http://localhost:8000/camunda`| [Default user credentials](../docs/forms-flow-ai-properties.md) +6|`forms-flow-bpm`|Camunda integration|`http://localhost:8000/camunda`| [Default user credentials](./docs/forms-flow-ai-properties.md) From f789d79f0455e141a64fbb41821b64c77a329546 Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Tue, 14 Mar 2023 22:27:37 +0530 Subject: [PATCH 22/70] updated sample.env --- docker-compose/sample.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/sample.env b/docker-compose/sample.env index cc43e1d..0db4649 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -23,7 +23,7 @@ ##URL of forms-flow-forms FORMIO_DEFAULT_PROJECT_URL=http://{your-ip-address}:3001 #FORMIO_JWT_SECRET=--- change me now --- -#NO_INSTALL=1 +#NO_INSTALL=0 #-----Environment Variables for FormIO Datastore-----# From a4944930a4e6a2df55e9c7fee25603348eecd9c8 Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Wed, 15 Mar 2023 10:33:14 +0530 Subject: [PATCH 23/70] updated docker-compose.yml --- docker-compose/docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index f33347a..e7798cf 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -63,8 +63,9 @@ services: ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_CLIENT_UI: ${FORMIO_CLIENT_UI:0} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} - NO_INSTALL: ${NO_INSTALL:-1} + NO_INSTALL: ${NO_INSTALL:0} ports: - "3001:3001" links: From 5c7d9f3aacc62861a77a152e90fcc6d764faf2b6 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Wed, 15 Mar 2023 10:46:01 +0530 Subject: [PATCH 24/70] Update docker-compose.yml --- docker-compose/docker-compose.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index e7798cf..f33347a 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -63,9 +63,8 @@ services: ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} - FORMIO_CLIENT_UI: ${FORMIO_CLIENT_UI:0} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} - NO_INSTALL: ${NO_INSTALL:0} + NO_INSTALL: ${NO_INSTALL:-1} ports: - "3001:3001" links: From 61336112bcea133854c3a8d351672616a233f121 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Wed, 15 Mar 2023 10:47:30 +0530 Subject: [PATCH 25/70] Update sample.env --- docker-compose/sample.env | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 0db4649..eac0bbf 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -23,7 +23,7 @@ ##URL of forms-flow-forms FORMIO_DEFAULT_PROJECT_URL=http://{your-ip-address}:3001 #FORMIO_JWT_SECRET=--- change me now --- -#NO_INSTALL=0 +#NO_INSTALL=1 #-----Environment Variables for FormIO Datastore-----# @@ -41,7 +41,6 @@ FORMIO_DEFAULT_PROJECT_URL=http://{your-ip-address}:3001 #FORMIO_ROOT_EMAIL=admin@example.com ##form.io admin password #FORMIO_ROOT_PASSWORD=changeme -#FORMIO_CLIENT_UI=false #++++++++++++++++--- FORM.IO ENV Variables - END ---+++++++++++++++++++++++++# From a57f46a27927be5d22995956c712a74d638e5088 Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Fri, 17 Mar 2023 16:22:38 +0530 Subject: [PATCH 26/70] Uninstall updated --- docker-compose/docker-compose.yml | 8 ++++---- scripts/uninstall.bat | 5 +---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index f33347a..2a32c37 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -46,7 +46,7 @@ services: - "27018:27017" forms-flow-web: - image: formsflow/forms-flow-web:v5.1.0 + image: formsflow/forms-flow-web:v5.2.0-test volumes: - ./configuration/config.js:/usr/share/nginx/html/config/config.js links: @@ -55,7 +55,7 @@ services: - "3000:8080" forms-flow-forms: - image: formsflow/forms-flow-forms:v5.1.0 + image: formsflow/forms-flow-forms:v5.2.0-test restart: always environment: DEBUG: formio:* @@ -82,7 +82,7 @@ services: - "5432:5432" forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.1.0 + image: formsflow/forms-flow-bpm:v5.2.0-test restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -133,7 +133,7 @@ services: - "6432:5432" forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.1.0 + image: formsflow/forms-flow-webapi:v5.2.0-test restart: always links: - forms-flow-webapi-db diff --git a/scripts/uninstall.bat b/scripts/uninstall.bat index d59f7e2..9c95c74 100644 --- a/scripts/uninstall.bat +++ b/scripts/uninstall.bat @@ -72,7 +72,4 @@ EXIT /B %ERRORLEVEL% :prune-docker docker volume prune -f - set images="31557345b2e8" "68141167a247" "8a7391477d59" "59baa6e3d1a8" "176399451347" "a12419875629" "360e5a526f8d" - (for %%a in (%images%) do ( - docker rmi %%a -f - )) + docker image prune --all -f --filter label=Name="formsflow" \ No newline at end of file From 324a1dfa63df87ee719c67eb7e820b87c886a1cf Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Mon, 20 Mar 2023 16:42:55 +0530 Subject: [PATCH 27/70] v5.2.0-alpha image added --- docker-compose/docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 2a32c37..a1b9ffa 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -46,7 +46,7 @@ services: - "27018:27017" forms-flow-web: - image: formsflow/forms-flow-web:v5.2.0-test + image: formsflow/forms-flow-web:v5.2.0-alpha volumes: - ./configuration/config.js:/usr/share/nginx/html/config/config.js links: @@ -55,7 +55,7 @@ services: - "3000:8080" forms-flow-forms: - image: formsflow/forms-flow-forms:v5.2.0-test + image: formsflow/forms-flow-forms:v5.2.0-alpha restart: always environment: DEBUG: formio:* @@ -82,7 +82,7 @@ services: - "5432:5432" forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.2.0-test + image: formsflow/forms-flow-bpm:v5.2.0-alpha restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -133,7 +133,7 @@ services: - "6432:5432" forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.2.0-test + image: formsflow/forms-flow-webapi:v5.2.0-alpha restart: always links: - forms-flow-webapi-db From fa9bb9b628f0a6e63e53880dff2d4b4c1bf5f36d Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Thu, 23 Mar 2023 13:12:38 +0530 Subject: [PATCH 28/70] uninstall.bash updated --- README.md | 6 +++--- scripts/uninstall.bash | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 74a7165..0b8cb4d 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Follow the instructions on [docker installation guide](./docs/docker-compose/REA --- | --- | --- | --- | --- 1|`Keycloak`|Authentication|`http://localhost:8080`| `admin/changeme` 2|`forms-flow-forms`|form.io form building. This must be started earlier for resource role id's creation|`http://localhost:3001`|`admin@example.com/changeme` -3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7000`|Use the credentials used for registration / [Default user credentials](../docs/forms-flow-ai-properties.md) -4|`forms-flow-web`|formsflow Landing web app|`http://localhost:3000`|[Default user credentials](../docs/forms-flow-ai-properties.md) +3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7000`|Use the credentials used for registration / [Default user credentials](./docs/forms-flow-ai-properties.md) +4|`forms-flow-web`|formsflow Landing web app|`http://localhost:3000`|[Default user credentials](./docs/forms-flow-ai-properties.md) 5|`forms-flow-api`|API services|`http://localhost:5000`|`Authorization tocken from keycloak role based user credentials` -6|`forms-flow-bpm`|Camunda integration|`http://localhost:8000/camunda`| [Default user credentials](../docs/forms-flow-ai-properties.md) +6|`forms-flow-bpm`|Camunda integration|`http://localhost:8000/camunda`| [Default user credentials](./docs/forms-flow-ai-properties.md) diff --git a/scripts/uninstall.bash b/scripts/uninstall.bash index 5a01a2e..1ca5ea6 100644 --- a/scripts/uninstall.bash +++ b/scripts/uninstall.bash @@ -10,4 +10,5 @@ if [[ $choice == "y" ]]; then cd ../docker-compose docker-compose -f analytics-docker-compose.yml down docker-compose -f $docker_compose_file down + docker images | grep "forms-flow" | awk '{print $3}' | xargs docker image rm fi From ba477c854e700e16aad61d3d1d59ffc26bd10302 Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Mon, 27 Mar 2023 11:07:13 +0530 Subject: [PATCH 29/70] docker-compose-arm64.yml updated --- docker-compose/docker-compose-arm64.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 42b1981..956554b 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -66,6 +66,7 @@ services: FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} FORMIO_CLIENT_UI: ${FORMIO_CLIENT_UI:-false} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} + NO_INSTALL: ${NO_INSTALL:-1} ports: - "3001:3001" links: From 7645e41fcf72a40ece2e83bdaa9e26742b26b302 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Mon, 27 Mar 2023 11:28:06 +0530 Subject: [PATCH 30/70] Update docker-compose-arm64.yml --- docker-compose/docker-compose-arm64.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 956554b..71853d2 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -64,7 +64,6 @@ services: ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} - FORMIO_CLIENT_UI: ${FORMIO_CLIENT_UI:-false} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} NO_INSTALL: ${NO_INSTALL:-1} ports: From e0731c5656f228d6b96fd474ee1f408bd648339b Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Tue, 25 Apr 2023 12:24:52 -0700 Subject: [PATCH 31/70] Adding DB_PORT to keycloak and changes to network --- docker-compose/analytics-docker-compose.yml | 31 +++++++++++++-- docker-compose/docker-compose-arm64.yml | 44 ++++++++++++++++----- docker-compose/docker-compose.yml | 44 ++++++++++++++++----- scripts/install.bash | 14 +++---- scripts/install.bat | 14 +++---- scripts/uninstall.bash | 4 +- scripts/uninstall.bat | 4 +- 7 files changed, 114 insertions(+), 41 deletions(-) diff --git a/docker-compose/analytics-docker-compose.yml b/docker-compose/analytics-docker-compose.yml index cb2d51b..6c6dd7f 100644 --- a/docker-compose/analytics-docker-compose.yml +++ b/docker-compose/analytics-docker-compose.yml @@ -4,8 +4,8 @@ version: "3.7" x-redash-service: &redash-service image: formsflow/redash:10.1.4 depends_on: - - postgres - - redis + - postgres + - redis env_file: .env restart: always @@ -18,17 +18,29 @@ services: environment: REDASH_WEB_WORKERS: 4 REDASH_MULTI_ORG: ${REDASH_MULTI_ORG:-false} + networks: + - formsflow + scheduler: <<: *redash-service command: scheduler depends_on: - server + networks: + - formsflow + scheduled_worker: <<: *redash-service command: worker + networks: + - formsflow + adhoc_worker: <<: *redash-service command: worker + networks: + - formsflow + worker: <<: *redash-service command: worker @@ -37,9 +49,15 @@ services: WORKERS_COUNT: 1 depends_on: - server + networks: + - formsflow + redis: image: redis:6-alpine restart: always + networks: + - formsflow + postgres: image: postgres:9.6-alpine ports: @@ -47,7 +65,9 @@ services: restart: always env_file: .env volumes: - - ./postgres/analytics:/var/lib/postgresql/data + - ./postgres/analytics:/var/lib/postgresql/data 777 + networks: + - formsflow # Uncomment the following to enable redash mail server # email: # image: djfarrelly/maildev @@ -55,3 +75,8 @@ services: # - "1080:80" # restart: unless-stopped +volumes: + postgres: +networks: + formsflow: + driver: bridge diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 42b1981..10883f3 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -4,21 +4,25 @@ services: keycloak-db: image: postgres:14 volumes: - - ./postgres/keycloak:/var/lib/postgresql/data + - ./postgres/keycloak:/var/lib/postgresql/data 777 environment: POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} - + PGDATA: /var/lib/postgresql/data + networks: + - formsflow + keycloak: image: formsflow/forms-flow-keycloak-arm64:14.0.0 volumes: - ./configuration/imports:/opt/jboss/keycloak/imports - command: + command: - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING" environment: - DB_VENDOR=POSTGRES - DB_ADDR=keycloak-db + - DB_PORT=5432 - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} - DB_USER=${KEYCLOAK_JDBC_USER-admin} - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} @@ -28,8 +32,9 @@ services: - "8080:8080" links: - keycloak-db - - + networks: + - formsflow + forms-flow-forms-db: image: mongo:5.0 restart: always @@ -44,7 +49,9 @@ services: - ./mongodb/mongod.conf:/etc/mongod.conf ports: - "27018:27017" - + networks: + - formsflow + forms-flow-web: image: formsflow/forms-flow-web:v5.1.0 volumes: @@ -54,6 +61,8 @@ services: - keycloak ports: - "3000:8080" + networks: + - formsflow forms-flow-forms: image: formsflow/forms-flow-forms:v5.1.0 @@ -70,7 +79,9 @@ services: - "3001:3001" links: - forms-flow-forms-db - + networks: + - formsflow + forms-flow-bpm-db: image: postgres:14 environment: @@ -81,6 +92,8 @@ services: - ./postgres/camunda:/var/lib/postgresql/data 777 ports: - "5432:5432" + networks: + - formsflow forms-flow-bpm: image: formsflow/forms-flow-bpm:v5.1.0-arm64 @@ -120,7 +133,9 @@ services: links: - forms-flow-bpm-db - keycloak - + networks: + - formsflow + forms-flow-webapi-db: image: postgres:14 restart: always @@ -132,6 +147,8 @@ services: - ./postgres/webapi:/var/lib/postgresql/data 777 ports: - "6432:5432" + networks: + - formsflow forms-flow-webapi: image: formsflow/forms-flow-webapi:v5.1.0 @@ -172,7 +189,9 @@ services: FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} ports: - "5001:5000" - + networks: + - formsflow + proxy: image: nginx:stable-alpine volumes: @@ -185,7 +204,12 @@ services: - forms-flow-forms ports: - "8081:8081" - + networks: + - formsflow volumes: postgres: + mongodb: +networks: + formsflow: + driver: bridge diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 3081fcf..ae7beee 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -4,21 +4,25 @@ services: keycloak-db: image: postgres:14 volumes: - - ./postgres/keycloak:/var/lib/postgresql/data + - ./postgres/keycloak:/var/lib/postgresql/data 777 environment: POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} - + PGDATA: /var/lib/postgresql/data + networks: + - formsflow + keycloak: image: quay.io/keycloak/keycloak:14.0.0 volumes: - ./configuration/imports:/opt/jboss/keycloak/imports - command: + command: - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING" environment: - DB_VENDOR=POSTGRES - DB_ADDR=keycloak-db + - DB_PORT=5432 - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} - DB_USER=${KEYCLOAK_JDBC_USER-admin} - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} @@ -28,8 +32,9 @@ services: - "8080:8080" links: - keycloak-db - - + networks: + - formsflow + forms-flow-forms-db: image: mongo:5.0 restart: always @@ -44,7 +49,9 @@ services: - ./mongodb/mongod.conf:/etc/mongod.conf ports: - "27018:27017" - + networks: + - formsflow + forms-flow-web: image: formsflow/forms-flow-web:v5.1.0 volumes: @@ -53,6 +60,8 @@ services: - forms-flow-webapi ports: - "3000:8080" + networks: + - formsflow forms-flow-forms: image: formsflow/forms-flow-forms:v5.1.0 @@ -69,7 +78,9 @@ services: - "3001:3001" links: - forms-flow-forms-db - + networks: + - formsflow + forms-flow-bpm-db: image: postgres:14 environment: @@ -80,6 +91,8 @@ services: - ./postgres/camunda:/var/lib/postgresql/data 777 ports: - "5432:5432" + networks: + - formsflow forms-flow-bpm: image: formsflow/forms-flow-bpm:v5.1.0 @@ -119,7 +132,9 @@ services: links: - forms-flow-bpm-db - keycloak - + networks: + - formsflow + forms-flow-webapi-db: image: postgres:14 restart: always @@ -131,6 +146,8 @@ services: - ./postgres/webapi:/var/lib/postgresql/data 777 ports: - "6432:5432" + networks: + - formsflow forms-flow-webapi: image: formsflow/forms-flow-webapi:v5.1.0 @@ -169,7 +186,9 @@ services: FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} ports: - "5000:5000" - + networks: + - formsflow + proxy: image: nginx:stable-alpine volumes: @@ -182,7 +201,12 @@ services: - forms-flow-forms ports: - "8081:8081" - + networks: + - formsflow volumes: postgres: + mongodb: +networks: + formsflow: + driver: bridge diff --git a/scripts/install.bash b/scripts/install.bash index 625db2a..2e715c0 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -142,8 +142,8 @@ function formsFlowAnalytics echo REDASH_REFERRER_POLICY=$REDASH_REFERRER_POLICY>>.env echo REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=$REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS>>.env - docker-compose -f analytics-docker-compose.yml run --rm server create_db - docker-compose -f analytics-docker-compose.yml up --build -d + docker-compose -p formsflow-ai -f analytics-docker-compose.yml run --rm server create_db + docker-compose -p formsflow-ai -f analytics-docker-compose.yml up --build -d } ############################################################# @@ -161,7 +161,7 @@ function formsFlowBpm echo FORMSFLOW_API_URL=$FORMSFLOW_API_URL >>.env echo WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN >> .env echo SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE} >> .env - docker-compose -f $docker_compose_file up --build -d forms-flow-bpm + docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-bpm } ############################################################# @@ -181,7 +181,7 @@ function formsFlowApi ) fi - docker-compose -f $docker_compose_file up --build -d forms-flow-webapi + docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-webapi } ############################################################# @@ -195,13 +195,13 @@ function formsFlowForms echo FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL>>.env - docker-compose -f $docker_compose_file up --build -d forms-flow-forms + docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-forms } function formsFlowWeb { cd ../docker-compose/ -docker-compose -f $docker_compose_file up --build -d forms-flow-web +docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-web isUp } @@ -221,7 +221,7 @@ function keycloak printf "%s " "Press enter to continue" read that echo Please wait, keycloak is setting up! - docker-compose -f $docker_compose_file up --build -d keycloak + docker-compose -p formsflow-ai -f $docker_compose_file up --build -d keycloak } } function orderwithanalytics diff --git a/scripts/install.bat b/scripts/install.bat index 45ac590..31b0873 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -63,7 +63,7 @@ EXIT /B %ERRORLEVEL% if exist %~1\.env ( del %~1\.env ) - docker-compose -f %~1\docker-compose.yml up --build -d keycloak + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d keycloak timeout 5 set KEYCLOAK_URL=http://%ip-add%:8080 ) @@ -77,7 +77,7 @@ EXIT /B %ERRORLEVEL% set FORMIO_DEFAULT_PROJECT_URL=http://%ip-add%:3001 echo FORMIO_DEFAULT_PROJECT_URL=%FORMIO_DEFAULT_PROJECT_URL%>>%~1\.env - docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-forms + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-forms timeout 5 EXIT /B 0 @@ -127,7 +127,7 @@ EXIT /B %ERRORLEVEL% :forms-flow-web - docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-web + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-web EXIT /B 0 :: ############################################################# @@ -147,7 +147,7 @@ EXIT /B %ERRORLEVEL% echo WEBSOCKET_SECURITY_ORIGIN=%WEBSOCKET_SECURITY_ORIGIN%>>%~1\.env echo SESSION_COOKIE_SECURE=%SESSION_COOKIE_SECURE%>>%~1\.env ENDLOCAL - docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-bpm + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-bpm timeout 6 EXIT /B 0 @@ -185,8 +185,8 @@ EXIT /B %ERRORLEVEL% echo REDASH_REFERRER_POLICY=%REDASH_REFERRER_POLICY%>>%~1\.env echo REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=%REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS%>>%~1\.env ENDLOCAL - docker-compose -f %~1\analytics-docker-compose.yml run --rm server create_db - docker-compose -f %~1\analytics-docker-compose.yml up --build -d + docker-compose -p formsflow-ai -f %~1\analytics-docker-compose.yml run --rm server create_db + docker-compose -p formsflow-ai -f %~1\analytics-docker-compose.yml up --build -d timeout 5 EXIT /B 0 @@ -210,6 +210,6 @@ EXIT /B %ERRORLEVEL% ) ENDLOCAL - docker-compose -f %~1\docker-compose.yml up --build -d forms-flow-webapi + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-webapi diff --git a/scripts/uninstall.bash b/scripts/uninstall.bash index 5a01a2e..94ff840 100644 --- a/scripts/uninstall.bash +++ b/scripts/uninstall.bash @@ -8,6 +8,6 @@ echo "Do you want to uninstall formsflow.ai installation? [y/n]" read choice if [[ $choice == "y" ]]; then cd ../docker-compose - docker-compose -f analytics-docker-compose.yml down - docker-compose -f $docker_compose_file down + docker-compose -p formsflow-ai -f analytics-docker-compose.yml down + docker-compose -p formsflow-ai -f $docker_compose_file down fi diff --git a/scripts/uninstall.bat b/scripts/uninstall.bat index 8c39da8..6ace963 100644 --- a/scripts/uninstall.bat +++ b/scripts/uninstall.bat @@ -38,7 +38,7 @@ EXIT /B %ERRORLEVEL% :forms-flow-all if exist %~1 ( - docker-compose -f %~1\docker-compose.yml down + docker-compose -p formsflow-ai -f %~1\docker-compose.yml down ) EXIT /B 0 @@ -49,7 +49,7 @@ EXIT /B %ERRORLEVEL% :forms-flow-analytics if exist %~1 ( - docker-compose -f %~1\analytics-docker-compose.yml down + docker-compose -p formsflow-ai -f %~1\analytics-docker-compose.yml down ) EXIT /B 0 From 1a3ef422b996811b69ccfe09897cac95054c5ff5 Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Thu, 25 May 2023 13:22:55 +0530 Subject: [PATCH 32/70] Uninstall script updated --- docker-compose/docker-compose-arm64.yml | 8 ++++---- docker-compose/docker-compose.yml | 8 ++++---- scripts/install.bat | 18 ++++++++++++++++++ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 71853d2..6274d2f 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -46,7 +46,7 @@ services: - "27018:27017" forms-flow-web: - image: formsflow/forms-flow-web:v5.1.0 + image: formsflow/forms-flow-web:v5.1.1 volumes: - ./configuration/config.js:/usr/share/nginx/html/config/config.js links: @@ -56,7 +56,7 @@ services: - "3000:8080" forms-flow-forms: - image: formsflow/forms-flow-forms:v5.1.0 + image: formsflow/forms-flow-forms:v5.1.1 restart: always environment: DEBUG: formio:* @@ -83,7 +83,7 @@ services: - "5432:5432" forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.1.0-arm64 + image: formsflow/forms-flow-bpm:v5.1.1-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -134,7 +134,7 @@ services: - "6432:5432" forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.1.0 + image: formsflow/forms-flow-webapi:v5.1.1 restart: always links: - forms-flow-webapi-db diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index a1b9ffa..f42f953 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -46,7 +46,7 @@ services: - "27018:27017" forms-flow-web: - image: formsflow/forms-flow-web:v5.2.0-alpha + image: formsflow/forms-flow-web:v5.1.1 volumes: - ./configuration/config.js:/usr/share/nginx/html/config/config.js links: @@ -55,7 +55,7 @@ services: - "3000:8080" forms-flow-forms: - image: formsflow/forms-flow-forms:v5.2.0-alpha + image: formsflow/forms-flow-forms:v5.1.1 restart: always environment: DEBUG: formio:* @@ -82,7 +82,7 @@ services: - "5432:5432" forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.2.0-alpha + image: formsflow/forms-flow-bpm:v5.1.1 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -133,7 +133,7 @@ services: - "6432:5432" forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.2.0-alpha + image: formsflow/forms-flow-webapi:v5.1.1 restart: always links: - forms-flow-webapi-db diff --git a/scripts/install.bat b/scripts/install.bat index 45ac590..bf17147 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -33,8 +33,26 @@ EXIT /B %ERRORLEVEL% call:config ..\docker-compose\configuration call:forms-flow-web ..\docker-compose call:forms-flow-api ..\docker-compose %~1 + call:isUp EXIT /B 0 + +:: ############################################################# +:: ##################### Check working ######################## +:: ############################################################# + +:isUp + :Check if the web API is up + for /f %%a in ('curl -LI "http://%ip-add%:5000" -o nul -w "%%{http_code}" -s') do set "HTTP=%%a" + if "%HTTP%" == "200" ( + echo formsflow.ai is successfully installed. + EXIT /B 0 + ) else ( + echo Finishing setup. + ping 127.0.0.1 -n 6 >nul + goto isUp + ) + :: ############################################################# :: ################### Finding IP Address ###################### :: ############################################################# From 52903cb6a53a2251791c72c185da95004c6a1381 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Wed, 7 Jun 2023 18:48:21 -0700 Subject: [PATCH 33/70] Updated analytics-docker-compose.yml with 10.1.5 image --- docker-compose/analytics-docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/analytics-docker-compose.yml b/docker-compose/analytics-docker-compose.yml index 6c6dd7f..f40bcb6 100644 --- a/docker-compose/analytics-docker-compose.yml +++ b/docker-compose/analytics-docker-compose.yml @@ -2,7 +2,7 @@ version: "3.7" x-redash-service: &redash-service - image: formsflow/redash:10.1.4 + image: formsflow/redash:10.1.5 depends_on: - postgres - redis From 93e709d332d1ca05870c641290bafa0d3b6750e4 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Mon, 12 Jun 2023 11:39:23 +0530 Subject: [PATCH 34/70] Updating webapi port to 5001 for all OS Updating web api port to 5001, as 5000 is reserved in some OS (Mac). Rather than creating different docker-compose and nginx file, thought would be better to update for all. --- README.md | 2 +- .../configuration/conf.d/nginx.conf | 2 +- docker-compose/configuration/config.js | 26 +++++++++---------- docker-compose/docker-compose.yml | 2 +- docker-compose/sample.env | 2 +- docs/docker-compose/README.md | 2 +- docs/forms-flow-ai-properties.md | 2 +- docs/helm/sample.env | 2 +- scripts/install.bash | 4 +-- scripts/install.bat | 4 +-- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 7e16c7d..8a3d382 100644 --- a/README.md +++ b/README.md @@ -66,5 +66,5 @@ Follow the instructions on [docker installation guide](./docs/docker-compose/REA 2|`forms-flow-forms`|form.io form building. This must be started earlier for resource role id's creation|`http://localhost:3001`|`admin@example.com/changeme` 3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7001`|Use the credentials used for registration / [Default user credentials](./docs/forms-flow-ai-properties.md) 4|`forms-flow-web`|formsflow Landing web app|`http://localhost:3000`|[Default user credentials](./docs/forms-flow-ai-properties.md) -5|`forms-flow-api`|API services|`http://localhost:5000`|`Authorization tocken from keycloak role based user credentials` +5|`forms-flow-api`|API services|`http://localhost:5001`|`Authorization tocken from keycloak role based user credentials` 6|`forms-flow-bpm`|Camunda integration|`http://localhost:8000/camunda`| [Default user credentials](./docs/forms-flow-ai-properties.md) diff --git a/docker-compose/configuration/conf.d/nginx.conf b/docker-compose/configuration/conf.d/nginx.conf index 1f17a58..29b5f71 100644 --- a/docker-compose/configuration/conf.d/nginx.conf +++ b/docker-compose/configuration/conf.d/nginx.conf @@ -33,7 +33,7 @@ http { sub_filter ="/ ="/api/; sub_filter_once off; - proxy_pass http://forms-flow-webapi:5000; + proxy_pass http://forms-flow-webapi:5001; proxy_redirect off; } location ^~ /forms/ { diff --git a/docker-compose/configuration/config.js b/docker-compose/configuration/config.js index 1280439..e9c503d 100644 --- a/docker-compose/configuration/config.js +++ b/docker-compose/configuration/config.js @@ -1,15 +1,15 @@ window["_env_"] = { -NODE_ENV: "production", -REACT_APP_API_SERVER_URL:"http://{your-ip-address}:3001", -REACT_APP_API_PROJECT_URL:"http://{your-ip-address}:3001", -REACT_APP_KEYCLOAK_CLIENT:"forms-flow-web", -REACT_APP_KEYCLOAK_URL_REALM:"{realm-name}", -REACT_APP_KEYCLOAK_URL:"http://{your-ip-address}:8080", -REACT_APP_WEB_BASE_URL:"http://{your-ip-address}:5000", -REACT_APP_BPM_URL:"http://{your-ip-address}:8000/camunda", -REACT_APP_WEBSOCKET_ENCRYPT_KEY:"giert989jkwrgb@DR55", -REACT_APP_APPLICATION_NAME:"formsflow.ai", -REACT_APP_WEB_BASE_CUSTOM_URL:"", -REACT_APP_FORMIO_JWT_SECRET:"--- change me now ---", -REACT_APP_USER_ACCESS_PERMISSIONS:{accessAllowApplications:false, accessAllowSubmissions:false} + NODE_ENV: "production", + REACT_APP_API_SERVER_URL: "http://{your-ip-address}:3001", + REACT_APP_API_PROJECT_URL: "http://{your-ip-address}:3001", + REACT_APP_KEYCLOAK_CLIENT: "forms-flow-web", + REACT_APP_KEYCLOAK_URL_REALM: "{realm-name}", + REACT_APP_KEYCLOAK_URL: "http://{your-ip-address}:8080", + REACT_APP_WEB_BASE_URL: "http://{your-ip-address}:5001", + REACT_APP_BPM_URL: "http://{your-ip-address}:8000/camunda", + REACT_APP_WEBSOCKET_ENCRYPT_KEY: "giert989jkwrgb@DR55", + REACT_APP_APPLICATION_NAME: "formsflow.ai", + REACT_APP_WEB_BASE_CUSTOM_URL: "", + REACT_APP_FORMIO_JWT_SECRET: "--- change me now ---", + REACT_APP_USER_ACCESS_PERMISSIONS: { accessAllowApplications: false, accessAllowSubmissions: false } }; diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 685cf74..3b1327f 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -185,7 +185,7 @@ services: CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} ports: - - "5000:5000" + - "5001:5000" networks: - formsflow diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 6bbf245..8232781 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -119,7 +119,7 @@ USER_ACCESS_PERMISSIONS={"accessAllowApplications":false,"accessAllowSubmissions ##Camunda Rest API URI BPM_API_URL=http://{your-ip-address}:8000/camunda ##web Api End point -FORMSFLOW_API_URL=http://{your-ip-address}:5000 +FORMSFLOW_API_URL=http://{your-ip-address}:5001 ##web API CORS origins #FORMSFLOW_API_CORS_ORIGINS=* #Sentiment analysis url diff --git a/docs/docker-compose/README.md b/docs/docker-compose/README.md index d7dc659..547409c 100644 --- a/docs/docker-compose/README.md +++ b/docs/docker-compose/README.md @@ -47,7 +47,7 @@ In this document, you will see the basic details to install and run the applicat * Analytics should be up and available for use at port defaulted to 7001 i.e. http://localhost:7001/ * Business Process Engine should be up and available for use at port defaulted to 8000 i.e. http://localhost:8000/camunda/ * FormIO should be up and available for use at port defaulted to 3001 i.e. http://localhost:3001/ -* formsflow.ai Rest API should be up and available for use at port defaulted to 5000 i.e. http://localhost:5000/checkpoint +* formsflow.ai Rest API should be up and available for use at port defaulted to 5000 i.e. http://localhost:5001/checkpoint * formsflow.ai web application should be up and available for use at port defaulted to 3000 i.e. http://localhost:3000/ diff --git a/docs/forms-flow-ai-properties.md b/docs/forms-flow-ai-properties.md index 00e9864..c23d467 100644 --- a/docs/forms-flow-ai-properties.md +++ b/docs/forms-flow-ai-properties.md @@ -17,7 +17,7 @@ Variable name (Docker-compose) | Variable name (Docker) | Descreption | Default `CAMUNDA_POSTGRES_USER`| |Postgres Database Username used on installation to create the database|`admin` `CAMUNDA_POSTGRES_PASSWORD`| |Postgres Database Password used on installation to create the database|`changeme` `CAMUNDA_JDBC_DB_NAME`| |Postgres Database Name used on installation to create the database|`formsflow-bpm` -`FORMSFLOW_API_URL`:triangular_flag_on_post:|`REACT_APP_WEB_BASE_URL`|formsflow.ai Rest API URI|`http://{your-ip-address}:5000` +`FORMSFLOW_API_URL`:triangular_flag_on_post:|`REACT_APP_WEB_BASE_URL`|formsflow.ai Rest API URI|`http://{your-ip-address}:5001` `FORMIO_DEFAULT_PROJECT_URL`:triangular_flag_on_post:|` FORMIO_URL`|The URL of the forms-flow-forms server|`http://{your-ip-address}:3001` `FORMIO_ROOT_EMAIL`|`ROOT_EMAIL `|forms-flow-forms admin login|`admin@example.com` `FORMIO_ROOT_PASSWORD`|`ROOT_PASSWORD `|forms-flow-forms admin password|`changeme` diff --git a/docs/helm/sample.env b/docs/helm/sample.env index 41d6645..89a4cc8 100644 --- a/docs/helm/sample.env +++ b/docs/helm/sample.env @@ -104,7 +104,7 @@ USER_ACCESS_PERMISSIONS={"accessAllowApplications":false,"accessAllowSubmissions ##Camunda Rest API URI BPM_API_URL=http://{your-ip-address}:8000/camunda ##web Api End point -FORMSFLOW_API_URL=http://{your-ip-address}:5000 +FORMSFLOW_API_URL=http://{your-ip-address}:5001 ##web API CORS origins #FORMSFLOW_API_CORS_ORIGINS=* diff --git a/scripts/install.bash b/scripts/install.bash index 2e715c0..b173d4c 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -1,9 +1,9 @@ #!/bin/bash ipadd=$(hostname -I | awk '{print $1}') -webapi_port=5000 +webapi_port=5001 if [ "$(uname)" == "Darwin" ]; then ipadd=$(ipconfig getifaddr en0) - webapi_port=5001 + # webapi_port=5001 fi docker_compose_file='docker-compose.yml' diff --git a/scripts/install.bat b/scripts/install.bat index 9db9cb4..adc8097 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -115,7 +115,7 @@ EXIT /B %ERRORLEVEL% set REACT_APP_KEYCLOAK_CLIENT="forms-flow-web", set REACT_APP_KEYCLOAK_URL_REALM="forms-flow-ai", set REACT_APP_KEYCLOAK_URL="http://%ip-add%:8080", - set REACT_APP_WEB_BASE_URL="http://%ip-add%:5000", + set REACT_APP_WEB_BASE_URL="http://%ip-add%:5001", set REACT_APP_BPM_URL="http://%ip-add%:8000/camunda", set REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55", set REACT_APP_APPLICATION_NAME="formsflow.ai", @@ -155,7 +155,7 @@ EXIT /B %ERRORLEVEL% :forms-flow-bpm SETLOCAL - set FORMSFLOW_API_URL=http://%ip-add%:5000 + set FORMSFLOW_API_URL=http://%ip-add%:5001 set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 set SESSION_COOKIE_SECURE=false From 789aded9fb1ace19e9bb16c051f983c1b35699f5 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Sun, 2 Jul 2023 23:20:12 -0700 Subject: [PATCH 35/70] Update README.md readme updation for the change in port --- docs/docker-compose/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docker-compose/README.md b/docs/docker-compose/README.md index 547409c..5ade480 100644 --- a/docs/docker-compose/README.md +++ b/docs/docker-compose/README.md @@ -47,7 +47,7 @@ In this document, you will see the basic details to install and run the applicat * Analytics should be up and available for use at port defaulted to 7001 i.e. http://localhost:7001/ * Business Process Engine should be up and available for use at port defaulted to 8000 i.e. http://localhost:8000/camunda/ * FormIO should be up and available for use at port defaulted to 3001 i.e. http://localhost:3001/ -* formsflow.ai Rest API should be up and available for use at port defaulted to 5000 i.e. http://localhost:5001/checkpoint +* formsflow.ai Rest API should be up and available for use at port defaulted to 5001 i.e. http://localhost:5001/checkpoint * formsflow.ai web application should be up and available for use at port defaulted to 3000 i.e. http://localhost:3000/ From acb9d55b804dde0425f74e757a11476d4b046c4d Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Mon, 3 Jul 2023 00:36:11 -0700 Subject: [PATCH 36/70] 5.2.0-alpha changes --- README.md | 2 +- .../configuration/conf.d/nginx.conf | 2 +- docker-compose/docker-compose.yml | 49 ++++++++++++++++--- docker-compose/sample.env | 40 ++++++++++++++- docs/docker-compose/README.md | 2 +- docs/forms-flow-ai-properties.md | 2 +- docs/helm/sample.env | 2 +- scripts/install.bash | 4 +- scripts/install.bat | 21 ++++++-- 9 files changed, 106 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 7e16c7d..8a3d382 100644 --- a/README.md +++ b/README.md @@ -66,5 +66,5 @@ Follow the instructions on [docker installation guide](./docs/docker-compose/REA 2|`forms-flow-forms`|form.io form building. This must be started earlier for resource role id's creation|`http://localhost:3001`|`admin@example.com/changeme` 3|`forms-flow-analytics`|Redash analytics server, This must be started earlier for redash key creation|`http://localhost:7001`|Use the credentials used for registration / [Default user credentials](./docs/forms-flow-ai-properties.md) 4|`forms-flow-web`|formsflow Landing web app|`http://localhost:3000`|[Default user credentials](./docs/forms-flow-ai-properties.md) -5|`forms-flow-api`|API services|`http://localhost:5000`|`Authorization tocken from keycloak role based user credentials` +5|`forms-flow-api`|API services|`http://localhost:5001`|`Authorization tocken from keycloak role based user credentials` 6|`forms-flow-bpm`|Camunda integration|`http://localhost:8000/camunda`| [Default user credentials](./docs/forms-flow-ai-properties.md) diff --git a/docker-compose/configuration/conf.d/nginx.conf b/docker-compose/configuration/conf.d/nginx.conf index 1f17a58..29b5f71 100644 --- a/docker-compose/configuration/conf.d/nginx.conf +++ b/docker-compose/configuration/conf.d/nginx.conf @@ -33,7 +33,7 @@ http { sub_filter ="/ ="/api/; sub_filter_once off; - proxy_pass http://forms-flow-webapi:5000; + proxy_pass http://forms-flow-webapi:5001; proxy_redirect off; } location ^~ /forms/ { diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 685cf74..5d199da 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -53,18 +53,53 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.1.1 - volumes: - - ./configuration/config.js:/usr/share/nginx/html/config/config.js + image: formsflow/forms-flow-web:v5.2.0-alpha links: - forms-flow-webapi + args: + - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js} + - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js} + - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js} + - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js} + - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js} + - NODE_ENV=${NODE_ENV:-production} + environment: + - NODE_ENV=${NODE_ENV:-production} + - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} + - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} + - REACT_APP_KEYCLOAK_CLIENT=${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + - REACT_APP_WEB_BASE_URL=${FORMSFLOW_API_URL} + - REACT_APP_BPM_URL=${BPM_API_URL} + - REACT_APP_WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-giert989jkwrgb@DR55} + - REACT_APP_KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} + - REACT_APP_KEYCLOAK_URL=${KEYCLOAK_URL} + - REACT_APP_APPLICATION_NAME=${APPLICATION_NAME:-formsflow.ai} + - REACT_APP_ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK=${ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK:-false} + - REACT_APP_WEB_BASE_CUSTOM_URL=${WEB_BASE_CUSTOM_URL} + - REACT_APP_MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - REACT_APP_MT_ADMIN_BASE_URL=${MT_ADMIN_BASE_URL} + - REACT_APP_MT_ADMIN_BASE_URL_VERSION=${MT_ADMIN_BASE_URL_VERSION} + - REACT_APP_CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} + - REACT_APP_CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} + - REACT_APP_DRAFT_ENABLED=${DRAFT_ENABLED:-false} + - REACT_APP_DRAFT_POLLING_RATE=${DRAFT_POLLING_RATE:-15000} + - REACT_APP_EXPORT_PDF_ENABLED=${EXPORT_PDF_ENABLED:-false} + - REACT_APP_PUBLIC_WORKFLOW_ENABLED=${PUBLIC_WORKFLOW_ENABLED:-false} + - REACT_APP_DOCUMENT_SERVICE_URL=${DOCUMENT_SERVICE_URL} + - REACT_APP_CUSTOM_THEME_URL=${CUSTOM_THEME_URL} + - REACT_APP_KEYCLOAK_ENABLE_CLIENT_AUTH=${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + - REACT_APP_ENABLE_FORMS_MODULE=${ENABLE_FORMS_MODULE:-true} + - REACT_APP_ENABLE_TASKS_MODULE=${ENABLE_TASKS_MODULE:-true} + - REACT_APP_ENABLE_DASHBOARDS_MODULE=${ENABLE_DASHBOARDS_MODULE:-true} + - REACT_APP_ENABLE_PROCESSES_MODULE=${ENABLE_PROCESSES_MODULE:-true} + - REACT_APP_ENABLE_APPLICATIONS_MODULE=${ENABLE_APPLICATIONS_MODULE:-true} ports: - "3000:8080" networks: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.1.1 + image: formsflow/forms-flow-forms:v5.2.0-alpha restart: always environment: DEBUG: formio:* @@ -95,7 +130,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.1.1 + image: formsflow/forms-flow-bpm:v5.2.0-alpha restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -150,7 +185,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.1.1 + image: formsflow/forms-flow-webapi:v5.2.0-alpha restart: always links: - forms-flow-webapi-db @@ -185,7 +220,7 @@ services: CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} ports: - - "5000:5000" + - "5001:5000" networks: - formsflow diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 6bbf245..ac0ea42 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -119,7 +119,7 @@ USER_ACCESS_PERMISSIONS={"accessAllowApplications":false,"accessAllowSubmissions ##Camunda Rest API URI BPM_API_URL=http://{your-ip-address}:8000/camunda ##web Api End point -FORMSFLOW_API_URL=http://{your-ip-address}:5000 +FORMSFLOW_API_URL=http://{your-ip-address}:5001 ##web API CORS origins #FORMSFLOW_API_CORS_ORIGINS=* #Sentiment analysis url @@ -192,3 +192,41 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #SESSION_COOKIE_SECURE=true + +#++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - START ---+++++++++++++++++++++++++# + + +#The MF Variables below are used to get MicroFrontend Components Created + +##For running locally or if have custom changes then change the url to the one forms-flow-web folder content is running +#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js + +## Refer Github Repo https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends and update to your own custom implementation for the Components here +#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js +#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js +#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js +#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js +#++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# + + +#++++++++++++++++--- formsflow.ai Web Modules and themeing ENV Variables - START ---+++++++++++++++++++++++++# + +# Only use if need to disable a particular module in forms-flow-web, default is true for all. +#ENABLE_FORMS_MODULE=true +#ENABLE_TASKS_MODULE=true +#ENABLE_DASHBOARDS_MODULE=true +#ENABLE_PROCESSES_MODULE=true +#ENABLE_APPLICATIONS_MODULE=true + +#Custom theme URL +#Used for providing theming configuration in a url that returns json format +# Example to change the theme a theme.json can be given with content: +# `{ +# "--navbar-background": "blue", +# "--navbar-items": "grey", +# "--navbar-active": "white" +# }` + +#CUSTOM_THEME_URL= + +#++++++++++++++++--- formsflow.ai Modules and themeing ENV Variables - STOP ---+++++++++++++++++++++++++# \ No newline at end of file diff --git a/docs/docker-compose/README.md b/docs/docker-compose/README.md index d7dc659..5ade480 100644 --- a/docs/docker-compose/README.md +++ b/docs/docker-compose/README.md @@ -47,7 +47,7 @@ In this document, you will see the basic details to install and run the applicat * Analytics should be up and available for use at port defaulted to 7001 i.e. http://localhost:7001/ * Business Process Engine should be up and available for use at port defaulted to 8000 i.e. http://localhost:8000/camunda/ * FormIO should be up and available for use at port defaulted to 3001 i.e. http://localhost:3001/ -* formsflow.ai Rest API should be up and available for use at port defaulted to 5000 i.e. http://localhost:5000/checkpoint +* formsflow.ai Rest API should be up and available for use at port defaulted to 5001 i.e. http://localhost:5001/checkpoint * formsflow.ai web application should be up and available for use at port defaulted to 3000 i.e. http://localhost:3000/ diff --git a/docs/forms-flow-ai-properties.md b/docs/forms-flow-ai-properties.md index 00e9864..c23d467 100644 --- a/docs/forms-flow-ai-properties.md +++ b/docs/forms-flow-ai-properties.md @@ -17,7 +17,7 @@ Variable name (Docker-compose) | Variable name (Docker) | Descreption | Default `CAMUNDA_POSTGRES_USER`| |Postgres Database Username used on installation to create the database|`admin` `CAMUNDA_POSTGRES_PASSWORD`| |Postgres Database Password used on installation to create the database|`changeme` `CAMUNDA_JDBC_DB_NAME`| |Postgres Database Name used on installation to create the database|`formsflow-bpm` -`FORMSFLOW_API_URL`:triangular_flag_on_post:|`REACT_APP_WEB_BASE_URL`|formsflow.ai Rest API URI|`http://{your-ip-address}:5000` +`FORMSFLOW_API_URL`:triangular_flag_on_post:|`REACT_APP_WEB_BASE_URL`|formsflow.ai Rest API URI|`http://{your-ip-address}:5001` `FORMIO_DEFAULT_PROJECT_URL`:triangular_flag_on_post:|` FORMIO_URL`|The URL of the forms-flow-forms server|`http://{your-ip-address}:3001` `FORMIO_ROOT_EMAIL`|`ROOT_EMAIL `|forms-flow-forms admin login|`admin@example.com` `FORMIO_ROOT_PASSWORD`|`ROOT_PASSWORD `|forms-flow-forms admin password|`changeme` diff --git a/docs/helm/sample.env b/docs/helm/sample.env index 41d6645..89a4cc8 100644 --- a/docs/helm/sample.env +++ b/docs/helm/sample.env @@ -104,7 +104,7 @@ USER_ACCESS_PERMISSIONS={"accessAllowApplications":false,"accessAllowSubmissions ##Camunda Rest API URI BPM_API_URL=http://{your-ip-address}:8000/camunda ##web Api End point -FORMSFLOW_API_URL=http://{your-ip-address}:5000 +FORMSFLOW_API_URL=http://{your-ip-address}:5001 ##web API CORS origins #FORMSFLOW_API_CORS_ORIGINS=* diff --git a/scripts/install.bash b/scripts/install.bash index 2e715c0..80e70f3 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -1,9 +1,9 @@ #!/bin/bash ipadd=$(hostname -I | awk '{print $1}') -webapi_port=5000 +webapi_port=5001 if [ "$(uname)" == "Darwin" ]; then ipadd=$(ipconfig getifaddr en0) - webapi_port=5001 + #webapi_port=5001 fi docker_compose_file='docker-compose.yml' diff --git a/scripts/install.bat b/scripts/install.bat index 9db9cb4..d3a6e70 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -30,7 +30,7 @@ EXIT /B %ERRORLEVEL% ) call:forms-flow-forms ..\docker-compose call:forms-flow-bpm ..\docker-compose - call:config ..\docker-compose\configuration + :: call:config ..\docker-compose\configuration call:forms-flow-web ..\docker-compose call:forms-flow-api ..\docker-compose %~1 call:isUp @@ -115,7 +115,7 @@ EXIT /B %ERRORLEVEL% set REACT_APP_KEYCLOAK_CLIENT="forms-flow-web", set REACT_APP_KEYCLOAK_URL_REALM="forms-flow-ai", set REACT_APP_KEYCLOAK_URL="http://%ip-add%:8080", - set REACT_APP_WEB_BASE_URL="http://%ip-add%:5000", + set REACT_APP_WEB_BASE_URL="http://%ip-add%:5001", set REACT_APP_BPM_URL="http://%ip-add%:8000/camunda", set REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55", set REACT_APP_APPLICATION_NAME="formsflow.ai", @@ -145,6 +145,21 @@ EXIT /B %ERRORLEVEL% :forms-flow-web + SETLOCAL + set MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js + set MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js + set MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js + set MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js + set MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js + set NODE_ENV=production + + echo MF_FORMSFLOW_WEB_URL=%MF_FORMSFLOW_WEB_URL%>>%~1\.env + echo MF_FORMSFLOW_NAV_URL=%MF_FORMSFLOW_NAV_URL%>>%~1\.env + echo MF_FORMSFLOW_SERVICE_URL=%MF_FORMSFLOW_SERVICE_URL%>>%~1\.env + echo MF_FORMSFLOW_ADMIN_URL=%MF_FORMSFLOW_ADMIN_URL%>>%~1\.env + echo MF_FORMSFLOW_THEME_URL=%MF_FORMSFLOW_THEME_URL%>>%~1\.env + echo NODE_ENV=%NODE_ENV%>>%~1\.env + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-web EXIT /B 0 @@ -155,7 +170,7 @@ EXIT /B %ERRORLEVEL% :forms-flow-bpm SETLOCAL - set FORMSFLOW_API_URL=http://%ip-add%:5000 + set FORMSFLOW_API_URL=http://%ip-add%:5001 set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 set SESSION_COOKIE_SECURE=false From 010615bfc541aa796572458422cec84a03cd2fb2 Mon Sep 17 00:00:00 2001 From: sinto-aot Date: Mon, 3 Jul 2023 01:27:20 -0700 Subject: [PATCH 37/70] updated docker-compose.yml --- docker-compose/docker-compose.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 5d199da..88c7970 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -56,14 +56,12 @@ services: image: formsflow/forms-flow-web:v5.2.0-alpha links: - forms-flow-webapi - args: - - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js} - - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js} - - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js} - - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js} - - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js} - - NODE_ENV=${NODE_ENV:-production} environment: + - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js} + - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js} + - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js} + - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js} + - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -93,6 +91,7 @@ services: - REACT_APP_ENABLE_DASHBOARDS_MODULE=${ENABLE_DASHBOARDS_MODULE:-true} - REACT_APP_ENABLE_PROCESSES_MODULE=${ENABLE_PROCESSES_MODULE:-true} - REACT_APP_ENABLE_APPLICATIONS_MODULE=${ENABLE_APPLICATIONS_MODULE:-true} + ports: - "3000:8080" networks: From d60cb8001bfd8c8ebaed9aa08ac892a5bc83728c Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Mon, 3 Jul 2023 20:53:08 -0700 Subject: [PATCH 38/70] Update install.bat Removed the commented config function --- scripts/install.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.bat b/scripts/install.bat index d3a6e70..eb8e3ee 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -30,7 +30,7 @@ EXIT /B %ERRORLEVEL% ) call:forms-flow-forms ..\docker-compose call:forms-flow-bpm ..\docker-compose - :: call:config ..\docker-compose\configuration + call:config ..\docker-compose\configuration call:forms-flow-web ..\docker-compose call:forms-flow-api ..\docker-compose %~1 call:isUp From 0907eb07d82b57024420bfa1b5e054383567b131 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Wed, 5 Jul 2023 11:44:34 +0530 Subject: [PATCH 39/70] Adding changes for ARM support --- docker-compose/docker-compose-arm64.yml | 50 ++++++++++++++++++++----- docker-compose/docker-compose.yml | 5 --- scripts/install.bash | 46 ++++++++++------------- scripts/uninstall.bash | 4 +- 4 files changed, 63 insertions(+), 42 deletions(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index c52666e..29f4ee3 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -53,19 +53,53 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.1.1 - volumes: - - ./configuration/config.js:/usr/share/nginx/html/config/config.js + image: formsflow/forms-flow-web:v5.2.0-alpha + platform: linux/arm64/v8 links: - forms-flow-webapi - - keycloak + environment: + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js} + - NODE_ENV=${NODE_ENV:-production} + - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} + - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} + - REACT_APP_KEYCLOAK_CLIENT=${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + - REACT_APP_WEB_BASE_URL=${FORMSFLOW_API_URL} + - REACT_APP_BPM_URL=${BPM_API_URL} + - REACT_APP_WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-giert989jkwrgb@DR55} + - REACT_APP_KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} + - REACT_APP_KEYCLOAK_URL=${KEYCLOAK_URL} + - REACT_APP_APPLICATION_NAME=${APPLICATION_NAME:-formsflow.ai} + - REACT_APP_ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK=${ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK:-false} + - REACT_APP_WEB_BASE_CUSTOM_URL=${WEB_BASE_CUSTOM_URL} + - REACT_APP_MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - REACT_APP_MT_ADMIN_BASE_URL=${MT_ADMIN_BASE_URL} + - REACT_APP_MT_ADMIN_BASE_URL_VERSION=${MT_ADMIN_BASE_URL_VERSION} + - REACT_APP_CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} + - REACT_APP_CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} + - REACT_APP_DRAFT_ENABLED=${DRAFT_ENABLED:-false} + - REACT_APP_DRAFT_POLLING_RATE=${DRAFT_POLLING_RATE:-15000} + - REACT_APP_EXPORT_PDF_ENABLED=${EXPORT_PDF_ENABLED:-false} + - REACT_APP_PUBLIC_WORKFLOW_ENABLED=${PUBLIC_WORKFLOW_ENABLED:-false} + - REACT_APP_DOCUMENT_SERVICE_URL=${DOCUMENT_SERVICE_URL} + - REACT_APP_CUSTOM_THEME_URL=${CUSTOM_THEME_URL} + - REACT_APP_KEYCLOAK_ENABLE_CLIENT_AUTH=${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + - REACT_APP_ENABLE_FORMS_MODULE=${ENABLE_FORMS_MODULE:-true} + - REACT_APP_ENABLE_TASKS_MODULE=${ENABLE_TASKS_MODULE:-true} + - REACT_APP_ENABLE_DASHBOARDS_MODULE=${ENABLE_DASHBOARDS_MODULE:-true} + - REACT_APP_ENABLE_PROCESSES_MODULE=${ENABLE_PROCESSES_MODULE:-true} + - REACT_APP_ENABLE_APPLICATIONS_MODULE=${ENABLE_APPLICATIONS_MODULE:-true} + ports: - "3000:8080" networks: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.1.1 + image: formsflow/forms-flow-forms:v5.2.0-alpha restart: always environment: DEBUG: formio:* @@ -96,7 +130,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.1.1-arm64 + image: formsflow/forms-flow-bpm:v5.2.0-alpha-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -151,14 +185,12 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.1.1 + image: formsflow/forms-flow-webapi:v5.2.0-alpha restart: always links: - forms-flow-webapi-db - forms-flow-forms - - keycloak entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " - volumes: - ./:/app:rw environment: diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 88c7970..2d96cb1 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -57,11 +57,6 @@ services: links: - forms-flow-webapi environment: - - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js} - - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js} - - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js} - - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js} - - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} diff --git a/scripts/install.bash b/scripts/install.bash index 80e70f3..cbb4b5e 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -73,40 +73,33 @@ function isUp function installconfig { - cd configuration/ - pwd - if [[ -f config.js ]]; then - rm config.js - fi +# cd configuration/ +# pwd +# if [[ -f config.js ]]; then +# rm config.js +# fi - NODE_ENV="production" + NODE_ENV="development" REACT_APP_API_SERVER_URL="http://$ipadd:3001" REACT_APP_API_PROJECT_URL="http://$ipadd:3001" - REACT_APP_KEYCLOAK_CLIENT="forms-flow-web" - REACT_APP_KEYCLOAK_URL_REALM="forms-flow-ai" REACT_APP_KEYCLOAK_URL="http://$ipadd:8080" REACT_APP_WEB_BASE_URL="http://$ipadd:$webapi_port" REACT_APP_BPM_URL="http://$ipadd:8000/camunda" - REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55" - REACT_APP_APPLICATION_NAME="formsflow.ai" - REACT_APP_WEB_BASE_CUSTOM_URL="" - REACT_APP_USER_ACCESS_PERMISSIONS="{accessAllowApplications:false,accessAllowSubmissions:false}" + REACT_APP_DRAFT_ENABLED=true + DRAFT_ENABLED=true + # EXPORT_PDF_ENABLED=true + REACT_APP_EXPORT_PDF_ENABLED=true - echo window['"_env_"'] = "{">>config.js - echo "NODE_ENV":"\""$NODE_ENV"\"",>>config.js - echo "REACT_APP_API_SERVER_URL":"\""$REACT_APP_API_SERVER_URL"\"",>>config.js - echo "REACT_APP_API_PROJECT_URL":"\""$REACT_APP_API_PROJECT_URL"\"",>>config.js - echo "REACT_APP_KEYCLOAK_CLIENT":"\""$REACT_APP_KEYCLOAK_CLIENT"\"",>>config.js - echo "REACT_APP_KEYCLOAK_URL_REALM":"\""$REACT_APP_KEYCLOAK_URL_REALM"\"",>>config.js - echo "REACT_APP_KEYCLOAK_URL":"\""$REACT_APP_KEYCLOAK_URL"\"",>>config.js - echo "REACT_APP_WEB_BASE_URL":"\""$REACT_APP_WEB_BASE_URL"\"",>>config.js - echo "REACT_APP_BPM_URL":"\""$REACT_APP_BPM_URL"\"",>>config.js - echo "REACT_APP_WEBSOCKET_ENCRYPT_KEY":"\""$REACT_APP_WEBSOCKET_ENCRYPT_KEY"\"",>>config.js - echo "REACT_APP_APPLICATION_NAME":"\""$REACT_APP_APPLICATION_NAME"\"",>>config.js - echo "REACT_APP_WEB_BASE_CUSTOM_URL":"\""$REACT_APP_WEB_BASE_CUSTOM_URL"\"",>>config.js - echo "REACT_APP_USER_ACCESS_PERMISSIONS":"$REACT_APP_USER_ACCESS_PERMISSIONS"}>>config.js - cd ../ + echo NODE_ENV=$NODE_ENV>>.env + echo REACT_APP_API_SERVER_URL=$REACT_APP_API_SERVER_URL>>.env + echo REACT_APP_API_PROJECT_URL=$REACT_APP_API_PROJECT_URL>>.env + echo REACT_APP_KEYCLOAK_URL=$REACT_APP_KEYCLOAK_URL>>.env + echo REACT_APP_WEB_BASE_URL=$REACT_APP_WEB_BASE_URL>>.env + echo REACT_APP_BPM_URL=$REACT_APP_BPM_URL>>.env + echo DRAFT_ENABLED=$DRAFT_ENABLED>>.env + echo EXPORT_PDF_ENABLED=$EXPORT_PDF_ENABLED>>.env + } ############################################################# @@ -128,6 +121,7 @@ function formsFlowAnalytics REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=* REDASH_REFERRER_POLICY=no-referrer-when-downgrade REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type,Authorization + echo REDASH_HOST=$REDASH_HOST>>.env echo PYTHONUNBUFFERED=$PYTHONUNBUFFERED>>.env echo REDASH_LOG_LEVEL=$REDASH_LOG_LEVEL>>.env diff --git a/scripts/uninstall.bash b/scripts/uninstall.bash index 1ca5ea6..132dd1a 100644 --- a/scripts/uninstall.bash +++ b/scripts/uninstall.bash @@ -8,7 +8,7 @@ echo "Do you want to uninstall formsflow.ai installation? [y/n]" read choice if [[ $choice == "y" ]]; then cd ../docker-compose - docker-compose -f analytics-docker-compose.yml down - docker-compose -f $docker_compose_file down + docker-compose -p formsflow-ai -f analytics-docker-compose.yml down + docker-compose -p formsflow-ai -f $docker_compose_file down docker images | grep "forms-flow" | awk '{print $3}' | xargs docker image rm fi From b4f11d026fa08125ac0dcf6206c7cb83cee1862a Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Wed, 5 Jul 2023 13:06:39 +0530 Subject: [PATCH 40/70] Adding formsflow-admin user and role --- .../imports/formsflow-ai-realm.json | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/docker-compose/configuration/imports/formsflow-ai-realm.json b/docker-compose/configuration/imports/formsflow-ai-realm.json index 864d395..849a9d0 100644 --- a/docker-compose/configuration/imports/formsflow-ai-realm.json +++ b/docker-compose/configuration/imports/formsflow-ai-realm.json @@ -261,6 +261,14 @@ "attributes": {} }, + { + "name": "formsflow-admin", + "description": "Provides admin access to use the formsflow.ai solution. Required to manage users and permissions.", + "composite": false, + "clientRole": true, + + "attributes": {} + }, { "name": "formsflow-designer", "description": "Provides access to use the formsflow.ai solution. Access to wok on form designer studio.", @@ -387,6 +395,18 @@ }, "subGroups": [] }, + { + "name": "formsflow-admin", + "path": "/formsflow/formsflow-admin", + "attributes": {}, + "realmRoles": [], + "clientRoles": { + "forms-flow-web": [ + "formsflow-admin" + ] + }, + "subGroups": [] + }, { "name": "formsflow-designer", "path": "/formsflow/formsflow-designer", @@ -525,6 +545,30 @@ }, "notBefore" : 0, "groups" : [ "/camunda-admin", "/formsflow/formsflow-client" ] + }, + { + "createdTimestamp" : 1621862607660, + "username" : "formsflow-admin", + "enabled" : true, + "totp" : false, + "emailVerified" : false, + "firstName" : "Admin", + "lastName" : "FFA", + "email" : "formsflow-admin@example.com", + "credentials" : [ { + "type" : "password", + "createdDate" : 1621863987325, + "secretData" : "{\"value\":\"9R9a8Onha7JcZt59SIq8ngfqwDJwPKiKb8mJ2WO6p2eI3S9qhzR1GPDFtKjOWq8qpm8vsGfp/a/DyHWQuIvmlA==\",\"salt\":\"R/OTBeSXHzsKtJOV/bufEA==\"}", + "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" + } ], + "disableableCredentialTypes" : [ ], + "requiredActions" : [ "UPDATE_PASSWORD" ], + "realmRoles" : [ "uma_authorization", "offline_access" ], + "clientRoles" : { + "account" : [ "view-profile", "manage-account" ] + }, + "notBefore" : 0, + "groups" : [ "/camunda-admin", "/formsflow/formsflow-admin" ] }, { "createdTimestamp" : 1621862546931, "username" : "formsflow-designer", @@ -547,7 +591,7 @@ "account" : [ "view-profile", "manage-account" ] }, "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-designer" ] + "groups" : [ "/camunda-admin", "/formsflow/formsflow-designer", "/formsflow/formsflow-admin" ] }, { "createdTimestamp" : 1625009614956, "username" : "formsflow-approver", From d78fe36ca1ec0df622240a44e87aff51fc328dcf Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Wed, 5 Jul 2023 16:26:46 +0530 Subject: [PATCH 41/70] Adding entrypoint to web --- docker-compose/docker-compose-arm64.yml | 30 +++++++++++++++++++++++++ docker-compose/docker-compose.yml | 1 + 2 files changed, 31 insertions(+) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 29f4ee3..76d7fa9 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -57,6 +57,7 @@ services: platform: linux/arm64/v8 links: - forms-flow-webapi + entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js} # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js} @@ -224,6 +225,35 @@ services: networks: - formsflow + forms-flow-documents: + image: formsflow/forms-flow-documents-api:v5.2.0-alpha-arm64 + restart: always + volumes: + - ./:/app:rw + environment: + FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} + JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration + JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs + JWT_OIDC_ISSUER: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} + JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + JWT_OIDC_CACHING_ENABLED: 'True' + KEYCLOAK_URL: ${KEYCLOAK_URL} + KEYCLOAK_URL_REALM: ${KEYCLOAK_URL_REALM:-forms-flow-ai} + FORMSFLOW_API_URL: ${FORMSFLOW_API_URL} + FORMSFLOW_DOC_API_URL: ${DOCUMENT_SERVICE_URL} + FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} + FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} + CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH:-/usr/local/bin/chromedriver} + FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} + KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + + ports: + - "5006:5006" + networks: + - formsflow + proxy: image: nginx:stable-alpine volumes: diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 2d96cb1..9bd70eb 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -56,6 +56,7 @@ services: image: formsflow/forms-flow-web:v5.2.0-alpha links: - forms-flow-webapi + entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} From 819027a265ac11709bbd3d51b0425ff73bf8d239 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Wed, 5 Jul 2023 16:29:27 +0530 Subject: [PATCH 42/70] Update install.bash --- scripts/install.bash | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/scripts/install.bash b/scripts/install.bash index 700da65..6fdad9c 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -49,6 +49,7 @@ function main formsFlowBpm installconfig formsFlowApi + formsFlowDocuments formsFlowWeb } @@ -79,24 +80,14 @@ function installconfig # fi NODE_ENV="development" - REACT_APP_API_SERVER_URL="http://$ipadd:3001" - REACT_APP_API_PROJECT_URL="http://$ipadd:3001" - REACT_APP_KEYCLOAK_URL="http://$ipadd:8080" - REACT_APP_WEB_BASE_URL="http://$ipadd:$webapi_port" - REACT_APP_BPM_URL="http://$ipadd:8000/camunda" - REACT_APP_DRAFT_ENABLED=true DRAFT_ENABLED=true - # EXPORT_PDF_ENABLED=true - REACT_APP_EXPORT_PDF_ENABLED=true + EXPORT_PDF_ENABLED=true + DOCUMENT_SERVICE_URL="http://$ipadd:5006" echo NODE_ENV=$NODE_ENV>>.env - echo REACT_APP_API_SERVER_URL=$REACT_APP_API_SERVER_URL>>.env - echo REACT_APP_API_PROJECT_URL=$REACT_APP_API_PROJECT_URL>>.env - echo REACT_APP_KEYCLOAK_URL=$REACT_APP_KEYCLOAK_URL>>.env - echo REACT_APP_WEB_BASE_URL=$REACT_APP_WEB_BASE_URL>>.env - echo REACT_APP_BPM_URL=$REACT_APP_BPM_URL>>.env echo DRAFT_ENABLED=$DRAFT_ENABLED>>.env + echo DOCUMENT_SERVICE_URL=$DOCUMENT_SERVICE_URL>>.env echo EXPORT_PDF_ENABLED=$EXPORT_PDF_ENABLED>>.env } @@ -177,6 +168,19 @@ function formsFlowApi docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-webapi } +############################################################# +######################## forms-flow-documents ################## +############################################################# + +function formsFlowDocuments +{ + FORMSFLOW_DOC_API_URL=http://$ipadd:5006 + + echo DOCUMENT_SERVICE_URL=$DOCUMENT_SERVICE_URL >>.env + + docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-documents +} + ############################################################# ######################## forms-flow-forms ################### ############################################################# From bf53af11aeebb79e55a561d6ab2e298db6ee4ba8 Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Wed, 5 Jul 2023 16:35:32 +0530 Subject: [PATCH 43/70] Delete config.js --- docker-compose/configuration/config.js | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 docker-compose/configuration/config.js diff --git a/docker-compose/configuration/config.js b/docker-compose/configuration/config.js deleted file mode 100644 index e9c503d..0000000 --- a/docker-compose/configuration/config.js +++ /dev/null @@ -1,15 +0,0 @@ -window["_env_"] = { - NODE_ENV: "production", - REACT_APP_API_SERVER_URL: "http://{your-ip-address}:3001", - REACT_APP_API_PROJECT_URL: "http://{your-ip-address}:3001", - REACT_APP_KEYCLOAK_CLIENT: "forms-flow-web", - REACT_APP_KEYCLOAK_URL_REALM: "{realm-name}", - REACT_APP_KEYCLOAK_URL: "http://{your-ip-address}:8080", - REACT_APP_WEB_BASE_URL: "http://{your-ip-address}:5001", - REACT_APP_BPM_URL: "http://{your-ip-address}:8000/camunda", - REACT_APP_WEBSOCKET_ENCRYPT_KEY: "giert989jkwrgb@DR55", - REACT_APP_APPLICATION_NAME: "formsflow.ai", - REACT_APP_WEB_BASE_CUSTOM_URL: "", - REACT_APP_FORMIO_JWT_SECRET: "--- change me now ---", - REACT_APP_USER_ACCESS_PERMISSIONS: { accessAllowApplications: false, accessAllowSubmissions: false } -}; From 3e7ce73dd0c62c8921b394a7e7d4dbe10509c4e0 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Wed, 5 Jul 2023 09:46:35 -0700 Subject: [PATCH 44/70] Updated script by deleting config.js and added an env to web side --- scripts/install.bat | 43 ++----------------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/scripts/install.bat b/scripts/install.bat index eb8e3ee..e623b8f 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -30,7 +30,6 @@ EXIT /B %ERRORLEVEL% ) call:forms-flow-forms ..\docker-compose call:forms-flow-bpm ..\docker-compose - call:config ..\docker-compose\configuration call:forms-flow-web ..\docker-compose call:forms-flow-api ..\docker-compose %~1 call:isUp @@ -99,46 +98,6 @@ EXIT /B %ERRORLEVEL% timeout 5 EXIT /B 0 -:: ######################################################################### -:: ######################### config.js ################################ -:: ######################################################################### - -:config - - if exist %~1\config.js ( - del %~1\config.js - ) - set window["_env_"] = { - set NODE_ENV= "production", - set REACT_APP_API_SERVER_URL="http://%ip-add%:3001", - set REACT_APP_API_PROJECT_URL="http://%ip-add%:3001", - set REACT_APP_KEYCLOAK_CLIENT="forms-flow-web", - set REACT_APP_KEYCLOAK_URL_REALM="forms-flow-ai", - set REACT_APP_KEYCLOAK_URL="http://%ip-add%:8080", - set REACT_APP_WEB_BASE_URL="http://%ip-add%:5001", - set REACT_APP_BPM_URL="http://%ip-add%:8000/camunda", - set REACT_APP_WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55", - set REACT_APP_APPLICATION_NAME="formsflow.ai", - set REACT_APP_WEB_BASE_CUSTOM_URL="", - set REACT_APP_USER_ACCESS_PERMISSIONS={accessAllowApplications:false, accessAllowSubmissions:false} - - echo window["_env_"] = {>>%~1\config.js - echo NODE_ENV:%NODE_ENV%>>%~1\config.js - echo REACT_APP_API_SERVER_URL:%REACT_APP_API_SERVER_URL%>>%~1\config.js - echo REACT_APP_API_PROJECT_URL:%REACT_APP_API_PROJECT_URL%>>%~1\config.js - echo REACT_APP_KEYCLOAK_CLIENT:%REACT_APP_KEYCLOAK_CLIENT%>>%~1\config.js - echo REACT_APP_KEYCLOAK_URL_REALM:%REACT_APP_KEYCLOAK_URL_REALM%>>%~1\config.js - echo REACT_APP_KEYCLOAK_URL:%REACT_APP_KEYCLOAK_URL%>>%~1\config.js - echo REACT_APP_WEB_BASE_URL:%REACT_APP_WEB_BASE_URL%>>%~1\config.js - echo REACT_APP_BPM_URL:%REACT_APP_BPM_URL%>>%~1\config.js - echo REACT_APP_WEBSOCKET_ENCRYPT_KEY:%REACT_APP_WEBSOCKET_ENCRYPT_KEY%>>%~1\config.js - echo REACT_APP_APPLICATION_NAME:%REACT_APP_APPLICATION_NAME%>>%~1\config.js - echo REACT_APP_WEB_BASE_CUSTOM_URL:%REACT_APP_WEB_BASE_CUSTOM_URL%>>%~1\config.js - echo REACT_APP_USER_ACCESS_PERMISSIONS:%REACT_APP_USER_ACCESS_PERMISSIONS%>>%~1\config.js - echo };>>%~1\config.js - EXIT /B 0 - - :: ######################################################################### :: ######################### forms-flow-web ################################ :: ######################################################################### @@ -146,6 +105,7 @@ EXIT /B %ERRORLEVEL% :forms-flow-web SETLOCAL + set BPM_API_URL=http://%ip-add%:8000/camunda set MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js set MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js set MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js @@ -153,6 +113,7 @@ EXIT /B %ERRORLEVEL% set MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js set NODE_ENV=production + echo BPM_API_URL=%BPM_API_URL%>>%~1\.env echo MF_FORMSFLOW_WEB_URL=%MF_FORMSFLOW_WEB_URL%>>%~1\.env echo MF_FORMSFLOW_NAV_URL=%MF_FORMSFLOW_NAV_URL%>>%~1\.env echo MF_FORMSFLOW_SERVICE_URL=%MF_FORMSFLOW_SERVICE_URL%>>%~1\.env From e579269ff807fbcfc12a4b2d532c82da785dbae5 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Wed, 5 Jul 2023 09:50:31 -0700 Subject: [PATCH 45/70] Updated image version for forms --- docker-compose/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 9bd70eb..b6453c8 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -94,7 +94,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.2.0-alpha + image: formsflow/forms-flow-forms:v5.2.0 restart: always environment: DEBUG: formio:* From f59e501085eae48d7123d1b2a0b90cf69e5421d3 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Wed, 5 Jul 2023 23:11:08 -0700 Subject: [PATCH 46/70] Changelog added --- CHANGELOG.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..26be8e1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,41 @@ +# Changelog for forms-flow-ai-Deployment + +Mark items as `Added`, `Changed`, `Fixed`, `Removed`, `Untested Features`, `Upcoming Features`, `Known Issues` + +## 5.2.0 - 2023-07-07 + +`Added` + +* Added `Label-Name` for images to easily uninstall images using label name. +* Added a checkpoint for webapi to check whether it runs in the browser. +* Added `DB-port` for keycloak. +* Added `Documents-api` container as a new feature in quick installation. + + +`Modified` + +* Updated web-api port from `5000` to `5001` +* Updated Redash image +* Updated the docker-compose by including networks for all containers. +* Updated the `ENV` variables for Web + + +`Removed` + +* Removed the `config.js` file since it is directly taken through image. + + +## 5.1.1 - 2023-05-18 + + +`Added` + +* `docker-compose` Seperate Docker-compose file has added for windows, and Mac. +* Added IP confirmation to avoid IP issues. +* Added CI/CD pipeline. + + +`Modified` + +* Reduced script size +* Fixed versions for databases \ No newline at end of file From 500075acfcfa047effaffa2ad993875f0b328cad Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Thu, 6 Jul 2023 21:33:52 -0700 Subject: [PATCH 47/70] Quick-installation-changes (#48) * added documentsapi and removed unwanted env's * image change * docker-compose updated --- docker-compose/docker-compose.yml | 31 +++++++++++++++++++++++++++++++ scripts/install.bat | 27 ++++++++++++++------------- 2 files changed, 45 insertions(+), 13 deletions(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index b6453c8..b229f76 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -219,6 +219,37 @@ services: networks: - formsflow + forms-flow-documents-api: + image: formsflow/forms-flow-documents-api:v5.2.0-alpha + restart: always + links: + - forms-flow-forms + environment: + DATABASE_URL: ${FORMSFLOW_API_DB_URL:-postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi} + FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} + JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration + JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs + JWT_OIDC_ISSUER: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} + JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + JWT_OIDC_CACHING_ENABLED: 'True' + KEYCLOAK_URL: ${KEYCLOAK_URL} + KEYCLOAK_URL_REALM: ${KEYCLOAK_URL_REALM:-forms-flow-ai} + FORMSFLOW_API_URL: ${FORMSFLOW_API_URL} + FORMSFLOW_DOC_API_URL: ${DOCUMENT_SERVICE_URL} + FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} + FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} + CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH} + CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} + CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} + FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} + KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + ports: + - '5006:5006' + networks: + - formsflow + proxy: image: nginx:stable-alpine volumes: diff --git a/scripts/install.bat b/scripts/install.bat index e623b8f..02487a8 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -32,6 +32,7 @@ EXIT /B %ERRORLEVEL% call:forms-flow-bpm ..\docker-compose call:forms-flow-web ..\docker-compose call:forms-flow-api ..\docker-compose %~1 + call:forms-flow-documents ..\docker-compose call:isUp EXIT /B 0 @@ -106,20 +107,7 @@ EXIT /B %ERRORLEVEL% SETLOCAL set BPM_API_URL=http://%ip-add%:8000/camunda - set MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js - set MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js - set MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js - set MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js - set MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js - set NODE_ENV=production - echo BPM_API_URL=%BPM_API_URL%>>%~1\.env - echo MF_FORMSFLOW_WEB_URL=%MF_FORMSFLOW_WEB_URL%>>%~1\.env - echo MF_FORMSFLOW_NAV_URL=%MF_FORMSFLOW_NAV_URL%>>%~1\.env - echo MF_FORMSFLOW_SERVICE_URL=%MF_FORMSFLOW_SERVICE_URL%>>%~1\.env - echo MF_FORMSFLOW_ADMIN_URL=%MF_FORMSFLOW_ADMIN_URL%>>%~1\.env - echo MF_FORMSFLOW_THEME_URL=%MF_FORMSFLOW_THEME_URL%>>%~1\.env - echo NODE_ENV=%NODE_ENV%>>%~1\.env docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-web EXIT /B 0 @@ -206,4 +194,17 @@ EXIT /B %ERRORLEVEL% ENDLOCAL docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-webapi +:: ############################################################# +:: ############### forms-flow-documents-api #################### +:: ############################################################# + +:forms-flow-documents + + SETLOCAL + set DOCUMENT_SERVICE_URL=http://%ip-add%:5006 + echo DOCUMENT_SERVICE_URL=%DOCUMENT_SERVICE_URL%>>%~1\.env + + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-documents-api + timeout 5 + EXIT /B 0 From 0dbc83dd4402f668322ce91c07d47a575adfb129 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Thu, 6 Jul 2023 22:15:09 -0700 Subject: [PATCH 48/70] Update docker-compose.yml (#49) Deleteing the database url of documents api since it is not needed --- docker-compose/docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index b229f76..e7945e7 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -225,7 +225,6 @@ services: links: - forms-flow-forms environment: - DATABASE_URL: ${FORMSFLOW_API_DB_URL:-postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi} FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs From 0b54b883b128825734645e4aa4fe65c8a018d129 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Fri, 7 Jul 2023 02:31:54 -0700 Subject: [PATCH 49/70] Update install.bat (#50) Checkpoint for webapi port has been updated --- scripts/install.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.bat b/scripts/install.bat index 02487a8..14605c0 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -43,7 +43,7 @@ EXIT /B %ERRORLEVEL% :isUp :Check if the web API is up - for /f %%a in ('curl -LI "http://%ip-add%:5000" -o nul -w "%%{http_code}" -s') do set "HTTP=%%a" + for /f %%a in ('curl -LI "http://%ip-add%:5001" -o nul -w "%%{http_code}" -s') do set "HTTP=%%a" if "%HTTP%" == "200" ( echo formsflow.ai is successfully installed. EXIT /B 0 From 83843924366f75f20f39e77b134656c13c40d20a Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Mon, 10 Jul 2023 21:15:40 -0700 Subject: [PATCH 50/70] image updated (#51) * image updated * env changes --- docker-compose/docker-compose-arm64.yml | 20 ++++++++++---------- docker-compose/docker-compose.yml | 8 ++++---- docker-compose/sample.env | 10 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 76d7fa9..714f82a 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -53,17 +53,17 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.2.0-alpha + image: formsflow/forms-flow-web:v5.2.0 platform: linux/arm64/v8 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js} - # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js} - # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.2.0/forms-flow-web.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.2.0/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.2.0/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.2.0/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.2.0/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -100,7 +100,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.2.0-alpha + image: formsflow/forms-flow-forms:v5.2.0 restart: always environment: DEBUG: formio:* @@ -131,7 +131,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.2.0-alpha-arm64 + image: formsflow/forms-flow-bpm:v5.2.0-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -186,7 +186,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.2.0-alpha + image: formsflow/forms-flow-webapi:v5.2.0 restart: always links: - forms-flow-webapi-db @@ -226,7 +226,7 @@ services: - formsflow forms-flow-documents: - image: formsflow/forms-flow-documents-api:v5.2.0-alpha-arm64 + image: formsflow/forms-flow-documents-api:v5.2.0-arm64 restart: always volumes: - ./:/app:rw diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index e7945e7..9f08580 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -53,7 +53,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.2.0-alpha + image: formsflow/forms-flow-web:v5.2.0 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -125,7 +125,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.2.0-alpha + image: formsflow/forms-flow-bpm:v5.2.0 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -180,7 +180,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.2.0-alpha + image: formsflow/forms-flow-webapi:v5.2.0 restart: always links: - forms-flow-webapi-db @@ -220,7 +220,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v5.2.0-alpha + image: formsflow/forms-flow-documents-api:v5.2.0 restart: always links: - forms-flow-forms diff --git a/docker-compose/sample.env b/docker-compose/sample.env index ac0ea42..07b8a8e 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -199,13 +199,13 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #The MF Variables below are used to get MicroFrontend Components Created ##For running locally or if have custom changes then change the url to the one forms-flow-web folder content is running -#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0-alpha/single-spa-build.gz.js +#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0/single-spa-build.gz.js ## Refer Github Repo https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends and update to your own custom implementation for the Components here -#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0-alpha/forms-flow-nav.gz.js -#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0-alpha/forms-flow-service.gz.js -#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0-alpha/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0-alpha/forms-flow-theme.gz.js +#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0/forms-flow-nav.gz.js +#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0/forms-flow-service.gz.js +#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0/forms-flow-admin.gz.js +#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0/forms-flow-theme.gz.js #++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# From fb2276ea02c3e3b950d1afd80d4949ff9a626019 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Mon, 27 Nov 2023 21:36:45 -0800 Subject: [PATCH 51/70] Release 5.3.0 (#55) --------- Co-authored-by: Kiran K A --- CHANGELOG.md | 22 +- docker-compose/docker-compose-arm64.yml | 20 +- docker-compose/docker-compose-ee.yml | 312 ++++++++++++++++++ docker-compose/docker-compose.yml | 50 ++- docker-compose/sample.env | 10 +- scripts/install.bash | 409 +++++++++++------------- scripts/install.bat | 60 +++- 7 files changed, 640 insertions(+), 243 deletions(-) create mode 100644 docker-compose/docker-compose-ee.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 26be8e1..b32c701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ Mark items as `Added`, `Changed`, `Fixed`, `Removed`, `Untested Features`, `Upcoming Features`, `Known Issues` +## 5.3.0 - 2023-11-24 + +`Added` + +* Added `Data-analysis-api` service into docker-compose file. +* Added IP confirmation check to confirm the user IP. +* Added `Docker engine` versions that are tested and working fine. +* Added `docker-compose` file for Enterprise edition. + +`Modified` + +* Updated batch script by adding tested docker-versions +* Updated shell script for better understanding. +* Modified the environment variables. + +`Upcoming Features` + +* An update will be introduced to provide users with the option to run the data analysis API, making it an optional feature. +* An update in the script to enable a quick installation process specifically tailored for enterprise edition users. + ## 5.2.0 - 2023-07-07 `Added` @@ -38,4 +58,4 @@ Mark items as `Added`, `Changed`, `Fixed`, `Removed`, `Untested Features`, `Upc `Modified` * Reduced script size -* Fixed versions for databases \ No newline at end of file +* Fixed versions for databases diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 714f82a..97585dd 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -53,17 +53,17 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.2.0 + image: formsflow/forms-flow-web:v5.3.0 platform: linux/arm64/v8 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.2.0/forms-flow-web.gz.js} - # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.2.0/forms-flow-nav.gz.js} - # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.2.0/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.2.0/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.2.0/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.0/forms-flow-web.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.3.0/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.3.0/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.0/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -100,7 +100,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.2.0 + image: formsflow/forms-flow-forms:v5.3.0 restart: always environment: DEBUG: formio:* @@ -131,7 +131,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.2.0-arm64 + image: formsflow/forms-flow-bpm:v5.3.0-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -186,7 +186,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.2.0 + image: formsflow/forms-flow-webapi:v5.3.0 restart: always links: - forms-flow-webapi-db @@ -226,7 +226,7 @@ services: - formsflow forms-flow-documents: - image: formsflow/forms-flow-documents-api:v5.2.0-arm64 + image: formsflow/forms-flow-documents-api:v5.3.0-arm64 restart: always volumes: - ./:/app:rw diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml new file mode 100644 index 0000000..ee4a017 --- /dev/null +++ b/docker-compose/docker-compose-ee.yml @@ -0,0 +1,312 @@ +version: '3.7' + +services: + keycloak-db: + image: postgres:14 + volumes: + - ./postgres/keycloak:/var/lib/postgresql/data 777 + environment: + POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} + POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} + POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} + PGDATA: /var/lib/postgresql/data + networks: + - formsflow + + keycloak: + image: quay.io/keycloak/keycloak:14.0.0 + volumes: + - ./configuration/imports:/opt/jboss/keycloak/imports + command: + - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING" + environment: + - DB_VENDOR=POSTGRES + - DB_ADDR=keycloak-db + - DB_PORT=5432 + - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} + - DB_USER=${KEYCLOAK_JDBC_USER-admin} + - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} + - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USER:-admin} + - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + ports: + - "8080:8080" + links: + - keycloak-db + networks: + - formsflow + + forms-flow-forms-db: + image: mongo:5.0 + restart: always + environment: + MONGO_INITDB_ROOT_USERNAME: ${FORMIO_DB_USERNAME:-admin} + MONGO_INITDB_ROOT_PASSWORD: ${FORMIO_DB_PASSWORD:-changeme} + MONGO_INITDB_DATABASE: ${FORMIO_DB_NAME:-formio} + volumes: + - ./../../formsflow-forms/mongo_entrypoint/001_user.js:/docker-entrypoint-initdb.d/001_user.js:ro + - ./mongodb/data/db/:/data/db/ + - ./mongodb/data/log/:/var/log/mongodb/ + - ./mongodb/mongod.conf:/etc/mongod.conf + ports: + - "27018:27017" + networks: + - formsflow + + forms-flow-web: + image: formsflow/forms-flow-web-ee:v5.3.0 + links: + - forms-flow-webapi + entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" + environment: + - NODE_ENV=${NODE_ENV:-production} + - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} + - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} + - REACT_APP_KEYCLOAK_CLIENT=${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + - REACT_APP_WEB_BASE_URL=${FORMSFLOW_API_URL} + - REACT_APP_BPM_URL=${BPM_API_URL} + - REACT_APP_WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-giert989jkwrgb@DR55} + - REACT_APP_KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} + - REACT_APP_KEYCLOAK_URL=${KEYCLOAK_URL} + - REACT_APP_APPLICATION_NAME=${APPLICATION_NAME:-formsflow.ai} + - REACT_APP_ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK=${ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK:-false} + - REACT_APP_WEB_BASE_CUSTOM_URL=${WEB_BASE_CUSTOM_URL} + - REACT_APP_MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - REACT_APP_MT_ADMIN_BASE_URL=${MT_ADMIN_BASE_URL} + - REACT_APP_MT_ADMIN_BASE_URL_VERSION=${MT_ADMIN_BASE_URL_VERSION} + - REACT_APP_CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} + - REACT_APP_CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} + - REACT_APP_DRAFT_ENABLED=${DRAFT_ENABLED:-false} + - REACT_APP_DRAFT_POLLING_RATE=${DRAFT_POLLING_RATE:-15000} + - REACT_APP_EXPORT_PDF_ENABLED=${EXPORT_PDF_ENABLED:-false} + - REACT_APP_PUBLIC_WORKFLOW_ENABLED=${PUBLIC_WORKFLOW_ENABLED:-false} + - REACT_APP_DOCUMENT_SERVICE_URL=${DOCUMENT_SERVICE_URL} + - REACT_APP_CUSTOM_THEME_URL=${CUSTOM_THEME_URL} + - REACT_APP_KEYCLOAK_ENABLE_CLIENT_AUTH=${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + - REACT_APP_ENABLE_FORMS_MODULE=${ENABLE_FORMS_MODULE:-true} + - REACT_APP_ENABLE_TASKS_MODULE=${ENABLE_TASKS_MODULE:-true} + - REACT_APP_ENABLE_DASHBOARDS_MODULE=${ENABLE_DASHBOARDS_MODULE:-true} + - REACT_APP_ENABLE_PROCESSES_MODULE=${ENABLE_PROCESSES_MODULE:-true} + - REACT_APP_ENABLE_APPLICATIONS_MODULE=${ENABLE_APPLICATIONS_MODULE:-true} + + ports: + - "3000:8080" + networks: + - formsflow + + forms-flow-forms: + image: formsflow/forms-flow-forms-ee:v5.3.0 + restart: always + environment: + DEBUG: formio:* + NODE_CONFIG: "{\"mongo\":\"mongodb://${FORMIO_DB_USERNAME:-admin}:${FORMIO_DB_PASSWORD:-changeme}@forms-flow-forms-db:27017/${FORMIO_DB_NAME:-formio}?authMechanism=SCRAM-SHA-1&authSource=admin\"}" + ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} + ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} + FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} + NO_INSTALL: ${NO_INSTALL:-1} + ports: + - "3001:3001" + links: + - forms-flow-forms-db + networks: + - formsflow + + forms-flow-bpm-db: + image: postgres:14 + environment: + POSTGRES_USER: ${CAMUNDA_JDBC_USER:-admin} + POSTGRES_PASSWORD: ${CAMUNDA_JDBC_PASSWORD:-changeme} + POSTGRES_DB: ${CAMUNDA_JDBC_DB_NAME:-formsflow-bpm} + volumes: + - ./postgres/camunda:/var/lib/postgresql/data 777 + ports: + - "5432:5432" + networks: + - formsflow + + forms-flow-bpm: + image: formsflow/forms-flow-bpm-ee:v5.3.0 + restart: always + environment: + - KEYCLOAK_URL=${KEYCLOAK_URL} + - KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} + - KEYCLOAK_CLIENTID=${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} + - KEYCLOAK_CLIENTSECRET=${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} + - CAMUNDA_JDBC_URL=${CAMUNDA_JDBC_URL:-jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm} + - CAMUNDA_JDBC_USER=${CAMUNDA_JDBC_USER:-admin} + - CAMUNDA_JDBC_PASSWORD=${CAMUNDA_JDBC_PASSWORD:-changeme} + - CAMUNDA_JDBC_DRIVER=${CAMUNDA_JDBC_DRIVER:-org.postgresql.Driver} + - CAMUNDA_APP_ROOT_LOG_FLAG=${CAMUNDA_APP_ROOT_LOG_FLAG:-error} + - FORMSFLOW_API_URL=${FORMSFLOW_API_URL} + - FORMIO_URL=${FORMIO_DEFAULT_PROJECT_URL} + - FORMIO_ROOT_EMAIL=${FORMIO_ROOT_EMAIL:-admin@example.com} + - FORMIO_ROOT_PASSWORD=${FORMIO_ROOT_PASSWORD:-changeme} + - APP_SECURITY_ORIGIN=${APP_SECURITY_ORIGIN:-*} + - WEBSOCKET_SECURITY_ORIGIN=${WEBSOCKET_SECURITY_ORIGIN} + - WEBSOCKET_MESSAGE_TYPE=${WEBSOCKET_MESSAGE_TYPE:-TASK_EVENT} + - WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-giert989jkwrgb@DR55} + - DATA_BUFFER_SIZE=${DATA_BUFFER_SIZE:-2} + - IDENTITY_PROVIDER_MAX_RESULT_SIZE=${IDENTITY_PROVIDER_MAX_RESULT_SIZE:-250} + - DATA_ANALYSIS_URL=${DATA_ANALYSIS_API_BASE_URL}/analysis + - CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} + - CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} + - MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - FORMSFLOW_ADMIN_URL=${FORMSFLOW_ADMIN_URL:-} + - REDIS_ENABLED=${REDIS_ENABLED:-false} + - REDIS_HOST=${REDIS_HOST} + - REDIS_PORT=${REDIS_PORT:-6379} + - REDIS_PASSCODE=${REDIS_PASSCODE:-changeme} + - SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-true} + ports: + - "8000:8080" + links: + - forms-flow-bpm-db + - keycloak + networks: + - formsflow + + forms-flow-webapi-db: + image: postgres:14 + restart: always + environment: + POSTGRES_USER: ${FORMSFLOW_API_DB_USER:-postgres} + POSTGRES_PASSWORD: ${FORMSFLOW_API_DB_PASSWORD:-changeme} + POSTGRES_DB: ${FORMSFLOW_API_DB_NAME:-webapi} + volumes: + - ./postgres/webapi:/var/lib/postgresql/data 777 + ports: + - "6432:5432" + networks: + - formsflow + + forms-flow-webapi: + image: formsflow/forms-flow-webapi-ee:v5.3.0 + restart: always + links: + - forms-flow-webapi-db + - forms-flow-forms + entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " + volumes: + - ./:/app:rw + environment: + INSIGHT_API_KEY: ${INSIGHT_API_KEY} + INSIGHT_API_URL: ${INSIGHT_API_URL} + DATABASE_URL: ${FORMSFLOW_API_DB_URL:-postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi} + BPM_TOKEN_API: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/token + BPM_CLIENT_ID: ${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} + BPM_CLIENT_SECRET: ${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} + BPM_API_URL: ${BPM_API_URL} + FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} + JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration + JWT_OIDC_ALGORITHMS: 'RS256' + JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs + JWT_OIDC_ISSUER: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} + JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + JWT_OIDC_CACHING_ENABLED: 'True' + JWT_OIDC_JWKS_CACHE_TIMEOUT: 300 + KEYCLOAK_URL: ${KEYCLOAK_URL} + KEYCLOAK_URL_REALM: ${KEYCLOAK_URL_REALM:-forms-flow-ai} + WEB_API_BASE_URL: ${FORMSFLOW_API_URL} + FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} + FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} + CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH} + CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} + CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} + FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + ports: + - "5001:5000" + networks: + - formsflow + + forms-flow-documents-api: + image: formsflow/forms-flow-documents-api-ee:v5.3.0 + restart: always + links: + - forms-flow-forms + environment: + FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} + JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration + JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs + JWT_OIDC_ISSUER: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} + JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + JWT_OIDC_CACHING_ENABLED: 'True' + KEYCLOAK_URL: ${KEYCLOAK_URL} + KEYCLOAK_URL_REALM: ${KEYCLOAK_URL_REALM:-forms-flow-ai} + FORMSFLOW_API_URL: ${FORMSFLOW_API_URL} + FORMSFLOW_DOC_API_URL: ${DOCUMENT_SERVICE_URL} + FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL} + FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} + FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} + CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH} + CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} + CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} + FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} + KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + ports: + - '5006:5006' + networks: + - formsflow + + forms-flow-data-analysis-db: + image: postgres:14 + environment: + POSTGRES_USER: ${DATA_ANALYSIS_DB_USER} + POSTGRES_PASSWORD: ${DATA_ANALYSIS_DB_PASSWORD} + POSTGRES_DB: ${DATA_ANALYSIS_DB_NAME} + POSTGRES_HOST_AUTH_METHOD: "trust" + volumes: + - ./postgres/data-analysis-api/:/var/lib/postgresql/data 777 + networks: + - formsflow + ports: + - '5430:5432' + + forms-flow-data-analysis-api: + image: formsflow/forms-flow-data-analysis-api:v5.3.0 + restart: always + links: + - forms-flow-data-analysis-db + volumes: + - ./:/app:rw + environment: + POSTGRES_USER: ${DATA_ANALYSIS_DB_USER:-general} + POSTGRES_PASSWORD: ${DATA_ANALYSIS_DB_PASSWORD:-changeme} + POSTGRES_DB: ${DATA_ANALYSIS_DB_NAME:-dataanalysis} + JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration + JWT_OIDC_ALGORITHMS: 'RS256' + JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs + JWT_OIDC_ISSUER: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} + JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + JWT_OIDC_CACHING_ENABLED: 'True' + JWT_OIDC_JWKS_CACHE_TIMEOUT: 300 + DATA_ANALYSIS_API_BASE_URL: ${DATA_ANALYSIS_API_BASE_URL} + MODEL_ID: ${MODEL_ID:-Seethal/sentiment_analysis_generic_dataset} + DATABASE_SUPPORT: ${DATABASE_SUPPORT:-DISABLED} + ports: + - '6000:5001' + networks: + - formsflow + + proxy: + image: nginx:stable-alpine + volumes: + - ./configuration/conf.d/nginx.conf:/etc/nginx/nginx.conf + restart: unless-stopped + links: + - forms-flow-bpm + - forms-flow-web + - forms-flow-webapi + - forms-flow-forms + ports: + - "8081:8081" + networks: + - formsflow + +volumes: + postgres: + mongodb: +networks: + formsflow: + driver: bridge diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 9f08580..6efcee3 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -53,7 +53,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.2.0 + image: formsflow/forms-flow-web:v5.3.0 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -94,7 +94,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.2.0 + image: formsflow/forms-flow-forms:v5.3.0 restart: always environment: DEBUG: formio:* @@ -125,7 +125,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.2.0 + image: formsflow/forms-flow-bpm:v5.3.0 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -180,7 +180,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.2.0 + image: formsflow/forms-flow-webapi:v5.3.0 restart: always links: - forms-flow-webapi-db @@ -220,7 +220,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v5.2.0 + image: formsflow/forms-flow-documents-api:v5.3.0 restart: always links: - forms-flow-forms @@ -249,6 +249,46 @@ services: networks: - formsflow + forms-flow-data-analysis-db: + image: postgres:14 + environment: + POSTGRES_USER: ${DATA_ANALYSIS_DB_USER} + POSTGRES_PASSWORD: ${DATA_ANALYSIS_DB_PASSWORD} + POSTGRES_DB: ${DATA_ANALYSIS_DB_NAME} + POSTGRES_HOST_AUTH_METHOD: "trust" + volumes: + - ./postgres/data-analysis-api/:/var/lib/postgresql/data 777 + networks: + - formsflow + ports: + - '5430:5432' + + forms-flow-data-analysis-api: + image: formsflow/forms-flow-data-analysis-api:v5.3.0 + restart: always + links: + - forms-flow-data-analysis-db + volumes: + - ./:/app:rw + environment: + POSTGRES_USER: ${DATA_ANALYSIS_DB_USER:-general} + POSTGRES_PASSWORD: ${DATA_ANALYSIS_DB_PASSWORD:-changeme} + POSTGRES_DB: ${DATA_ANALYSIS_DB_NAME:-dataanalysis} + JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration + JWT_OIDC_ALGORITHMS: 'RS256' + JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs + JWT_OIDC_ISSUER: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} + JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} + JWT_OIDC_CACHING_ENABLED: 'True' + JWT_OIDC_JWKS_CACHE_TIMEOUT: 300 + DATA_ANALYSIS_API_BASE_URL: ${DATA_ANALYSIS_API_BASE_URL} + MODEL_ID: ${MODEL_ID:-Seethal/sentiment_analysis_generic_dataset} + DATABASE_SUPPORT: ${DATABASE_SUPPORT:-DISABLED} + ports: + - '6001:5000' + networks: + - formsflow + proxy: image: nginx:stable-alpine volumes: diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 07b8a8e..0ce3d67 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -199,13 +199,13 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #The MF Variables below are used to get MicroFrontend Components Created ##For running locally or if have custom changes then change the url to the one forms-flow-web folder content is running -#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.2.0/single-spa-build.gz.js +#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.3.0/single-spa-build.gz.js ## Refer Github Repo https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends and update to your own custom implementation for the Components here -#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.2.0/forms-flow-nav.gz.js -#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.2.0/forms-flow-service.gz.js -#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.2.0/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.2.0/forms-flow-theme.gz.js +#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js +#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.3.0/forms-flow-service.gz.js +#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.3.0/forms-flow-admin.gz.js +#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.3.0/forms-flow-theme.gz.js #++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# diff --git a/scripts/install.bash b/scripts/install.bash index 6fdad9c..b7ad8f8 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -1,253 +1,222 @@ #!/bin/bash -ipadd=$(hostname -I | awk '{print $1}') -webapi_port=5001 -if [ "$(uname)" == "Darwin" ]; then - ipadd=$(ipconfig getifaddr en0) -fi - -docker_compose_file='docker-compose.yml' -if [ "$(uname -m)" == "arm64" ]; then - docker_compose_file='docker-compose-arm64.yml' -fi - -echo "Do you wish to continue installation that include ANALYTICS? [y/n]" -read choice -if [[ $choice == "y" ]]; then - ANALYTICS=1 -elif [[ $choice == "n" ]]; then - ANALYTICS=0 -fi -echo "Confirm that your IPv4 address is $ipadd [y/n]" -read choice -if [[ $choice == "y" ]]; then - ipadd=$ipadd - echo "$ipadd" -elif [[ $choice == "n" ]]; then - read -p "Enter your IP Adress: " ipadd - echo "$ipadd" -fi - -KEYCLOAK_BPM_CLIENT_SECRET="e4bdbd25-1467-4f7f-b993-bc4b1944c943" -KEYCLOAK_URL="http://$ipadd:8080" -KEYCLOAK_URL_REALM="forms-flow-ai" - -############################################################# -######################### main function ##################### -############################################################# - -function main -{ - keycloak - if [[ $ANALYTICS == 1 ]]; then - formsFlowAnalytics - formsFlowForms - elif [[ $ANALYTICS == 0 ]]; then - formsFlowForms - fi - - formsFlowBpm - installconfig - formsFlowApi - formsFlowDocuments - formsFlowWeb +# Function to determine the IP address +get_ip_address() { + ipadd=$(hostname -I | awk '{print $1}') + if [ "$(uname)" == "Darwin" ]; then + ipadd=$(ipconfig getifaddr en0) + fi } -function isUp -{ - # Check if the web api is up - api_status="$(curl -LI http://$ipadd:$webapi_port -o /dev/null -w '%{http_code}\n' -s)" - if [[ $api_status == 200 ]]; then - echo "********************** formsflow.ai is successfully installed ****************************" - else - echo "Finishing setup" - sleep 5 - isUp +# Function to set the appropriate Docker Compose file based on the architecture +set_docker_compose_file() { + docker_compose_file='docker-compose.yml' + if [ "$(uname -m)" == "arm64" ]; then + docker_compose_file='docker-compose-arm64.yml' fi - } -############################################################# -######################## creating config.js ################# -############################################################# +# Define the array of valid Docker versions +validVersions=("24.0.6" "24.0.5" "24.0.4" "24.0.3" "24.0.2" "24.0.1" "24.0.0" "23.0.6" "23.0.5" "23.0.4" "23.0.3" "23.0.2" "23.0.1" "23.0.0" "20.10.24" "20.10.23") -function installconfig -{ -# cd configuration/ -# pwd -# if [[ -f config.js ]]; then -# rm config.js -# fi +# Run the docker -v command and capture its output +docker_info=$(docker -v 2>&1) - NODE_ENV="development" - DRAFT_ENABLED=true - EXPORT_PDF_ENABLED=true - DOCUMENT_SERVICE_URL="http://$ipadd:5006" +# Extract the Docker version using string manipulation +docker_version=$(echo "$docker_info" | awk '{print $3}' | tr -d ,) +# Display the extracted Docker version +echo "Docker version: $docker_version" - echo NODE_ENV=$NODE_ENV>>.env - echo DRAFT_ENABLED=$DRAFT_ENABLED>>.env - echo DOCUMENT_SERVICE_URL=$DOCUMENT_SERVICE_URL>>.env - echo EXPORT_PDF_ENABLED=$EXPORT_PDF_ENABLED>>.env +# Check if the user's version is in the list +versionFound=false +for version in "${validVersions[@]}"; do + if [ "$docker_version" == "$version" ]; then + versionFound=true + break + fi +done + +# If the user's version is not found, display a warning and prompt for continuation +if [ "$versionFound" == false ]; then + echo "This Docker version is not tested!" + read -p "Do you want to continue? [y/n]: " continue + if [ "$continue" != "y" ]; then + exit + fi +fi +# Function to check if the web API is up +isUp() { + while true; do + HTTP=$(curl -LI "http://$ip_add:5001" -o /dev/null -w "%{http_code}" -s) + if [ "$HTTP" == "200" ]; then + echo "formsflow.ai is successfully installed." + exit 0 + else + echo "Finishing setup." + sleep 6 + fi + done } -############################################################# -###################### forms-flow-Analytics ################# -############################################################# - -function formsFlowAnalytics -{ - REDASH_HOST=http://$ipadd:7001 - PYTHONUNBUFFERED=0 - REDASH_LOG_LEVEL=INFO - REDASH_REDIS_URL=redis://redis:6379/0 - POSTGRES_USER=postgres - POSTGRES_PASSWORD=changeme - POSTGRES_DB=postgres - REDASH_COOKIE_SECRET=redash-selfhosted - REDASH_SECRET_KEY=redash-selfhosted - REDASH_DATABASE_URL=postgresql://postgres:changeme@postgres/postgres - REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=* - REDASH_REFERRER_POLICY=no-referrer-when-downgrade - REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type,Authorization - - echo REDASH_HOST=$REDASH_HOST>>.env - echo PYTHONUNBUFFERED=$PYTHONUNBUFFERED>>.env - echo REDASH_LOG_LEVEL=$REDASH_LOG_LEVEL>>.env - echo REDASH_REDIS_URL=$REDASH_REDIS_URL>>.env - echo POSTGRES_USER=$POSTGRES_USER>>.env - echo POSTGRES_PASSWORD=$POSTGRES_PASSWORD>>.env - echo POSTGRES_DB=$POSTGRES_DB>>.env - echo REDASH_COOKIE_SECRET=$REDASH_COOKIE_SECRET>>.env - echo REDASH_SECRET_KEY=$REDASH_SECRET_KEY>>.env - echo REDASH_DATABASE_URL=$REDASH_DATABASE_URL>>.env - echo REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=$REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN>>.env - echo REDASH_REFERRER_POLICY=$REDASH_REFERRER_POLICY>>.env - echo REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=$REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS>>.env - - docker-compose -p formsflow-ai -f analytics-docker-compose.yml run --rm server create_db - docker-compose -p formsflow-ai -f analytics-docker-compose.yml up --build -d +# Function to find the IPv4 address +find_my_ip() { + ipadd=$(hostname -I | awk '{print $1}') + ip_add=$ipadd + read -p "Confirm that your IPv4 address is $ip_add? [y/n]: " choice + if [ "$choice" != "y" ]; then + read -p "What is your IPv4 address? " ip_add + fi } -############################################################# -######################## forms-flow-bpm ##################### -############################################################# - -function formsFlowBpm -{ - FORMSFLOW_API_URL=http://$ipadd:$webapi_port - WEBSOCKET_SECURITY_ORIGIN=http://$ipadd:3000 - SESSION_COOKIE_SECURE=false - - echo KEYCLOAK_URL=$KEYCLOAK_URL >> .env - echo KEYCLOAK_BPM_CLIENT_SECRET=$KEYCLOAK_BPM_CLIENT_SECRET >>.env - echo FORMSFLOW_API_URL=$FORMSFLOW_API_URL >>.env - echo WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN >> .env - echo SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE} >> .env - docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-bpm +# Function to set common properties +set_common_properties() { + WEBSOCKET_ENCRYPT_KEY="giert989jkwrgb@DR55" + KEYCLOAK_BPM_CLIENT_SECRET="e4bdbd25-1467-4f7f-b993-bc4b1944c943" + export WEBSOCKET_ENCRYPT_KEY + export KEYCLOAK_BPM_CLIENT_SECRET } -############################################################# -######################## forms-flow-webapi ################## -############################################################# - -function formsFlowApi -{ - BPM_API_URL=http://$ipadd:8000/camunda - echo BPM_API_URL=$BPM_API_URL >> .env - if [[ $ANALYTICS == 1 ]]; then ( - echo What is your Redash API key? - read INSIGHT_API_KEY - INSIGHT_API_URL=http://$ipadd:7001 - echo INSIGHT_API_URL=$INSIGHT_API_URL >> .env - echo INSIGHT_API_KEY=$INSIGHT_API_KEY >> .env - ) +# Function to start Keycloak +keycloak() { + cd ../docker-compose/ + if [ -f "$1/.env" ]; then + rm "$1/.env" fi - - docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-webapi -} - -############################################################# -######################## forms-flow-documents ################## -############################################################# - -function formsFlowDocuments -{ - FORMSFLOW_DOC_API_URL=http://$ipadd:5006 - echo DOCUMENT_SERVICE_URL=$DOCUMENT_SERVICE_URL >>.env - - docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-documents + docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d keycloak + sleep 5 + KEYCLOAK_URL="http://$ip_add:8080" + export KEYCLOAK_URL } -############################################################# -######################## forms-flow-forms ################### -############################################################# +# Function to start forms-flow-forms +forms_flow_forms() { + FORMIO_DEFAULT_PROJECT_URL="http://$ip_add:3001" + echo "FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL" >> "$1/.env" + docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-forms + sleep 5 +} -function formsFlowForms -{ - cd ../docker-compose - FORMIO_DEFAULT_PROJECT_URL=http://$ipadd:3001 +# Function to start forms-flow-web +forms_flow_web() { + BPM_API_URL="http://$ip_add:8000/camunda" + echo "BPM_API_URL=$BPM_API_URL" >> "$1/.env" + docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-web +} - echo FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL>>.env +# Function to start forms-flow-bpm +forms_flow_bpm() { + FORMSFLOW_API_URL="http://$ip_add:5001" + WEBSOCKET_SECURITY_ORIGIN="http://$ip_add:3000" + SESSION_COOKIE_SECURE="false" + echo "FORMSFLOW_API_URL=$FORMSFLOW_API_URL" >> "$1/.env" + echo "WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN" >> "$1/.env" + echo "SESSION_COOKIE_SECURE=$SESSION_COOKIE_SECURE" >> "$1/.env" + docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-bpm + sleep 6 +} - docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-forms +# Function to start forms-flow-analytics +forms_flow_analytics() { + REDASH_HOST="http://$ip_add:7001" + PYTHONUNBUFFERED="0" + REDASH_LOG_LEVEL="INFO" + REDASH_REDIS_URL="redis://redis:6379/0" + POSTGRES_USER="postgres" + POSTGRES_PASSWORD="changeme" + POSTGRES_DB="postgres" + REDASH_COOKIE_SECRET="redash-selfhosted" + REDASH_SECRET_KEY="redash-selfhosted" + REDASH_DATABASE_URL="postgresql://postgres:changeme@postgres/postgres" + REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN="*" + REDASH_REFERRER_POLICY="no-referrer-when-downgrade" + REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS="Content-Type, Authorization" + echo "REDASH_HOST=$REDASH_HOST" >> "$1/.env" + echo "PYTHONUNBUFFERED=$PYTHONUNBUFFERED" >> "$1/.env" + echo "REDASH_LOG_LEVEL=$REDASH_LOG_LEVEL" >> "$1/.env" + echo "REDASH_REDIS_URL=$REDASH_REDIS_URL" >> "$1/.env" + echo "POSTGRES_USER=$POSTGRES_USER" >> "$1/.env" + echo "POSTGRES_PASSWORD=$POSTGRES_PASSWORD" >> "$1/.env" + echo "POSTGRES_DB=$POSTGRES_DB" >> "$1/.env" + echo "REDASH_COOKIE_SECRET=$REDASH_COOKIE_SECRET" >> "$1/.env" + echo "REDASH_SECRET_KEY=$REDASH_SECRET_KEY" >> "$1/.env" + echo "REDASH_DATABASE_URL=$REDASH_DATABASE_URL" >> "$1/.env" + echo "REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=$REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN" >> "$1/.env" + echo "REDASH_REFERRER_POLICY=$REDASH_REFERRER_POLICY" >> "$1/.env" + echo "REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=$REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS" >> "$1/.env" + docker-compose -p formsflow-ai -f "$1/analytics-docker-compose.yml" run --rm server create_db + docker-compose -p formsflow-ai -f "$1/analytics-docker-compose.yml" up --build -d + sleep 5 +} +# Function to start forms-flow-webapi +forms_flow_api() { + if [ "$2" == "1" ]; then + read -p "What is your Redash API key? " INSIGHT_API_KEY + INSIGHT_API_URL="http://$ip_add:7001" + echo "INSIGHT_API_URL=$INSIGHT_API_URL" >> "$1/.env" + echo "INSIGHT_API_KEY=$INSIGHT_API_KEY" >> "$1/.env" + fi + docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-webapi } -function formsFlowWeb -{ -cd ../docker-compose/ -docker-compose -p formsflow-ai -f $docker_compose_file up --build -d forms-flow-web -isUp + +# Function to start forms-flow-documents-api +forms_flow_documents() { + DOCUMENT_SERVICE_URL="http://$ip_add:5006" + echo "DOCUMENT_SERVICE_URL=$DOCUMENT_SERVICE_URL" >> "$1/.env" + docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-documents-api + sleep 5 } -############################################################# -########################### Keycloak ######################## -############################################################# +# Function to start forms-flow-data-analysis-api +forms_flow_data_analysis() { + DATA_ANALYSIS_API_BASE_URL="http://$ip_add:6001" + DATA_ANALYSIS_DB_URL="postgresql://general:changeme@forms-flow-data-analysis-db:5432/dataanalysis" + echo "DATA_ANALYSIS_API_BASE_URL=$DATA_ANALYSIS_API_BASE_URL" >> "$1/.env" + echo "DATA_ANALYSIS_DB_URL=$DATA_ANALYSIS_DB_URL" >> "$1/.env" + docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-data-analysis-api + sleep 5 +} -function keycloak -{ - cd ../docker-compose/ - if [[ -f .env ]]; then - rm .env +# Main function +main() { + set_common_properties + find_my_ip + keycloak "$1" + forms_flow_forms "$1" + forms_flow_web "$1" + forms_flow_bpm "$1" + forms_flow_analytics "$1" + if [ "$1" == "1" ]; then + forms_flow_api "$1" "$2" fi - function defaultinstallation - { - echo WE ARE SETING UP OUR DEFAULT KEYCLOCK FOR YOU - printf "%s " "Press enter to continue" - read that - echo Please wait, keycloak is setting up! - docker-compose -p formsflow-ai -f $docker_compose_file up --build -d keycloak - } + forms_flow_documents "$1" + forms_flow_data_analysis "$1" + isUp + echo "********************** formsflow.ai is successfully installed ****************************" + exit 0 } -function orderwithanalytics -{ - echo installation will be completed in the following order: - echo 1. keycloak - echo 2. analytics - echo 3. forms - echo 4. camunda - echo 5. webapi - echo 6. web - printf "%s " "Press enter to continue" - read that - main -} -function withoutanalytics -{ - echo installation will be completed in the following order: - echo 1. keycloak - echo 2. forms - echo 3. camunda - echo 4. webapi - echo 5. web - printf "%s " "Press enter to continue" - read that - main -} -if [[ $ANALYTICS == 1 ]]; then - orderwithanalytics -elif [[ $ANALYTICS == 0 ]]; then - withoutanalytics + +# Check if Docker is installed and running +if ! command -v docker &> /dev/null; then + echo "Docker is not installed or not running. Please install and start Docker before running this script." + exit 1 +fi + +# Check if Docker Compose is installed +if ! command -v docker-compose &> /dev/null; then + echo "Docker Compose is not installed. Please install Docker Compose before running this script." + exit 1 +fi + +# Start the installation process +read -p "Do you want analytics to include in the installation? [y/n]: " choice +if [ "$choice" == "y" ]; then + analytics=1 +else + analytics=0 fi + +main "." "$analytics" diff --git a/scripts/install.bat b/scripts/install.bat index 14605c0..a4d578c 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -1,5 +1,49 @@ @echo off +setlocal EnableDelayedExpansion + +:: Define the array of valid Docker versions +set "validVersions=24.0.6 24.0.5 24.0.4 24.0.3 24.0.2 24.0.1 24.0.0 23.0.6 23.0.5 23.0.4 23.0.3 23.0.2 23.0.1 23.0.0 20.10.24 20.10.23" + +:: Run the docker -v command and capture its output +for /f "tokens=*" %%A in ('docker -v 2^>^&1') do ( + set "docker_info=%%A" +) + +:: Extract the Docker version using string manipulation +for /f "tokens=3" %%B in ("!docker_info!") do ( + set "docker_version=%%B" + set "docker_version=!docker_version:,=!" +) +:: Display the extracted Docker version +echo Docker version: %docker_version% + +:: Check if the user's version is in the list +set "versionFound=" +for %%B in (%validVersions%) do ( + if "!docker_version!" equ "%%B" ( + set "versionFound=true" + goto :VersionFound + ) +) + +:: If the user's version is not found, display a warning +echo This Docker version is not tested! +set /p continue=Do you want to continue? [y/n] +if %continue%== y ( + goto :start +) else ( + exit +) + +:VersionFound +:: Display a success message if the version is found +echo Your Docker version (%docker_version%) is tested and working! + +goto :start + +:start + set /p choice=Do you want analytics to include in the installation? [y/n] if %choice%==y ( set /a analytics=1 @@ -33,6 +77,7 @@ EXIT /B %ERRORLEVEL% call:forms-flow-web ..\docker-compose call:forms-flow-api ..\docker-compose %~1 call:forms-flow-documents ..\docker-compose + call:forms-flow-data-analysis-api ..\docker-compose call:isUp EXIT /B 0 @@ -180,12 +225,10 @@ EXIT /B %ERRORLEVEL% SETLOCAL - set BPM_API_URL=http://%ip-add%:8000/camunda if %~2==1 ( set /p INSIGHT_API_KEY="What is your Redash API key?" set INSIGHT_API_URL=http://%ip-add%:7001 ) - echo BPM_API_URL=%BPM_API_URL%>>%~1\.env if %~2==1 ( echo INSIGHT_API_URL=%INSIGHT_API_URL%>>%~1\.env echo INSIGHT_API_KEY=%INSIGHT_API_KEY%>>%~1\.env @@ -208,3 +251,16 @@ EXIT /B %ERRORLEVEL% timeout 5 EXIT /B 0 +:forms-flow-data-analysis-api + + SETLOCAL + set DATA_ANALYSIS_API_BASE_URL=http://%ip-add%:6001 + set DATA_ANALYSIS_DB_URL=postgresql://general:changeme@forms-flow-data-analysis-db:5432/dataanalysis + + echo DATA_ANALYSIS_API_BASE_URL=%DATA_ANALYSIS_API_BASE_URL%>>%~1\.env + echo DATA_ANALYSIS_DB_URL=%DATA_ANALYSIS_DB_URL%>>%~1\.env + + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-data-analysis-api + timeout 5 + EXIT /B 0 + From 9324a7540e41ef0974faee3d15cebee5f17342c1 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Thu, 8 Feb 2024 05:35:59 -0800 Subject: [PATCH 52/70] image updation --- docker-compose/docker-compose-arm64.yml | 18 +++++++++--------- docker-compose/docker-compose-ee.yml | 10 +++++----- docker-compose/docker-compose.yml | 10 +++++----- docker-compose/sample.env | 10 +++++----- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 97585dd..acbaee7 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -53,17 +53,17 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.3.0 + image: formsflow/forms-flow-web:v5.3.1 platform: linux/arm64/v8 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.0/forms-flow-web.gz.js} - # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js} - # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.3.0/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.3.0/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.0/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.1/forms-flow-web.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.1/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.3.1/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.3.1/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.1/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -131,7 +131,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.3.0-arm64 + image: formsflow/forms-flow-bpm:v5.3.1-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -186,7 +186,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.3.0 + image: formsflow/forms-flow-webapi:v5.3.1 restart: always links: - forms-flow-webapi-db @@ -226,7 +226,7 @@ services: - formsflow forms-flow-documents: - image: formsflow/forms-flow-documents-api:v5.3.0-arm64 + image: formsflow/forms-flow-documents-api:v5.3.1-arm64 restart: always volumes: - ./:/app:rw diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index ee4a017..c45bf0a 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -53,7 +53,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web-ee:v5.3.0 + image: formsflow/forms-flow-web-ee:v5.3.1 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -125,7 +125,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm-ee:v5.3.0 + image: formsflow/forms-flow-bpm-ee:v5.3.1 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -180,7 +180,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi-ee:v5.3.0 + image: formsflow/forms-flow-webapi-ee:v5.3.1 restart: always links: - forms-flow-webapi-db @@ -220,7 +220,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api-ee:v5.3.0 + image: formsflow/forms-flow-documents-api-ee:v5.3.1 restart: always links: - forms-flow-forms @@ -264,7 +264,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v5.3.0 + image: formsflow/forms-flow-data-analysis-api:v5.3.1 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 6efcee3..e6f8361 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -53,7 +53,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.3.0 + image: formsflow/forms-flow-web:v5.3.1 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -125,7 +125,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.3.0 + image: formsflow/forms-flow-bpm:v5.3.1 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -180,7 +180,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.3.0 + image: formsflow/forms-flow-webapi:v5.3.1 restart: always links: - forms-flow-webapi-db @@ -220,7 +220,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v5.3.0 + image: formsflow/forms-flow-documents-api:v5.3.1 restart: always links: - forms-flow-forms @@ -264,7 +264,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v5.3.0 + image: formsflow/forms-flow-data-analysis-api:v5.3.1 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 0ce3d67..e5f7f3a 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -199,13 +199,13 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #The MF Variables below are used to get MicroFrontend Components Created ##For running locally or if have custom changes then change the url to the one forms-flow-web folder content is running -#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.3.0/single-spa-build.gz.js +#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.3.1/single-spa-build.gz.js ## Refer Github Repo https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends and update to your own custom implementation for the Components here -#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js -#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.3.0/forms-flow-service.gz.js -#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.3.0/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.3.0/forms-flow-theme.gz.js +#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.3.1/forms-flow-nav.gz.js +#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.3.1/forms-flow-service.gz.js +#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.3.1/forms-flow-admin.gz.js +#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.3.1/forms-flow-theme.gz.js #++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# From 1bfe4b9d246eca657a30631625fd90ab70b87481 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Sun, 11 Feb 2024 20:03:25 -0800 Subject: [PATCH 53/70] data-analysis exception --- scripts/install.bash | 16 +++++++++++++++- scripts/install.bat | 5 ++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/scripts/install.bash b/scripts/install.bash index b7ad8f8..7241c16 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -193,7 +193,21 @@ main() { forms_flow_api "$1" "$2" fi forms_flow_documents "$1" - forms_flow_data_analysis "$1" + + # Ask the user if they want to install forms-flow-data-analysis-api + echo "for opensource - One distinctive capability of the formsflow.ai involves Sentiment Analysis, allowing it to assess sentiments within forms by considering specific topics specified by the designer during form creation. The data analysis api encompasses access to all pertinent interfaces tailored for sentiment analysis" + read -p "Do you want to install forms-flow-data-analysis-api? [y/n]: " install_data_analysis + if [ "$install_data_analysis" == "y" ]; then + forms_flow_data_analysis "$1" + else + echo "Skipping forms-flow-data-analysis-api installation." + fi + + if [ "$1" == "1" ]; then + forms_flow_api "$1" "$2" + fi + + forms_flow_documents "$1" isUp echo "********************** formsflow.ai is successfully installed ****************************" exit 0 diff --git a/scripts/install.bat b/scripts/install.bat index a4d578c..7698448 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -77,7 +77,10 @@ EXIT /B %ERRORLEVEL% call:forms-flow-web ..\docker-compose call:forms-flow-api ..\docker-compose %~1 call:forms-flow-documents ..\docker-compose - call:forms-flow-data-analysis-api ..\docker-compose + set /p includeDataAnalysis=Do you want to include forms-flow-data-analysis-api in the installation? [y/n] + if /i "%includeDataAnalysis%"=="y" ( + call:forms-flow-data-analysis-api ..\docker-compose + ) call:isUp EXIT /B 0 From 4d5f8b40ef983a4d080cb6ddde55603bbc1d3fc2 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Mon, 12 Feb 2024 23:49:18 -0800 Subject: [PATCH 54/70] updated tested versions --- scripts/install.bash | 2 +- scripts/install.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install.bash b/scripts/install.bash index 7241c16..4033701 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -17,7 +17,7 @@ set_docker_compose_file() { } # Define the array of valid Docker versions -validVersions=("24.0.6" "24.0.5" "24.0.4" "24.0.3" "24.0.2" "24.0.1" "24.0.0" "23.0.6" "23.0.5" "23.0.4" "23.0.3" "23.0.2" "23.0.1" "23.0.0" "20.10.24" "20.10.23") +validVersions=("25.0.3" "25.0.2" "25.0.1" "25.0.0" "24.0.9" "24.0.8" "24.0.7" "24.0.6" "24.0.5" "24.0.4" "24.0.3" "24.0.2" "24.0.1" "24.0.0" "23.0.6" "23.0.5" "23.0.4" "23.0.3" "23.0.2" "23.0.1" "23.0.0" "20.10.24" "20.10.23") # Run the docker -v command and capture its output docker_info=$(docker -v 2>&1) diff --git a/scripts/install.bat b/scripts/install.bat index 7698448..485e8e6 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -3,7 +3,7 @@ setlocal EnableDelayedExpansion :: Define the array of valid Docker versions -set "validVersions=24.0.6 24.0.5 24.0.4 24.0.3 24.0.2 24.0.1 24.0.0 23.0.6 23.0.5 23.0.4 23.0.3 23.0.2 23.0.1 23.0.0 20.10.24 20.10.23" +set "validVersions=25.0.3 25.0.2 25.0.1 25.0.0 24.0.9 24.0.8 24.0.7 24.0.6 24.0.5 24.0.4 24.0.3 24.0.2 24.0.1 24.0.0 23.0.6 23.0.5 23.0.4 23.0.3 23.0.2 23.0.1 23.0.0 20.10.24 20.10.23" :: Run the docker -v command and capture its output for /f "tokens=*" %%A in ('docker -v 2^>^&1') do ( From b1ea17b6419d6799eb026cb0dea325828cd7a61b Mon Sep 17 00:00:00 2001 From: Sumesh Kariyil Date: Fri, 1 Mar 2024 15:10:38 -0800 Subject: [PATCH 55/70] Fix issue with mac installation --- scripts/install.bash | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/install.bash b/scripts/install.bash index 4033701..cb917d2 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -63,6 +63,9 @@ isUp() { # Function to find the IPv4 address find_my_ip() { ipadd=$(hostname -I | awk '{print $1}') + if [ "$(uname)" == "Darwin" ]; then + ipadd=$(ipconfig getifaddr en0) + fi ip_add=$ipadd read -p "Confirm that your IPv4 address is $ip_add? [y/n]: " choice if [ "$choice" != "y" ]; then @@ -85,7 +88,7 @@ keycloak() { rm "$1/.env" fi - docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d keycloak + docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d keycloak sleep 5 KEYCLOAK_URL="http://$ip_add:8080" export KEYCLOAK_URL @@ -95,7 +98,7 @@ keycloak() { forms_flow_forms() { FORMIO_DEFAULT_PROJECT_URL="http://$ip_add:3001" echo "FORMIO_DEFAULT_PROJECT_URL=$FORMIO_DEFAULT_PROJECT_URL" >> "$1/.env" - docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-forms + docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-forms sleep 5 } @@ -103,7 +106,7 @@ forms_flow_forms() { forms_flow_web() { BPM_API_URL="http://$ip_add:8000/camunda" echo "BPM_API_URL=$BPM_API_URL" >> "$1/.env" - docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-web + docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-web } # Function to start forms-flow-bpm @@ -114,7 +117,7 @@ forms_flow_bpm() { echo "FORMSFLOW_API_URL=$FORMSFLOW_API_URL" >> "$1/.env" echo "WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN" >> "$1/.env" echo "SESSION_COOKIE_SECURE=$SESSION_COOKIE_SECURE" >> "$1/.env" - docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-bpm + docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-bpm sleep 6 } @@ -159,14 +162,14 @@ forms_flow_api() { echo "INSIGHT_API_URL=$INSIGHT_API_URL" >> "$1/.env" echo "INSIGHT_API_KEY=$INSIGHT_API_KEY" >> "$1/.env" fi - docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-webapi + docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-webapi } # Function to start forms-flow-documents-api forms_flow_documents() { DOCUMENT_SERVICE_URL="http://$ip_add:5006" echo "DOCUMENT_SERVICE_URL=$DOCUMENT_SERVICE_URL" >> "$1/.env" - docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-documents-api + docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-documents-api sleep 5 } @@ -176,17 +179,17 @@ forms_flow_data_analysis() { DATA_ANALYSIS_DB_URL="postgresql://general:changeme@forms-flow-data-analysis-db:5432/dataanalysis" echo "DATA_ANALYSIS_API_BASE_URL=$DATA_ANALYSIS_API_BASE_URL" >> "$1/.env" echo "DATA_ANALYSIS_DB_URL=$DATA_ANALYSIS_DB_URL" >> "$1/.env" - docker-compose -p formsflow-ai -f "$1/docker-compose.yml" up --build -d forms-flow-data-analysis-api + docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-data-analysis-api sleep 5 } # Main function main() { set_common_properties + set_docker_compose_file find_my_ip keycloak "$1" forms_flow_forms "$1" - forms_flow_web "$1" forms_flow_bpm "$1" forms_flow_analytics "$1" if [ "$1" == "1" ]; then @@ -208,6 +211,7 @@ main() { fi forms_flow_documents "$1" + forms_flow_web "$1" isUp echo "********************** formsflow.ai is successfully installed ****************************" exit 0 From a4e3ed1d8d167f6222d24dff80592a1ccbc0218e Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Thu, 4 Apr 2024 21:02:14 -0700 Subject: [PATCH 56/70] Keycloak upgrade (#62) * keycloak upgradations * changes to support keycloak 21 * changes for sentiment analysis * keycloak upgraded to 23 * keycloak version changed from 23.0.1 to 23.0.7 * added permissions * start-keycloak.sh file updated in linux environment * removed the /r files * Update start-keycloak.sh * Update start-keycloak.sh * Update start-keycloak.sh * Update start-keycloak.sh * Create .gitattributes --------- Co-authored-by: root Co-authored-by: root Co-authored-by: Kiran K A Co-authored-by: Sumesh Kariyil --- .gitattributes | 5 + .../configuration/start-keycloak.sh | 12 + docker-compose/docker-compose-arm64.yml | 24 +- docker-compose/docker-compose-ee.yml | 24 +- docker-compose/docker-compose.yml | 25 +- docker-compose/sample.env | 5 +- scripts/install.bash | 2 +- scripts/install.bat | 536 +++++++++--------- 8 files changed, 338 insertions(+), 295 deletions(-) create mode 100644 .gitattributes create mode 100755 docker-compose/configuration/start-keycloak.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..914908d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# Set default behavior to automatically normalize line endings. +* text=auto + +# Specify that .sh files should always use LF line endings. +*.sh text eol=lf \ No newline at end of file diff --git a/docker-compose/configuration/start-keycloak.sh b/docker-compose/configuration/start-keycloak.sh new file mode 100755 index 0000000..f3620ee --- /dev/null +++ b/docker-compose/configuration/start-keycloak.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Default values if the variables are not set +START_MODE=${KEYCLOAK_START_MODE:-"start"} +HTTP_PATH=${KEYCLOAK_HTTP_PATH:-"/auth"} + +# Construct the command +COMMAND="/opt/keycloak/bin/kc.sh $START_MODE --import-realm --http-relative-path $HTTP_PATH" + +# Execute the command +echo "Executing command: $COMMAND" +exec $COMMAND diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index acbaee7..9a99003 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -2,23 +2,29 @@ version: '3.7' services: keycloak-db: - image: postgres:14 + image: postgres:latest + restart: always + container_name: keycloak_db volumes: - ./postgres/keycloak:/var/lib/postgresql/data 777 environment: POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} - PGDATA: /var/lib/postgresql/data + ports: + - 5431:5431 networks: - formsflow keycloak: - image: formsflow/forms-flow-keycloak-arm64:14.0.0 + image: quay.io/keycloak/keycloak:23.0.7 + restart: always + container_name: keycloak volumes: - - ./configuration/imports:/opt/jboss/keycloak/imports - command: - - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING" + - ./configuration/imports:/opt/keycloak/data/import + - ./configuration/themes/formsflow:/opt/keycloak/themes/formsflow + - ./configuration/start-keycloak.sh:/opt/keycloak/bin/start-keycloak.sh + entrypoint: ["/bin/bash", "/opt/keycloak/bin/start-keycloak.sh"] environment: - DB_VENDOR=POSTGRES - DB_ADDR=keycloak-db @@ -26,8 +32,10 @@ services: - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} - DB_USER=${KEYCLOAK_JDBC_USER-admin} - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} - - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USER:-admin} - - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + - KEYCLOAK_ADMIN=${KEYCLOAK_ADMIN_USER:-admin} + - KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + - KEYCLOAK_START_MODE=${KEYCLOAK_START_MODE:-start-dev} + - KEYCLOAK_HTTP_PATH=${KEYCLOAK_HTTP_PATH:-/auth} ports: - "8080:8080" links: diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index c45bf0a..226031d 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -2,23 +2,29 @@ version: '3.7' services: keycloak-db: - image: postgres:14 + image: postgres:latest + restart: always + container_name: keycloak_db volumes: - ./postgres/keycloak:/var/lib/postgresql/data 777 environment: POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} - PGDATA: /var/lib/postgresql/data + ports: + - 5431:5431 networks: - formsflow keycloak: - image: quay.io/keycloak/keycloak:14.0.0 + image: quay.io/keycloak/keycloak:23.0.7 + restart: always + container_name: keycloak volumes: - - ./configuration/imports:/opt/jboss/keycloak/imports - command: - - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING" + - ./configuration/imports:/opt/keycloak/data/import + - ./configuration/themes/formsflow:/opt/keycloak/themes/formsflow + - ./configuration/start-keycloak.sh:/opt/keycloak/bin/start-keycloak.sh + entrypoint: ["/bin/bash", "/opt/keycloak/bin/start-keycloak.sh"] environment: - DB_VENDOR=POSTGRES - DB_ADDR=keycloak-db @@ -26,8 +32,10 @@ services: - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} - DB_USER=${KEYCLOAK_JDBC_USER-admin} - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} - - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USER:-admin} - - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + - KEYCLOAK_ADMIN=${KEYCLOAK_ADMIN_USER:-admin} + - KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + - KEYCLOAK_START_MODE=${KEYCLOAK_START_MODE:-start-dev} + - KEYCLOAK_HTTP_PATH=${KEYCLOAK_HTTP_PATH:-/auth} ports: - "8080:8080" links: diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index e6f8361..f8055ac 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -2,23 +2,29 @@ version: '3.7' services: keycloak-db: - image: postgres:14 + image: postgres:latest + restart: always + container_name: keycloak_db volumes: - ./postgres/keycloak:/var/lib/postgresql/data 777 environment: POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} - PGDATA: /var/lib/postgresql/data + ports: + - 5431:5431 networks: - formsflow keycloak: - image: quay.io/keycloak/keycloak:14.0.0 + image: quay.io/keycloak/keycloak:23.0.7 + restart: always + container_name: keycloak volumes: - - ./configuration/imports:/opt/jboss/keycloak/imports - command: - - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING" + - ./configuration/imports:/opt/keycloak/data/import + - ./configuration/themes/formsflow:/opt/keycloak/themes/formsflow + - ./configuration/start-keycloak.sh:/opt/keycloak/bin/start-keycloak.sh + entrypoint: ["/bin/bash", "/opt/keycloak/bin/start-keycloak.sh"] environment: - DB_VENDOR=POSTGRES - DB_ADDR=keycloak-db @@ -26,8 +32,11 @@ services: - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} - DB_USER=${KEYCLOAK_JDBC_USER-admin} - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} - - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USER:-admin} - - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + - KEYCLOAK_ADMIN=${KEYCLOAK_ADMIN_USER:-admin} + - KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} + - KEYCLOAK_START_MODE=${KEYCLOAK_START_MODE:-start-dev} + - KEYCLOAK_HTTP_PATH=${KEYCLOAK_HTTP_PATH:-/auth} + ports: - "8080:8080" links: diff --git a/docker-compose/sample.env b/docker-compose/sample.env index e5f7f3a..5d8212b 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -17,6 +17,9 @@ #KEYCLOAK_ADMIN_USER=admin #KEYCLOAK_ADMIN_PASSWORD=changeme +#KEYCLOAK_START_MODE=start +#KEYCLOAK_HTTP_PATH=/auth + #++++++++++++++++--- FORM.IO ENV Variables - START ---+++++++++++++++++++++++++# @@ -123,7 +126,7 @@ FORMSFLOW_API_URL=http://{your-ip-address}:5001 ##web API CORS origins #FORMSFLOW_API_CORS_ORIGINS=* #Sentiment analysis url -DATA_ANALYSIS_URL=http://{your-ip-address}:6000/analysis +DATA_ANALYSIS_URL=http://{your-ip-address}:6001 #++++++++++++++++--- formsflow.ai Python Webapi ENV Variables - END ---+++++++++++++++++++++++++# diff --git a/scripts/install.bash b/scripts/install.bash index cb917d2..7ff0398 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -87,7 +87,7 @@ keycloak() { if [ -f "$1/.env" ]; then rm "$1/.env" fi - + echo KEYCLOAK_START_MODE=start-dev >> .env docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d keycloak sleep 5 KEYCLOAK_URL="http://$ip_add:8080" diff --git a/scripts/install.bat b/scripts/install.bat index 485e8e6..4bcab3d 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -1,269 +1,267 @@ -@echo off - -setlocal EnableDelayedExpansion - -:: Define the array of valid Docker versions -set "validVersions=25.0.3 25.0.2 25.0.1 25.0.0 24.0.9 24.0.8 24.0.7 24.0.6 24.0.5 24.0.4 24.0.3 24.0.2 24.0.1 24.0.0 23.0.6 23.0.5 23.0.4 23.0.3 23.0.2 23.0.1 23.0.0 20.10.24 20.10.23" - -:: Run the docker -v command and capture its output -for /f "tokens=*" %%A in ('docker -v 2^>^&1') do ( - set "docker_info=%%A" -) - -:: Extract the Docker version using string manipulation -for /f "tokens=3" %%B in ("!docker_info!") do ( - set "docker_version=%%B" - set "docker_version=!docker_version:,=!" -) -:: Display the extracted Docker version -echo Docker version: %docker_version% - -:: Check if the user's version is in the list -set "versionFound=" -for %%B in (%validVersions%) do ( - if "!docker_version!" equ "%%B" ( - set "versionFound=true" - goto :VersionFound - ) -) - -:: If the user's version is not found, display a warning -echo This Docker version is not tested! -set /p continue=Do you want to continue? [y/n] -if %continue%== y ( - goto :start -) else ( - exit -) - -:VersionFound -:: Display a success message if the version is found -echo Your Docker version (%docker_version%) is tested and working! - -goto :start - -:start - -set /p choice=Do you want analytics to include in the installation? [y/n] -if %choice%==y ( - set /a analytics=1 -) else ( - set /a analytics=0 -) - -call:find-my-ip -call:main %analytics% %keycloak% - -echo ********************** formsflow.ai is successfully installed **************************** -pause - -EXIT /B %ERRORLEVEL% - - -:: ================&&&&&&=== Functions ====&&&&&&&&&============================ - -:: ############################################################# -:: ################### Main Function ########################### -:: ############################################################# - -:main - call:set-common-properties - call:keycloak ..\docker-compose %~2 - if %~1==1 ( - call:forms-flow-analytics ..\docker-compose - ) - call:forms-flow-forms ..\docker-compose - call:forms-flow-bpm ..\docker-compose - call:forms-flow-web ..\docker-compose - call:forms-flow-api ..\docker-compose %~1 - call:forms-flow-documents ..\docker-compose - set /p includeDataAnalysis=Do you want to include forms-flow-data-analysis-api in the installation? [y/n] - if /i "%includeDataAnalysis%"=="y" ( - call:forms-flow-data-analysis-api ..\docker-compose - ) - call:isUp - EXIT /B 0 - - -:: ############################################################# -:: ##################### Check working ######################## -:: ############################################################# - -:isUp - :Check if the web API is up - for /f %%a in ('curl -LI "http://%ip-add%:5001" -o nul -w "%%{http_code}" -s') do set "HTTP=%%a" - if "%HTTP%" == "200" ( - echo formsflow.ai is successfully installed. - EXIT /B 0 - ) else ( - echo Finishing setup. - ping 127.0.0.1 -n 6 >nul - goto isUp - ) - -:: ############################################################# -:: ################### Finding IP Address ###################### -:: ############################################################# - -:find-my-ip - FOR /F "tokens=4 delims= " %%i in ('route print ^| find " 0.0.0.0"') do set ip-add=%%i - set /p choice=Confirm that your IPv4 address is %ip-add%? [y/n] - if %choice%==y ( - EXIT /B 0 - ) else ( - set /p ip-add="What is your IPv4 address?" - ) - EXIT /B 0 - -:set-common-properties - set WEBSOCKET_ENCRYPT_KEY=giert989jkwrgb@DR55 - set KEYCLOAK_BPM_CLIENT_SECRET=e4bdbd25-1467-4f7f-b993-bc4b1944c943 - EXIT /B 0 - -:: ############################################################# -:: ########################### Keycloak ######################## -:: ############################################################# - -:keycloak - - if exist %~1\.env ( - del %~1\.env - ) - docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d keycloak - timeout 5 - set KEYCLOAK_URL=http://%ip-add%:8080 - ) - EXIT /B 0 - -:: ############################################################# -:: ################### forms-flow-forms ######################## -:: ############################################################# - -:forms-flow-forms - - set FORMIO_DEFAULT_PROJECT_URL=http://%ip-add%:3001 - echo FORMIO_DEFAULT_PROJECT_URL=%FORMIO_DEFAULT_PROJECT_URL%>>%~1\.env - docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-forms - timeout 5 - EXIT /B 0 - -:: ######################################################################### -:: ######################### forms-flow-web ################################ -:: ######################################################################### - -:forms-flow-web - - SETLOCAL - set BPM_API_URL=http://%ip-add%:8000/camunda - echo BPM_API_URL=%BPM_API_URL%>>%~1\.env - - docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-web - EXIT /B 0 - -:: ############################################################# -:: ################### forms-flow-bpm ######################## -:: ############################################################# - -:forms-flow-bpm - - SETLOCAL - set FORMSFLOW_API_URL=http://%ip-add%:5001 - set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 - set SESSION_COOKIE_SECURE=false - - echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env - echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env - echo FORMSFLOW_API_URL=%FORMSFLOW_API_URL%>>%~1\.env - echo WEBSOCKET_SECURITY_ORIGIN=%WEBSOCKET_SECURITY_ORIGIN%>>%~1\.env - echo SESSION_COOKIE_SECURE=%SESSION_COOKIE_SECURE%>>%~1\.env - ENDLOCAL - docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-bpm - timeout 6 - EXIT /B 0 - -:: ############################################################# -:: ################### forms-flow-analytics ######################## -:: ############################################################# - -:forms-flow-analytics - - SETLOCAL - set REDASH_HOST=http://%ip-add%:7001 - set PYTHONUNBUFFERED=0 - set REDASH_LOG_LEVEL=INFO - set REDASH_REDIS_URL=redis://redis:6379/0 - set POSTGRES_USER=postgres - set POSTGRES_PASSWORD=changeme - set POSTGRES_DB=postgres - set REDASH_COOKIE_SECRET=redash-selfhosted - set REDASH_SECRET_KEY=redash-selfhosted - set REDASH_DATABASE_URL=postgresql://postgres:changeme@postgres/postgres - set REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=* - set REDASH_REFERRER_POLICY=no-referrer-when-downgrade - set REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type, Authorization - echo REDASH_HOST=%REDASH_HOST%>>%~1\.env - echo PYTHONUNBUFFERED=%PYTHONUNBUFFERED%>>%~1\.env - echo REDASH_LOG_LEVEL=%REDASH_LOG_LEVEL%>>%~1\.env - echo REDASH_REDIS_URL=%REDASH_REDIS_URL%>>%~1\.env - echo POSTGRES_USER=%POSTGRES_USER%>>%~1\.env - echo POSTGRES_PASSWORD=%POSTGRES_PASSWORD%>>%~1\.env - echo POSTGRES_DB=%POSTGRES_DB%>>%~1\.env - echo REDASH_COOKIE_SECRET=%REDASH_COOKIE_SECRET%>>%~1\.env - echo REDASH_SECRET_KEY=%REDASH_SECRET_KEY%>>%~1\.env - echo REDASH_DATABASE_URL=%REDASH_DATABASE_URL%>>%~1\.env - echo REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=%REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN%>>%~1\.env - echo REDASH_REFERRER_POLICY=%REDASH_REFERRER_POLICY%>>%~1\.env - echo REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=%REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS%>>%~1\.env - ENDLOCAL - docker-compose -p formsflow-ai -f %~1\analytics-docker-compose.yml run --rm server create_db - docker-compose -p formsflow-ai -f %~1\analytics-docker-compose.yml up --build -d - timeout 5 - EXIT /B 0 - -:: ############################################################# -:: ################### forms-flow-api ######################## -:: ############################################################# - -:forms-flow-api - - SETLOCAL - - if %~2==1 ( - set /p INSIGHT_API_KEY="What is your Redash API key?" - set INSIGHT_API_URL=http://%ip-add%:7001 - ) - if %~2==1 ( - echo INSIGHT_API_URL=%INSIGHT_API_URL%>>%~1\.env - echo INSIGHT_API_KEY=%INSIGHT_API_KEY%>>%~1\.env - ) - - ENDLOCAL - docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-webapi - -:: ############################################################# -:: ############### forms-flow-documents-api #################### -:: ############################################################# - -:forms-flow-documents - - SETLOCAL - set DOCUMENT_SERVICE_URL=http://%ip-add%:5006 - echo DOCUMENT_SERVICE_URL=%DOCUMENT_SERVICE_URL%>>%~1\.env - - docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-documents-api - timeout 5 - EXIT /B 0 - -:forms-flow-data-analysis-api - - SETLOCAL - set DATA_ANALYSIS_API_BASE_URL=http://%ip-add%:6001 - set DATA_ANALYSIS_DB_URL=postgresql://general:changeme@forms-flow-data-analysis-db:5432/dataanalysis - - echo DATA_ANALYSIS_API_BASE_URL=%DATA_ANALYSIS_API_BASE_URL%>>%~1\.env - echo DATA_ANALYSIS_DB_URL=%DATA_ANALYSIS_DB_URL%>>%~1\.env - - docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-data-analysis-api - timeout 5 - EXIT /B 0 - +@echo off + +setlocal EnableDelayedExpansion + +:: Define the array of valid Docker versions +set "validVersions=25.0.3 25.0.2 25.0.1 25.0.0 24.0.9 24.0.8 24.0.7 24.0.6 24.0.5 24.0.4 24.0.3 24.0.2 24.0.1 24.0.0 23.0.6 23.0.5 23.0.4 23.0.3 23.0.2 23.0.1 23.0.0 20.10.24 20.10.23" + +:: Run the docker -v command and capture its output +for /f "tokens=*" %%A in ('docker -v 2^>^&1') do ( + set "docker_info=%%A" +) + +:: Extract the Docker version using string manipulation +for /f "tokens=3" %%B in ("!docker_info!") do ( + set "docker_version=%%B" + set "docker_version=!docker_version:,=!" +) +:: Display the extracted Docker version +echo Docker version: %docker_version% + +:: Check if the user's version is in the list +set "versionFound=" +for %%B in (%validVersions%) do ( + if "!docker_version!" equ "%%B" ( + set "versionFound=true" + goto :VersionFound + ) +) + +:: If the user's version is not found, display a warning +echo This Docker version is not tested! +set /p continue=Do you want to continue? [y/n] +if %continue%== y ( + goto :start +) else ( + exit +) + +:VersionFound +:: Display a success message if the version is found +echo Your Docker version (%docker_version%) is tested and working! + +goto :start + +:start + +set /p choice=Do you want analytics to include in the installation? [y/n] +if %choice%==y ( + set /a analytics=1 +) else ( + set /a analytics=0 +) + +call:find-my-ip +call:main %analytics% %keycloak% + +echo ********************** formsflow.ai is successfully installed **************************** +pause + +EXIT /B %ERRORLEVEL% + + +:: ================&&&&&&=== Functions ====&&&&&&&&&============================ + +:: ############################################################# +:: ################### Main Function ########################### +:: ############################################################# + +:main + call:set-common-properties + call:keycloak ..\docker-compose %~2 + if %~1==1 ( + call:forms-flow-analytics ..\docker-compose + ) + call:forms-flow-forms ..\docker-compose + call:forms-flow-bpm ..\docker-compose + call:forms-flow-web ..\docker-compose + call:forms-flow-api ..\docker-compose %~1 + call:forms-flow-documents ..\docker-compose + set /p includeDataAnalysis=Do you want to include forms-flow-data-analysis-api in the installation? [y/n] + if /i "%includeDataAnalysis%"=="y" ( + call:forms-flow-data-analysis-api ..\docker-compose + ) + call:isUp + EXIT /B 0 + + +:: ############################################################# +:: ##################### Check working ######################## +:: ############################################################# + +:isUp + :Check if the web API is up + for /f %%a in ('curl -LI "http://%ip-add%:5001" -o nul -w "%%{http_code}" -s') do set "HTTP=%%a" + if "%HTTP%" == "200" ( + echo formsflow.ai is successfully installed. + EXIT /B 0 + ) else ( + echo Finishing setup. + ping 127.0.0.1 -n 6 >nul + goto isUp + ) + +:: ############################################################# +:: ################### Finding IP Address ###################### +:: ############################################################# + +:find-my-ip + FOR /F "tokens=4 delims= " %%i in ('route print ^| find " 0.0.0.0"') do set ip-add=%%i + set /p choice=Confirm that your IPv4 address is %ip-add%? [y/n] + if %choice%==y ( + EXIT /B 0 + ) else ( + set /p ip-add="What is your IPv4 address?" + ) + EXIT /B 0 + +:set-common-properties + set WEBSOCKET_ENCRYPT_KEY=giert989jkwrgb@DR55 + set KEYCLOAK_BPM_CLIENT_SECRET=e4bdbd25-1467-4f7f-b993-bc4b1944c943 + EXIT /B 0 + +:: ############################################################# +:: ########################### Keycloak ######################## +:: ############################################################# + +:keycloak + + if exist %~1\.env ( + del %~1\.env + ) + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d keycloak + timeout 5 + set KEYCLOAK_URL=http://%ip-add%:8080 + ) + EXIT /B 0 + +:: ############################################################# +:: ################### forms-flow-forms ######################## +:: ############################################################# + +:forms-flow-forms + + set FORMIO_DEFAULT_PROJECT_URL=http://%ip-add%:3001 + echo FORMIO_DEFAULT_PROJECT_URL=%FORMIO_DEFAULT_PROJECT_URL%>>%~1\.env + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-forms + timeout 5 + EXIT /B 0 + +:: ######################################################################### +:: ######################### forms-flow-web ################################ +:: ######################################################################### + +:forms-flow-web + + SETLOCAL + set BPM_API_URL=http://%ip-add%:8000/camunda + echo BPM_API_URL=%BPM_API_URL%>>%~1\.env + + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-web + EXIT /B 0 + +:: ############################################################# +:: ################### forms-flow-bpm ######################## +:: ############################################################# + +:forms-flow-bpm + + SETLOCAL + set FORMSFLOW_API_URL=http://%ip-add%:5001 + set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 + set SESSION_COOKIE_SECURE=false + + echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env + echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env + echo FORMSFLOW_API_URL=%FORMSFLOW_API_URL%>>%~1\.env + echo WEBSOCKET_SECURITY_ORIGIN=%WEBSOCKET_SECURITY_ORIGIN%>>%~1\.env + echo SESSION_COOKIE_SECURE=%SESSION_COOKIE_SECURE%>>%~1\.env + ENDLOCAL + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-bpm + timeout 6 + EXIT /B 0 + +:: ############################################################# +:: ################### forms-flow-analytics ######################## +:: ############################################################# + +:forms-flow-analytics + + SETLOCAL + set REDASH_HOST=http://%ip-add%:7001 + set PYTHONUNBUFFERED=0 + set REDASH_LOG_LEVEL=INFO + set REDASH_REDIS_URL=redis://redis:6379/0 + set POSTGRES_USER=postgres + set POSTGRES_PASSWORD=changeme + set POSTGRES_DB=postgres + set REDASH_COOKIE_SECRET=redash-selfhosted + set REDASH_SECRET_KEY=redash-selfhosted + set REDASH_DATABASE_URL=postgresql://postgres:changeme@postgres/postgres + set REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=* + set REDASH_REFERRER_POLICY=no-referrer-when-downgrade + set REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type, Authorization + echo REDASH_HOST=%REDASH_HOST%>>%~1\.env + echo PYTHONUNBUFFERED=%PYTHONUNBUFFERED%>>%~1\.env + echo REDASH_LOG_LEVEL=%REDASH_LOG_LEVEL%>>%~1\.env + echo REDASH_REDIS_URL=%REDASH_REDIS_URL%>>%~1\.env + echo POSTGRES_USER=%POSTGRES_USER%>>%~1\.env + echo POSTGRES_PASSWORD=%POSTGRES_PASSWORD%>>%~1\.env + echo POSTGRES_DB=%POSTGRES_DB%>>%~1\.env + echo REDASH_COOKIE_SECRET=%REDASH_COOKIE_SECRET%>>%~1\.env + echo REDASH_SECRET_KEY=%REDASH_SECRET_KEY%>>%~1\.env + echo REDASH_DATABASE_URL=%REDASH_DATABASE_URL%>>%~1\.env + echo REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=%REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN%>>%~1\.env + echo REDASH_REFERRER_POLICY=%REDASH_REFERRER_POLICY%>>%~1\.env + echo REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=%REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS%>>%~1\.env + ENDLOCAL + docker-compose -p formsflow-ai -f %~1\analytics-docker-compose.yml run --rm server create_db + docker-compose -p formsflow-ai -f %~1\analytics-docker-compose.yml up --build -d + timeout 5 + EXIT /B 0 + +:: ############################################################# +:: ################### forms-flow-api ######################## +:: ############################################################# + +:forms-flow-api + + SETLOCAL + + if %~2==1 ( + set /p INSIGHT_API_KEY="What is your Redash API key?" + set INSIGHT_API_URL=http://%ip-add%:7001 + ) + if %~2==1 ( + echo INSIGHT_API_URL=%INSIGHT_API_URL%>>%~1\.env + echo INSIGHT_API_KEY=%INSIGHT_API_KEY%>>%~1\.env + ) + + ENDLOCAL + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-webapi + +:: ############################################################# +:: ############### forms-flow-documents-api #################### +:: ############################################################# + +:forms-flow-documents + + SETLOCAL + set DOCUMENT_SERVICE_URL=http://%ip-add%:5006 + echo DOCUMENT_SERVICE_URL=%DOCUMENT_SERVICE_URL%>>%~1\.env + + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-documents-api + timeout 5 + EXIT /B 0 + +:forms-flow-data-analysis-api + + SETLOCAL + set DATA_ANALYSIS_DB_URL=postgresql://general:changeme@forms-flow-data-analysis-db:5432/dataanalysis + + echo DATA_ANALYSIS_DB_URL=%DATA_ANALYSIS_DB_URL%>>%~1\.env + + docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-data-analysis-api + timeout 5 + EXIT /B 0 + From ece9906f9d87266e99ecdbdffd7e503904a72cda Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Thu, 4 Apr 2024 21:38:07 -0700 Subject: [PATCH 57/70] updated the image and changelog --- CHANGELOG.md | 13 +++++++++++++ docker-compose/docker-compose-arm64.yml | 20 ++++++++++---------- docker-compose/docker-compose-ee.yml | 10 +++++----- docker-compose/docker-compose.yml | 12 ++++++------ 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b32c701..dc26549 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ Mark items as `Added`, `Changed`, `Fixed`, `Removed`, `Untested Features`, `Upcoming Features`, `Known Issues` +## 6.0.0-alpha - 2024-4-5 + +`Added` + +* Added `shell script` for starting keycloak. +* Added an option for the users to run `data-analysis-api` as an optional feature. + +`Modified` + +* Updated the keycloak image to 23.0.7. +* Updated the `docker-compose` file for the keycloak 23 changes. +* Modified the environment variables. + ## 5.3.0 - 2023-11-24 `Added` diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 9a99003..142662d 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -61,17 +61,17 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.3.1 + image: formsflow/forms-flow-web:v6.0.0-alpha platform: linux/arm64/v8 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.1/forms-flow-web.gz.js} - # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.1/forms-flow-nav.gz.js} - # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.3.1/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.3.1/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.1/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.0-alpha/forms-flow-web.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.0-alpha/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.0-alpha/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v6.0.0-alpha/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v6.0.0-alpha/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -108,7 +108,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.3.0 + image: formsflow/forms-flow-forms:v6.0.0-alpha restart: always environment: DEBUG: formio:* @@ -139,7 +139,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.3.1-arm64 + image: formsflow/forms-flow-bpm:v6.0.0-alpha-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -194,7 +194,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.3.1 + image: formsflow/forms-flow-webapi:v6.0.0-alpha restart: always links: - forms-flow-webapi-db @@ -234,7 +234,7 @@ services: - formsflow forms-flow-documents: - image: formsflow/forms-flow-documents-api:v5.3.1-arm64 + image: formsflow/forms-flow-documents-api:v6.0.0-alpha-arm64 restart: always volumes: - ./:/app:rw diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index 226031d..97c7a8f 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -61,7 +61,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web-ee:v5.3.1 + image: formsflow/forms-flow-web-ee:v6.0.0-alpha links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -133,7 +133,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm-ee:v5.3.1 + image: formsflow/forms-flow-bpm-ee:v6.0.0-alpha restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -188,7 +188,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi-ee:v5.3.1 + image: formsflow/forms-flow-webapi-ee:v6.0.0-alpha restart: always links: - forms-flow-webapi-db @@ -228,7 +228,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api-ee:v5.3.1 + image: formsflow/forms-flow-documents-api-ee:v6.0.0-alpha restart: always links: - forms-flow-forms @@ -272,7 +272,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v5.3.1 + image: formsflow/forms-flow-data-analysis-api:v6.0.0-alpha restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index f8055ac..26734d0 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -62,7 +62,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v5.3.1 + image: formsflow/forms-flow-web:v6.0.0-alpha links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -103,7 +103,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v5.3.0 + image: formsflow/forms-flow-forms:v6.0.0-alpha restart: always environment: DEBUG: formio:* @@ -134,7 +134,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.3.1 + image: formsflow/forms-flow-bpm:v6.0.0-alpha restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -189,7 +189,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.3.1 + image: formsflow/forms-flow-webapi:v6.0.0-alpha restart: always links: - forms-flow-webapi-db @@ -229,7 +229,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v5.3.1 + image: formsflow/forms-flow-documents-api:v6.0.0-alpha restart: always links: - forms-flow-forms @@ -273,7 +273,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v5.3.1 + image: formsflow/forms-flow-data-analysis-api:v6.0.0-alpha restart: always links: - forms-flow-data-analysis-db From c4d82b55a96d3e7d43e403ad2526ecec1a8a7702 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Fri, 5 Apr 2024 00:41:00 -0700 Subject: [PATCH 58/70] added new bpm variable --- docker-compose/docker-compose-arm64.yml | 1 + docker-compose/docker-compose-ee.yml | 1 + docker-compose/docker-compose.yml | 1 + docker-compose/sample.env | 1 + scripts/install.bash | 3 +++ scripts/install.bat | 2 ++ 6 files changed, 9 insertions(+) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 142662d..818a3fd 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -165,6 +165,7 @@ services: - CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} - CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} - MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - KEYCLOAK_WEB_CLIENTID=${KEYCLOAK_WEB_CLIENTID:-forms-flow-web} - FORMSFLOW_ADMIN_URL=${FORMSFLOW_ADMIN_URL:-} - REDIS_ENABLED=${REDIS_ENABLED:-false} - REDIS_HOST=${REDIS_HOST} diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index 97c7a8f..f006a8e 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -159,6 +159,7 @@ services: - CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} - CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} - MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - KEYCLOAK_WEB_CLIENTID=${KEYCLOAK_WEB_CLIENTID:-forms-flow-web} - FORMSFLOW_ADMIN_URL=${FORMSFLOW_ADMIN_URL:-} - REDIS_ENABLED=${REDIS_ENABLED:-false} - REDIS_HOST=${REDIS_HOST} diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 26734d0..d2a000b 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -160,6 +160,7 @@ services: - CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} - CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} - MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} + - KEYCLOAK_WEB_CLIENTID=${KEYCLOAK_WEB_CLIENTID:-forms-flow-web} - FORMSFLOW_ADMIN_URL=${FORMSFLOW_ADMIN_URL:-} - REDIS_ENABLED=${REDIS_ENABLED:-false} - REDIS_HOST=${REDIS_HOST} diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 5d8212b..68a302f 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -145,6 +145,7 @@ DATA_ANALYSIS_URL=http://{your-ip-address}:6001 #CAMUNDA_HIKARI_IDLE_TIMEOUT=600000 #CAMUNDA_HIKARI_MAX_POOLSIZE=10 #CAMUNDA_HIKARI_VALID_TIMEOUT=5000 +# KEYCLOAK_WEB_CLIENTID=forms-flow-web #----Camunda System Tuning----# #Job pool settings diff --git a/scripts/install.bash b/scripts/install.bash index 7ff0398..f508f35 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -114,9 +114,12 @@ forms_flow_bpm() { FORMSFLOW_API_URL="http://$ip_add:5001" WEBSOCKET_SECURITY_ORIGIN="http://$ip_add:3000" SESSION_COOKIE_SECURE="false" + KEYCLOAK_WEB_CLIENTID="forms-flow-web" + echo "FORMSFLOW_API_URL=$FORMSFLOW_API_URL" >> "$1/.env" echo "WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN" >> "$1/.env" echo "SESSION_COOKIE_SECURE=$SESSION_COOKIE_SECURE" >> "$1/.env" + echo "KEYCLOAK_WEB_CLIENTID=$KEYCLOAK_WEB_CLIENTID" >> "$1/.env" docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-bpm sleep 6 } diff --git a/scripts/install.bat b/scripts/install.bat index 4bcab3d..c2729d0 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -170,12 +170,14 @@ EXIT /B %ERRORLEVEL% set FORMSFLOW_API_URL=http://%ip-add%:5001 set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 set SESSION_COOKIE_SECURE=false + set KEYCLOAK_WEB_CLIENTID=forms-flow-web echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env echo FORMSFLOW_API_URL=%FORMSFLOW_API_URL%>>%~1\.env echo WEBSOCKET_SECURITY_ORIGIN=%WEBSOCKET_SECURITY_ORIGIN%>>%~1\.env echo SESSION_COOKIE_SECURE=%SESSION_COOKIE_SECURE%>>%~1\.env + echo KEYCLOAK_WEB_CLIENTID=%KEYCLOAK_WEB_CLIENTID%>>%~1\.env ENDLOCAL docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-bpm timeout 6 From bd4f20c1037764a7406bc591799779be77b52dcf Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Sun, 7 Apr 2024 22:06:34 -0700 Subject: [PATCH 59/70] version 6.0.0 updated --- CHANGELOG.md | 3 ++- docker-compose/docker-compose-arm64.yml | 20 ++++++++++---------- docker-compose/docker-compose-ee.yml | 10 +++++----- docker-compose/docker-compose.yml | 12 ++++++------ docker-compose/sample.env | 2 +- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc26549..cc61aea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,11 @@ Mark items as `Added`, `Changed`, `Fixed`, `Removed`, `Untested Features`, `Upcoming Features`, `Known Issues` -## 6.0.0-alpha - 2024-4-5 +## 6.0.0 - 2024-4-8 `Added` +* Added a new variable `KEYCLOAK_WEB_CLIENTID` for `forms-flow-bpm` * Added `shell script` for starting keycloak. * Added an option for the users to run `data-analysis-api` as an optional feature. diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 818a3fd..084b356 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -61,17 +61,17 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v6.0.0-alpha + image: formsflow/forms-flow-web:v6.0.0 platform: linux/arm64/v8 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.0-alpha/forms-flow-web.gz.js} - # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.0-alpha/forms-flow-nav.gz.js} - # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.0-alpha/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v6.0.0-alpha/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v6.0.0-alpha/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.0/forms-flow-web.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.0/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.0/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@vv6.0.0/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@vv6.0.0/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -108,7 +108,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v6.0.0-alpha + image: formsflow/forms-flow-forms:v6.0.0 restart: always environment: DEBUG: formio:* @@ -139,7 +139,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v6.0.0-alpha-arm64 + image: formsflow/forms-flow-bpm:v6.0.0-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -195,7 +195,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v6.0.0-alpha + image: formsflow/forms-flow-webapi:v6.0.0 restart: always links: - forms-flow-webapi-db @@ -235,7 +235,7 @@ services: - formsflow forms-flow-documents: - image: formsflow/forms-flow-documents-api:v6.0.0-alpha-arm64 + image: formsflow/forms-flow-documents-api:v6.0.0-arm64 restart: always volumes: - ./:/app:rw diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index f006a8e..b048842 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -61,7 +61,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web-ee:v6.0.0-alpha + image: formsflow/forms-flow-web-ee:v6.0.0 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -133,7 +133,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm-ee:v6.0.0-alpha + image: formsflow/forms-flow-bpm-ee:v6.0.0 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -189,7 +189,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi-ee:v6.0.0-alpha + image: formsflow/forms-flow-webapi-ee:v6.0.0 restart: always links: - forms-flow-webapi-db @@ -229,7 +229,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api-ee:v6.0.0-alpha + image: formsflow/forms-flow-documents-api-ee:v6.0.0 restart: always links: - forms-flow-forms @@ -273,7 +273,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v6.0.0-alpha + image: formsflow/forms-flow-data-analysis-api:v6.0.0 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index d2a000b..27f8bd5 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -62,7 +62,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v6.0.0-alpha + image: formsflow/forms-flow-web:v6.0.0 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -103,7 +103,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms:v6.0.0-alpha + image: formsflow/forms-flow-forms:v6.0.0 restart: always environment: DEBUG: formio:* @@ -134,7 +134,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v6.0.0-alpha + image: formsflow/forms-flow-bpm:v6.0.0 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -190,7 +190,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v6.0.0-alpha + image: formsflow/forms-flow-webapi:v6.0.0 restart: always links: - forms-flow-webapi-db @@ -230,7 +230,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v6.0.0-alpha + image: formsflow/forms-flow-documents-api:v6.0.0 restart: always links: - forms-flow-forms @@ -274,7 +274,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v6.0.0-alpha + image: formsflow/forms-flow-data-analysis-api:v6.0.0 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 68a302f..fd4e77b 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -145,7 +145,7 @@ DATA_ANALYSIS_URL=http://{your-ip-address}:6001 #CAMUNDA_HIKARI_IDLE_TIMEOUT=600000 #CAMUNDA_HIKARI_MAX_POOLSIZE=10 #CAMUNDA_HIKARI_VALID_TIMEOUT=5000 -# KEYCLOAK_WEB_CLIENTID=forms-flow-web +#KEYCLOAK_WEB_CLIENTID=forms-flow-web #----Camunda System Tuning----# #Job pool settings From 94b4649e03b7bee1949fdf2652bb4f58ee76d3b7 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Sun, 7 Apr 2024 22:09:27 -0700 Subject: [PATCH 60/70] version 6.0.0 --- docker-compose/docker-compose-arm64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 084b356..13f8eed 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -70,8 +70,8 @@ services: # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.0/forms-flow-web.gz.js} # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.0/forms-flow-nav.gz.js} # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.0/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@vv6.0.0/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@vv6.0.0/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v6.0.0/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v6.0.0/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} From 6930179ac6c3146fbd2a60bef5a438d94cef9cf5 Mon Sep 17 00:00:00 2001 From: alanraju-aot Date: Thu, 11 Apr 2024 03:54:06 -0700 Subject: [PATCH 61/70] redis container added --- docker-compose/docker-compose-arm64.yml | 10 ++++++++++ docker-compose/docker-compose-ee.yml | 11 +++++++++++ docker-compose/docker-compose.yml | 11 +++++++++++ docker-compose/sample.env | 9 +++++++++ scripts/install.bash | 3 +++ scripts/install.bat | 2 ++ 6 files changed, 46 insertions(+) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 13f8eed..4cdc9ff 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -194,12 +194,20 @@ services: networks: - formsflow + redis: + image: "redis:alpine" + ports: + - "6379:6379" + networks: + - formsflow + forms-flow-webapi: image: formsflow/forms-flow-webapi:v6.0.0 restart: always links: - forms-flow-webapi-db - forms-flow-forms + - redis entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " volumes: - ./:/app:rw @@ -229,6 +237,7 @@ services: CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - "5001:5000" networks: @@ -257,6 +266,7 @@ services: FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - "5006:5006" diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index b048842..62ef80f 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -188,12 +188,20 @@ services: networks: - formsflow + redis: + image: "redis:alpine" + ports: + - "6379:6379" + networks: + - formsflow + forms-flow-webapi: image: formsflow/forms-flow-webapi-ee:v6.0.0 restart: always links: - forms-flow-webapi-db - forms-flow-forms + - redis entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " volumes: - ./:/app:rw @@ -223,6 +231,7 @@ services: CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - "5001:5000" networks: @@ -233,6 +242,7 @@ services: restart: always links: - forms-flow-forms + - redis environment: FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration @@ -253,6 +263,7 @@ services: FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - '5006:5006' networks: diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 27f8bd5..b9a5603 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -189,12 +189,20 @@ services: networks: - formsflow + redis: + image: "redis:alpine" + ports: + - "6379:6379" + networks: + - formsflow + forms-flow-webapi: image: formsflow/forms-flow-webapi:v6.0.0 restart: always links: - forms-flow-webapi-db - forms-flow-forms + - redis entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " volumes: - ./:/app:rw @@ -224,6 +232,7 @@ services: CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - "5001:5000" networks: @@ -234,6 +243,7 @@ services: restart: always links: - forms-flow-forms + - redis environment: FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration @@ -254,6 +264,7 @@ services: FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - '5006:5006' networks: diff --git a/docker-compose/sample.env b/docker-compose/sample.env index fd4e77b..4018d93 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -128,6 +128,9 @@ FORMSFLOW_API_URL=http://{your-ip-address}:5001 #Sentiment analysis url DATA_ANALYSIS_URL=http://{your-ip-address}:6001 +#Redis configuration +REDIS_URL=redis://{your-ip-address}:6379/0 + #++++++++++++++++--- formsflow.ai Python Webapi ENV Variables - END ---+++++++++++++++++++++++++# @@ -166,6 +169,12 @@ WEBSOCKET_SECURITY_ORIGIN=http://{your-ip-address}:3000 ##Camunda task event streaming. AES encryption of token #WEBSOCKET_ENCRYPT_KEY=giert989jkwrgb@DR55 +#Redis configuration settings +REDIS_ENABLED=false +#REDIS_HOST={redis-hostname} +#REDIS_PORT=6379 +#REDIS_PASSCODE=changeme + #----Camunda - General variable settings----# ##Set CORS Origin #APP_SECURITY_ORIGIN=* diff --git a/scripts/install.bash b/scripts/install.bash index f508f35..f372696 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -115,11 +115,14 @@ forms_flow_bpm() { WEBSOCKET_SECURITY_ORIGIN="http://$ip_add:3000" SESSION_COOKIE_SECURE="false" KEYCLOAK_WEB_CLIENTID="forms-flow-web" + REDIS_URL="redis://$ip_add:6379/0" + echo "FORMSFLOW_API_URL=$FORMSFLOW_API_URL" >> "$1/.env" echo "WEBSOCKET_SECURITY_ORIGIN=$WEBSOCKET_SECURITY_ORIGIN" >> "$1/.env" echo "SESSION_COOKIE_SECURE=$SESSION_COOKIE_SECURE" >> "$1/.env" echo "KEYCLOAK_WEB_CLIENTID=$KEYCLOAK_WEB_CLIENTID" >> "$1/.env" + echo "REDIS_URL=$REDIS_URL" >> "$1/.env" docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-bpm sleep 6 } diff --git a/scripts/install.bat b/scripts/install.bat index c2729d0..a1e1966 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -171,6 +171,7 @@ EXIT /B %ERRORLEVEL% set WEBSOCKET_SECURITY_ORIGIN=http://%ip-add%:3000 set SESSION_COOKIE_SECURE=false set KEYCLOAK_WEB_CLIENTID=forms-flow-web + set REDIS_URL=redis://%ip-add%:6379/0 echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env @@ -178,6 +179,7 @@ EXIT /B %ERRORLEVEL% echo WEBSOCKET_SECURITY_ORIGIN=%WEBSOCKET_SECURITY_ORIGIN%>>%~1\.env echo SESSION_COOKIE_SECURE=%SESSION_COOKIE_SECURE%>>%~1\.env echo KEYCLOAK_WEB_CLIENTID=%KEYCLOAK_WEB_CLIENTID%>>%~1\.env + echo REDIS_URL=%REDIS_URL%>>%~1\.env ENDLOCAL docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-bpm timeout 6 From 3984bb5d328c7b302dd0fa4d077a835e1ae67f52 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Tue, 7 May 2024 04:14:03 -0700 Subject: [PATCH 62/70] usage updation --- scripts/usage.txt | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/scripts/usage.txt b/scripts/usage.txt index 7a05f8e..50ecc89 100644 --- a/scripts/usage.txt +++ b/scripts/usage.txt @@ -3,23 +3,26 @@ formsflow.ai Single click installation /install The following questionnaire will be asked during the formsflow.ai installation, it is mandatory to answer every question with the right data. -Do you want analytics to include in the installation?-localhost:7000 +This Docker version is not tested +Do you want to continue? [y/n] + +If "y" will continue the installation with the non-tested docker version, else will exit. + + OR + +Your Docker version (xyz) is tested and working! ---> and continue working + formsflow.ai leverages Redash to build interactive dashboards and gain insights. answer any of these options eg: y - Yes, n - No. -Do you have an existing keycloak? -The formsflow.ai framework is hooked up with Keycloak Identity Management Server. Answer any of these options eg: y - Yes, n - No. - -What is your Keycloak URL? -For existing keycloak users provide your keycloak URL, localhost is not supported please provide your IP / hostname -What is your keycloak URL realm name? -For existing keycloak users provide your keycloak realm. -what is your keycloak admin user name? -For existing keycloak users provide your keycloak admin username. -what is your keycloak admin password? -For existing keycloak users provide your keycloak admin password. - -In case of any failure please stop the install command and re-run it again. +Do you want analytics to include in the installation? [y/n] + +Confirm that your IPv4 address is (xyz)? [y/n] + This file can be run multiple times, it will update the source if any new updates. +for opensource - One distinctive capability of the formsflow.ai involves Sentiment Analysis, allowing it to assess sentiments within forms by considering specific topics specified by the designer during form creation. The data analysis api encompasses access to all pertinent interfaces tailored for sentiment analysis +Do you want to include forms-flow-data-analysis-api in the installation? [y/n] + + /uninstall This will remove the source directory, remove images and prune all the dangling images. From 42d3adc535410419062a8202cfe233235cc8059f Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Tue, 7 May 2024 07:10:56 -0700 Subject: [PATCH 63/70] usage method --- scripts/usage.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/usage.txt b/scripts/usage.txt index 50ecc89..2d0c2a0 100644 --- a/scripts/usage.txt +++ b/scripts/usage.txt @@ -2,6 +2,9 @@ formsflow.ai Single click installation /install +for Windows:- Double click the file install.bat. +for Linux/Mac:- Open the terminal and set path to /scripts and run install.bash file. + The following questionnaire will be asked during the formsflow.ai installation, it is mandatory to answer every question with the right data. This Docker version is not tested Do you want to continue? [y/n] From d66e466c3426fe14eb1b7fbc6e95b5f64c0335ba Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Tue, 7 May 2024 07:11:59 -0700 Subject: [PATCH 64/70] Update usage.txt --- scripts/usage.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/usage.txt b/scripts/usage.txt index 2d0c2a0..f3890ff 100644 --- a/scripts/usage.txt +++ b/scripts/usage.txt @@ -2,7 +2,7 @@ formsflow.ai Single click installation /install -for Windows:- Double click the file install.bat. +for Windows:- Double click the file, install.bat. for Linux/Mac:- Open the terminal and set path to /scripts and run install.bash file. The following questionnaire will be asked during the formsflow.ai installation, it is mandatory to answer every question with the right data. @@ -33,4 +33,4 @@ This will remove the source directory, remove images and prune all the dangling Make sure that their is no any important docker container in the docker, since the uninstall command will remove all the containers in the docker. -NOTE: Each time you restart or start again from the begginning, Remember to Delete all the images from docker-desktop, And prune volumes,network, and container. \ No newline at end of file +NOTE: Each time you restart or start again from the begginning, Remember to Delete all the images from docker-desktop, And prune volumes,network, and container. From a7d22477a6ec615f9eb02fe51fc36d8f068794d4 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Wed, 22 May 2024 08:08:23 -0700 Subject: [PATCH 65/70] image updation for latest release --- docker-compose/docker-compose-arm64.yml | 18 +++++++++--------- docker-compose/docker-compose-ee.yml | 12 ++++++------ docker-compose/docker-compose.yml | 10 +++++----- docker-compose/sample.env | 10 +++++----- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 4cdc9ff..e2cbf76 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -61,17 +61,17 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v6.0.0 + image: formsflow/forms-flow-web:v6.0.1 platform: linux/arm64/v8 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.0/forms-flow-web.gz.js} - # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.0/forms-flow-nav.gz.js} - # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.0/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v6.0.0/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v6.0.0/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.1/forms-flow-web.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.1/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.1/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v6.0.1/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v6.0.1/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -139,7 +139,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v6.0.0-arm64 + image: formsflow/forms-flow-bpm:v6.0.1-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -202,7 +202,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v6.0.0 + image: formsflow/forms-flow-webapi:v6.0.1 restart: always links: - forms-flow-webapi-db @@ -244,7 +244,7 @@ services: - formsflow forms-flow-documents: - image: formsflow/forms-flow-documents-api:v6.0.0-arm64 + image: formsflow/forms-flow-documents-api:v6.0.1-arm64 restart: always volumes: - ./:/app:rw diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index 62ef80f..3d2aae8 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -61,7 +61,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web-ee:v6.0.0 + image: formsflow/forms-flow-web-ee:v6.0.1 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -102,7 +102,7 @@ services: - formsflow forms-flow-forms: - image: formsflow/forms-flow-forms-ee:v5.3.0 + image: formsflow/forms-flow-forms-ee:v6.0.0 restart: always environment: DEBUG: formio:* @@ -133,7 +133,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm-ee:v6.0.0 + image: formsflow/forms-flow-bpm-ee:v6.0.1 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -196,7 +196,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi-ee:v6.0.0 + image: formsflow/forms-flow-webapi-ee:v6.0.1 restart: always links: - forms-flow-webapi-db @@ -238,7 +238,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api-ee:v6.0.0 + image: formsflow/forms-flow-documents-api-ee:v6.0.1 restart: always links: - forms-flow-forms @@ -284,7 +284,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v6.0.0 + image: formsflow/forms-flow-data-analysis-api:v6.0.1 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index b9a5603..d5c4185 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -62,7 +62,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v6.0.0 + image: formsflow/forms-flow-web:v6.0.1 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -134,7 +134,7 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v6.0.0 + image: formsflow/forms-flow-bpm:v6.0.1 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} @@ -197,7 +197,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v6.0.0 + image: formsflow/forms-flow-webapi:v6.0.1 restart: always links: - forms-flow-webapi-db @@ -239,7 +239,7 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v6.0.0 + image: formsflow/forms-flow-documents-api:v6.0.1 restart: always links: - forms-flow-forms @@ -285,7 +285,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v6.0.0 + image: formsflow/forms-flow-data-analysis-api:v6.0.1 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/sample.env b/docker-compose/sample.env index 4018d93..fc0d66b 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -212,13 +212,13 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #The MF Variables below are used to get MicroFrontend Components Created ##For running locally or if have custom changes then change the url to the one forms-flow-web folder content is running -#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.3.1/single-spa-build.gz.js +#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v6.0.1/single-spa-build.gz.js ## Refer Github Repo https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends and update to your own custom implementation for the Components here -#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.3.1/forms-flow-nav.gz.js -#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.3.1/forms-flow-service.gz.js -#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.3.1/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.3.1/forms-flow-theme.gz.js +#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v6.0.1/forms-flow-nav.gz.js +#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v6.0.1/forms-flow-service.gz.js +#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v6.0.1/forms-flow-admin.gz.js +#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v6.0.1/forms-flow-theme.gz.js #++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# From 97c8f53068eddd5a6b5fee467e46eea95891e3d8 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Thu, 17 Oct 2024 23:17:59 -0700 Subject: [PATCH 66/70] develop branch cleanup --- .../imports/formsflow-ai-realm.json | 1957 +++++++------ docker-compose/docker-compose-arm64.yml | 36 +- docker-compose/docker-compose-ee.yml | 25 +- docker-compose/docker-compose.yml | 25 +- docker-compose/docker-swarm/README.md | 89 - .../docker-swarm/analytics-docker-compose.yml | 105 - .../configuration/conf.d/nginx.conf | 52 - .../imports/formsflow-ai-realm.json | 2561 ----------------- .../docker-swarm/docker-compose.yml | 240 -- .../docker-swarm/keycloak-docker-compose.yml | 46 - docker-compose/docker-swarm/sample.env | 232 -- docker-compose/sample.env | 83 +- scripts/install.bash | 11 +- scripts/install.bat | 4 +- 14 files changed, 1188 insertions(+), 4278 deletions(-) delete mode 100644 docker-compose/docker-swarm/README.md delete mode 100644 docker-compose/docker-swarm/analytics-docker-compose.yml delete mode 100644 docker-compose/docker-swarm/configuration/conf.d/nginx.conf delete mode 100644 docker-compose/docker-swarm/configuration/imports/formsflow-ai-realm.json delete mode 100644 docker-compose/docker-swarm/docker-compose.yml delete mode 100644 docker-compose/docker-swarm/keycloak-docker-compose.yml delete mode 100644 docker-compose/docker-swarm/sample.env diff --git a/docker-compose/configuration/imports/formsflow-ai-realm.json b/docker-compose/configuration/imports/formsflow-ai-realm.json index 849a9d0..0b4743f 100644 --- a/docker-compose/configuration/imports/formsflow-ai-realm.json +++ b/docker-compose/configuration/imports/formsflow-ai-realm.json @@ -50,6 +50,20 @@ "containerId": "forms-flow-ai", "attributes": {} }, + { + "name": "default-roles-forms-flow-ai", + "description": "${role_default-roles}", + "composite": true, + "composites": { + "realm": ["offline_access", "uma_authorization"], + "client": { + "account": ["view-profile", "manage-account"] + } + }, + "clientRole": false, + "containerId": "forms-flow-ai", + "attributes": {} + }, { "name": "uma_authorization", "description": "${role_uma_authorization}", @@ -62,11 +76,10 @@ "client": { "realm-management": [ { - "name": "query-groups", - "description": "${role_query-groups}", + "name": "manage-identity-providers", + "description": "${role_manage-identity-providers}", "composite": false, "clientRole": true, - "attributes": {} }, { @@ -74,31 +87,32 @@ "description": "${role_query-clients}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "view-events", - "description": "${role_view-events}", + "name": "manage-authorization", + "description": "${role_manage-authorization}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "impersonation", - "description": "${role_impersonation}", - "composite": false, + "name": "view-clients", + "description": "${role_view-clients}", + "composite": true, + "composites": { + "client": { + "realm-management": ["query-clients"] + } + }, "clientRole": true, - "attributes": {} }, { - "name": "manage-events", - "description": "${role_manage-events}", + "name": "view-identity-providers", + "description": "${role_view-identity-providers}", "composite": false, "clientRole": true, - "attributes": {} }, { @@ -106,54 +120,34 @@ "description": "${role_query-realms}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "query-users", - "description": "${role_query-users}", + "name": "view-realm", + "description": "${role_view-realm}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "create-client", - "description": "${role_create-client}", + "name": "impersonation", + "description": "${role_impersonation}", "composite": false, "clientRole": true, - - "attributes": {} - }, - { - "name": "view-clients", - "description": "${role_view-clients}", - "composite": true, - "composites": { - "client": { - "realm-management": [ - "query-clients" - ] - } - }, - "clientRole": true, - "attributes": {} }, { - "name": "manage-authorization", - "description": "${role_manage-authorization}", + "name": "query-groups", + "description": "${role_query-groups}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "view-identity-providers", - "description": "${role_view-identity-providers}", + "name": "view-authorization", + "description": "${role_view-authorization}", "composite": false, "clientRole": true, - "attributes": {} }, { @@ -162,14 +156,17 @@ "composite": true, "composites": { "client": { - "realm-management": [ - "query-users", - "query-groups" - ] + "realm-management": ["query-groups", "query-users"] } }, "clientRole": true, - + "attributes": {} + }, + { + "name": "create-client", + "description": "${role_create-client}", + "composite": false, + "clientRole": true, "attributes": {} }, { @@ -179,53 +176,49 @@ "composites": { "client": { "realm-management": [ - "query-groups", + "manage-identity-providers", "query-clients", - "view-events", - "impersonation", - "manage-events", - "query-realms", - "query-users", - "create-client", - "view-clients", "manage-authorization", "view-identity-providers", - "view-users", + "view-clients", + "query-realms", "view-realm", + "impersonation", + "query-groups", "view-authorization", - "manage-identity-providers", + "view-users", + "create-client", + "view-events", + "manage-clients", "manage-users", - "manage-realm", - "manage-clients" + "query-users", + "manage-events", + "manage-realm" ] } }, "clientRole": true, - "attributes": {} }, { - "name": "view-realm", - "description": "${role_view-realm}", + "name": "view-events", + "description": "${role_view-events}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "view-authorization", - "description": "${role_view-authorization}", + "name": "manage-clients", + "description": "${role_manage-clients}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "manage-identity-providers", - "description": "${role_manage-identity-providers}", + "name": "manage-events", + "description": "${role_manage-events}", "composite": false, "clientRole": true, - "attributes": {} }, { @@ -236,53 +229,124 @@ "attributes": {} }, { - "name": "manage-realm", - "description": "${role_manage-realm}", + "name": "query-users", + "description": "${role_query-users}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "manage-clients", - "description": "${role_manage-clients}", + "name": "manage-realm", + "description": "${role_manage-realm}", "composite": false, "clientRole": true, - "attributes": {} } ], "forms-flow-web": [ { - "name": "formsflow-client", - "description": "Provides access to use the formsflow.ai solution. Required to access and submit forms.", + "name": "admin", + "description": "Administrator Role", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "formsflow-admin", - "description": "Provides admin access to use the formsflow.ai solution. Required to manage users and permissions.", + "name": "manage_tasks", + "description": "Can claim and work on tasks", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "formsflow-designer", - "description": "Provides access to use the formsflow.ai solution. Access to wok on form designer studio.", + "name": "view_tasks", + "description": "Access to tasks", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "formsflow-reviewer", - "description": "Provides access to use the formsflow.ai solution. Identifies the staff to work on applications and forms submissions.", + "name": "view_submissions", + "description": "Access to submissions", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "create_submissions", + "description": "Create submissions", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "manage_all_filters", + "description": "Manage all filters", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "view_designs", + "description": "Access to design", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "manage_dashboard_authorizations", + "description": "Manage Dashboard Authorization", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "view_filters", + "description": "Access to view filters", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "manage_roles", + "description": "Manage Roles", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "manage_integrations", + "description": "Access to Integrations", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "create_filters", + "description": "Access to create filters", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "manage_users", + "description": "Manage Users", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "create_designs", + "description": "Create Form, workflow designs", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "view_dashboards", + "description": "Access to dashboards", "composite": false, "clientRole": true, - "attributes": {} } ], @@ -296,33 +360,23 @@ "description": "${role_read-token}", "composite": false, "clientRole": true, - "attributes": {} } ], "forms-flow-analytics": [], "account": [ { - "name": "view-profile", - "description": "${role_view-profile}", + "name": "view-applications", + "description": "${role_view-applications}", "composite": false, "clientRole": true, - "attributes": {} }, { - "name": "manage-account", - "description": "${role_manage-account}", - "composite": true, - "composites": { - "client": { - "account": [ - "manage-account-links" - ] - } - }, + "name": "view-groups", + "description": "${role_view-groups}", + "composite": false, "clientRole": true, - "attributes": {} }, { @@ -330,7 +384,6 @@ "description": "${role_manage-account-links}", "composite": false, "clientRole": true, - "attributes": {} }, { @@ -338,7 +391,6 @@ "description": "${role_view-consent}", "composite": false, "clientRole": true, - "attributes": {} }, { @@ -347,21 +399,36 @@ "composite": true, "composites": { "client": { - "account": [ - "view-consent" - ] + "account": ["view-consent"] } }, "clientRole": true, - "attributes": {} }, { - "name": "view-applications", - "description": "${role_view-applications}", + "name": "manage-account", + "description": "${role_manage-account}", + "composite": true, + "composites": { + "client": { + "account": ["manage-account-links"] + } + }, + "clientRole": true, + "attributes": {} + }, + { + "name": "view-profile", + "description": "${role_view-profile}", + "composite": false, + "clientRole": true, + "attributes": {} + }, + { + "name": "delete-account", + "description": "${role_delete-account}", "composite": false, "clientRole": true, - "attributes": {} } ] @@ -371,137 +438,166 @@ { "name": "camunda-admin", "path": "/camunda-admin", - "attributes": {}, + "subGroups": [], + "attributes": {"description": ["Camunda Administrator Role."]}, "realmRoles": [], - "clientRoles": {}, - "subGroups": [] + "clientRoles": {} }, { "name": "formsflow", "path": "/formsflow", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, "subGroups": [ { - "name": "formsflow-client", - "path": "/formsflow/formsflow-client", - "attributes": {}, + "name": "formsflow-admin", + "path": "/formsflow/formsflow-admin", + "subGroups": [], + "attributes": {"description": ["Administrator Role."]}, "realmRoles": [], "clientRoles": { + "realm-management": [ + "query-clients", + "view-clients", + "query-groups", + "view-authorization", + "view-users", + "create-client", + "manage-clients", + "manage-users", + "query-users" + ], "forms-flow-web": [ - "formsflow-client" + "admin", + "manage_dashboard_authorizations", + "manage_roles", + "manage_users" ] - }, - "subGroups": [] + } }, { - "name": "formsflow-admin", - "path": "/formsflow/formsflow-admin", - "attributes": {}, + "name": "formsflow-client", + "path": "/formsflow/formsflow-client", + "subGroups": [], + "attributes": {"description": ["Client role to create & view submissions."]}, "realmRoles": [], "clientRoles": { - "forms-flow-web": [ - "formsflow-admin" - ] - }, - "subGroups": [] + "forms-flow-web": ["view_submissions", "create_submissions"] + } }, { "name": "formsflow-designer", "path": "/formsflow/formsflow-designer", - "attributes": {}, + "subGroups": [], + "attributes": {"description": ["Designer role to create forms and workflows."]}, "realmRoles": [], "clientRoles": { "forms-flow-web": [ - "formsflow-designer" + "create_designs", + "view_designs", + "manage_integrations" ] - }, - "subGroups": [] + } }, { "name": "formsflow-reviewer", "path": "/formsflow/formsflow-reviewer", - "attributes": {}, + "subGroups": [ + { + "name": "approver", + "path": "/formsflow/formsflow-reviewer/approver", + "subGroups": [], + "attributes": {"description": ["Staff role for reviewing tasks."]}, + "realmRoles": [], + "clientRoles": { + "forms-flow-web": [ + "manage_tasks", + "view_tasks", + "view_filters" + ] + } + }, + { + "name": "clerk", + "path": "/formsflow/formsflow-reviewer/clerk", + "subGroups": [], + "attributes": {"description": ["Staff role for reviewing tasks."]}, + "realmRoles": [], + "clientRoles": { + "forms-flow-web": [ + "manage_tasks", + "view_tasks", + "view_filters" + ] + } + } + ], + "attributes": {"description": ["Staff role for monitoring submissions and performing tasks."]}, "realmRoles": [], "clientRoles": { "forms-flow-web": [ - "formsflow-reviewer" + "manage_tasks", + "view_tasks", + "create_filters", + "view_dashboards", + "view_submissions", + "view_filters" ] - }, - "subGroups": [ - { - "name": "clerk", - "path": "/formsflow/formsflow-reviewer/clerk", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [] - }, - { - "name": "approver", - "path": "/formsflow/formsflow-reviewer/approver", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [] - } - ] + } } - ] + ], + "attributes": {}, + "realmRoles": [], + "clientRoles": {} }, { "name": "formsflow-analytics", "path": "/formsflow-analytics", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, "subGroups": [ { - "name": "group2", - "path": "/formsflow-analytics/group2", - "attributes": {}, + "name": "group1", + "path": "/formsflow-analytics/group1", + "subGroups": [], + "attributes": {"description": ["Role with dashboard authorization."]}, "realmRoles": [], - "clientRoles": {}, - "subGroups": [] + "clientRoles": {"forms-flow-web": ["view_dashboards"]} }, { - "name": "group1", - "path": "/formsflow-analytics/group1", - "attributes": {}, + "name": "group2", + "path": "/formsflow-analytics/group2", + "subGroups": [], + "attributes": {"description": ["Role with dashboard authorization."]}, "realmRoles": [], - "clientRoles": {}, - "subGroups": [] + "clientRoles": {"forms-flow-web": ["view_dashboards"]} } - ] + ], + "attributes": {"description": ["Role with dashboard authorization."]}, + "realmRoles": [], + "clientRoles": {"forms-flow-web": ["view_dashboards"]} } ], - "defaultRoles": [ - "offline_access", - "uma_authorization" - ], - "defaultGroups": [ - "/camunda-admin", - "/formsflow", - "/formsflow-analytics" - ], - "requiredCredentials": [ - "password" - ], + "defaultRole": { + "name": "default-roles-forms-flow-ai", + "description": "${role_default-roles}", + "composite": true, + "clientRole": false, + "containerId": "forms-flow-ai" + }, + "defaultGroups": ["/camunda-admin", "/formsflow", "/formsflow-analytics"], + "requiredCredentials": ["password"], "otpPolicyType": "totp", "otpPolicyAlgorithm": "HmacSHA1", "otpPolicyInitialCounter": 0, "otpPolicyDigits": 6, "otpPolicyLookAheadWindow": 1, "otpPolicyPeriod": 30, + "otpPolicyCodeReusable": false, "otpSupportedApplications": [ - "FreeOTP", - "Google Authenticator" + "totpAppFreeOTPName", + "totpAppGoogleName", + "totpAppMicrosoftAuthenticatorName" ], + "localizationTexts": {}, "webAuthnPolicyRpEntityName": "keycloak", - "webAuthnPolicySignatureAlgorithms": [ - "ES256" - ], + "webAuthnPolicySignatureAlgorithms": ["ES256"], "webAuthnPolicyRpId": "", "webAuthnPolicyAttestationConveyancePreference": "not specified", "webAuthnPolicyAuthenticatorAttachment": "not specified", @@ -510,10 +606,9 @@ "webAuthnPolicyCreateTimeout": 0, "webAuthnPolicyAvoidSameAuthenticatorRegister": false, "webAuthnPolicyAcceptableAaguids": [], + "webAuthnPolicyExtraOrigins": [], "webAuthnPolicyPasswordlessRpEntityName": "keycloak", - "webAuthnPolicyPasswordlessSignatureAlgorithms": [ - "ES256" - ], + "webAuthnPolicyPasswordlessSignatureAlgorithms": ["ES256"], "webAuthnPolicyPasswordlessRpId": "", "webAuthnPolicyPasswordlessAttestationConveyancePreference": "not specified", "webAuthnPolicyPasswordlessAuthenticatorAttachment": "not specified", @@ -522,166 +617,222 @@ "webAuthnPolicyPasswordlessCreateTimeout": 0, "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false, "webAuthnPolicyPasswordlessAcceptableAaguids": [], - "users" : [ { - "createdTimestamp" : 1621862607660, - "username" : "formsflow-client", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Client", - "lastName" : "FFA", - "email" : "formsflow-client@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621863987325, - "secretData" : "{\"value\":\"9R9a8Onha7JcZt59SIq8ngfqwDJwPKiKb8mJ2WO6p2eI3S9qhzR1GPDFtKjOWq8qpm8vsGfp/a/DyHWQuIvmlA==\",\"salt\":\"R/OTBeSXHzsKtJOV/bufEA==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-client" ] - }, - { - "createdTimestamp" : 1621862607660, - "username" : "formsflow-admin", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Admin", - "lastName" : "FFA", - "email" : "formsflow-admin@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621863987325, - "secretData" : "{\"value\":\"9R9a8Onha7JcZt59SIq8ngfqwDJwPKiKb8mJ2WO6p2eI3S9qhzR1GPDFtKjOWq8qpm8vsGfp/a/DyHWQuIvmlA==\",\"salt\":\"R/OTBeSXHzsKtJOV/bufEA==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-admin" ] - }, { - "createdTimestamp" : 1621862546931, - "username" : "formsflow-designer", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Designer", - "lastName" : "FFA", - "email" : "formsflow-designer@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621864001408, - "secretData" : "{\"value\":\"XlcFXNSJAfv5YzTh5vd4NtyEjWm4B47CS9MA3aHmEjLNjdRMbnGFVFZwlZx3alXYBCg4Evs3md25DQ6Xvl+nZg==\",\"salt\":\"TefHE1L0xpqlAMg/h6w6BA==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-designer", "/formsflow/formsflow-admin" ] - }, { - "createdTimestamp" : 1625009614956, - "username" : "formsflow-approver", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Approver", - "lastName" : "FFA", - "email" : "formsflow-approver@aot-technologies.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1625009625540, - "secretData" : "{\"value\":\"Ej6BGTe5D+jLChY9zmoty3Jzt8i+KoV+UTPK6+1Vi+GaUpVfdJ0RFJ/7M4+1Y1jNGBcvMgc8knQT2AJDtixxRQ==\",\"salt\":\"MDP6nouKEx0l7hdJA+lIJw==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "notBefore" : 0, - "groups" : [ "/formsflow/formsflow-reviewer/approver", "/camunda-admin", "/formsflow" , "/formsflow-analytics/group1"] - }, { - "createdTimestamp" : 1625009564217, - "username" : "formsflow-clerk", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Clerk", - "lastName" : "FFA", - "email" : "formsflow-clerk@aot-technologies.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1625009575561, - "secretData" : "{\"value\":\"iWFPywh7ck8FesufjXu81lxpJ0XKSvPd9ladBcJrE4TTXLeQOhvqBOC5e+bwVg20Y61EwtkTta0L9MWtGpSraw==\",\"salt\":\"noE1kDJ7Lo20VYuTOHOBTw==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-reviewer/clerk", "/formsflow", "/formsflow-analytics/group2" ] - }, { - "createdTimestamp" : 1621862578318, - "username" : "formsflow-reviewer", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Reviewer", - "lastName" : "FFA", - "email" : "formsflow-reviewer@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621864014317, - "secretData" : "{\"value\":\"bXzhJ0BrMJBWMzRRjO2khWgCRgDAA6vfTrE0UNNO1DNRzp1aMrGCz5kF20H76PjyuqNDZaKF1nKApEjccg+KRA==\",\"salt\":\"gmoZwO3i7Y6B+jpgnsnixw==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-reviewer", "/formsflow-analytics/group1" ] - }, { - "createdTimestamp" : 1621585233480, - "username" : "service-account-forms-flow-bpm", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "serviceAccountClientId" : "forms-flow-bpm", - "credentials" : [ ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "realm-management" : [ "manage-users", "query-users", "query-groups", "view-users" , "manage-clients"], - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin" ] - } ], - "scopeMappings" : [ { - "clientScope" : "offline_access", - "roles" : [ "offline_access" ] - } ], - "clientScopeMappings" : { - "account" : [ { - "client" : "account-console", - "roles" : [ "manage-account" ] - } ] - }, - "clients": [ + "webAuthnPolicyPasswordlessExtraOrigins": [], + "users": [ + { + "createdTimestamp": 1718023583532, + "username": "formsflow-admin", + "enabled": true, + "totp": false, + "emailVerified": false, + "firstName": "ff", + "lastName": "admin", + "email": "formsflow-admin@aot-technologies.com", + "credentials": [ + { + "id": "d4d8336d-ba33-47f7-9a7e-91269f8b4cc9", + "type": "password", + "userLabel": "My password", + "createdDate": 1718087465595, + "secretData": "{\"value\":\"EpHuQHA+nMza4usSNWSDxl6bZ9pbKFe4vOjuMMEZijQ=\",\"salt\":\"Ht1p7xh28sqw6+FZ1ICcOg==\",\"additionalParameters\":{}}", + "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } + ], + "disableableCredentialTypes": [], + "requiredActions": ["UPDATE_PASSWORD"], + "realmRoles": ["default-roles-forms-flow-ai"], + "notBefore": 0, + "groups": [ + "/camunda-admin", + "/formsflow/formsflow-admin", + "/formsflow-analytics" + ] + }, + { + "createdTimestamp": 1625009614956, + "username": "formsflow-approver", + "enabled": true, + "totp": false, + "emailVerified": false, + "firstName": "Approver", + "lastName": "FFA", + "email": "formsflow-approver@aot-technologies.com", + "credentials": [ + { + "id": "c6aac3fc-3483-4afd-b46f-223641f3fe56", + "type": "password", + "userLabel": "My password", + "createdDate": 1718087451516, + "secretData": "{\"value\":\"vfZT65WYqEjeUdOBL61DMke/qy6YE1zJFKyoMNdxvUo=\",\"salt\":\"+7nUoa1MU7YgyyKI4x+/FA==\",\"additionalParameters\":{}}", + "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } + ], + "disableableCredentialTypes": [], + "requiredActions": ["UPDATE_PASSWORD"], + "notBefore": 0, + "groups": [ + "/formsflow/formsflow-reviewer/approver", + "/camunda-admin", + "/formsflow-analytics/group1" + ] + }, + { + "createdTimestamp": 1625009564217, + "username": "formsflow-clerk", + "enabled": true, + "totp": false, + "emailVerified": false, + "firstName": "Clerk", + "lastName": "FFA", + "email": "formsflow-clerk@aot-technologies.com", + "credentials": [ + { + "type": "password", + "userLabel": "My password", + "createdDate": 1718087400076, + "secretData": "{\"value\":\"XU5BFgu3R34Lj3jmJRnNddDUTusSjPATqzEAzObH8Qs=\",\"salt\":\"kJazPy8a3ds+akjIAj2v5w==\",\"additionalParameters\":{}}", + "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } + ], + "disableableCredentialTypes": [], + "requiredActions": ["UPDATE_PASSWORD"], + "notBefore": 0, + "groups": [ + "/camunda-admin", + "/formsflow/formsflow-reviewer/clerk", + "/formsflow-analytics/group2" + ] + }, + { + "createdTimestamp": 1621862607660, + "username": "formsflow-client", + "enabled": true, + "totp": false, + "emailVerified": false, + "firstName": "Client", + "lastName": "FFA", + "email": "formsflow-client@example.com", + "credentials": [ + { + "type": "password", + "userLabel": "My password", + "createdDate": 1718087389853, + "secretData": "{\"value\":\"Fehk9NWRH+UjlGacI2YqEoIr3u87E0QS5Wt1S4HNiGk=\",\"salt\":\"uTEVXddLwHNPWPhCUgqXbw==\",\"additionalParameters\":{}}", + "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } + ], + "disableableCredentialTypes": [], + "requiredActions": ["UPDATE_PASSWORD"], + "realmRoles": ["offline_access", "uma_authorization"], + "clientRoles": { + "account": ["view-profile", "manage-account"] + }, + "notBefore": 0, + "groups": ["/camunda-admin", "/formsflow/formsflow-client"] + }, + { + "createdTimestamp": 1621862546931, + "username": "formsflow-designer", + "enabled": true, + "totp": false, + "emailVerified": false, + "firstName": "Designer", + "lastName": "FFA", + "email": "formsflow-designer@example.com", + "credentials": [ + { + "type": "password", + "userLabel": "My password", + "createdDate": 1718087380963, + "secretData": "{\"value\":\"X3Q2p9qUom86nW5MzPcVWSqRqOA79aGoWiXxPNa5CXg=\",\"salt\":\"axfCJmXlZ+fT5weWx7Ug7A==\",\"additionalParameters\":{}}", + "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } + ], + "disableableCredentialTypes": [], + "requiredActions": ["UPDATE_PASSWORD"], + "realmRoles": ["offline_access", "uma_authorization"], + "clientRoles": { + "forms-flow-web": ["create_designs", "view_designs"], + "account": ["view-profile", "manage-account"] + }, + "notBefore": 0, + "groups": ["/camunda-admin", "/formsflow/formsflow-designer"] + }, + { + "createdTimestamp": 1621862578318, + "username": "formsflow-reviewer", + "enabled": true, + "totp": false, + "emailVerified": false, + "firstName": "Reviewer", + "lastName": "FFA", + "email": "formsflow-reviewer@example.com", + "attributes": { + "locale": ["en"] + }, + "credentials": [ + { + "type": "password", + "userLabel": "My password", + "createdDate": 1718087367262, + "secretData": "{\"value\":\"1/Cx4BVLFu8pXA1pAwfLj/Ph01zlcTiWZS8dPfCavJA=\",\"salt\":\"XHQ4JeY44l/QChf27jiYNw==\",\"additionalParameters\":{}}", + "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } + ], + "disableableCredentialTypes": [], + "requiredActions": ["UPDATE_PASSWORD"], + "realmRoles": ["offline_access", "uma_authorization"], + "clientRoles": { + "account": ["view-profile", "manage-account"] + }, + "notBefore": 0, + "groups": [ + "/camunda-admin", + "/formsflow/formsflow-reviewer", + "/formsflow-analytics/group1" + ] + }, + { + "createdTimestamp": 1621585233480, + "username": "service-account-forms-flow-bpm", + "enabled": true, + "totp": false, + "emailVerified": false, + "serviceAccountClientId": "forms-flow-bpm", + "credentials": [], + "disableableCredentialTypes": [], + "requiredActions": [], + "realmRoles": ["offline_access", "uma_authorization"], + "clientRoles": { + "realm-management": [ + "query-groups", + "view-users", + "realm-admin", + "manage-clients", + "manage-users", + "query-users" + ], + "account": ["view-profile", "manage-account"] + }, + "notBefore": 0, + "groups": ["/camunda-admin"] + } + ], + "scopeMappings": [ + { + "clientScope": "offline_access", + "roles": ["offline_access"] + } + ], + "clientScopeMappings": { + "account": [ + { + "client": "account-console", + "roles": ["manage-account", "view-groups"] + } + ] + }, + "clients": [ { "clientId": "account", "name": "${client_account}", @@ -692,13 +843,7 @@ "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", "secret": "**********", - "defaultRoles": [ - "view-profile", - "manage-account" - ], - "redirectUris": [ - "/realms/forms-flow-ai/account/*" - ], + "redirectUris": ["/realms/forms-flow-ai/account/*"], "webOrigins": [], "notBefore": 0, "bearerOnly": false, @@ -710,17 +855,13 @@ "publicClient": false, "frontchannelLogout": false, "protocol": "openid-connect", - "attributes": {}, + "attributes": { + "post.logout.redirect.uris": "+" + }, "authenticationFlowBindingOverrides": {}, "fullScopeAllowed": false, "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], + "defaultClientScopes": ["web-origins", "roles", "profile", "email"], "optionalClientScopes": [ "address", "phone", @@ -738,9 +879,7 @@ "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", "secret": "**********", - "redirectUris": [ - "/realms/forms-flow-ai/account/*" - ], + "redirectUris": ["/realms/forms-flow-ai/account/*"], "webOrigins": [], "notBefore": 0, "bearerOnly": false, @@ -753,6 +892,7 @@ "frontchannelLogout": false, "protocol": "openid-connect", "attributes": { + "post.logout.redirect.uris": "+", "pkce.code.challenge.method": "S256" }, "authenticationFlowBindingOverrides": {}, @@ -760,6 +900,7 @@ "nodeReRegistrationTimeout": 0, "protocolMappers": [ { + "id": "26fa11e0-b0c1-496d-83bb-f3c557fd0dce", "name": "audience resolve", "protocol": "openid-connect", "protocolMapper": "oidc-audience-resolve-mapper", @@ -767,13 +908,7 @@ "config": {} } ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "roles", - "profile", - "email" - ], + "defaultClientScopes": ["web-origins", "roles", "profile", "email"], "optionalClientScopes": [ "address", "phone", @@ -801,17 +936,13 @@ "publicClient": true, "frontchannelLogout": false, "protocol": "openid-connect", - "attributes": {}, + "attributes": { + "post.logout.redirect.uris": "+" + }, "authenticationFlowBindingOverrides": {}, "fullScopeAllowed": false, "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], + "defaultClientScopes": ["web-origins", "roles", "profile", "email"], "optionalClientScopes": [ "address", "phone", @@ -839,17 +970,13 @@ "publicClient": false, "frontchannelLogout": false, "protocol": "openid-connect", - "attributes": {}, + "attributes": { + "post.logout.redirect.uris": "+" + }, "authenticationFlowBindingOverrides": {}, "fullScopeAllowed": false, "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], + "defaultClientScopes": ["web-origins", "roles", "profile", "email"], "optionalClientScopes": [ "address", "phone", @@ -860,16 +987,13 @@ { "clientId": "forms-flow-analytics", "description": "Redash-Analytics", - "adminUrl": "http://localhost:7001/saml/callback?org_slug=default", + "adminUrl": "http://localhost:7000/saml/callback?org_slug=default", "surrogateAuthRequired": false, "enabled": true, "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", "secret": "**********", - "redirectUris": [ - "http://localhost:7001/*", - "*" - ], + "redirectUris": ["http://localhost:7000/*", "*"], "webOrigins": [], "notBefore": 0, "bearerOnly": false, @@ -886,9 +1010,11 @@ "saml.force.post.binding": "false", "saml.multivalued.roles": "false", "saml.encrypt": "false", + "post.logout.redirect.uris": "+", "saml.server.signature": "false", "saml.server.signature.keyinfo.ext": "false", "exclude.session.state.from.auth.response": "false", + "saml.artifact.binding.identifier": "OOFH7REqnhW7gnm7DkWoK9smSR4=", "saml.signature.algorithm": "RSA_SHA256", "saml_force_name_id_format": "false", "saml.client.signature": "false", @@ -904,41 +1030,30 @@ "nodeReRegistrationTimeout": -1, "protocolMappers": [ { - "name": "X500 surname", + "name": "X500 givenName", "protocol": "saml", "protocolMapper": "saml-user-property-mapper", "consentRequired": false, "config": { - "user.attribute": "lastName", - "friendly.name": "LastName", - "attribute.name": "urn:oid:2.5.4.4" + "user.attribute": "firstName", + "friendly.name": "FirstName", + "attribute.name": "urn:oid:2.5.4.42" } }, { - "name": "X500 givenName", + "name": "X500 surname", "protocol": "saml", "protocolMapper": "saml-user-property-mapper", "consentRequired": false, "config": { - "user.attribute": "firstName", - "friendly.name": "FirstName", - "attribute.name": "urn:oid:2.5.4.42" + "user.attribute": "lastName", + "friendly.name": "LastName", + "attribute.name": "urn:oid:2.5.4.4" } } ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] + "defaultClientScopes": ["role_list"], + "optionalClientScopes": [] }, { "clientId": "forms-flow-bpm", @@ -948,13 +1063,8 @@ "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", "secret": "e4bdbd25-1467-4f7f-b993-bc4b1944c943", - "redirectUris": [ - "http://localhost:8000/camunda/*", - "*" - ], - "webOrigins": [ - "*" - ], + "redirectUris": ["http://localhost:8000/camunda/*", "*"], + "webOrigins": ["*"], "notBefore": 0, "bearerOnly": false, "consentRequired": false, @@ -970,6 +1080,7 @@ "saml.force.post.binding": "false", "saml.multivalued.roles": "false", "saml.encrypt": "false", + "post.logout.redirect.uris": "+", "saml.server.signature": "false", "saml.server.signature.keyinfo.ext": "false", "exclude.session.state.from.auth.response": "false", @@ -998,18 +1109,6 @@ "jsonType.label": "String" } }, - { - "name": "formsflow-web-mapper", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", - "consentRequired": false, - "config": { - "included.client.audience": "forms-flow-web", - "id.token.claim": "false", - "access.token.claim": "true", - "userinfo.token.claim": "false" - } - }, { "name": "Client IP Address", "protocol": "openid-connect", @@ -1024,7 +1123,19 @@ "jsonType.label": "String" } }, - { + { + "name": "formsflow-web-mapper", + "protocol": "openid-connect", + "protocolMapper": "oidc-audience-mapper", + "consentRequired": false, + "config": { + "included.client.audience": "forms-flow-web", + "id.token.claim": "false", + "access.token.claim": "true", + "userinfo.token.claim": "false" + } + }, + { "name": "camunda-rest-api", "protocol": "openid-connect", "protocolMapper": "oidc-audience-mapper", @@ -1032,7 +1143,8 @@ "config": { "id.token.claim": "false", "access.token.claim": "true", - "included.custom.audience": "camunda-rest-api" + "included.custom.audience": "camunda-rest-api", + "userinfo.token.claim": "false" } }, { @@ -1050,38 +1162,37 @@ } }, { - "name": "Client ID", + "name": "groups", "protocol": "openid-connect", - "protocolMapper": "oidc-usersessionmodel-note-mapper", + "protocolMapper": "oidc-group-membership-mapper", "consentRequired": false, "config": { - "user.session.note": "clientId", - "userinfo.token.claim": "true", + "full.path": "true", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "clientId", - "jsonType.label": "String" + "claim.name": "groups", + "userinfo.token.claim": "true" } }, { - "name": "groups", + "name": "Client ID", "protocol": "openid-connect", - "protocolMapper": "oidc-group-membership-mapper", + "protocolMapper": "oidc-usersessionmodel-note-mapper", "consentRequired": false, "config": { - "full.path": "true", + "user.session.note": "clientId", + "userinfo.token.claim": "true", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "groups", - "userinfo.token.claim": "true" + "claim.name": "clientId", + "jsonType.label": "String" } } ], "defaultClientScopes": [ "web-origins", - "role_list", - "profile", "roles", + "profile", "camunda-rest-api", "email" ], @@ -1100,13 +1211,8 @@ "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", "secret": "**********", - "redirectUris": [ - "http://localhost:3000/*", - "*" - ], - "webOrigins": [ - "*" - ], + "redirectUris": ["http://localhost:3000/*", "*"], + "webOrigins": ["*"], "notBefore": 0, "bearerOnly": false, "consentRequired": false, @@ -1122,6 +1228,7 @@ "saml.force.post.binding": "false", "saml.multivalued.roles": "false", "saml.encrypt": "false", + "post.logout.redirect.uris": "+", "saml.server.signature": "false", "saml.server.signature.keyinfo.ext": "false", "exclude.session.state.from.auth.response": "false", @@ -1137,39 +1244,28 @@ "nodeReRegistrationTimeout": -1, "protocolMappers": [ { - "name": "formsflow-web-mapper", + "name": "groups", "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", + "protocolMapper": "oidc-group-membership-mapper", "consentRequired": false, "config": { - "included.client.audience": "forms-flow-web", - "id.token.claim": "false", + "full.path": "true", + "id.token.claim": "true", "access.token.claim": "true", - "userinfo.token.claim": "false" + "claim.name": "groups", + "userinfo.token.claim": "true" } }, { - "name": "camunda-rest-api", + "name": "formsflow-web-mapper", "protocol": "openid-connect", "protocolMapper": "oidc-audience-mapper", "consentRequired": false, "config": { + "included.client.audience": "forms-flow-web", "id.token.claim": "false", "access.token.claim": "true", - "included.custom.audience": "camunda-rest-api" - } - }, - { - "name": "groups", - "protocol": "openid-connect", - "protocolMapper": "oidc-group-membership-mapper", - "consentRequired": false, - "config": { - "full.path": "true", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "groups", - "userinfo.token.claim": "true" + "userinfo.token.claim": "false" } }, { @@ -1186,13 +1282,24 @@ "access.token.claim": "true", "claim.name": "dashboards" } + }, + { + "name": "camunda-rest-api", + "protocol": "openid-connect", + "protocolMapper": "oidc-audience-mapper", + "consentRequired": false, + "config": { + "id.token.claim": "false", + "access.token.claim": "true", + "included.custom.audience": "camunda-rest-api", + "userinfo.token.claim": "false" + } } ], "defaultClientScopes": [ "web-origins", - "role_list", - "profile", "roles", + "profile", "camunda-rest-api", "email" ], @@ -1223,17 +1330,13 @@ "publicClient": false, "frontchannelLogout": false, "protocol": "openid-connect", - "attributes": {}, + "attributes": { + "post.logout.redirect.uris": "+" + }, "authenticationFlowBindingOverrides": {}, "fullScopeAllowed": false, "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], + "defaultClientScopes": ["web-origins", "roles", "profile", "email"], "optionalClientScopes": [ "address", "phone", @@ -1242,7 +1345,6 @@ ] }, { - "clientId": "security-admin-console", "name": "${client_security-admin-console}", "rootUrl": "${authAdminUrl}", "baseUrl": "/admin/forms-flow-ai/console/", @@ -1251,12 +1353,8 @@ "alwaysDisplayInConsole": false, "clientAuthenticatorType": "client-secret", "secret": "**********", - "redirectUris": [ - "/admin/forms-flow-ai/console/*" - ], - "webOrigins": [ - "+" - ], + "redirectUris": ["/admin/forms-flow-ai/console/*"], + "webOrigins": ["+"], "notBefore": 0, "bearerOnly": false, "consentRequired": false, @@ -1268,6 +1366,7 @@ "frontchannelLogout": false, "protocol": "openid-connect", "attributes": { + "post.logout.redirect.uris": "+", "pkce.code.challenge.method": "S256" }, "authenticationFlowBindingOverrides": {}, @@ -1289,13 +1388,7 @@ } } ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], + "defaultClientScopes": ["web-origins", "roles", "profile", "email"], "optionalClientScopes": [ "address", "phone", @@ -1306,138 +1399,210 @@ ], "clientScopes": [ { - "name": "role_list", - "description": "SAML role list", - "protocol": "saml", + "name": "microprofile-jwt", + "description": "Microprofile - JWT built-in scope", + "protocol": "openid-connect", "attributes": { - "consent.screen.text": "${samlRoleListScopeConsentText}", - "display.on.consent.screen": "true" + "include.in.token.scope": "true", + "display.on.consent.screen": "false" }, "protocolMappers": [ { - "name": "role list", - "protocol": "saml", - "protocolMapper": "saml-role-list-mapper", + "name": "upn", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-property-mapper", "consentRequired": false, "config": { - "single": "false", - "attribute.nameformat": "Basic", - "attribute.name": "Role" + "userinfo.token.claim": "true", + "user.attribute": "username", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "upn", + "jsonType.label": "String" + } + }, + { + "name": "groups", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-realm-role-mapper", + "consentRequired": false, + "config": { + "multivalued": "true", + "userinfo.token.claim": "true", + "user.attribute": "foo", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "groups", + "jsonType.label": "String" } } ] }, { - "name": "offline_access", - "description": "OpenID Connect built-in scope: offline_access", + "name": "acr", + "description": "OpenID Connect scope for add acr (authentication context class reference) to the token", "protocol": "openid-connect", "attributes": { - "consent.screen.text": "${offlineAccessScopeConsentText}", - "display.on.consent.screen": "true" - } + "include.in.token.scope": "false", + "display.on.consent.screen": "false" + }, + "protocolMappers": [ + { + "id": "4d629437-3940-47c4-9180-d88b4c1126f6", + "name": "acr loa level", + "protocol": "openid-connect", + "protocolMapper": "oidc-acr-mapper", + "consentRequired": false, + "config": { + "id.token.claim": "true", + "introspection.token.claim": "true", + "access.token.claim": "true" + } + } + ] }, { - "name": "profile", - "description": "OpenID Connect built-in scope: profile", + "name": "web-origins", + "description": "OpenID Connect scope for add allowed web origins to the access token", "protocol": "openid-connect", "attributes": { - "include.in.token.scope": "true", + "include.in.token.scope": "false", + "display.on.consent.screen": "false", + "consent.screen.text": "" + }, + "protocolMappers": [ + { + "id": "ae97ed8c-ec33-4a7e-ab86-7c122ef8bbc3", + "name": "allowed web origins", + "protocol": "openid-connect", + "protocolMapper": "oidc-allowed-origins-mapper", + "consentRequired": false, + "config": {} + } + ] + }, + { + "name": "roles", + "description": "OpenID Connect scope for add user roles to the access token", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "false", "display.on.consent.screen": "true", - "consent.screen.text": "${profileScopeConsentText}" + "consent.screen.text": "${rolesScopeConsentText}" }, "protocolMappers": [ { - "name": "full name", + "name": "client roles", "protocol": "openid-connect", - "protocolMapper": "oidc-full-name-mapper", + "protocolMapper": "oidc-usermodel-client-role-mapper", "consentRequired": false, "config": { - "id.token.claim": "true", + "user.attribute": "foo", "access.token.claim": "true", - "userinfo.token.claim": "true" + "claim.name": "resource_access.${client_id}.roles", + "jsonType.label": "String", + "multivalued": "true" } }, { - "name": "profile", + "name": "realm roles", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", + "protocolMapper": "oidc-usermodel-realm-role-mapper", "consentRequired": false, "config": { - "userinfo.token.claim": "true", - "user.attribute": "profile", - "id.token.claim": "true", + "user.attribute": "foo", "access.token.claim": "true", - "claim.name": "profile", - "jsonType.label": "String" + "claim.name": "realm_access.roles", + "jsonType.label": "String", + "multivalued": "true" } }, { - "name": "gender", + "name": "Role", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", + "protocolMapper": "oidc-usermodel-client-role-mapper", "consentRequired": false, "config": { + "multivalued": "true", "userinfo.token.claim": "true", - "user.attribute": "gender", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "gender", - "jsonType.label": "String" + "claim.name": "role", + "usermodel.clientRoleMapping.clientId": "forms-flow-web" } }, { - "name": "website", + "name": "audience resolve", + "protocol": "openid-connect", + "protocolMapper": "oidc-audience-resolve-mapper", + "consentRequired": false, + "config": {} + } + ] + }, + { + "name": "profile", + "description": "OpenID Connect built-in scope: profile", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "true", + "display.on.consent.screen": "true", + "consent.screen.text": "${profileScopeConsentText}" + }, + "protocolMappers": [ + { + "name": "zoneinfo", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "website", + "user.attribute": "zoneinfo", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "website", + "claim.name": "zoneinfo", "jsonType.label": "String" } }, { - "name": "zoneinfo", + "name": "picture", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "zoneinfo", + "user.attribute": "picture", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "zoneinfo", + "claim.name": "picture", "jsonType.label": "String" } }, { - "name": "given name", + "name": "username", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-property-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "firstName", + "user.attribute": "username", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "given_name", + "claim.name": "preferred_username", "jsonType.label": "String" } }, { - "name": "nickname", + "name": "website", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "nickname", + "user.attribute": "website", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "nickname", + "claim.name": "website", "jsonType.label": "String" } }, @@ -1456,339 +1621,291 @@ } }, { - "name": "updated at", + "name": "full name", + "protocol": "openid-connect", + "protocolMapper": "oidc-full-name-mapper", + "consentRequired": false, + "config": { + "id.token.claim": "true", + "access.token.claim": "true", + "userinfo.token.claim": "true" + } + }, + { + "name": "middle name", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "updatedAt", + "user.attribute": "middleName", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "updated_at", + "claim.name": "middle_name", "jsonType.label": "String" } }, { - "name": "birthdate", + "name": "updated at", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "birthdate", + "user.attribute": "updatedAt", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "birthdate", + "claim.name": "updated_at", "jsonType.label": "String" } }, { - "name": "family name", + "name": "given name", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-property-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "lastName", + "user.attribute": "firstName", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "family_name", + "claim.name": "given_name", "jsonType.label": "String" } }, { - "name": "middle name", + "name": "nickname", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "middleName", + "user.attribute": "nickname", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "middle_name", + "claim.name": "nickname", "jsonType.label": "String" } }, { - "name": "username", + "name": "birthdate", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", + "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "username", + "user.attribute": "birthdate", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "preferred_username", + "claim.name": "birthdate", "jsonType.label": "String" } }, { - "name": "picture", + "name": "family name", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", + "protocolMapper": "oidc-usermodel-property-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "picture", + "user.attribute": "lastName", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "picture", + "claim.name": "family_name", "jsonType.label": "String" } - } - ] - }, - { - "name": "email", - "description": "OpenID Connect built-in scope: email", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true", - "consent.screen.text": "${emailScopeConsentText}" - }, - "protocolMappers": [ + }, { - "name": "email verified", + "name": "gender", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", + "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "emailVerified", + "user.attribute": "gender", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "email_verified", - "jsonType.label": "boolean" + "claim.name": "gender", + "jsonType.label": "String" } }, { - "name": "email", + "name": "profile", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", + "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "email", + "user.attribute": "profile", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "email", + "claim.name": "profile", "jsonType.label": "String" } } ] }, { - "name": "address", - "description": "OpenID Connect built-in scope: address", + "name": "offline_access", + "description": "OpenID Connect built-in scope: offline_access", "protocol": "openid-connect", "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true", - "consent.screen.text": "${addressScopeConsentText}" + "consent.screen.text": "${offlineAccessScopeConsentText}", + "display.on.consent.screen": "true" + } + }, + { + "name": "role_list", + "description": "SAML role list", + "protocol": "saml", + "attributes": { + "consent.screen.text": "${samlRoleListScopeConsentText}", + "display.on.consent.screen": "true" }, "protocolMappers": [ { - "name": "address", - "protocol": "openid-connect", - "protocolMapper": "oidc-address-mapper", + "name": "role list", + "protocol": "saml", + "protocolMapper": "saml-role-list-mapper", "consentRequired": false, "config": { - "user.attribute.formatted": "formatted", - "user.attribute.country": "country", - "user.attribute.postal_code": "postal_code", - "userinfo.token.claim": "true", - "user.attribute.street": "street", - "id.token.claim": "true", - "user.attribute.region": "region", - "access.token.claim": "true", - "user.attribute.locality": "locality" + "single": "false", + "attribute.nameformat": "Basic", + "attribute.name": "Role" } } ] }, { - "name": "phone", - "description": "OpenID Connect built-in scope: phone", + "name": "email", + "description": "OpenID Connect built-in scope: email", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true", - "consent.screen.text": "${phoneScopeConsentText}" + "consent.screen.text": "${emailScopeConsentText}" }, "protocolMappers": [ { - "name": "phone number verified", + "name": "email verified", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", + "protocolMapper": "oidc-usermodel-property-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "phoneNumberVerified", + "user.attribute": "emailVerified", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "phone_number_verified", + "claim.name": "email_verified", "jsonType.label": "boolean" } }, { - "name": "phone number", + "name": "email", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", + "protocolMapper": "oidc-usermodel-property-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "phoneNumber", + "user.attribute": "email", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "phone_number", + "claim.name": "email", "jsonType.label": "String" } } ] }, { - "name": "roles", - "description": "OpenID Connect scope for add user roles to the access token", + "name": "address", + "description": "OpenID Connect built-in scope: address", "protocol": "openid-connect", "attributes": { - "include.in.token.scope": "false", + "include.in.token.scope": "true", "display.on.consent.screen": "true", - "consent.screen.text": "${rolesScopeConsentText}" + "consent.screen.text": "${addressScopeConsentText}" }, "protocolMappers": [ { - "name": "realm roles", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-realm-role-mapper", - "consentRequired": false, - "config": { - "user.attribute": "foo", - "access.token.claim": "true", - "claim.name": "realm_access.roles", - "jsonType.label": "String", - "multivalued": "true" - } - }, - { - "name": "client roles", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-client-role-mapper", - "consentRequired": false, - "config": { - "user.attribute": "foo", - "access.token.claim": "true", - "claim.name": "resource_access.${client_id}.roles", - "jsonType.label": "String", - "multivalued": "true" - } - }, - { - "name": "Role", + "name": "address", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-client-role-mapper", + "protocolMapper": "oidc-address-mapper", "consentRequired": false, "config": { - "multivalued": "true", + "user.attribute.formatted": "formatted", + "user.attribute.country": "country", + "user.attribute.postal_code": "postal_code", "userinfo.token.claim": "true", + "user.attribute.street": "street", "id.token.claim": "true", + "user.attribute.region": "region", "access.token.claim": "true", - "claim.name": "role", - "usermodel.clientRoleMapping.clientId": "forms-flow-web" + "user.attribute.locality": "locality" } - }, - { - "name": "audience resolve", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-resolve-mapper", - "consentRequired": false, - "config": {} } ] }, { - "name": "web-origins", - "description": "OpenID Connect scope for add allowed web origins to the access token", + "name": "camunda-rest-api", "protocol": "openid-connect", "attributes": { - "include.in.token.scope": "false", - "display.on.consent.screen": "false", - "consent.screen.text": "" + "include.in.token.scope": "true", + "display.on.consent.screen": "true" }, "protocolMappers": [ { - "name": "allowed web origins", + "name": "camunda-rest-api", "protocol": "openid-connect", - "protocolMapper": "oidc-allowed-origins-mapper", + "protocolMapper": "oidc-audience-mapper", "consentRequired": false, - "config": {} + "config": { + "id.token.claim": "false", + "access.token.claim": "true", + "included.custom.audience": "camunda-rest-api", + "userinfo.token.claim": "false" + } } ] }, { - "name": "microprofile-jwt", - "description": "Microprofile - JWT built-in scope", + "name": "phone", + "description": "OpenID Connect built-in scope: phone", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", - "display.on.consent.screen": "false" + "display.on.consent.screen": "true", + "consent.screen.text": "${phoneScopeConsentText}" }, "protocolMappers": [ { - "name": "groups", + "name": "phone number verified", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-realm-role-mapper", + "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { - "multivalued": "true", "userinfo.token.claim": "true", - "user.attribute": "foo", + "user.attribute": "phoneNumberVerified", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "groups", - "jsonType.label": "String" + "claim.name": "phone_number_verified", + "jsonType.label": "boolean" } }, { - "name": "upn", + "name": "phone number", "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", + "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "userinfo.token.claim": "true", - "user.attribute": "username", + "user.attribute": "phoneNumber", "id.token.claim": "true", "access.token.claim": "true", - "claim.name": "upn", + "claim.name": "phone_number", "jsonType.label": "String" } } ] - }, - { - "name": "camunda-rest-api", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true" - }, - "protocolMappers": [ - { - "name": "camunda-rest-api", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", - "consentRequired": false, - "config": { - "id.token.claim": "false", - "access.token.claim": "true", - "included.custom.audience": "camunda-rest-api", - "userinfo.token.claim": "false" - } - } - ] } ], "defaultDefaultClientScopes": [ @@ -1797,7 +1914,8 @@ "email", "roles", "web-origins", - "camunda-rest-api" + "camunda-rest-api", + "acr" ], "defaultOptionalClientScopes": [ "offline_access", @@ -1808,6 +1926,7 @@ "browserSecurityHeaders": { "contentSecurityPolicyReportOnly": "", "xContentTypeOptions": "nosniff", + "referrerPolicy": "no-referrer", "xRobotsTag": "none", "xFrameOptions": "SAMEORIGIN", "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';", @@ -1815,21 +1934,28 @@ "strictTransportSecurity": "max-age=31536000; includeSubDomains" }, "smtpServer": {}, + "loginTheme": "formsflow", + "accountTheme": "", + "adminTheme": "", + "emailTheme": "", "eventsEnabled": false, - "eventsListeners": [ - "jboss-logging" - ], + "eventsListeners": ["jboss-logging"], "enabledEventTypes": [], "adminEventsEnabled": false, "adminEventsDetailsEnabled": false, + "identityProviders": [], + "identityProviderMappers": [], "components": { "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy": [ { - "name": "Consent Required", - "providerId": "consent-required", + "id": "d0d1c5d3-3dcb-44bb-982b-d426cd1486d7", + "name": "Max Clients Limit", + "providerId": "max-clients", "subType": "anonymous", "subComponents": {}, - "config": {} + "config": { + "max-clients": ["200"] + } }, { "name": "Allowed Client Scopes", @@ -1837,19 +1963,24 @@ "subType": "authenticated", "subComponents": {}, "config": { - "allow-default-scopes": [ - "true" - ] + "allow-default-scopes": ["true"] } }, { - "name": "Allowed Client Scopes", - "providerId": "allowed-client-templates", + "name": "Allowed Protocol Mapper Types", + "providerId": "allowed-protocol-mappers", "subType": "anonymous", "subComponents": {}, "config": { - "allow-default-scopes": [ - "true" + "allowed-protocol-mapper-types": [ + "oidc-sha256-pairwise-sub-mapper", + "oidc-full-name-mapper", + "saml-role-list-mapper", + "oidc-usermodel-property-mapper", + "saml-user-attribute-mapper", + "oidc-usermodel-attribute-mapper", + "oidc-address-mapper", + "saml-user-property-mapper" ] } }, @@ -1861,79 +1992,60 @@ "config": {} }, { - "name": "Trusted Hosts", - "providerId": "trusted-hosts", + "name": "Consent Required", + "providerId": "consent-required", "subType": "anonymous", "subComponents": {}, - "config": { - "host-sending-registration-request-must-match": [ - "true" - ], - "client-uris-must-match": [ - "true" - ] - } + "config": {} }, { - "name": "Allowed Protocol Mapper Types", - "providerId": "allowed-protocol-mappers", - "subType": "authenticated", + "name": "Allowed Client Scopes", + "providerId": "allowed-client-templates", + "subType": "anonymous", "subComponents": {}, "config": { - "allowed-protocol-mapper-types": [ - "oidc-usermodel-attribute-mapper", - "oidc-full-name-mapper", - "saml-user-attribute-mapper", - "saml-user-property-mapper", - "oidc-address-mapper", - "saml-role-list-mapper", - "oidc-sha256-pairwise-sub-mapper", - "oidc-usermodel-property-mapper" - ] + "allow-default-scopes": ["true"] } }, { - "name": "Max Clients Limit", - "providerId": "max-clients", + "name": "Trusted Hosts", + "providerId": "trusted-hosts", "subType": "anonymous", "subComponents": {}, "config": { - "max-clients": [ - "200" - ] + "host-sending-registration-request-must-match": ["true"], + "client-uris-must-match": ["true"] } }, { "name": "Allowed Protocol Mapper Types", "providerId": "allowed-protocol-mappers", - "subType": "anonymous", + "subType": "authenticated", "subComponents": {}, "config": { "allowed-protocol-mapper-types": [ - "saml-role-list-mapper", - "oidc-usermodel-attribute-mapper", - "oidc-address-mapper", "oidc-sha256-pairwise-sub-mapper", - "oidc-full-name-mapper", + "saml-user-property-mapper", "saml-user-attribute-mapper", + "oidc-usermodel-attribute-mapper", "oidc-usermodel-property-mapper", - "saml-user-property-mapper" + "oidc-full-name-mapper", + "oidc-address-mapper", + "saml-role-list-mapper" ] } } ], "org.keycloak.keys.KeyProvider": [ { - "name": "hmac-generated", - "providerId": "hmac-generated", + "id": "49016060-904b-4d79-9d1b-57cb5d6a1a52", + "name": "aes-generated", + "providerId": "aes-generated", "subComponents": {}, "config": { - "priority": [ - "100" - ], - "algorithm": [ - "HS256" - ] + "kid": ["70affbd9-d904-4dcc-8838-70beb8f73aa3"], + "secret": ["62t32DLzCqO31BzHJ7KKgQ"], + "priority": ["100"] } }, { @@ -1941,19 +2053,26 @@ "providerId": "rsa-generated", "subComponents": {}, "config": { - "priority": [ - "100" - ] + "privateKey": [ + "MIIEpAIBAAKCAQEA6bYyvyeConvAkWBbiXypa4UWFMLJhiutcm2C3GElTSQjsoDorz7/Kj3v5svKe2/NXly6lvNcbV63Ot5dUfr2LvNgetfMH8bXf96kZeOyZxPFGhPvI4IjQWVcxqObMsD3ZtYOLM1Q1YoNv20Rs8UhZnqwYrqsq+6eGEaN/UAMN4+O5T1ZxStKNSDIPETqZJOvozKhgY7uYANxHSRDLC/FYS+y3NaERNDeu1eDN8Qi8Z+p1BBZo8A1A5rz0puzrK3b2K/W4bPayGc7EHIA8LiGfiJXzhX2/V57dzW1qMy6OjUdt63UjPRvxNcgekbP1DOpdLQkBlCO8F6DxNY4VIDXGQIDAQABAoIBAAKpMTpi7pup/AnLsTnHV73NJfC2PQl63X6EMlgO/8KOlZzL10UI2xU136be4snKqT8YoC6QIRkaWcy2SRViCEPa6oTLiIaYws2xERRwkLtCtYeepXuKg5s+1l0T8h7ppTIgYB3wzSmj6OnT3z6O5oVJAqbFHaqBd38AQqVDrD/vrBccUZ0HnDXWT4gEyTNsUAoZ8SIFHK1ab4C2cse+FfszyrxxQRmDyckJ9/0c7YObbuk1NDm4KLZyyVhZ2QB20RqwZj3C3YlOs0So9BrkooZI+PmCmq4ikZGJRwVqAdH3t5HpaXxnt9Ytq5+e+gLyy+QO5Audd7vblAVi4eJeJ5kCgYEA+eQaSBYGLAUfUm3akVxLZF0UfYxrOn/tUA56anNbyhDHkWsJDGHMQWtXMhZruevVGTCNrMt6rAtCcHcObwR4uXiK/rxrYMGNqV/Y6jZPwkaTwbc6KJyyoNynBMRJBXlNUAtikq7bB72VC2BIThw9L/x95dkdEdoIOpI2aJZa8G0CgYEA72zXHOLufBjXE69Qe9dUqHOVSGUhZ6ou4Xpo1YLzwTvI9Z7dWaj134fHsrXfmZ1W4Z2yGephZ9NK6uw2D23GAgJO9Bv7sdVdOzkDaXb3sL7n3w7wyJPR+yk4U+hV/sEtuRnNUoNIYiyYUodKSJAsZO8qmX4qRvB9jcUnz1BYzd0CgYB3CJMEV4llGqOK7k05BM/c5QHHtEW3vgxbICpr3ruQi2GlAWlz/nn/h5QnhcqW66G8uAYkk2DB5zMkw3GarHSdVLBRG4vCsTA7yC5Zkrl3f4sOsasAgXQNcE4W1TE7bEbJpEK2QJiRHVuL6bdHjegPnaSTAlL4l/VngRJty4FSGQKBgQDQpXDw43IhAySrKuRgh85m3hMB+9+Yj147cIlbR7tUcd027zLGp89c9N66hnRNUigchWhn3TD1YdSv1RlnaKpdpdVYNeqplt6gdZbbmalQhY1bfZGnueoLjmhf9uC6GW7XF/0uIuo5Y9N6WBwMEFgfvazKBoChQYKowV9n8wTwoQKBgQC6gjg7X2bCLwFQS6yY/smv3PrG9moB5PxyDcFp8DJty23jSx4vuNfQDB3P97Z/rZW8S/QuSsqLN37vb1gwSR+BiI5A6+8dVSL8m8XMDOOA5IVschphECxmbucoefIWEBiAquNsVz9+4AmWDsMJ81I35mc/SBZf5eC84UcDZXN/kg==" + ], + "certificate": [ + "MIICqTCCAZECBgGPw87+UDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1mb3Jtcy1mbG93LWFpMB4XDTI0MDUyOTEwMDI1M1oXDTM0MDUyOTEwMDQzM1owGDEWMBQGA1UEAwwNZm9ybXMtZmxvdy1haTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOm2Mr8ngqJ7wJFgW4l8qWuFFhTCyYYrrXJtgtxhJU0kI7KA6K8+/yo97+bLyntvzV5cupbzXG1etzreXVH69i7zYHrXzB/G13/epGXjsmcTxRoT7yOCI0FlXMajmzLA92bWDizNUNWKDb9tEbPFIWZ6sGK6rKvunhhGjf1ADDePjuU9WcUrSjUgyDxE6mSTr6MyoYGO7mADcR0kQywvxWEvstzWhETQ3rtXgzfEIvGfqdQQWaPANQOa89Kbs6yt29iv1uGz2shnOxByAPC4hn4iV84V9v1ee3c1tajMujo1Hbet1Iz0b8TXIHpGz9QzqXS0JAZQjvBeg8TWOFSA1xkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIXZ1wxy9msKuXQRzLXZ6obmymetOliWjAU7rQpXktUDj6X33JLNxYr6MFFd4jb5E6nKPXmZEXRMq2Q/iOAFun8DUIqVd1ZoYUvYMVsSgrafT25A0v0kvuENBTI/Jz9no+2z3mHw34s4BbhZRxO0lue7ms8OFs+2lR2jSLTzlxzlY/vG9fCG7t3Q/WAm7kfLa7+mDOn9ELHG0T+xZtmhuZ2QVSNmriFK6KEBpXA7GdUJBXWKmuQeBBqFDE7Jo+mt2FSK8JpKCw4MP1IVf5Ft/OU2DFJkI4GTJagQjWYcQ1IIs0fFy3TtQv3ToJHfrr81sDFX6Ua3pEnRwfXhz3a+k2Q==" + ], + "priority": ["100"] } }, { - "name": "aes-generated", - "providerId": "aes-generated", + "name": "hmac-generated", + "providerId": "hmac-generated", "subComponents": {}, "config": { - "priority": [ - "100" - ] + "kid": ["927e4878-e36e-45b3-a979-dc53a7ee0fde"], + "secret": [ + "tOFkTA2NWJ9cZhqAyf1dNar3zKTuKMtMY7_5d0ED7md22CZqNMAjd3MWwawjk1FR6EVL-KkiTJ7g90Y5Jp094A" + ], + "priority": ["100"], + "algorithm": ["HS256"] } } ] @@ -1970,47 +2089,19 @@ "authenticationExecutions": [ { "authenticator": "idp-email-verification", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "ALTERNATIVE", "priority": 20, + "autheticatorFlow": true, "flowAlias": "Verify Existing Account by Re-authentication", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "Authentication Options", - "description": "Authentication options.", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "basic-auth", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "basic-auth-otp", - "requirement": "DISABLED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "auth-spnego", - "requirement": "DISABLED", - "priority": 30, - "userSetupAllowed": false, - "autheticatorFlow": false + "userSetupAllowed": false } ] }, @@ -2023,17 +2114,19 @@ "authenticationExecutions": [ { "authenticator": "conditional-user-configured", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "auth-otp-form", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] }, @@ -2046,17 +2139,19 @@ "authenticationExecutions": [ { "authenticator": "conditional-user-configured", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "direct-grant-validate-otp", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] }, @@ -2069,17 +2164,19 @@ "authenticationExecutions": [ { "authenticator": "conditional-user-configured", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "auth-otp-form", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] }, @@ -2092,17 +2189,19 @@ "authenticationExecutions": [ { "authenticator": "idp-confirm-link", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "REQUIRED", "priority": 20, + "autheticatorFlow": true, "flowAlias": "Account verification options", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2115,17 +2214,19 @@ "authenticationExecutions": [ { "authenticator": "conditional-user-configured", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "reset-otp", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] }, @@ -2139,17 +2240,19 @@ { "authenticatorConfig": "create unique user config", "authenticator": "idp-create-user-if-unique", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "ALTERNATIVE", "priority": 20, + "autheticatorFlow": true, "flowAlias": "Handle Existing Account", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2162,17 +2265,19 @@ "authenticationExecutions": [ { "authenticator": "idp-username-password-form", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "CONDITIONAL", "priority": 20, + "autheticatorFlow": true, "flowAlias": "First broker login - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2185,31 +2290,35 @@ "authenticationExecutions": [ { "authenticator": "auth-cookie", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "auth-spnego", + "authenticatorFlow": false, "requirement": "DISABLED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "identity-provider-redirector", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 25, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "ALTERNATIVE", "priority": 30, + "autheticatorFlow": true, "flowAlias": "forms", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2222,31 +2331,35 @@ "authenticationExecutions": [ { "authenticator": "client-secret", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "client-jwt", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "client-secret-jwt", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 30, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "client-x509", + "authenticatorFlow": false, "requirement": "ALTERNATIVE", "priority": 40, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] }, @@ -2259,24 +2372,27 @@ "authenticationExecutions": [ { "authenticator": "direct-grant-validate-username", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "direct-grant-validate-password", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "CONDITIONAL", "priority": 30, + "autheticatorFlow": true, "flowAlias": "Direct Grant - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2289,10 +2405,11 @@ "authenticationExecutions": [ { "authenticator": "docker-http-basic-authenticator", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] }, @@ -2306,17 +2423,19 @@ { "authenticatorConfig": "review profile config", "authenticator": "idp-review-profile", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "REQUIRED", "priority": 20, + "autheticatorFlow": true, "flowAlias": "User creation or linking", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2329,40 +2448,19 @@ "authenticationExecutions": [ { "authenticator": "auth-username-password-form", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "CONDITIONAL", "priority": 20, + "autheticatorFlow": true, "flowAlias": "Browser - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "http challenge", - "description": "An authentication flow based on challenge-response HTTP Authentication Schemes", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "no-cookie-redirect", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "REQUIRED", - "priority": 20, - "flowAlias": "Authentication Options", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2375,11 +2473,12 @@ "authenticationExecutions": [ { "authenticator": "registration-page-form", + "authenticatorFlow": true, "requirement": "REQUIRED", "priority": 10, + "autheticatorFlow": true, "flowAlias": "registration form", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2392,31 +2491,27 @@ "authenticationExecutions": [ { "authenticator": "registration-user-creation", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "registration-profile-action", - "requirement": "REQUIRED", - "priority": 40, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "registration-password-action", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 50, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "registration-recaptcha-action", + "authenticatorFlow": false, "requirement": "DISABLED", "priority": 60, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] }, @@ -2429,31 +2524,35 @@ "authenticationExecutions": [ { "authenticator": "reset-credentials-choose-user", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "reset-credential-email", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { "authenticator": "reset-password", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 30, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false }, { + "authenticatorFlow": true, "requirement": "CONDITIONAL", "priority": 40, + "autheticatorFlow": true, "flowAlias": "Reset - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true + "userSetupAllowed": false } ] }, @@ -2466,10 +2565,11 @@ "authenticationExecutions": [ { "authenticator": "http-basic-authenticator", + "authenticatorFlow": false, "requirement": "REQUIRED", "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false + "autheticatorFlow": false, + "userSetupAllowed": false } ] } @@ -2499,9 +2599,9 @@ "config": {} }, { - "alias": "terms_and_conditions", + "alias": "TERMS_AND_CONDITIONS", "name": "Terms and Conditions", - "providerId": "terms_and_conditions", + "providerId": "TERMS_AND_CONDITIONS", "enabled": false, "defaultAction": false, "priority": 20, @@ -2534,6 +2634,15 @@ "priority": 50, "config": {} }, + { + "alias": "delete_account", + "name": "Delete Account", + "providerId": "delete_account", + "enabled": false, + "defaultAction": false, + "priority": 60, + "config": {} + }, { "alias": "update_user_locale", "name": "Update User Locale", @@ -2551,11 +2660,25 @@ "clientAuthenticationFlow": "clients", "dockerAuthenticationFlow": "docker auth", "attributes": { + "cibaBackchannelTokenDeliveryMode": "poll", + "cibaExpiresIn": "120", + "cibaAuthRequestedUserHint": "login_hint", + "oauth2DeviceCodeLifespan": "600", "clientOfflineSessionMaxLifespan": "0", + "oauth2DevicePollingInterval": "5", "clientSessionIdleTimeout": "0", + "parRequestUriLifespan": "60", "clientSessionMaxLifespan": "0", - "clientOfflineSessionIdleTimeout": "0" + "clientOfflineSessionIdleTimeout": "0", + "cibaInterval": "5", + "realmReusableOtpCode": "false" + }, + "keycloakVersion": "23.0.7", + "userManagedAccessAllowed": false, + "clientProfiles": { + "profiles": [] }, - "keycloakVersion": "11.0.0", - "userManagedAccessAllowed": false + "clientPolicies": { + "policies": [] + } } diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index e2cbf76..47a6dfa 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -17,7 +17,7 @@ services: - formsflow keycloak: - image: quay.io/keycloak/keycloak:23.0.7 + image: quay.io/keycloak/keycloak:25.0.4 restart: always container_name: keycloak volumes: @@ -61,17 +61,17 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v6.0.1 + image: formsflow/forms-flow-web:6.0.2 platform: linux/arm64/v8 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: - # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.1/forms-flow-web.gz.js} - # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.1/forms-flow-nav.gz.js} - # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.1/forms-flow-service.gz.js} - # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v6.0.1/forms-flow-admin.gz.js} - # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v6.0.1/forms-flow-theme.gz.js} + # - MF_FORMSFLOW_WEB_URL=${MF_FORMSFLOW_WEB_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v6.0.2/forms-flow-web.gz.js} + # - MF_FORMSFLOW_NAV_URL=${MF_FORMSFLOW_NAV_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v6.0.2/forms-flow-nav.gz.js} + # - MF_FORMSFLOW_SERVICE_URL=${MF_FORMSFLOW_SERVICE_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v6.0.2/forms-flow-service.gz.js} + # - MF_FORMSFLOW_ADMIN_URL=${MF_FORMSFLOW_ADMIN_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v6.0.2/forms-flow-admin.gz.js} + # - MF_FORMSFLOW_THEME_URL=${MF_FORMSFLOW_THEME_URL:-https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v6.0.2/forms-flow-theme.gz.js} - NODE_ENV=${NODE_ENV:-production} - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL} - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL} @@ -139,13 +139,14 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v6.0.1-arm64 + image: formsflow/forms-flow-bpm:v6.0.2-arm64 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} - KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} - KEYCLOAK_CLIENTID=${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} - KEYCLOAK_CLIENTSECRET=${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} + - KEYCLOAK_URL_HTTP_RELATIVE_PATH=${KEYCLOAK_URL_HTTP_RELATIVE_PATH:-/auth} - CAMUNDA_JDBC_URL=${CAMUNDA_JDBC_URL:-jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm} - CAMUNDA_JDBC_USER=${CAMUNDA_JDBC_USER:-admin} - CAMUNDA_JDBC_PASSWORD=${CAMUNDA_JDBC_PASSWORD:-changeme} @@ -202,7 +203,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v6.0.1 + image: formsflow/forms-flow-webapi:v6.0.2 restart: always links: - forms-flow-webapi-db @@ -237,6 +238,13 @@ services: CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} + FORM_EMBED_JWT_SECRET: ${FORM_EMBED_JWT_SECRET:-f6a69a42-7f8a-11ed-a1eb-0242ac120002} + API_LOG_ROTATION_WHEN: ${API_LOG_ROTATION_WHEN:-d} + API_LOG_ROTATION_INTERVAL: ${API_LOG_ROTATION_INTERVAL:-1} + API_LOG_BACKUP_COUNT: ${API_LOG_BACKUP_COUNT:-7} + CONFIGURE_LOGS: ${CONFIGURE_LOGS:-true} REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - "5001:5000" @@ -244,7 +252,7 @@ services: - formsflow forms-flow-documents: - image: formsflow/forms-flow-documents-api:v6.0.1-arm64 + image: formsflow/forms-flow-documents-api:v6.0.2-arm64 restart: always volumes: - ./:/app:rw @@ -262,11 +270,17 @@ services: FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL} FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} - CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH:-/usr/local/bin/chromedriver} + CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH} + CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} + CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} + API_LOG_ROTATION_WHEN: ${API_LOG_ROTATION_WHEN:-d} + API_LOG_ROTATION_INTERVAL: ${API_LOG_ROTATION_INTERVAL:-1} + API_LOG_BACKUP_COUNT: ${API_LOG_BACKUP_COUNT:-7} + CONFIGURE_LOGS: ${CONFIGURE_LOGS:-true} ports: - "5006:5006" diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index 3d2aae8..d9dc499 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -17,7 +17,7 @@ services: - formsflow keycloak: - image: quay.io/keycloak/keycloak:23.0.7 + image: quay.io/keycloak/keycloak:25.0.4 restart: always container_name: keycloak volumes: @@ -61,7 +61,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web-ee:v6.0.1 + image: formsflow/forms-flow-web-ee:v6.0.2 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -133,13 +133,14 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm-ee:v6.0.1 + image: formsflow/forms-flow-bpm-ee:v6.0.2 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} - KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} - KEYCLOAK_CLIENTID=${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} - KEYCLOAK_CLIENTSECRET=${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} + - KEYCLOAK_URL_HTTP_RELATIVE_PATH=${KEYCLOAK_URL_HTTP_RELATIVE_PATH:-/auth} - CAMUNDA_JDBC_URL=${CAMUNDA_JDBC_URL:-jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm} - CAMUNDA_JDBC_USER=${CAMUNDA_JDBC_USER:-admin} - CAMUNDA_JDBC_PASSWORD=${CAMUNDA_JDBC_PASSWORD:-changeme} @@ -196,7 +197,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi-ee:v6.0.1 + image: formsflow/forms-flow-webapi-ee:v6.0.2 restart: always links: - forms-flow-webapi-db @@ -231,6 +232,13 @@ services: CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} + FORM_EMBED_JWT_SECRET: ${FORM_EMBED_JWT_SECRET:-f6a69a42-7f8a-11ed-a1eb-0242ac120002} + API_LOG_ROTATION_WHEN: ${API_LOG_ROTATION_WHEN:-d} + API_LOG_ROTATION_INTERVAL: ${API_LOG_ROTATION_INTERVAL:-1} + API_LOG_BACKUP_COUNT: ${API_LOG_BACKUP_COUNT:-7} + CONFIGURE_LOGS: ${CONFIGURE_LOGS:-true} REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - "5001:5000" @@ -238,12 +246,13 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api-ee:v6.0.1 + image: formsflow/forms-flow-documents-api-ee:v6.0.2 restart: always links: - forms-flow-forms - redis environment: + DATABASE_URL: ${FORMSFLOW_API_DB_URL:-postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi} FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs @@ -264,6 +273,10 @@ services: MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} + API_LOG_ROTATION_WHEN: ${API_LOG_ROTATION_WHEN:-d} + API_LOG_ROTATION_INTERVAL: ${API_LOG_ROTATION_INTERVAL:-1} + API_LOG_BACKUP_COUNT: ${API_LOG_BACKUP_COUNT:-7} + CONFIGURE_LOGS: ${CONFIGURE_LOGS:-true} ports: - '5006:5006' networks: @@ -284,7 +297,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v6.0.1 + image: formsflow/forms-flow-data-analysis-api:v6.0.2 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index d5c4185..6c9fa31 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -17,7 +17,7 @@ services: - formsflow keycloak: - image: quay.io/keycloak/keycloak:23.0.7 + image: quay.io/keycloak/keycloak:25.0.4 restart: always container_name: keycloak volumes: @@ -62,7 +62,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:v6.0.1 + image: formsflow/forms-flow-web:v6.0.2 links: - forms-flow-webapi entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" @@ -134,13 +134,14 @@ services: - formsflow forms-flow-bpm: - image: formsflow/forms-flow-bpm:v6.0.1 + image: formsflow/forms-flow-bpm:v6.0.2 restart: always environment: - KEYCLOAK_URL=${KEYCLOAK_URL} - KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} - KEYCLOAK_CLIENTID=${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} - KEYCLOAK_CLIENTSECRET=${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} + - KEYCLOAK_URL_HTTP_RELATIVE_PATH=${KEYCLOAK_URL_HTTP_RELATIVE_PATH:-/auth} - CAMUNDA_JDBC_URL=${CAMUNDA_JDBC_URL:-jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm} - CAMUNDA_JDBC_USER=${CAMUNDA_JDBC_USER:-admin} - CAMUNDA_JDBC_PASSWORD=${CAMUNDA_JDBC_PASSWORD:-changeme} @@ -197,7 +198,7 @@ services: - formsflow forms-flow-webapi: - image: formsflow/forms-flow-webapi:v6.0.1 + image: formsflow/forms-flow-webapi:v6.0.2 restart: always links: - forms-flow-webapi-db @@ -232,6 +233,13 @@ services: CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} + KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} + MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} + FORM_EMBED_JWT_SECRET: ${FORM_EMBED_JWT_SECRET:-f6a69a42-7f8a-11ed-a1eb-0242ac120002} + API_LOG_ROTATION_WHEN: ${API_LOG_ROTATION_WHEN:-d} + API_LOG_ROTATION_INTERVAL: ${API_LOG_ROTATION_INTERVAL:-1} + API_LOG_BACKUP_COUNT: ${API_LOG_BACKUP_COUNT:-7} + CONFIGURE_LOGS: ${CONFIGURE_LOGS:-true} REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} ports: - "5001:5000" @@ -239,12 +247,13 @@ services: - formsflow forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v6.0.1 + image: formsflow/forms-flow-documents-api:v6.0.2 restart: always links: - forms-flow-forms - redis environment: + DATABASE_URL: ${FORMSFLOW_API_DB_URL:-postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi} FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs @@ -265,6 +274,10 @@ services: MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} + API_LOG_ROTATION_WHEN: ${API_LOG_ROTATION_WHEN:-d} + API_LOG_ROTATION_INTERVAL: ${API_LOG_ROTATION_INTERVAL:-1} + API_LOG_BACKUP_COUNT: ${API_LOG_BACKUP_COUNT:-7} + CONFIGURE_LOGS: ${CONFIGURE_LOGS:-true} ports: - '5006:5006' networks: @@ -285,7 +298,7 @@ services: - '5430:5432' forms-flow-data-analysis-api: - image: formsflow/forms-flow-data-analysis-api:v6.0.1 + image: formsflow/forms-flow-data-analysis-api:v6.0.2 restart: always links: - forms-flow-data-analysis-db diff --git a/docker-compose/docker-swarm/README.md b/docker-compose/docker-swarm/README.md deleted file mode 100644 index b540bf7..0000000 --- a/docker-compose/docker-swarm/README.md +++ /dev/null @@ -1,89 +0,0 @@ -# Formsflow.ai Deployment Using Docker Swarm -This guide will walk you through deploying Formsflow.ai using Docker Swarm. - - -## Step 1: Initialize Docker Swarm -Run the following command on the manager node to initialize Docker Swarm: - -``` -docker swarm init -``` - -## Step 2: Clone the Repository -Clone the forms-flow-ai-deployment repository: - -``` -git clone https://github.com/AOT-Technologies/forms-flow-ai-deployment.git -``` - -## Step 3: Configure the .env File -Make sure your current working directory is forms-flow-ai-deployment/docker-compose/docker-swarm. - -1. Rename the sample.env file to .env. -2. Edit the .env file and update {your-ip-address} with your host system's IP address. - -## Step 4: Install Keycloak -Deploy Keycloak using the following command: - -``` -docker stack deploy -c keycloak-docker-compose.yml formsflow -``` - -Keycloak should be up and available at http://localhost:8080/auth/. - -The default username for Keycloak is **admin**, and the default password is **changeme** - -## Step 5: Install Analytics -**Note:** If you need Redash Analytics Engine in the installation, - -Deploy Analytics using the following command: - -``` -docker stack deploy -c analytics-docker-compose.yml formsflow -``` -Analytics should be up and available at http://localhost:7001. - -The Redash application should be available for use at port defaulted to 7000. Open http://localhost:7001/ on your machine and register with any valid credentials. - -## Step 6: Install Formsflow Components - -Edit the **docker-compose.yml** file and update {your-ip-address} with your host system's IP address. - -**Note:** -If you require the Redash Analytics Engine in your installation, you'll need to add the INSIGHT_API_KEY to the docker-compose.yml file. - -To get the Redash API key, log in to http://localhost:7001/, Choose Settings » Account, and copy the API Key. - -In the docker-compose.yml file, find the **environment** section Within this section, find the line that sets **INSIGHT_API_KEY:** - - environment: - INSIGHT_API_KEY: ${INSIGHT_API_KEY} - -Replace **${INSIGHT_API_KEY}** with the API Key you copied. - -Deploy Formsflow components using the following command: - -``` -docker stack deploy -c docker-compose.yml formsflow -``` -Check the status of the services: - -``` -docker service ls -``` - -## Health Check -1. **Formsflow.ai Web** should be up and available at http://localhost:3000/. -2. **Formio** should be up and available at http://localhost:3001/checkpoint/. -3. **Webapi** should be up and available at http://localhost:5000/. -4. **BPM** should be up and available at http://localhost:8000/camunda/. -5. **Documents-Api** should be up and available at http://localhost:5006/. - - -## Step 7: Uninstall Formsflow - -To uninstall Formsflow, run the following command: - -``` -docker stack rm formsflow -``` \ No newline at end of file diff --git a/docker-compose/docker-swarm/analytics-docker-compose.yml b/docker-compose/docker-swarm/analytics-docker-compose.yml deleted file mode 100644 index 892f8f9..0000000 --- a/docker-compose/docker-swarm/analytics-docker-compose.yml +++ /dev/null @@ -1,105 +0,0 @@ -# Author: Sinto Sajeev -version: "3.7" - -x-redash-service: &redash-service - image: formsflow/redash:10.1.5 - environment: - REDASH_WEB_WORKERS: 4 - REDASH_MULTI_ORG: ${REDASH_MULTI_ORG:-false} - env_file: .env - deploy: - restart_policy: - condition: any - -services: - analytics_server: - <<: *redash-service - command: create_db - networks: - - formsflow - - server: - <<: *redash-service - command: server - ports: - - '7001:5000' - networks: - - formsflow - - scheduler: - <<: *redash-service - command: scheduler - depends_on: - - server - deploy: - replicas: 1 - restart_policy: - condition: on-failure - networks: - - formsflow - - scheduled_worker: - <<: *redash-service - command: worker - deploy: - replicas: 1 - restart_policy: - condition: on-failure - networks: - - formsflow - - adhoc_worker: - <<: *redash-service - command: worker - deploy: - replicas: 1 - restart_policy: - condition: on-failure - networks: - - formsflow - - worker: - <<: *redash-service - command: worker - environment: - QUEUES: "periodic emails default" - WORKERS_COUNT: 1 - depends_on: - - server - deploy: - replicas: 1 - restart_policy: - condition: on-failure - networks: - - formsflow - - redis: - image: redis:6-alpine - deploy: - restart_policy: - condition: any - networks: - - formsflow - - postgres: - image: postgres:9.6-alpine - ports: - - '7432:5432' - env_file: .env - volumes: - - postgres:/var/lib/postgresql/data - deploy: - replicas: 1 - restart_policy: - condition: on-failure - networks: - - formsflow - -volumes: - postgres: - driver: local - -networks: - formsflow: - driver: overlay - diff --git a/docker-compose/docker-swarm/configuration/conf.d/nginx.conf b/docker-compose/docker-swarm/configuration/conf.d/nginx.conf deleted file mode 100644 index 29b5f71..0000000 --- a/docker-compose/docker-swarm/configuration/conf.d/nginx.conf +++ /dev/null @@ -1,52 +0,0 @@ -worker_processes 1; - -events { - worker_connections 1024; -} - -http { - server { - listen *:8081; - - client_max_body_size 0; - - set $allowOriginSite *; - proxy_pass_request_headers on; - proxy_pass_header Set-Cookie; - - proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; - proxy_redirect off; - proxy_buffering off; - proxy_set_header Host $host:$server_port; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass_header Set-Cookie; - - - location / { - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "Upgrade"; - proxy_pass http://forms-flow-web:8080; - } - location ^~ /api/ { - rewrite ^/api/(.*)$ /$1 break; - sub_filter ="/ ="/api/; - sub_filter_once off; - - proxy_pass http://forms-flow-webapi:5001; - proxy_redirect off; - } - location ^~ /forms/ { - rewrite ^/forms/(.*)$ /$1 break; - - proxy_pass http://forms-flow-forms:3001; - proxy_redirect off; - } - location ^~ /camunda/ { - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "Upgrade"; - proxy_set_header Host $host:$server_port; - proxy_pass http://forms-flow-bpm:8080; - } - } -} \ No newline at end of file diff --git a/docker-compose/docker-swarm/configuration/imports/formsflow-ai-realm.json b/docker-compose/docker-swarm/configuration/imports/formsflow-ai-realm.json deleted file mode 100644 index 849a9d0..0000000 --- a/docker-compose/docker-swarm/configuration/imports/formsflow-ai-realm.json +++ /dev/null @@ -1,2561 +0,0 @@ -{ - "id": "forms-flow-ai", - "realm": "forms-flow-ai", - "notBefore": 0, - "revokeRefreshToken": false, - "refreshTokenMaxReuse": 0, - "accessTokenLifespan": 300, - "accessTokenLifespanForImplicitFlow": 900, - "ssoSessionIdleTimeout": 1800, - "ssoSessionMaxLifespan": 36000, - "ssoSessionIdleTimeoutRememberMe": 0, - "ssoSessionMaxLifespanRememberMe": 0, - "offlineSessionIdleTimeout": 2592000, - "offlineSessionMaxLifespanEnabled": false, - "offlineSessionMaxLifespan": 5184000, - "clientSessionIdleTimeout": 0, - "clientSessionMaxLifespan": 0, - "clientOfflineSessionIdleTimeout": 0, - "clientOfflineSessionMaxLifespan": 0, - "accessCodeLifespan": 60, - "accessCodeLifespanUserAction": 300, - "accessCodeLifespanLogin": 1800, - "actionTokenGeneratedByAdminLifespan": 43200, - "actionTokenGeneratedByUserLifespan": 300, - "enabled": true, - "sslRequired": "external", - "registrationAllowed": false, - "registrationEmailAsUsername": false, - "rememberMe": false, - "verifyEmail": false, - "loginWithEmailAllowed": true, - "duplicateEmailsAllowed": false, - "resetPasswordAllowed": false, - "editUsernameAllowed": false, - "bruteForceProtected": false, - "permanentLockout": false, - "maxFailureWaitSeconds": 900, - "minimumQuickLoginWaitSeconds": 60, - "waitIncrementSeconds": 60, - "quickLoginCheckMilliSeconds": 1000, - "maxDeltaTimeSeconds": 43200, - "failureFactor": 30, - "roles": { - "realm": [ - { - "name": "offline_access", - "description": "${role_offline-access}", - "composite": false, - "clientRole": false, - "containerId": "forms-flow-ai", - "attributes": {} - }, - { - "name": "uma_authorization", - "description": "${role_uma_authorization}", - "composite": false, - "clientRole": false, - "containerId": "forms-flow-ai", - "attributes": {} - } - ], - "client": { - "realm-management": [ - { - "name": "query-groups", - "description": "${role_query-groups}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "query-clients", - "description": "${role_query-clients}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-events", - "description": "${role_view-events}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "impersonation", - "description": "${role_impersonation}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-events", - "description": "${role_manage-events}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "query-realms", - "description": "${role_query-realms}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "query-users", - "description": "${role_query-users}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "create-client", - "description": "${role_create-client}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-clients", - "description": "${role_view-clients}", - "composite": true, - "composites": { - "client": { - "realm-management": [ - "query-clients" - ] - } - }, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-authorization", - "description": "${role_manage-authorization}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-identity-providers", - "description": "${role_view-identity-providers}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-users", - "description": "${role_view-users}", - "composite": true, - "composites": { - "client": { - "realm-management": [ - "query-users", - "query-groups" - ] - } - }, - "clientRole": true, - - "attributes": {} - }, - { - "name": "realm-admin", - "description": "${role_realm-admin}", - "composite": true, - "composites": { - "client": { - "realm-management": [ - "query-groups", - "query-clients", - "view-events", - "impersonation", - "manage-events", - "query-realms", - "query-users", - "create-client", - "view-clients", - "manage-authorization", - "view-identity-providers", - "view-users", - "view-realm", - "view-authorization", - "manage-identity-providers", - "manage-users", - "manage-realm", - "manage-clients" - ] - } - }, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-realm", - "description": "${role_view-realm}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-authorization", - "description": "${role_view-authorization}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-identity-providers", - "description": "${role_manage-identity-providers}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-users", - "description": "${role_manage-users}", - "composite": false, - "clientRole": true, - "attributes": {} - }, - { - "name": "manage-realm", - "description": "${role_manage-realm}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-clients", - "description": "${role_manage-clients}", - "composite": false, - "clientRole": true, - - "attributes": {} - } - ], - "forms-flow-web": [ - { - "name": "formsflow-client", - "description": "Provides access to use the formsflow.ai solution. Required to access and submit forms.", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "formsflow-admin", - "description": "Provides admin access to use the formsflow.ai solution. Required to manage users and permissions.", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "formsflow-designer", - "description": "Provides access to use the formsflow.ai solution. Access to wok on form designer studio.", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "formsflow-reviewer", - "description": "Provides access to use the formsflow.ai solution. Identifies the staff to work on applications and forms submissions.", - "composite": false, - "clientRole": true, - - "attributes": {} - } - ], - "security-admin-console": [], - "admin-cli": [], - "forms-flow-bpm": [], - "account-console": [], - "broker": [ - { - "name": "read-token", - "description": "${role_read-token}", - "composite": false, - "clientRole": true, - - "attributes": {} - } - ], - "forms-flow-analytics": [], - "account": [ - { - "name": "view-profile", - "description": "${role_view-profile}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-account", - "description": "${role_manage-account}", - "composite": true, - "composites": { - "client": { - "account": [ - "manage-account-links" - ] - } - }, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-account-links", - "description": "${role_manage-account-links}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-consent", - "description": "${role_view-consent}", - "composite": false, - "clientRole": true, - - "attributes": {} - }, - { - "name": "manage-consent", - "description": "${role_manage-consent}", - "composite": true, - "composites": { - "client": { - "account": [ - "view-consent" - ] - } - }, - "clientRole": true, - - "attributes": {} - }, - { - "name": "view-applications", - "description": "${role_view-applications}", - "composite": false, - "clientRole": true, - - "attributes": {} - } - ] - } - }, - "groups": [ - { - "name": "camunda-admin", - "path": "/camunda-admin", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [] - }, - { - "name": "formsflow", - "path": "/formsflow", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [ - { - "name": "formsflow-client", - "path": "/formsflow/formsflow-client", - "attributes": {}, - "realmRoles": [], - "clientRoles": { - "forms-flow-web": [ - "formsflow-client" - ] - }, - "subGroups": [] - }, - { - "name": "formsflow-admin", - "path": "/formsflow/formsflow-admin", - "attributes": {}, - "realmRoles": [], - "clientRoles": { - "forms-flow-web": [ - "formsflow-admin" - ] - }, - "subGroups": [] - }, - { - "name": "formsflow-designer", - "path": "/formsflow/formsflow-designer", - "attributes": {}, - "realmRoles": [], - "clientRoles": { - "forms-flow-web": [ - "formsflow-designer" - ] - }, - "subGroups": [] - }, - { - "name": "formsflow-reviewer", - "path": "/formsflow/formsflow-reviewer", - "attributes": {}, - "realmRoles": [], - "clientRoles": { - "forms-flow-web": [ - "formsflow-reviewer" - ] - }, - "subGroups": [ - { - "name": "clerk", - "path": "/formsflow/formsflow-reviewer/clerk", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [] - }, - { - "name": "approver", - "path": "/formsflow/formsflow-reviewer/approver", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [] - } - ] - } - ] - }, - { - "name": "formsflow-analytics", - "path": "/formsflow-analytics", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [ - { - "name": "group2", - "path": "/formsflow-analytics/group2", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [] - }, - { - "name": "group1", - "path": "/formsflow-analytics/group1", - "attributes": {}, - "realmRoles": [], - "clientRoles": {}, - "subGroups": [] - } - ] - } - ], - "defaultRoles": [ - "offline_access", - "uma_authorization" - ], - "defaultGroups": [ - "/camunda-admin", - "/formsflow", - "/formsflow-analytics" - ], - "requiredCredentials": [ - "password" - ], - "otpPolicyType": "totp", - "otpPolicyAlgorithm": "HmacSHA1", - "otpPolicyInitialCounter": 0, - "otpPolicyDigits": 6, - "otpPolicyLookAheadWindow": 1, - "otpPolicyPeriod": 30, - "otpSupportedApplications": [ - "FreeOTP", - "Google Authenticator" - ], - "webAuthnPolicyRpEntityName": "keycloak", - "webAuthnPolicySignatureAlgorithms": [ - "ES256" - ], - "webAuthnPolicyRpId": "", - "webAuthnPolicyAttestationConveyancePreference": "not specified", - "webAuthnPolicyAuthenticatorAttachment": "not specified", - "webAuthnPolicyRequireResidentKey": "not specified", - "webAuthnPolicyUserVerificationRequirement": "not specified", - "webAuthnPolicyCreateTimeout": 0, - "webAuthnPolicyAvoidSameAuthenticatorRegister": false, - "webAuthnPolicyAcceptableAaguids": [], - "webAuthnPolicyPasswordlessRpEntityName": "keycloak", - "webAuthnPolicyPasswordlessSignatureAlgorithms": [ - "ES256" - ], - "webAuthnPolicyPasswordlessRpId": "", - "webAuthnPolicyPasswordlessAttestationConveyancePreference": "not specified", - "webAuthnPolicyPasswordlessAuthenticatorAttachment": "not specified", - "webAuthnPolicyPasswordlessRequireResidentKey": "not specified", - "webAuthnPolicyPasswordlessUserVerificationRequirement": "not specified", - "webAuthnPolicyPasswordlessCreateTimeout": 0, - "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false, - "webAuthnPolicyPasswordlessAcceptableAaguids": [], - "users" : [ { - "createdTimestamp" : 1621862607660, - "username" : "formsflow-client", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Client", - "lastName" : "FFA", - "email" : "formsflow-client@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621863987325, - "secretData" : "{\"value\":\"9R9a8Onha7JcZt59SIq8ngfqwDJwPKiKb8mJ2WO6p2eI3S9qhzR1GPDFtKjOWq8qpm8vsGfp/a/DyHWQuIvmlA==\",\"salt\":\"R/OTBeSXHzsKtJOV/bufEA==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-client" ] - }, - { - "createdTimestamp" : 1621862607660, - "username" : "formsflow-admin", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Admin", - "lastName" : "FFA", - "email" : "formsflow-admin@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621863987325, - "secretData" : "{\"value\":\"9R9a8Onha7JcZt59SIq8ngfqwDJwPKiKb8mJ2WO6p2eI3S9qhzR1GPDFtKjOWq8qpm8vsGfp/a/DyHWQuIvmlA==\",\"salt\":\"R/OTBeSXHzsKtJOV/bufEA==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-admin" ] - }, { - "createdTimestamp" : 1621862546931, - "username" : "formsflow-designer", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Designer", - "lastName" : "FFA", - "email" : "formsflow-designer@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621864001408, - "secretData" : "{\"value\":\"XlcFXNSJAfv5YzTh5vd4NtyEjWm4B47CS9MA3aHmEjLNjdRMbnGFVFZwlZx3alXYBCg4Evs3md25DQ6Xvl+nZg==\",\"salt\":\"TefHE1L0xpqlAMg/h6w6BA==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-designer", "/formsflow/formsflow-admin" ] - }, { - "createdTimestamp" : 1625009614956, - "username" : "formsflow-approver", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Approver", - "lastName" : "FFA", - "email" : "formsflow-approver@aot-technologies.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1625009625540, - "secretData" : "{\"value\":\"Ej6BGTe5D+jLChY9zmoty3Jzt8i+KoV+UTPK6+1Vi+GaUpVfdJ0RFJ/7M4+1Y1jNGBcvMgc8knQT2AJDtixxRQ==\",\"salt\":\"MDP6nouKEx0l7hdJA+lIJw==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "notBefore" : 0, - "groups" : [ "/formsflow/formsflow-reviewer/approver", "/camunda-admin", "/formsflow" , "/formsflow-analytics/group1"] - }, { - "createdTimestamp" : 1625009564217, - "username" : "formsflow-clerk", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Clerk", - "lastName" : "FFA", - "email" : "formsflow-clerk@aot-technologies.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1625009575561, - "secretData" : "{\"value\":\"iWFPywh7ck8FesufjXu81lxpJ0XKSvPd9ladBcJrE4TTXLeQOhvqBOC5e+bwVg20Y61EwtkTta0L9MWtGpSraw==\",\"salt\":\"noE1kDJ7Lo20VYuTOHOBTw==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-reviewer/clerk", "/formsflow", "/formsflow-analytics/group2" ] - }, { - "createdTimestamp" : 1621862578318, - "username" : "formsflow-reviewer", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "firstName" : "Reviewer", - "lastName" : "FFA", - "email" : "formsflow-reviewer@example.com", - "credentials" : [ { - "type" : "password", - "createdDate" : 1621864014317, - "secretData" : "{\"value\":\"bXzhJ0BrMJBWMzRRjO2khWgCRgDAA6vfTrE0UNNO1DNRzp1aMrGCz5kF20H76PjyuqNDZaKF1nKApEjccg+KRA==\",\"salt\":\"gmoZwO3i7Y6B+jpgnsnixw==\"}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ "UPDATE_PASSWORD" ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin", "/formsflow/formsflow-reviewer", "/formsflow-analytics/group1" ] - }, { - "createdTimestamp" : 1621585233480, - "username" : "service-account-forms-flow-bpm", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "serviceAccountClientId" : "forms-flow-bpm", - "credentials" : [ ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "uma_authorization", "offline_access" ], - "clientRoles" : { - "realm-management" : [ "manage-users", "query-users", "query-groups", "view-users" , "manage-clients"], - "account" : [ "view-profile", "manage-account" ] - }, - "notBefore" : 0, - "groups" : [ "/camunda-admin" ] - } ], - "scopeMappings" : [ { - "clientScope" : "offline_access", - "roles" : [ "offline_access" ] - } ], - "clientScopeMappings" : { - "account" : [ { - "client" : "account-console", - "roles" : [ "manage-account" ] - } ] - }, - "clients": [ - { - "clientId": "account", - "name": "${client_account}", - "rootUrl": "${authBaseUrl}", - "baseUrl": "/realms/forms-flow-ai/account/", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "defaultRoles": [ - "view-profile", - "manage-account" - ], - "redirectUris": [ - "/realms/forms-flow-ai/account/*" - ], - "webOrigins": [], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": false, - "serviceAccountsEnabled": false, - "publicClient": false, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": {}, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": false, - "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "account-console", - "name": "${client_account-console}", - "rootUrl": "${authBaseUrl}", - "baseUrl": "/realms/forms-flow-ai/account/", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "redirectUris": [ - "/realms/forms-flow-ai/account/*" - ], - "webOrigins": [], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": false, - "serviceAccountsEnabled": false, - "publicClient": true, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": { - "pkce.code.challenge.method": "S256" - }, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": false, - "nodeReRegistrationTimeout": 0, - "protocolMappers": [ - { - "name": "audience resolve", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-resolve-mapper", - "consentRequired": false, - "config": {} - } - ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "roles", - "profile", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "admin-cli", - "name": "${client_admin-cli}", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "redirectUris": [], - "webOrigins": [], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": false, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": true, - "serviceAccountsEnabled": false, - "publicClient": true, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": {}, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": false, - "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "broker", - "name": "${client_broker}", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "redirectUris": [], - "webOrigins": [], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": false, - "serviceAccountsEnabled": false, - "publicClient": false, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": {}, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": false, - "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "forms-flow-analytics", - "description": "Redash-Analytics", - "adminUrl": "http://localhost:7001/saml/callback?org_slug=default", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "redirectUris": [ - "http://localhost:7001/*", - "*" - ], - "webOrigins": [], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": true, - "serviceAccountsEnabled": false, - "publicClient": true, - "frontchannelLogout": false, - "protocol": "saml", - "attributes": { - "saml.assertion.signature": "true", - "saml.force.post.binding": "false", - "saml.multivalued.roles": "false", - "saml.encrypt": "false", - "saml.server.signature": "false", - "saml.server.signature.keyinfo.ext": "false", - "exclude.session.state.from.auth.response": "false", - "saml.signature.algorithm": "RSA_SHA256", - "saml_force_name_id_format": "false", - "saml.client.signature": "false", - "tls.client.certificate.bound.access.tokens": "false", - "saml.authnstatement": "true", - "display.on.consent.screen": "false", - "saml_name_id_format": "email", - "saml.onetimeuse.condition": "false", - "saml_signature_canonicalization_method": "http://www.w3.org/2001/10/xml-exc-c14n#WithComments" - }, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": true, - "nodeReRegistrationTimeout": -1, - "protocolMappers": [ - { - "name": "X500 surname", - "protocol": "saml", - "protocolMapper": "saml-user-property-mapper", - "consentRequired": false, - "config": { - "user.attribute": "lastName", - "friendly.name": "LastName", - "attribute.name": "urn:oid:2.5.4.4" - } - }, - { - "name": "X500 givenName", - "protocol": "saml", - "protocolMapper": "saml-user-property-mapper", - "consentRequired": false, - "config": { - "user.attribute": "firstName", - "friendly.name": "FirstName", - "attribute.name": "urn:oid:2.5.4.42" - } - } - ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "forms-flow-bpm", - "description": "Camunda Process Engine Components", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "e4bdbd25-1467-4f7f-b993-bc4b1944c943", - "redirectUris": [ - "http://localhost:8000/camunda/*", - "*" - ], - "webOrigins": [ - "*" - ], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": true, - "serviceAccountsEnabled": true, - "publicClient": false, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": { - "saml.assertion.signature": "false", - "saml.force.post.binding": "false", - "saml.multivalued.roles": "false", - "saml.encrypt": "false", - "saml.server.signature": "false", - "saml.server.signature.keyinfo.ext": "false", - "exclude.session.state.from.auth.response": "false", - "saml_force_name_id_format": "false", - "saml.client.signature": "false", - "tls.client.certificate.bound.access.tokens": "false", - "saml.authnstatement": "false", - "display.on.consent.screen": "false", - "saml.onetimeuse.condition": "false" - }, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": true, - "nodeReRegistrationTimeout": -1, - "protocolMappers": [ - { - "name": "Client Host", - "protocol": "openid-connect", - "protocolMapper": "oidc-usersessionmodel-note-mapper", - "consentRequired": false, - "config": { - "user.session.note": "clientHost", - "userinfo.token.claim": "true", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "clientHost", - "jsonType.label": "String" - } - }, - { - "name": "formsflow-web-mapper", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", - "consentRequired": false, - "config": { - "included.client.audience": "forms-flow-web", - "id.token.claim": "false", - "access.token.claim": "true", - "userinfo.token.claim": "false" - } - }, - { - "name": "Client IP Address", - "protocol": "openid-connect", - "protocolMapper": "oidc-usersessionmodel-note-mapper", - "consentRequired": false, - "config": { - "user.session.note": "clientAddress", - "userinfo.token.claim": "true", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "clientAddress", - "jsonType.label": "String" - } - }, - { - "name": "camunda-rest-api", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", - "consentRequired": false, - "config": { - "id.token.claim": "false", - "access.token.claim": "true", - "included.custom.audience": "camunda-rest-api" - } - }, - { - "name": "username", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "username", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "preferred_username", - "jsonType.label": "String" - } - }, - { - "name": "Client ID", - "protocol": "openid-connect", - "protocolMapper": "oidc-usersessionmodel-note-mapper", - "consentRequired": false, - "config": { - "user.session.note": "clientId", - "userinfo.token.claim": "true", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "clientId", - "jsonType.label": "String" - } - }, - { - "name": "groups", - "protocol": "openid-connect", - "protocolMapper": "oidc-group-membership-mapper", - "consentRequired": false, - "config": { - "full.path": "true", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "groups", - "userinfo.token.claim": "true" - } - } - ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "camunda-rest-api", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "forms-flow-web", - "description": "React based FormIO web components", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "redirectUris": [ - "http://localhost:3000/*", - "*" - ], - "webOrigins": [ - "*" - ], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": true, - "serviceAccountsEnabled": false, - "publicClient": true, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": { - "saml.assertion.signature": "false", - "saml.force.post.binding": "false", - "saml.multivalued.roles": "false", - "saml.encrypt": "false", - "saml.server.signature": "false", - "saml.server.signature.keyinfo.ext": "false", - "exclude.session.state.from.auth.response": "false", - "saml_force_name_id_format": "false", - "saml.client.signature": "false", - "tls.client.certificate.bound.access.tokens": "false", - "saml.authnstatement": "false", - "display.on.consent.screen": "false", - "saml.onetimeuse.condition": "false" - }, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": true, - "nodeReRegistrationTimeout": -1, - "protocolMappers": [ - { - "name": "formsflow-web-mapper", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", - "consentRequired": false, - "config": { - "included.client.audience": "forms-flow-web", - "id.token.claim": "false", - "access.token.claim": "true", - "userinfo.token.claim": "false" - } - }, - { - "name": "camunda-rest-api", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", - "consentRequired": false, - "config": { - "id.token.claim": "false", - "access.token.claim": "true", - "included.custom.audience": "camunda-rest-api" - } - }, - { - "name": "groups", - "protocol": "openid-connect", - "protocolMapper": "oidc-group-membership-mapper", - "consentRequired": false, - "config": { - "full.path": "true", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "groups", - "userinfo.token.claim": "true" - } - }, - { - "name": "dashboard-mapper", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "aggregate.attrs": "true", - "userinfo.token.claim": "true", - "multivalued": "true", - "user.attribute": "dashboards", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "dashboards" - } - } - ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "camunda-rest-api", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "realm-management", - "name": "${client_realm-management}", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "redirectUris": [], - "webOrigins": [], - "notBefore": 0, - "bearerOnly": true, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": false, - "serviceAccountsEnabled": false, - "publicClient": false, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": {}, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": false, - "nodeReRegistrationTimeout": 0, - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - }, - { - "clientId": "security-admin-console", - "name": "${client_security-admin-console}", - "rootUrl": "${authAdminUrl}", - "baseUrl": "/admin/forms-flow-ai/console/", - "surrogateAuthRequired": false, - "enabled": true, - "alwaysDisplayInConsole": false, - "clientAuthenticatorType": "client-secret", - "secret": "**********", - "redirectUris": [ - "/admin/forms-flow-ai/console/*" - ], - "webOrigins": [ - "+" - ], - "notBefore": 0, - "bearerOnly": false, - "consentRequired": false, - "standardFlowEnabled": true, - "implicitFlowEnabled": false, - "directAccessGrantsEnabled": false, - "serviceAccountsEnabled": false, - "publicClient": true, - "frontchannelLogout": false, - "protocol": "openid-connect", - "attributes": { - "pkce.code.challenge.method": "S256" - }, - "authenticationFlowBindingOverrides": {}, - "fullScopeAllowed": false, - "nodeReRegistrationTimeout": 0, - "protocolMappers": [ - { - "name": "locale", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "locale", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "locale", - "jsonType.label": "String" - } - } - ], - "defaultClientScopes": [ - "web-origins", - "role_list", - "profile", - "roles", - "email" - ], - "optionalClientScopes": [ - "address", - "phone", - "offline_access", - "microprofile-jwt" - ] - } - ], - "clientScopes": [ - { - "name": "role_list", - "description": "SAML role list", - "protocol": "saml", - "attributes": { - "consent.screen.text": "${samlRoleListScopeConsentText}", - "display.on.consent.screen": "true" - }, - "protocolMappers": [ - { - "name": "role list", - "protocol": "saml", - "protocolMapper": "saml-role-list-mapper", - "consentRequired": false, - "config": { - "single": "false", - "attribute.nameformat": "Basic", - "attribute.name": "Role" - } - } - ] - }, - { - "name": "offline_access", - "description": "OpenID Connect built-in scope: offline_access", - "protocol": "openid-connect", - "attributes": { - "consent.screen.text": "${offlineAccessScopeConsentText}", - "display.on.consent.screen": "true" - } - }, - { - "name": "profile", - "description": "OpenID Connect built-in scope: profile", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true", - "consent.screen.text": "${profileScopeConsentText}" - }, - "protocolMappers": [ - { - "name": "full name", - "protocol": "openid-connect", - "protocolMapper": "oidc-full-name-mapper", - "consentRequired": false, - "config": { - "id.token.claim": "true", - "access.token.claim": "true", - "userinfo.token.claim": "true" - } - }, - { - "name": "profile", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "profile", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "profile", - "jsonType.label": "String" - } - }, - { - "name": "gender", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "gender", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "gender", - "jsonType.label": "String" - } - }, - { - "name": "website", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "website", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "website", - "jsonType.label": "String" - } - }, - { - "name": "zoneinfo", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "zoneinfo", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "zoneinfo", - "jsonType.label": "String" - } - }, - { - "name": "given name", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "firstName", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "given_name", - "jsonType.label": "String" - } - }, - { - "name": "nickname", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "nickname", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "nickname", - "jsonType.label": "String" - } - }, - { - "name": "locale", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "locale", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "locale", - "jsonType.label": "String" - } - }, - { - "name": "updated at", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "updatedAt", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "updated_at", - "jsonType.label": "String" - } - }, - { - "name": "birthdate", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "birthdate", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "birthdate", - "jsonType.label": "String" - } - }, - { - "name": "family name", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "lastName", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "family_name", - "jsonType.label": "String" - } - }, - { - "name": "middle name", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "middleName", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "middle_name", - "jsonType.label": "String" - } - }, - { - "name": "username", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "username", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "preferred_username", - "jsonType.label": "String" - } - }, - { - "name": "picture", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "picture", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "picture", - "jsonType.label": "String" - } - } - ] - }, - { - "name": "email", - "description": "OpenID Connect built-in scope: email", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true", - "consent.screen.text": "${emailScopeConsentText}" - }, - "protocolMappers": [ - { - "name": "email verified", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "emailVerified", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "email_verified", - "jsonType.label": "boolean" - } - }, - { - "name": "email", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "email", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "email", - "jsonType.label": "String" - } - } - ] - }, - { - "name": "address", - "description": "OpenID Connect built-in scope: address", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true", - "consent.screen.text": "${addressScopeConsentText}" - }, - "protocolMappers": [ - { - "name": "address", - "protocol": "openid-connect", - "protocolMapper": "oidc-address-mapper", - "consentRequired": false, - "config": { - "user.attribute.formatted": "formatted", - "user.attribute.country": "country", - "user.attribute.postal_code": "postal_code", - "userinfo.token.claim": "true", - "user.attribute.street": "street", - "id.token.claim": "true", - "user.attribute.region": "region", - "access.token.claim": "true", - "user.attribute.locality": "locality" - } - } - ] - }, - { - "name": "phone", - "description": "OpenID Connect built-in scope: phone", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true", - "consent.screen.text": "${phoneScopeConsentText}" - }, - "protocolMappers": [ - { - "name": "phone number verified", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "phoneNumberVerified", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "phone_number_verified", - "jsonType.label": "boolean" - } - }, - { - "name": "phone number", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-attribute-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "phoneNumber", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "phone_number", - "jsonType.label": "String" - } - } - ] - }, - { - "name": "roles", - "description": "OpenID Connect scope for add user roles to the access token", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "false", - "display.on.consent.screen": "true", - "consent.screen.text": "${rolesScopeConsentText}" - }, - "protocolMappers": [ - { - "name": "realm roles", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-realm-role-mapper", - "consentRequired": false, - "config": { - "user.attribute": "foo", - "access.token.claim": "true", - "claim.name": "realm_access.roles", - "jsonType.label": "String", - "multivalued": "true" - } - }, - { - "name": "client roles", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-client-role-mapper", - "consentRequired": false, - "config": { - "user.attribute": "foo", - "access.token.claim": "true", - "claim.name": "resource_access.${client_id}.roles", - "jsonType.label": "String", - "multivalued": "true" - } - }, - { - "name": "Role", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-client-role-mapper", - "consentRequired": false, - "config": { - "multivalued": "true", - "userinfo.token.claim": "true", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "role", - "usermodel.clientRoleMapping.clientId": "forms-flow-web" - } - }, - { - "name": "audience resolve", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-resolve-mapper", - "consentRequired": false, - "config": {} - } - ] - }, - { - "name": "web-origins", - "description": "OpenID Connect scope for add allowed web origins to the access token", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "false", - "display.on.consent.screen": "false", - "consent.screen.text": "" - }, - "protocolMappers": [ - { - "name": "allowed web origins", - "protocol": "openid-connect", - "protocolMapper": "oidc-allowed-origins-mapper", - "consentRequired": false, - "config": {} - } - ] - }, - { - "name": "microprofile-jwt", - "description": "Microprofile - JWT built-in scope", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "false" - }, - "protocolMappers": [ - { - "name": "groups", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-realm-role-mapper", - "consentRequired": false, - "config": { - "multivalued": "true", - "userinfo.token.claim": "true", - "user.attribute": "foo", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "groups", - "jsonType.label": "String" - } - }, - { - "name": "upn", - "protocol": "openid-connect", - "protocolMapper": "oidc-usermodel-property-mapper", - "consentRequired": false, - "config": { - "userinfo.token.claim": "true", - "user.attribute": "username", - "id.token.claim": "true", - "access.token.claim": "true", - "claim.name": "upn", - "jsonType.label": "String" - } - } - ] - }, - { - "name": "camunda-rest-api", - "protocol": "openid-connect", - "attributes": { - "include.in.token.scope": "true", - "display.on.consent.screen": "true" - }, - "protocolMappers": [ - { - "name": "camunda-rest-api", - "protocol": "openid-connect", - "protocolMapper": "oidc-audience-mapper", - "consentRequired": false, - "config": { - "id.token.claim": "false", - "access.token.claim": "true", - "included.custom.audience": "camunda-rest-api", - "userinfo.token.claim": "false" - } - } - ] - } - ], - "defaultDefaultClientScopes": [ - "role_list", - "profile", - "email", - "roles", - "web-origins", - "camunda-rest-api" - ], - "defaultOptionalClientScopes": [ - "offline_access", - "address", - "phone", - "microprofile-jwt" - ], - "browserSecurityHeaders": { - "contentSecurityPolicyReportOnly": "", - "xContentTypeOptions": "nosniff", - "xRobotsTag": "none", - "xFrameOptions": "SAMEORIGIN", - "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';", - "xXSSProtection": "1; mode=block", - "strictTransportSecurity": "max-age=31536000; includeSubDomains" - }, - "smtpServer": {}, - "eventsEnabled": false, - "eventsListeners": [ - "jboss-logging" - ], - "enabledEventTypes": [], - "adminEventsEnabled": false, - "adminEventsDetailsEnabled": false, - "components": { - "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy": [ - { - "name": "Consent Required", - "providerId": "consent-required", - "subType": "anonymous", - "subComponents": {}, - "config": {} - }, - { - "name": "Allowed Client Scopes", - "providerId": "allowed-client-templates", - "subType": "authenticated", - "subComponents": {}, - "config": { - "allow-default-scopes": [ - "true" - ] - } - }, - { - "name": "Allowed Client Scopes", - "providerId": "allowed-client-templates", - "subType": "anonymous", - "subComponents": {}, - "config": { - "allow-default-scopes": [ - "true" - ] - } - }, - { - "name": "Full Scope Disabled", - "providerId": "scope", - "subType": "anonymous", - "subComponents": {}, - "config": {} - }, - { - "name": "Trusted Hosts", - "providerId": "trusted-hosts", - "subType": "anonymous", - "subComponents": {}, - "config": { - "host-sending-registration-request-must-match": [ - "true" - ], - "client-uris-must-match": [ - "true" - ] - } - }, - { - "name": "Allowed Protocol Mapper Types", - "providerId": "allowed-protocol-mappers", - "subType": "authenticated", - "subComponents": {}, - "config": { - "allowed-protocol-mapper-types": [ - "oidc-usermodel-attribute-mapper", - "oidc-full-name-mapper", - "saml-user-attribute-mapper", - "saml-user-property-mapper", - "oidc-address-mapper", - "saml-role-list-mapper", - "oidc-sha256-pairwise-sub-mapper", - "oidc-usermodel-property-mapper" - ] - } - }, - { - "name": "Max Clients Limit", - "providerId": "max-clients", - "subType": "anonymous", - "subComponents": {}, - "config": { - "max-clients": [ - "200" - ] - } - }, - { - "name": "Allowed Protocol Mapper Types", - "providerId": "allowed-protocol-mappers", - "subType": "anonymous", - "subComponents": {}, - "config": { - "allowed-protocol-mapper-types": [ - "saml-role-list-mapper", - "oidc-usermodel-attribute-mapper", - "oidc-address-mapper", - "oidc-sha256-pairwise-sub-mapper", - "oidc-full-name-mapper", - "saml-user-attribute-mapper", - "oidc-usermodel-property-mapper", - "saml-user-property-mapper" - ] - } - } - ], - "org.keycloak.keys.KeyProvider": [ - { - "name": "hmac-generated", - "providerId": "hmac-generated", - "subComponents": {}, - "config": { - "priority": [ - "100" - ], - "algorithm": [ - "HS256" - ] - } - }, - { - "name": "rsa-generated", - "providerId": "rsa-generated", - "subComponents": {}, - "config": { - "priority": [ - "100" - ] - } - }, - { - "name": "aes-generated", - "providerId": "aes-generated", - "subComponents": {}, - "config": { - "priority": [ - "100" - ] - } - } - ] - }, - "internationalizationEnabled": false, - "supportedLocales": [], - "authenticationFlows": [ - { - "alias": "Account verification options", - "description": "Method with which to verity the existing account", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "idp-email-verification", - "requirement": "ALTERNATIVE", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "ALTERNATIVE", - "priority": 20, - "flowAlias": "Verify Existing Account by Re-authentication", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "Authentication Options", - "description": "Authentication options.", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "basic-auth", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "basic-auth-otp", - "requirement": "DISABLED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "auth-spnego", - "requirement": "DISABLED", - "priority": 30, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "Browser - Conditional OTP", - "description": "Flow to determine if the OTP is required for the authentication", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "conditional-user-configured", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "auth-otp-form", - "requirement": "REQUIRED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "Direct Grant - Conditional OTP", - "description": "Flow to determine if the OTP is required for the authentication", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "conditional-user-configured", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "direct-grant-validate-otp", - "requirement": "REQUIRED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "First broker login - Conditional OTP", - "description": "Flow to determine if the OTP is required for the authentication", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "conditional-user-configured", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "auth-otp-form", - "requirement": "REQUIRED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "Handle Existing Account", - "description": "Handle what to do if there is existing account with same email/username like authenticated identity provider", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "idp-confirm-link", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "REQUIRED", - "priority": 20, - "flowAlias": "Account verification options", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "Reset - Conditional OTP", - "description": "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "conditional-user-configured", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "reset-otp", - "requirement": "REQUIRED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "User creation or linking", - "description": "Flow for the existing/non-existing user alternatives", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticatorConfig": "create unique user config", - "authenticator": "idp-create-user-if-unique", - "requirement": "ALTERNATIVE", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "ALTERNATIVE", - "priority": 20, - "flowAlias": "Handle Existing Account", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "Verify Existing Account by Re-authentication", - "description": "Reauthentication of existing account", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "idp-username-password-form", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "CONDITIONAL", - "priority": 20, - "flowAlias": "First broker login - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "browser", - "description": "browser based authentication", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "auth-cookie", - "requirement": "ALTERNATIVE", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "auth-spnego", - "requirement": "DISABLED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "identity-provider-redirector", - "requirement": "ALTERNATIVE", - "priority": 25, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "ALTERNATIVE", - "priority": 30, - "flowAlias": "forms", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "clients", - "description": "Base authentication for clients", - "providerId": "client-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "client-secret", - "requirement": "ALTERNATIVE", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "client-jwt", - "requirement": "ALTERNATIVE", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "client-secret-jwt", - "requirement": "ALTERNATIVE", - "priority": 30, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "client-x509", - "requirement": "ALTERNATIVE", - "priority": 40, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "direct grant", - "description": "OpenID Connect Resource Owner Grant", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "direct-grant-validate-username", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "direct-grant-validate-password", - "requirement": "REQUIRED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "CONDITIONAL", - "priority": 30, - "flowAlias": "Direct Grant - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "docker auth", - "description": "Used by Docker clients to authenticate against the IDP", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "docker-http-basic-authenticator", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "first broker login", - "description": "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticatorConfig": "review profile config", - "authenticator": "idp-review-profile", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "REQUIRED", - "priority": 20, - "flowAlias": "User creation or linking", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "forms", - "description": "Username, password, otp and other auth forms.", - "providerId": "basic-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "auth-username-password-form", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "CONDITIONAL", - "priority": 20, - "flowAlias": "Browser - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "http challenge", - "description": "An authentication flow based on challenge-response HTTP Authentication Schemes", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "no-cookie-redirect", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "REQUIRED", - "priority": 20, - "flowAlias": "Authentication Options", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "registration", - "description": "registration flow", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "registration-page-form", - "requirement": "REQUIRED", - "priority": 10, - "flowAlias": "registration form", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "registration form", - "description": "registration form", - "providerId": "form-flow", - "topLevel": false, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "registration-user-creation", - "requirement": "REQUIRED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "registration-profile-action", - "requirement": "REQUIRED", - "priority": 40, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "registration-password-action", - "requirement": "REQUIRED", - "priority": 50, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "registration-recaptcha-action", - "requirement": "DISABLED", - "priority": 60, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - }, - { - "alias": "reset credentials", - "description": "Reset credentials for a user if they forgot their password or something", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "reset-credentials-choose-user", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "reset-credential-email", - "requirement": "REQUIRED", - "priority": 20, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "authenticator": "reset-password", - "requirement": "REQUIRED", - "priority": 30, - "userSetupAllowed": false, - "autheticatorFlow": false - }, - { - "requirement": "CONDITIONAL", - "priority": 40, - "flowAlias": "Reset - Conditional OTP", - "userSetupAllowed": false, - "autheticatorFlow": true - } - ] - }, - { - "alias": "saml ecp", - "description": "SAML ECP Profile Authentication Flow", - "providerId": "basic-flow", - "topLevel": true, - "builtIn": true, - "authenticationExecutions": [ - { - "authenticator": "http-basic-authenticator", - "requirement": "REQUIRED", - "priority": 10, - "userSetupAllowed": false, - "autheticatorFlow": false - } - ] - } - ], - "authenticatorConfig": [ - { - "alias": "create unique user config", - "config": { - "require.password.update.after.registration": "false" - } - }, - { - "alias": "review profile config", - "config": { - "update.profile.on.first.login": "missing" - } - } - ], - "requiredActions": [ - { - "alias": "CONFIGURE_TOTP", - "name": "Configure OTP", - "providerId": "CONFIGURE_TOTP", - "enabled": true, - "defaultAction": false, - "priority": 10, - "config": {} - }, - { - "alias": "terms_and_conditions", - "name": "Terms and Conditions", - "providerId": "terms_and_conditions", - "enabled": false, - "defaultAction": false, - "priority": 20, - "config": {} - }, - { - "alias": "UPDATE_PASSWORD", - "name": "Update Password", - "providerId": "UPDATE_PASSWORD", - "enabled": true, - "defaultAction": false, - "priority": 30, - "config": {} - }, - { - "alias": "UPDATE_PROFILE", - "name": "Update Profile", - "providerId": "UPDATE_PROFILE", - "enabled": true, - "defaultAction": false, - "priority": 40, - "config": {} - }, - { - "alias": "VERIFY_EMAIL", - "name": "Verify Email", - "providerId": "VERIFY_EMAIL", - "enabled": true, - "defaultAction": false, - "priority": 50, - "config": {} - }, - { - "alias": "update_user_locale", - "name": "Update User Locale", - "providerId": "update_user_locale", - "enabled": true, - "defaultAction": false, - "priority": 1000, - "config": {} - } - ], - "browserFlow": "browser", - "registrationFlow": "registration", - "directGrantFlow": "direct grant", - "resetCredentialsFlow": "reset credentials", - "clientAuthenticationFlow": "clients", - "dockerAuthenticationFlow": "docker auth", - "attributes": { - "clientOfflineSessionMaxLifespan": "0", - "clientSessionIdleTimeout": "0", - "clientSessionMaxLifespan": "0", - "clientOfflineSessionIdleTimeout": "0" - }, - "keycloakVersion": "11.0.0", - "userManagedAccessAllowed": false -} diff --git a/docker-compose/docker-swarm/docker-compose.yml b/docker-compose/docker-swarm/docker-compose.yml deleted file mode 100644 index b3966b7..0000000 --- a/docker-compose/docker-swarm/docker-compose.yml +++ /dev/null @@ -1,240 +0,0 @@ -version: '3.7' - -services: - forms-flow-forms-db: - restart: always - image: mongo:4.2 - environment: - MONGO_INITDB_ROOT_USERNAME: ${FORMIO_DB_USERNAME:-admin} - MONGO_INITDB_ROOT_PASSWORD: ${FORMIO_DB_PASSWORD:-changeme} - MONGO_INITDB_DATABASE: ${FORMIO_DB_NAME:-formio} - volumes: - - forms-flow-forms-db-data:/docker-entrypoint-initdb.d/001_user.js:ro - - forms-flow-forms-db-data:/data/db - - forms-flow-forms-db-log:/var/log/mongodb - - forms-flow-forms-db-conf:/etc/mongod.conf - ports: - - "27018:27017" - networks: - - formsflow - - forms-flow-web: - image: formsflow/forms-flow-web:v5.3.0 - entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" - environment: - - NODE_ENV=${NODE_ENV:-production} - - REACT_APP_API_SERVER_URL=${FORMIO_DEFAULT_PROJECT_URL:-http://{your-ip-address}:3001} - - REACT_APP_API_PROJECT_URL=${FORMIO_DEFAULT_PROJECT_URL:-http://{your-ip-address}:3001} - - REACT_APP_KEYCLOAK_CLIENT=${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} - - REACT_APP_WEB_BASE_URL=${FORMSFLOW_API_URL:-http://{your-ip-address}:5001} - - REACT_APP_BPM_URL=${BPM_API_URL:-http://{your-ip-address}:8000/camunda} - - REACT_APP_WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-giert989jkwrgb@DR55} - - REACT_APP_KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} - - REACT_APP_KEYCLOAK_URL=${KEYCLOAK_URL:-http://{your-ip-address}:8080} - - REACT_APP_APPLICATION_NAME=${APPLICATION_NAME:-formsflow.ai} - - REACT_APP_ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK=${ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK:-false} - - REACT_APP_WEB_BASE_CUSTOM_URL=${WEB_BASE_CUSTOM_URL} - - REACT_APP_MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} - - REACT_APP_MT_ADMIN_BASE_URL=${MT_ADMIN_BASE_URL} - - REACT_APP_MT_ADMIN_BASE_URL_VERSION=${MT_ADMIN_BASE_URL_VERSION} - - REACT_APP_CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} - - REACT_APP_CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} - - REACT_APP_DRAFT_ENABLED=${DRAFT_ENABLED:-false} - - REACT_APP_DRAFT_POLLING_RATE=${DRAFT_POLLING_RATE:-15000} - - REACT_APP_EXPORT_PDF_ENABLED=${EXPORT_PDF_ENABLED:-false} - - REACT_APP_PUBLIC_WORKFLOW_ENABLED=${PUBLIC_WORKFLOW_ENABLED:-false} - - REACT_APP_DOCUMENT_SERVICE_URL=${DOCUMENT_SERVICE_URL} - - REACT_APP_CUSTOM_THEME_URL=${CUSTOM_THEME_URL} - - REACT_APP_KEYCLOAK_ENABLE_CLIENT_AUTH=${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} - - REACT_APP_ENABLE_FORMS_MODULE=${ENABLE_FORMS_MODULE:-true} - - REACT_APP_ENABLE_TASKS_MODULE=${ENABLE_TASKS_MODULE:-true} - - REACT_APP_ENABLE_DASHBOARDS_MODULE=${ENABLE_DASHBOARDS_MODULE:-true} - - REACT_APP_ENABLE_PROCESSES_MODULE=${ENABLE_PROCESSES_MODULE:-true} - - REACT_APP_ENABLE_APPLICATIONS_MODULE=${ENABLE_APPLICATIONS_MODULE:-true} - - ports: - - "3000:8080" - networks: - - formsflow - - forms-flow-forms: - restart: always - image: formsflow/forms-flow-forms:v5.3.0 - environment: - DEBUG: formio:* - NODE_CONFIG: "{\"mongo\":\"mongodb://${FORMIO_DB_USERNAME:-admin}:${FORMIO_DB_PASSWORD:-changeme}@forms-flow-forms-db:27017/${FORMIO_DB_NAME:-formio}?authMechanism=SCRAM-SHA-1&authSource=admin\"}" - ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} - ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} - FORMIO_DOMAIN: ${FORMIO_DEFAULT_PROJECT_URL:-http://{your-ip-address}:3001} - FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET} - NO_INSTALL: ${NO_INSTALL:-1} - ports: - - "3001:3001" - networks: - - formsflow - - forms-flow-bpm-db: - image: postgres:14 - environment: - POSTGRES_USER: ${CAMUNDA_JDBC_USER:-admin} - POSTGRES_PASSWORD: ${CAMUNDA_JDBC_PASSWORD:-changeme} - POSTGRES_DB: ${CAMUNDA_JDBC_DB_NAME:-formsflow-bpm} - volumes: - - forms-flow-bpm-db-data:/var/lib/postgresql/data - ports: - - "5432:5432" - networks: - - formsflow - - forms-flow-bpm: - image: formsflow/forms-flow-bpm:v5.3.0 - restart: always - environment: - - KEYCLOAK_URL=${KEYCLOAK_URL:-http://{your-ip-address}:8080} - - KEYCLOAK_URL_REALM=${KEYCLOAK_URL_REALM:-forms-flow-ai} - - KEYCLOAK_CLIENTID=${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} - - KEYCLOAK_CLIENTSECRET=${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} - - CAMUNDA_JDBC_URL=${CAMUNDA_JDBC_URL:-jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm} - - CAMUNDA_JDBC_USER=${CAMUNDA_JDBC_USER:-admin} - - CAMUNDA_JDBC_PASSWORD=${CAMUNDA_JDBC_PASSWORD:-changeme} - - CAMUNDA_JDBC_DRIVER=${CAMUNDA_JDBC_DRIVER:-org.postgresql.Driver} - - CAMUNDA_APP_ROOT_LOG_FLAG=${CAMUNDA_APP_ROOT_LOG_FLAG:-error} - - FORMSFLOW_API_URL=${FORMSFLOW_API_URL:-http://{your-ip-address}:5001} - - FORMIO_URL=${FORMIO_DEFAULT_PROJECT_URL:-http://{your-ip-address}:3001} - - FORMIO_ROOT_EMAIL=${FORMIO_ROOT_EMAIL:-admin@example.com} - - FORMIO_ROOT_PASSWORD=${FORMIO_ROOT_PASSWORD:-changeme} - - APP_SECURITY_ORIGIN=${APP_SECURITY_ORIGIN:-*} - - WEBSOCKET_SECURITY_ORIGIN=${WEBSOCKET_SECURITY_ORIGIN:-http://{your-ip-address}:3000} - - WEBSOCKET_MESSAGE_TYPE=${WEBSOCKET_MESSAGE_TYPE:-TASK_EVENT} - - WEBSOCKET_ENCRYPT_KEY=${WEBSOCKET_ENCRYPT_KEY:-giert989jkwrgb@DR55} - - DATA_BUFFER_SIZE=${DATA_BUFFER_SIZE:-2} - - IDENTITY_PROVIDER_MAX_RESULT_SIZE=${IDENTITY_PROVIDER_MAX_RESULT_SIZE:-250} - - DATA_ANALYSIS_URL=${DATA_ANALYSIS_URL} - - CUSTOM_SUBMISSION_URL=${CUSTOM_SUBMISSION_URL} - - CUSTOM_SUBMISSION_ENABLED=${CUSTOM_SUBMISSION_ENABLED:-false} - - MULTI_TENANCY_ENABLED=${MULTI_TENANCY_ENABLED:-false} - - FORMSFLOW_ADMIN_URL=${FORMSFLOW_ADMIN_URL:-} - - REDIS_ENABLED=${REDIS_ENABLED:-false} - - REDIS_HOST=${REDIS_HOST} - - REDIS_PORT=${REDIS_PORT:-6379} - - REDIS_PASSCODE=${REDIS_PASSCODE:-changeme} - - SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-true} - - ports: - - "8000:8080" - networks: - - formsflow - - forms-flow-webapi-db: - image: postgres:14 - restart: always - environment: - POSTGRES_USER: ${FORMSFLOW_API_DB_USER:-postgres} - POSTGRES_PASSWORD: ${FORMSFLOW_API_DB_PASSWORD:-changeme} - POSTGRES_DB: ${FORMSFLOW_API_DB_NAME:-webapi} - volumes: - - forms-flow-webapi-db-data:/var/lib/postgresql/data - ports: - - "6432:5432" - networks: - - formsflow - - forms-flow-webapi: - image: formsflow/forms-flow-webapi:v5.3.0 - restart: always - entrypoint: "/wait-for-service.sh forms-flow-webapi-db:5432 -s -- /wait-for-service.sh keycloak:8080 -s -- /wait-for-service.sh forms-flow-forms:3001 -s -- ./entrypoint.sh " - volumes: - - forms-flow-webapi-data:/app:rw - environment: - INSIGHT_API_KEY: ${INSIGHT_API_KEY} - INSIGHT_API_URL: ${INSIGHT_API_URL:-http://{your-ip-address}:7001} - DATABASE_URL: ${FORMSFLOW_API_DB_URL:-postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi} - BPM_TOKEN_API: ${KEYCLOAK_URL:-http://{your-ip-address}:8080}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/token - BPM_CLIENT_ID: ${KEYCLOAK_BPM_CLIENT_ID:-forms-flow-bpm} - BPM_CLIENT_SECRET: ${KEYCLOAK_BPM_CLIENT_SECRET:-e4bdbd25-1467-4f7f-b993-bc4b1944c943} - BPM_API_URL: ${BPM_API_URL:-http://{your-ip-address}:8000/camunda} - FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} - JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL:-http://{your-ip-address}:8080}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration - JWT_OIDC_ALGORITHMS: 'RS256' - JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL:-http://{your-ip-address}:8080}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs - JWT_OIDC_ISSUER: ${KEYCLOAK_URL:-http://{your-ip-address}:8080}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} - JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} - JWT_OIDC_CACHING_ENABLED: 'True' - JWT_OIDC_JWKS_CACHE_TIMEOUT: 300 - KEYCLOAK_URL: ${KEYCLOAK_URL:-http://{your-ip-address}:8080} - KEYCLOAK_URL_REALM: ${KEYCLOAK_URL_REALM:-forms-flow-ai} - WEB_API_BASE_URL: ${FORMSFLOW_API_URL:-http://{your-ip-address}:5001} - FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL:-http://{your-ip-address}:3001} - FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} - FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} - CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH} - CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} - CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} - FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} - - ports: - - "5001:5000" - networks: - - formsflow - - forms-flow-documents-api: - image: formsflow/forms-flow-documents-api:v5.3.0 - restart: always - environment: - FORMSFLOW_API_CORS_ORIGINS: ${FORMSFLOW_API_CORS_ORIGINS:-*} - JWT_OIDC_WELL_KNOWN_CONFIG: ${KEYCLOAK_URL:-http://{your-ip-address}:8080}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/.well-known/openid-configuration - JWT_OIDC_JWKS_URI: ${KEYCLOAK_URL:-http://{your-ip-address}:8080}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai}/protocol/openid-connect/certs - JWT_OIDC_ISSUER: ${KEYCLOAK_URL:-http://{your-ip-address}:8080}/auth/realms/${KEYCLOAK_URL_REALM:-forms-flow-ai} - JWT_OIDC_AUDIENCE: ${KEYCLOAK_WEB_CLIENT_ID:-forms-flow-web} - JWT_OIDC_CACHING_ENABLED: 'True' - KEYCLOAK_URL: ${KEYCLOAK_URL:-http://{your-ip-address}:8080} - KEYCLOAK_URL_REALM: ${KEYCLOAK_URL_REALM:-forms-flow-ai} - FORMSFLOW_API_URL: ${FORMSFLOW_API_URL:-http://{your-ip-address}:5001} - FORMSFLOW_DOC_API_URL: ${DOCUMENT_SERVICE_URL} - FORMIO_URL: ${FORMIO_DEFAULT_PROJECT_URL:-http://{your-ip-address}:3001} - FORMIO_ROOT_EMAIL: ${FORMIO_ROOT_EMAIL:-admin@example.com} - FORMIO_ROOT_PASSWORD: ${FORMIO_ROOT_PASSWORD:-changeme} - CHROME_DRIVER_PATH: ${CHROME_DRIVER_PATH} - CUSTOM_SUBMISSION_URL: ${CUSTOM_SUBMISSION_URL} - CUSTOM_SUBMISSION_ENABLED: ${CUSTOM_SUBMISSION_ENABLED} - FORMIO_JWT_SECRET: ${FORMIO_JWT_SECRET:---- change me now ---} - MULTI_TENANCY_ENABLED: ${MULTI_TENANCY_ENABLED:-false} - KEYCLOAK_ENABLE_CLIENT_AUTH: ${KEYCLOAK_ENABLE_CLIENT_AUTH:-false} - ports: - - '5006:5006' - networks: - - formsflow - - proxy: - image: nginx:stable-alpine - volumes: - - nginx-config:/etc/nginx/conf.d - restart: unless-stopped - deploy: - placement: - constraints: - - node.role == manager - ports: - - "8081:8081" - networks: - - formsflow - -networks: - formsflow: - driver: overlay - -volumes: - forms-flow-forms-db-data: - driver: local - forms-flow-forms-db-log: - driver: local - forms-flow-forms-db-conf: - driver: local - forms-flow-bpm-db-data: - driver: local - forms-flow-webapi-db-data: - driver: local - forms-flow-webapi-data: - driver: local - nginx-config: - driver: local \ No newline at end of file diff --git a/docker-compose/docker-swarm/keycloak-docker-compose.yml b/docker-compose/docker-swarm/keycloak-docker-compose.yml deleted file mode 100644 index 2ddbb5f..0000000 --- a/docker-compose/docker-swarm/keycloak-docker-compose.yml +++ /dev/null @@ -1,46 +0,0 @@ -version: '3.7' - -services: - keycloak-db: - image: postgres:14 - volumes: - - keycloak-data:/var/lib/postgresql/data - environment: - POSTGRES_DB: ${KEYCLOAK_JDBC_DB:-keycloak} - POSTGRES_USER: ${KEYCLOAK_JDBC_USER:-admin} - POSTGRES_PASSWORD: ${KEYCLOAK_JDBC_PASSWORD:-changeme} - networks: - - formsflow - - keycloak: - image: quay.io/keycloak/keycloak:14.0.0 - volumes: - - ./configuration/imports:/opt/jboss/keycloak/imports - command: - - "-b" - - "0.0.0.0" - - "-Djboss.http.port=8080" - - "-Dkeycloak.import=/opt/jboss/keycloak/imports/formsflow-ai-realm.json" - - "-Dkeycloak.migration.strategy=OVERWRITE_EXISTING" - environment: - - JBOSS_HOME=/opt/jboss/keycloak - - DB_VENDOR=POSTGRES - - DB_ADDR=keycloak-db - - DB_PORT=5432 - - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} - - DB_USER=${KEYCLOAK_JDBC_USER:-admin} - - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} - - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USER:-admin} - - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme} - ports: - - "8080:8080" - networks: - - formsflow - -networks: - formsflow: - driver: overlay - -volumes: - keycloak-data: - driver: local diff --git a/docker-compose/docker-swarm/sample.env b/docker-compose/docker-swarm/sample.env deleted file mode 100644 index 0ce3d67..0000000 --- a/docker-compose/docker-swarm/sample.env +++ /dev/null @@ -1,232 +0,0 @@ -############################################################################### -# This file is a sample file, for Docker compose to work with the settings # -# rename this file to .env # -# Uncomment the variables if any changes from the default values # -############################################################################### - -#++++++++++++++++--- FORM.IO Variables - keycloak ---+++++++++++++++++++++++++# - -#Keycloak Datasource connection and settings - -#KEYCLOAK_JDBC_DB=keycloak -#KEYCLOAK_JDBC_USER=admin -#KEYCLOAK_JDBC_PASSWORD=changeme - -#Keycloak admin credentials - -#KEYCLOAK_ADMIN_USER=admin -#KEYCLOAK_ADMIN_PASSWORD=changeme - - -#++++++++++++++++--- FORM.IO ENV Variables - START ---+++++++++++++++++++++++++# - -##URL of forms-flow-forms -FORMIO_DEFAULT_PROJECT_URL=http://{your-ip-address}:3001 -#FORMIO_JWT_SECRET=--- change me now --- -#NO_INSTALL=1 - - - #-----Environment Variables for FormIO Datastore-----# - -##Mongo Root Username. Used on installation to create the database.Choose your own -#FORMIO_DB_USERNAME=admin -##Mongo Root Password. Used on installation to create the database.Choose your own -#FORMIO_DB_PASSWORD=changeme -##Mongo Database Name. Used on installation to create the database.Choose your own -#FORMIO_DB_NAME=formio - - #---Environment Variables for FormIO Server root-admin credential--# - -##form.io admin login -#FORMIO_ROOT_EMAIL=admin@example.com -##form.io admin password -#FORMIO_ROOT_PASSWORD=changeme - -#++++++++++++++++--- FORM.IO ENV Variables - END ---+++++++++++++++++++++++++# - - - - -#++++++++++++++++--- Keycloak ENV Variables - START ---+++++++++++++++++++++++++# - - #----Environment Variables for Keycloak--------# - -##The Keycloak realm to use -#KEYCLOAK_URL_REALM=forms-flow-ai -##Client Secret of Camunda client in realm -#KEYCLOAK_BPM_CLIENT_ID=forms-flow-bpm -##Client ID for formsflow.ai to register with Keycloak -#KEYCLOAK_WEB_CLIENT_ID=forms-flow-web -##URL to your Keycloak server -KEYCLOAK_URL=http://{your-ip-address}:8080 -##Client Secret of Camunda client in realm -#KEYCLOAK_BPM_CLIENT_SECRET=e4bdbd25-1467-4f7f-b993-bc4b1944c943 - -#++++++++++++++++--- Keycloak ENV Variables - END ---+++++++++++++++++++++++++# - - -#++++++++++++++++--- formsflow.ai analytics ENV Variables - START ---+++++++++++++++++++++++++# - - #----Insight Api Variables--------# -##Insight Api base end-point -INSIGHT_API_URL=http://{your-ip-address}:7001 -##API_KEY from REDASH -INSIGHT_API_KEY={API Key from Redash} - -#++++++++++++++++--- formsflow.ai analytics ENV Variables - END ---+++++++++++++++++++++++++# - -#++++++++++++++++--- formsflow.ai analytics - START ---+++++++++++++++++++++++++# - -REDASH_HOST=http://{your-ip-address}:7001 -PYTHONUNBUFFERED=0 -REDASH_LOG_LEVEL=INFO -REDASH_REDIS_URL=redis://redis:6379/0 -POSTGRES_USER=postgres -POSTGRES_PASSWORD=changeme -POSTGRES_DB=postgres -REDASH_COOKIE_SECRET=redash-selfhosted -REDASH_SECRET_KEY=redash-selfhosted -REDASH_DATABASE_URL=postgresql://postgres:changeme@postgres/postgres -REDASH_CORS_ACCESS_CONTROL_ALLOW_ORIGIN=* -REDASH_REFERRER_POLICY=no-referrer-when-downgrade -REDASH_CORS_ACCESS_CONTROL_ALLOW_HEADERS=Content-Type, Authorization - -#++++++++++++++++--- formsflow.ai analytics - END ---+++++++++++++++++++++++++# - - -#++++++++++++++++--- formsflow.ai Python Webapi ENV Variables - START ---+++++++++++++++++++++++++# - - #----Environment variables for adaptive tier (Python Webapi) Datastore----# -##JDBC DB Connection URL for formsflow.ai -#FORMSFLOW_API_DB_URL=postgresql://postgres:changeme@forms-flow-webapi-db:5432/webapi -##formsflow.ai database postgres user -#FORMSFLOW_API_DB_USER=postgres -##formsflow.ai database postgres password -#FORMSFLOW_API_DB_PASSWORD=changeme -##formsflow.ai database name -#FORMSFLOW_API_DB_NAME=webapi -CHROME_DRIVER_PATH=/usr/local/bin/chromedriver - - #----Integration variable settings----# -##Define project level configuration, possible values development,test,production -#NODE_ENV=development -#Application_Name -APPLICATION_NAME=formsflow.ai -#Custome_URL -#WEB_BASE_CUSTOM_URL= -#Role level permission defining -USER_ACCESS_PERMISSIONS={"accessAllowApplications":false,"accessAllowSubmissions":false} -##Camunda Rest API URI -BPM_API_URL=http://{your-ip-address}:8000/camunda -##web Api End point -FORMSFLOW_API_URL=http://{your-ip-address}:5001 -##web API CORS origins -#FORMSFLOW_API_CORS_ORIGINS=* -#Sentiment analysis url -DATA_ANALYSIS_URL=http://{your-ip-address}:6000/analysis - -#++++++++++++++++--- formsflow.ai Python Webapi ENV Variables - END ---+++++++++++++++++++++++++# - - - -#++++++++++++++++--- BPM (Camunda) ENV variable settings - START ---+++++++++++++++++++++++++# - - #---Camunda Primary Datasource connection and settings----# -#Variable CAMUNDA_JDBC_DB_NAME is not required for managed postgres instance -#CAMUNDA_JDBC_DB_NAME=formsflow-bpm -#CAMUNDA_JDBC_URL=jdbc:postgresql://forms-flow-bpm-db:5432/formsflow-bpm -#CAMUNDA_JDBC_USER=admin -#CAMUNDA_JDBC_PASSWORD=changeme -#CAMUNDA_JDBC_DRIVER=org.postgresql.Driver -#CAMUNDA_HIKARI_CONN_TIMEOUT=30000 -#CAMUNDA_HIKARI_IDLE_TIMEOUT=600000 -#CAMUNDA_HIKARI_MAX_POOLSIZE=10 -#CAMUNDA_HIKARI_VALID_TIMEOUT=5000 - - #----Camunda System Tuning----# -#Job pool settings -#CAMUNDA_JOB_CORE_POOL_SIZE=10 -#CAMUNDA_JOB_MAX_POOL_SIZE=20 -#CAMUNDA_JOB_QUEUE_SIZE=10 -#CAMUNDA_JOB_LOCK_TIME_MILLIS=300000 -#CAMUNDA_JOB_MAXJOBS_PER_ACQUISITION=10 -#CAMUNDA_JOB_WAIT_TIME_MILLIS=5000 -#CAMUNDA_JOB_MAX_WAIT=60000 -#CAMUNDA_METRICS_FLAG=false - - #----Camunda formsflow.ai Integration variable settings----# -#Websocket Settings for task events -WEBSOCKET_SECURITY_ORIGIN=http://{your-ip-address}:3000 -##Allowed Options: TASK_EVENT, TASK_EVENT_DETAILS. To send multiple seperate by comma. -#WEBSOCKET_MESSAGE_TYPE=TASK_EVENT -##Camunda task event streaming. AES encryption of token -#WEBSOCKET_ENCRYPT_KEY=giert989jkwrgb@DR55 - - #----Camunda - General variable settings----# -##Set CORS Origin -#APP_SECURITY_ORIGIN=* -#Log Settings -#CAMUNDA_APP_ROOT_LOG_FLAG=error -#DATA_BUFFER_SIZE=2 -#IDENTITY_PROVIDER_MAX_RESULT_SIZE=250 -#BPM_CLIENT_CONN_TIMEOUT=5000 - - -#custom submission -CUSTOM_SUBMISSION_ENABLED=false -CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} - -#++++++++++++++++--- BPM (Camunda) ENV variable settings - END ---+++++++++++++++++++++++++# - -#++++++++++++++++--- formsflow.ai Multitenancy ENV Variables - START ---+++++++++++++++++++++++++# - -#MULTI_TENANCY_ENABLED=false - -#++++++++++++++++--- formsflow.ai Multitenancy ENV Variables - END ---+++++++++++++++++++++++++# - -#++++++++++++++++--- formsflow.ai Web Export PDF ENV Variables - START ---+++++++++++++++++++++++++# - -#EXPORT_PDF_ENABLED=false - -#++++++++++++++++--- formsflow.ai Web Export PDF ENV Variables - END ---+++++++++++++++++++++++++# - - -#SESSION_COOKIE_SECURE=true - -#++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - START ---+++++++++++++++++++++++++# - - -#The MF Variables below are used to get MicroFrontend Components Created - -##For running locally or if have custom changes then change the url to the one forms-flow-web folder content is running -#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v5.3.0/single-spa-build.gz.js - -## Refer Github Repo https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends and update to your own custom implementation for the Components here -#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js -#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v5.3.0/forms-flow-service.gz.js -#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v5.3.0/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v5.3.0/forms-flow-theme.gz.js -#++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# - - -#++++++++++++++++--- formsflow.ai Web Modules and themeing ENV Variables - START ---+++++++++++++++++++++++++# - -# Only use if need to disable a particular module in forms-flow-web, default is true for all. -#ENABLE_FORMS_MODULE=true -#ENABLE_TASKS_MODULE=true -#ENABLE_DASHBOARDS_MODULE=true -#ENABLE_PROCESSES_MODULE=true -#ENABLE_APPLICATIONS_MODULE=true - -#Custom theme URL -#Used for providing theming configuration in a url that returns json format -# Example to change the theme a theme.json can be given with content: -# `{ -# "--navbar-background": "blue", -# "--navbar-items": "grey", -# "--navbar-active": "white" -# }` - -#CUSTOM_THEME_URL= - -#++++++++++++++++--- formsflow.ai Modules and themeing ENV Variables - STOP ---+++++++++++++++++++++++++# \ No newline at end of file diff --git a/docker-compose/sample.env b/docker-compose/sample.env index fc0d66b..697246c 100644 --- a/docker-compose/sample.env +++ b/docker-compose/sample.env @@ -64,6 +64,8 @@ FORMIO_DEFAULT_PROJECT_URL=http://{your-ip-address}:3001 KEYCLOAK_URL=http://{your-ip-address}:8080 ##Client Secret of Camunda client in realm #KEYCLOAK_BPM_CLIENT_SECRET=e4bdbd25-1467-4f7f-b993-bc4b1944c943 +##Keycloak relative path +#KEYCLOAK_URL_HTTP_RELATIVE_PATH=/auth #++++++++++++++++--- Keycloak ENV Variables - END ---+++++++++++++++++++++++++# @@ -117,8 +119,8 @@ CHROME_DRIVER_PATH=/usr/local/bin/chromedriver APPLICATION_NAME=formsflow.ai #Custome_URL #WEB_BASE_CUSTOM_URL= -#Role level permission defining -USER_ACCESS_PERMISSIONS={"accessAllowApplications":false,"accessAllowSubmissions":false} +#To Enable Role level permission check for enabling Application +ENABLE_APPLICATION_ACCESS_PERMISSION_CHECK=false ##Camunda Rest API URI BPM_API_URL=http://{your-ip-address}:8000/camunda ##web Api End point @@ -128,6 +130,9 @@ FORMSFLOW_API_URL=http://{your-ip-address}:5001 #Sentiment analysis url DATA_ANALYSIS_URL=http://{your-ip-address}:6001 +## Form embedding +#FORM_EMBED_JWT_SECRET=f6a69a42-7f8a-11ed-a1eb-0242ac120002 + #Redis configuration REDIS_URL=redis://{your-ip-address}:6379/0 @@ -175,6 +180,9 @@ REDIS_ENABLED=false #REDIS_PORT=6379 #REDIS_PASSCODE=changeme +# Cookie secure flag. +# SESSION_COOKIE_SECURE=false + #----Camunda - General variable settings----# ##Set CORS Origin #APP_SECURITY_ORIGIN=* @@ -193,6 +201,8 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #++++++++++++++++--- formsflow.ai Multitenancy ENV Variables - START ---+++++++++++++++++++++++++# +#FORMSFLOW_ADMIN_URL=http://{your-ip-address}:{port} +#KEYCLOAK_ENABLE_CLIENT_AUTH=true #MULTI_TENANCY_ENABLED=false #++++++++++++++++--- formsflow.ai Multitenancy ENV Variables - END ---+++++++++++++++++++++++++# @@ -203,6 +213,13 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #++++++++++++++++--- formsflow.ai Web Export PDF ENV Variables - END ---+++++++++++++++++++++++++# +#++++++++++++++++--- formsflow.ai Draft ENV Variables - START ---++++++++++++++#+++++++++++# + + #DRAFT_ENABLED=false + #DRAFT_POLLING_RATE=15000 + +#++++++++++++++++--- formsflow.ai Draft ENV Variables - STOP ---+++++++++++++++++++++++++# + #SESSION_COOKIE_SECURE=true @@ -211,19 +228,21 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #The MF Variables below are used to get MicroFrontend Components Created -##For running locally or if have custom changes then change the url to the one forms-flow-web folder content is running -#MF_FORMSFLOW_WEB_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-web@v6.0.1/single-spa-build.gz.js +#MF_FORMSFLOW_WEB_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@6.0.2/forms-flow-web.gz.js ## Refer Github Repo https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends and update to your own custom implementation for the Components here -#MF_FORMSFLOW_NAV_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-nav@v6.0.1/forms-flow-nav.gz.js -#MF_FORMSFLOW_SERVICE_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-service@v6.0.1/forms-flow-service.gz.js -#MF_FORMSFLOW_ADMIN_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-admin@v6.0.1/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://s3.ap-northeast-1.amazonaws.com/formsflow.ai-micro-front-ends/forms-flow-theme@v6.0.1/forms-flow-theme.gz.js +#MF_FORMSFLOW_NAV_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@6.0.2/forms-flow-nav.gz.js +#MF_FORMSFLOW_SERVICE_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@6.0.2/forms-flow-service.gz.js +#MF_FORMSFLOW_COMPONENTS_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-components@6.0.2/forms-flow-components.gz.js +#MF_FORMSFLOW_ADMIN_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@6.0.2/forms-flow-admin.gz.js #++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# #++++++++++++++++--- formsflow.ai Web Modules and themeing ENV Variables - START ---+++++++++++++++++++++++++# +# Set Application default LANGUAGE +#LANGUAGE=en + # Only use if need to disable a particular module in forms-flow-web, default is true for all. #ENABLE_FORMS_MODULE=true #ENABLE_TASKS_MODULE=true @@ -234,12 +253,58 @@ CUSTOM_SUBMISSION_URL=http://{your-ip-address}:{port} #Custom theme URL #Used for providing theming configuration in a url that returns json format # Example to change the theme a theme.json can be given with content: + +# Add date and time format default will be DD-MM-YY and hh:mm:ss A +#DATE_FORMAT=DD-MM-YY +#TIME_FORMAT=hh:mm:ss A + +#CUSTOM_THEME_URL +#You can provide custom theme by adding json data to following path +#public/themeConfig/customTheme.json inside forms-flow-web-root-config. +#the json data should be below format. + # `{ # "--navbar-background": "blue", # "--navbar-items": "grey", # "--navbar-active": "white" # }` -#CUSTOM_THEME_URL= +#CUSTOM_THEME_URL=/themeConfig/customTheme.json + +#CUSTOM_RESOURCE_BUNDLE_URL +#You can provide custom resource bundle for internationalization by adding json data to following path +#public/languageConfig/customResourceBundle.json inside forms-flow-web-root-config. +#the json data should be below format. +#{ +# "language1": { +# "key": "value" +# }, +# "language2": { +# "key": "value" +# } +#} +#CUSTOM_RESOURCE_BUNDLE_URL=/languageConfig/customResourceBundle.json + +#++++++++++++++++--- formsflow.ai Modules and themeing ENV Variables - STOP ---+++++++++++++++++++++++++# + +##Log File Rotation Configuration for API Logs +##CONFIGURE_LOGS: Set to 'false' to disable log file rotation. Default value is true +##API_LOG_ROTATION_WHEN: Specifies the frequency of log file rotation - 'd' for days, 'h' for hours, 'm' for minutes. +##API_LOG_ROTATION_INTERVAL: Sets the time interval for log file rotation - '1' for every day. +##API_LOG_BACKUP_COUNT: Determines the number of backup log files to keep - '7' for logs from the past 7 day. + +#API_LOG_ROTATION_WHEN=d +#API_LOG_ROTATION_INTERVAL=1 +#API_LOG_BACKUP_COUNT=7 +#CONFIGURE_LOGS=true + +# Vault configuration +# VAULT_ENABLED=false +# VAULT_URL=http://{your-ip-address}:8200 +# VAULT_TOKEN= +# VAULT_PATH= +# VAULT_SECRET= + + #++++++++++++++++--- formsflow.ai Modules and themeing ENV Variables - STOP ---+++++++++++++++++++++++++# \ No newline at end of file diff --git a/scripts/install.bash b/scripts/install.bash index f372696..39274d1 100755 --- a/scripts/install.bash +++ b/scripts/install.bash @@ -17,7 +17,7 @@ set_docker_compose_file() { } # Define the array of valid Docker versions -validVersions=("25.0.3" "25.0.2" "25.0.1" "25.0.0" "24.0.9" "24.0.8" "24.0.7" "24.0.6" "24.0.5" "24.0.4" "24.0.3" "24.0.2" "24.0.1" "24.0.0" "23.0.6" "23.0.5" "23.0.4" "23.0.3" "23.0.2" "23.0.1" "23.0.0" "20.10.24" "20.10.23") +validVersions=("27.3.0" "27.2.0" "27.1.0" "27.0.3" "27.0.1" "26.1.3" "26.1.2" "26.1.1" "26.1.0" "26.0.2" "26.0.1" "26.0.0" "25.0.5" "25.0.3" "25.0.2" "25.0.0" "24.0.5" "24.0.4" "25.0.3" "25.0.2" "25.0.1" "25.0.0" "24.0.9" "24.0.8" "24.0.7" "24.0.6" "24.0.5" "24.0.4" "24.0.3" "24.0.2" "24.0.1" "24.0.0" "23.0.6" "23.0.5" "23.0.4" "23.0.3" "23.0.2" "23.0.1" "23.0.0" "20.10.24" "20.10.23") # Run the docker -v command and capture its output docker_info=$(docker -v 2>&1) @@ -62,9 +62,11 @@ isUp() { # Function to find the IPv4 address find_my_ip() { - ipadd=$(hostname -I | awk '{print $1}') - if [ "$(uname)" == "Darwin" ]; then + # ipadd=$(hostname -I | awk '{print $1}') + if [ "$(uname)" = "Darwin" ]; then ipadd=$(ipconfig getifaddr en0) + elif [ "$(uname)" = "Linux" ]; then + ipadd=$(hostname -I | awk '{print $1}') fi ip_add=$ipadd read -p "Confirm that your IPv4 address is $ip_add? [y/n]: " choice @@ -116,6 +118,8 @@ forms_flow_bpm() { SESSION_COOKIE_SECURE="false" KEYCLOAK_WEB_CLIENTID="forms-flow-web" REDIS_URL="redis://$ip_add:6379/0" + KEYCLOAK_URL_HTTP_RELATIVE_PATH="/auth" + echo "FORMSFLOW_API_URL=$FORMSFLOW_API_URL" >> "$1/.env" @@ -123,6 +127,7 @@ forms_flow_bpm() { echo "SESSION_COOKIE_SECURE=$SESSION_COOKIE_SECURE" >> "$1/.env" echo "KEYCLOAK_WEB_CLIENTID=$KEYCLOAK_WEB_CLIENTID" >> "$1/.env" echo "REDIS_URL=$REDIS_URL" >> "$1/.env" + echo "KEYCLOAK_URL_HTTP_RELATIVE_PATH=$KEYCLOAK_URL_HTTP_RELATIVE_PATH" >> "$1/.env" docker-compose -p formsflow-ai -f "$1/$docker_compose_file" up --build -d forms-flow-bpm sleep 6 } diff --git a/scripts/install.bat b/scripts/install.bat index a1e1966..d3ee9cd 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -3,7 +3,7 @@ setlocal EnableDelayedExpansion :: Define the array of valid Docker versions -set "validVersions=25.0.3 25.0.2 25.0.1 25.0.0 24.0.9 24.0.8 24.0.7 24.0.6 24.0.5 24.0.4 24.0.3 24.0.2 24.0.1 24.0.0 23.0.6 23.0.5 23.0.4 23.0.3 23.0.2 23.0.1 23.0.0 20.10.24 20.10.23" +set "validVersions=27.3.0 27.2.0 27.1.0 27.0.3 27.0.1 26.1.3 26.1.2 26.1.1 26.1.0 26.0.2 26.0.1 26.0.0 25.0.5 25.0.3 25.0.2 25.0.0 24.0.5 24.0.4 25.0.3 25.0.2 25.0.1 25.0.0 24.0.9 24.0.8 24.0.7 24.0.6 24.0.5 24.0.4 24.0.3 24.0.2 24.0.1 24.0.0 23.0.6 23.0.5 23.0.4 23.0.3 23.0.2 23.0.1 23.0.0 20.10.24 20.10.23" :: Run the docker -v command and capture its output for /f "tokens=*" %%A in ('docker -v 2^>^&1') do ( @@ -172,6 +172,7 @@ EXIT /B %ERRORLEVEL% set SESSION_COOKIE_SECURE=false set KEYCLOAK_WEB_CLIENTID=forms-flow-web set REDIS_URL=redis://%ip-add%:6379/0 + set KEYCLOAK_URL_HTTP_RELATIVE_PATH=/auth echo KEYCLOAK_URL=%KEYCLOAK_URL%>>%~1\.env echo KEYCLOAK_BPM_CLIENT_SECRET=%KEYCLOAK_BPM_CLIENT_SECRET%>>%~1\.env @@ -180,6 +181,7 @@ EXIT /B %ERRORLEVEL% echo SESSION_COOKIE_SECURE=%SESSION_COOKIE_SECURE%>>%~1\.env echo KEYCLOAK_WEB_CLIENTID=%KEYCLOAK_WEB_CLIENTID%>>%~1\.env echo REDIS_URL=%REDIS_URL%>>%~1\.env + echo KEYCLOAK_URL_HTTP_RELATIVE_PATH=%KEYCLOAK_URL_HTTP_RELATIVE_PATH%>>%~1\.env ENDLOCAL docker-compose -p formsflow-ai -f %~1\docker-compose.yml up --build -d forms-flow-bpm timeout 6 From 5cc32c4e1b91496f154344bdf4fbc8ee811f400b Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:40:39 -0700 Subject: [PATCH 67/70] Update docker-compose-arm64.yml --- docker-compose/docker-compose-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index 47a6dfa..c92c05a 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -17,7 +17,7 @@ services: - formsflow keycloak: - image: quay.io/keycloak/keycloak:25.0.4 + image: quay.io/keycloak/keycloak:23.0.7 restart: always container_name: keycloak volumes: From f275e66dfab8a3c2ac1fcd00d31336d85064b2a1 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:40:56 -0700 Subject: [PATCH 68/70] Update docker-compose-ee.yml --- docker-compose/docker-compose-ee.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/docker-compose-ee.yml b/docker-compose/docker-compose-ee.yml index d9dc499..270b8e4 100644 --- a/docker-compose/docker-compose-ee.yml +++ b/docker-compose/docker-compose-ee.yml @@ -17,7 +17,7 @@ services: - formsflow keycloak: - image: quay.io/keycloak/keycloak:25.0.4 + image: quay.io/keycloak/keycloak:23.0.7 restart: always container_name: keycloak volumes: From 40ef9e95c3f6f8c26e8cc68c45e06add973d4c57 Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:41:11 -0700 Subject: [PATCH 69/70] Update docker-compose.yml --- docker-compose/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index f66706f..39958be 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -17,7 +17,7 @@ services: - formsflow keycloak:g - image: quay.io/keycloak/keycloak:25.0.4 + image: quay.io/keycloak/keycloak:23.0.7 restart: always container_name: keycloak volumes: From de09bd5155e0d12a35c68fbdd7b2ede76228fa1e Mon Sep 17 00:00:00 2001 From: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:42:36 -0700 Subject: [PATCH 70/70] Update docker-compose-arm64.yml --- docker-compose/docker-compose-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/docker-compose-arm64.yml b/docker-compose/docker-compose-arm64.yml index c92c05a..bc4d03d 100644 --- a/docker-compose/docker-compose-arm64.yml +++ b/docker-compose/docker-compose-arm64.yml @@ -61,7 +61,7 @@ services: - formsflow forms-flow-web: - image: formsflow/forms-flow-web:6.0.2 + image: formsflow/forms-flow-web:v6.0.2 platform: linux/arm64/v8 links: - forms-flow-webapi