From 14cbcc1bf2828f1eb034d3b9a6180df78067d9aa Mon Sep 17 00:00:00 2001 From: shuhaib-aot Date: Wed, 17 Jan 2024 02:38:44 -0800 Subject: [PATCH 1/4] submit button showing but disabled on form instraction view of designer --- forms-flow-web/src/components/Form/Item/Preview.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forms-flow-web/src/components/Form/Item/Preview.js b/forms-flow-web/src/components/Form/Item/Preview.js index e6a492ed30..d135742c2e 100644 --- a/forms-flow-web/src/components/Form/Item/Preview.js +++ b/forms-flow-web/src/components/Form/Item/Preview.js @@ -225,7 +225,8 @@ const Preview = ({handleNext, hideComponents, activeStep}) => {
From c13124c552258dd27bc4e70132b58914bdc45d92 Mon Sep 17 00:00:00 2001 From: shuhaib s <95394061+shuhaib-aot@users.noreply.github.com> Date: Wed, 14 Feb 2024 13:35:29 +0530 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=9A=80=20Release/5.3.1=20(#1910)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Socket call ignored on task update (#1875) * unwanted api call removed from task loading in master branch (#1883) Co-authored-by: AbijithS-aot * Vulnerability 5.3.1 (#1885) * updated vulnerability fix * updated the image version * multitenant default filter fix (#1877) * Changed version into 5.3.1 (#1897) * Changed version into 5.3.1 * changed version in packagelock * updated pagination fix for process page * Changelog for v5.3.1 release (#1902) * Update formio image to v5.3.0 * Update forms-flow-data-analysis-api-cd.yml * Vulnerability fix data analysis * Update CHANGELOG.md (#1909) * view details issue fixed (#1911) Co-authored-by: AbijithS-aot --------- Co-authored-by: Abijith Sebastian <98075058+AbijithS-aot@users.noreply.github.com> Co-authored-by: AbijithS-aot Co-authored-by: Abil P Raju <83952803+abilpraju-aot@users.noreply.github.com> Co-authored-by: auslin-aot <99173163+auslin-aot@users.noreply.github.com> Co-authored-by: abilpraju-aot Co-authored-by: Bonymol Baby <88372115+Bonymol-aot@users.noreply.github.com> Co-authored-by: auslin-aot Co-authored-by: Alan Raju <94040192+alanraju-aot@users.noreply.github.com> Co-authored-by: Raveena --- .../forms-flow-data-analysis-api-cd.yml | 6 +- CHANGELOG.md | 18 ++++ README.md | 2 +- VERSION | 2 +- deployment/docker/docker-compose.yml | 10 +- deployment/docker/sample.env | 10 +- forms-flow-api-utils/setup.py | 2 +- forms-flow-api/setup.cfg | 2 +- .../src/formsflow_api/services/filter.py | 8 +- forms-flow-bpm/forms-flow-bpm-camunda/pom.xml | 6 +- forms-flow-bpm/forms-flow-bpm-utils/pom.xml | 4 +- forms-flow-bpm/pom-default.xml | 2 +- forms-flow-bpm/pom.xml | 2 +- .../model_training/requirements.txt | 2 +- forms-flow-data-analysis-api/requirements.txt | 6 +- forms-flow-documents/Dockerfile-ARM64 | 2 +- forms-flow-documents/setup.cfg | 2 +- forms-flow-web-root-config/README.md | 10 +- forms-flow-web-root-config/docker-compose.yml | 10 +- forms-flow-web-root-config/sample.env | 10 +- forms-flow-web/package-lock.json | 2 +- forms-flow-web/package.json | 2 +- .../apiManager/services/processServices.js | 2 +- .../ServiceFlow/details/TaskHeader.js | 97 +++---------------- .../ServiceFlow/list/ServiceTaskList.js | 11 ++- .../ServiceFlow/list/ServiceTaskListView.js | 13 +-- jobs/sentiment-analysis/requirements.txt | 6 +- jobs/sentiment-analysis/setup.cfg | 2 +- 28 files changed, 105 insertions(+), 146 deletions(-) diff --git a/.github/workflows/forms-flow-data-analysis-api-cd.yml b/.github/workflows/forms-flow-data-analysis-api-cd.yml index 392c786410..bfe87bd62a 100644 --- a/.github/workflows/forms-flow-data-analysis-api-cd.yml +++ b/.github/workflows/forms-flow-data-analysis-api-cd.yml @@ -104,10 +104,6 @@ jobs: env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - - name: Upload Snyk report as sarif 📦 - uses: github/codeql-action/upload-sarif@v2 - with: - sarif_file: snyk.sarif ##### # - name: Set up AWS CLI # uses: aws-actions/configure-aws-credentials@v1 @@ -124,4 +120,4 @@ jobs: # run: aws eks update-kubeconfig --region ca-central-1 --name formsflow-eks-qa # - name: Deploy to eks # run: | -# kubectl -n app2 patch deployment forms-flow-data-analysis-api -p '{"spec":{"template":{"spec":{"containers":[{"name":"forms-flow-data-analysis-api","image":"docker.io/formsflow/forms-flow-data-analysis-api:${{ env.VERSION }}"}]}}}}' \ No newline at end of file +# kubectl -n app2 patch deployment forms-flow-data-analysis-api -p '{"spec":{"template":{"spec":{"containers":[{"name":"forms-flow-data-analysis-api","image":"docker.io/formsflow/forms-flow-data-analysis-api:${{ env.VERSION }}"}]}}}}' diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ad6a0736b..78ab58ef23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ Mark items as `Added`, `Changed`, `Fixed`, `Modified`, `Removed`, `Untested Features`, `Upcoming Features`, `Known Issues` +## 5.3.1 - 2024-02-14 + +`Fixed` + +**forms-flow-web** + +* Fixed task page infinity loading issue +* Fixed task list filter API breaking on initial time +* Fixed tenant based all tasks not showing issue + +**forms-flow-documents** + +* Fixed security vulnerabilities + +**forms-flow-data-analysis-api** + +* Fixed security vulnerabilities + ## 5.3.0 - 2023-11-24 `Added` diff --git a/README.md b/README.md index 10150b48ed..e1a0a7ace3 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![FormsFlow BPM CI](https://github.com/AOT-Technologies/forms-flow-ai/actions/workflows/forms-flow-bpm-ci.yml/badge.svg)](https://github.com/AOT-Technologies/forms-flow-ai/actions) [![Join the chat at https://gitter.im/forms-flow-ai/community](https://badges.gitter.im/forms-flow-ai/community.svg)](https://gitter.im/forms-flow-ai/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Join the chat at https://stackoverflow.com/questions/tagged/formsflow.ai](https://img.shields.io/badge/ask%20-on%20%20stackoverflow-F47F24)](https://stackoverflow.com/questions/tagged/formsflow.ai?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - + [**formsflow.ai**](https://formsflow.ai/) is a Free, Open-Source, Low Code Development Platform for rapidly building powerful business applications. [**formsflow.ai**](https://formsflow.ai/) combines leading Open-Source applications including [form.io](https://form.io) forms, Camunda’s workflow engine, Keycloak’s security, and Redash’s data analytics into a seamless, integrated platform. diff --git a/VERSION b/VERSION index a93660765a..109b65fd59 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v5.3.0 \ No newline at end of file +v5.3.1 \ No newline at end of file diff --git a/deployment/docker/docker-compose.yml b/deployment/docker/docker-compose.yml index f30086effa..dab61ab820 100644 --- a/deployment/docker/docker-compose.yml +++ b/deployment/docker/docker-compose.yml @@ -131,11 +131,11 @@ services: context: ./../../forms-flow-web-root-config/ dockerfile: Dockerfile args: - - 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} entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: diff --git a/deployment/docker/sample.env b/deployment/docker/sample.env index 2d44116e63..3d3b7085b3 100644 --- a/deployment/docker/sample.env +++ b/deployment/docker/sample.env @@ -180,13 +180,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://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.0/forms-flow-web.gz.js +#MF_FORMSFLOW_WEB_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.1/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://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js -#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=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.3.0/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.0/forms-flow-theme.gz.js +#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=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.3.1/forms-flow-service.gz.js +#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=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.1/forms-flow-theme.gz.js #++++++++++++++++--- formsflow.ai Web Microfrontend components ENV Variables - STOP ---+++++++++++++++++++++++++# diff --git a/forms-flow-api-utils/setup.py b/forms-flow-api-utils/setup.py index c6ae9287d2..7a3d9689f7 100644 --- a/forms-flow-api-utils/setup.py +++ b/forms-flow-api-utils/setup.py @@ -27,7 +27,7 @@ def read_requirements(filename): setuptools.setup( name='formsflow_api_utils', - version='5.3.0', + version='5.3.1', author='AOT Technologies', description='Formsflow api related libraries.', long_description=read("README.md"), diff --git a/forms-flow-api/setup.cfg b/forms-flow-api/setup.cfg index 454afb5a14..fed7cb5315 100644 --- a/forms-flow-api/setup.cfg +++ b/forms-flow-api/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = formsflow_api -version = 5.3.0 +version = 5.3.1 author = aot-technologies classifiers = Development Status :: Production diff --git a/forms-flow-api/src/formsflow_api/services/filter.py b/forms-flow-api/src/formsflow_api/services/filter.py index 9cbca647b0..48c2da666a 100644 --- a/forms-flow-api/src/formsflow_api/services/filter.py +++ b/forms-flow-api/src/formsflow_api/services/filter.py @@ -59,7 +59,13 @@ def get_user_filters(**kwargs): if current_app.config.get("MULTI_TENANCY_ENABLED"): all_filters = Filter.find_all_filters() all_tasks_filter = any( - (item.name.lower() == "all tasks" and item.status == "active") + ( + item.name.lower() == "all tasks" + and item.status == "active" + and item.tenant is None + and (not item.roles or item.roles is None) + and (not item.users or item.users is None) + ) or (item.name.lower() == "all tasks" and item.tenant == tenant_key) for item in all_filters ) diff --git a/forms-flow-bpm/forms-flow-bpm-camunda/pom.xml b/forms-flow-bpm/forms-flow-bpm-camunda/pom.xml index 4ba91b428c..cf4bc7a6d0 100644 --- a/forms-flow-bpm/forms-flow-bpm-camunda/pom.xml +++ b/forms-flow-bpm/forms-flow-bpm-camunda/pom.xml @@ -7,11 +7,11 @@ formsflow.ai forms-flow-bpm - 5.3.0 + 5.3.1 formsflow-bpm-camunda - 5.3.0 + 5.3.1 formsflow BPM Camunda Extension formsflow BPM Camunda Extension @@ -69,7 +69,7 @@ formsflow.ai forms-flow-bpm-utils - 5.3.0 + 5.3.1 diff --git a/forms-flow-bpm/forms-flow-bpm-utils/pom.xml b/forms-flow-bpm/forms-flow-bpm-utils/pom.xml index 147a9b0a58..a831cb3441 100644 --- a/forms-flow-bpm/forms-flow-bpm-utils/pom.xml +++ b/forms-flow-bpm/forms-flow-bpm-utils/pom.xml @@ -8,11 +8,11 @@ formsflow.ai forms-flow-bpm - 5.3.0 + 5.3.1 forms-flow-bpm-utils - 5.3.0 + 5.3.1 formsflow BPM Extension Utils formsflow BPM Extension diff --git a/forms-flow-bpm/pom-default.xml b/forms-flow-bpm/pom-default.xml index 669577a582..638a153ecc 100644 --- a/forms-flow-bpm/pom-default.xml +++ b/forms-flow-bpm/pom-default.xml @@ -7,7 +7,7 @@ formsflow.ai forms-flow-bpm - 5.3.0 + 5.3.1 pom.xml diff --git a/forms-flow-bpm/pom.xml b/forms-flow-bpm/pom.xml index 95b48ce1e1..ed74eaa694 100644 --- a/forms-flow-bpm/pom.xml +++ b/forms-flow-bpm/pom.xml @@ -6,7 +6,7 @@ formsflow.ai forms-flow-bpm - 5.3.0 + 5.3.1 pom formsflow BPM Extension diff --git a/forms-flow-data-analysis-api/model_training/requirements.txt b/forms-flow-data-analysis-api/model_training/requirements.txt index 30a254b34c..e6bfe84456 100644 --- a/forms-flow-data-analysis-api/model_training/requirements.txt +++ b/forms-flow-data-analysis-api/model_training/requirements.txt @@ -1,5 +1,5 @@ NumPy==1.24.1 -Transformers==4.33.2 +Transformers==4.36.2 torch==1.13.1 scikit-learn==1.2.0 datasets==2.8.0 diff --git a/forms-flow-data-analysis-api/requirements.txt b/forms-flow-data-analysis-api/requirements.txt index a07633fef0..4a072b9960 100644 --- a/forms-flow-data-analysis-api/requirements.txt +++ b/forms-flow-data-analysis-api/requirements.txt @@ -25,7 +25,7 @@ flask-jwt-oidc==0.3.0 flask-restx==1.1.0 fsspec==2023.9.1 gunicorn==21.2.0 -huggingface-hub==0.17.2 +huggingface-hub==0.19.4 idna==3.4 itsdangerous==2.1.2 joblib==1.3.2 @@ -57,10 +57,10 @@ spacy==2.3.9 srsly==1.0.7 sympy==1.12 thinc==7.4.6 -tokenizers==0.13.3 +tokenizers==0.15.2 torch==2.0.1 tqdm==4.66.1 -transformers==4.33.2 +transformers==4.36.2 typing_extensions==4.8.0 urllib3==2.0.7 wasabi==0.10.1 diff --git a/forms-flow-documents/Dockerfile-ARM64 b/forms-flow-documents/Dockerfile-ARM64 index 61be6485ea..c1c7990a93 100644 --- a/forms-flow-documents/Dockerfile-ARM64 +++ b/forms-flow-documents/Dockerfile-ARM64 @@ -1,5 +1,5 @@ #Author: Kurian Benoy -FROM python:3.9-slim-buster +FROM python:3.10.13-slim-bullseye WORKDIR /forms-flow-documents/app diff --git a/forms-flow-documents/setup.cfg b/forms-flow-documents/setup.cfg index 26363e046c..d1cf36d757 100644 --- a/forms-flow-documents/setup.cfg +++ b/forms-flow-documents/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = formsflow_documents -version = 5.3.0 +version = 5.3.1 author = aot-technologies classifiers = Development Status :: Beta diff --git a/forms-flow-web-root-config/README.md b/forms-flow-web-root-config/README.md index 3653ae60f7..315865dd78 100644 --- a/forms-flow-web-root-config/README.md +++ b/forms-flow-web-root-config/README.md @@ -57,11 +57,11 @@ is mentioned on the [link](../forms-flow-idm/keycloak/README.md#create-forms-flo Variable name | Meaning | Possible values | Default value | --- | --- |----------| --- - `MF_FORMSFLOW_WEB_URL`:triangular_flag_on_post:| For running locally/ if have custom changes | `//forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.0/forms-flow-web.gz.js`

For custom changes: `http://{your-ip-address}:3004/forms-flow-web.js` | `//forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.0/forms-flow-nav.gz.js` - `MF_FORMSFLOW_NAV_UR`:triangular_flag_on_post:|For custom implementation of Navbar component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-nav)| |`//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js` - `MF_FORMSFLOW_SERVICE_URL`:triangular_flag_on_post:|For custom implementation of Service component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-service)| |`//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-service.gz.js` - `MF_FORMSFLOW_ADMIN_URL`:triangular_flag_on_post:|For custom implementation of Admin component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-admin)| |`//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-admin.gz.js` - `MF_FORMSFLOW_THEME_URL`:triangular_flag_on_post:| For custom implementation of Theme component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-theme) | | `//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-theme.gz.js` + `MF_FORMSFLOW_WEB_URL`:triangular_flag_on_post:| For running locally/ if have custom changes | `//forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.1/forms-flow-web.gz.js`

For custom changes: `http://{your-ip-address}:3004/forms-flow-web.js` | `//forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.1/forms-flow-nav.gz.js` + `MF_FORMSFLOW_NAV_UR`:triangular_flag_on_post:|For custom implementation of Navbar component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-nav)| |`//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.1/forms-flow-nav.gz.js` + `MF_FORMSFLOW_SERVICE_URL`:triangular_flag_on_post:|For custom implementation of Service component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-service)| |`//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.1/forms-flow-service.gz.js` + `MF_FORMSFLOW_ADMIN_URL`:triangular_flag_on_post:|For custom implementation of Admin component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-admin)| |`//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.1/forms-flow-admin.gz.js` + `MF_FORMSFLOW_THEME_URL`:triangular_flag_on_post:| For custom implementation of Theme component, refer [here](https://github.com/AOT-Technologies/forms-flow-ai-micro-front-ends/tree/main/forms-flow-theme) | | `//forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.1/forms-flow-theme.gz.js` `NODE_ENV`| Define project level configuration | `development, test, production` | `production` `FORMIO_DEFAULT_PROJECT_URL`:triangular_flag_on_post:|The URL of the form.io server| |`http://{your-ip-address}:3001` `KEYCLOAK_WEB_CLIENTID`|Your Keycloak Client ID within the realm| eg. forms-flow-web | `forms-flow-web` diff --git a/forms-flow-web-root-config/docker-compose.yml b/forms-flow-web-root-config/docker-compose.yml index 6937dd05db..b9cb4715d4 100644 --- a/forms-flow-web-root-config/docker-compose.yml +++ b/forms-flow-web-root-config/docker-compose.yml @@ -5,11 +5,11 @@ services: context: . dockerfile: Dockerfile args: - - 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} entrypoint: /bin/sh -c "/usr/share/nginx/html/config/env.sh && nginx -g 'daemon off;'" environment: diff --git a/forms-flow-web-root-config/sample.env b/forms-flow-web-root-config/sample.env index c746c87704..b9793ea09d 100644 --- a/forms-flow-web-root-config/sample.env +++ b/forms-flow-web-root-config/sample.env @@ -13,7 +13,7 @@ ##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://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.0/forms-flow-web.gz.js +#MF_FORMSFLOW_WEB_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-web@v5.3.1/forms-flow-web.gz.js #TODO only for Customised Local delevelopment with code from forms-flow-web folder content use below default values instead #MF_FORMSFLOW_WEB_URL=//{your-ip-address}:3004/forms-flow-web.js @@ -21,10 +21,10 @@ ## Use this as default values ## (Note: https://forms-flow-microfrontends.aot-technologies.com/{MF-componet-name}@{version}/{MF-componet-name}.gz.js, will be the default format ) ## 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://forms-flow-microfrontends.aot-technologies.com/forms-flow-nav@v5.3.0/forms-flow-nav.gz.js -#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=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-admin@v5.3.0/forms-flow-admin.gz.js -#MF_FORMSFLOW_THEME_URL=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.0/forms-flow-theme.gz.js +#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=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-service@v5.3.1/forms-flow-service.gz.js +#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=https://forms-flow-microfrontends.aot-technologies.com/forms-flow-theme@v5.3.1/forms-flow-theme.gz.js #OR diff --git a/forms-flow-web/package-lock.json b/forms-flow-web/package-lock.json index 079e8cc6f3..75b607faa0 100644 --- a/forms-flow-web/package-lock.json +++ b/forms-flow-web/package-lock.json @@ -1,6 +1,6 @@ { "name": "formsflow-ai-react", - "version": "5.3.0", + "version": "5.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/forms-flow-web/package.json b/forms-flow-web/package.json index dc2636e3ea..c041d983c2 100644 --- a/forms-flow-web/package.json +++ b/forms-flow-web/package.json @@ -1,7 +1,7 @@ { "name": "formsflow-ai-react", "description": "React web app for formsflow.ai project", - "version": "5.3.0", + "version": "5.3.1", "main": "single-spa-index.js", "scripts": { "analyze": "source-map-explorer 'build/static/js/*.js'", diff --git a/forms-flow-web/src/apiManager/services/processServices.js b/forms-flow-web/src/apiManager/services/processServices.js index d2ec66916d..ec5a44fe46 100644 --- a/forms-flow-web/src/apiManager/services/processServices.js +++ b/forms-flow-web/src/apiManager/services/processServices.js @@ -87,7 +87,7 @@ export const fetchAllBpmProcesses = ( {tenant_key = null, url = url + "&maxResults=" + maxResults; } if (searchKey) { - url = url + `&nameLike=%${searchKey}%`; + url = url + `&nameLike=%25${searchKey}%25`; } return (dispatch) => { // eslint-disable-next-line max-len diff --git a/forms-flow-web/src/components/ServiceFlow/details/TaskHeader.js b/forms-flow-web/src/components/ServiceFlow/details/TaskHeader.js index 9926be39a1..f34e823b5d 100644 --- a/forms-flow-web/src/components/ServiceFlow/details/TaskHeader.js +++ b/forms-flow-web/src/components/ServiceFlow/details/TaskHeader.js @@ -21,7 +21,6 @@ import { } from "../../../apiManager/services/bpmTaskServices"; import { setBPMTaskDetailUpdating } from "../../../actions/bpmTaskActions"; import UserSelectionDebounce from "./UserSelectionDebounce"; -import SocketIOService from "../../../services/SocketIOService"; import { useTranslation } from "react-i18next"; const TaskHeader = React.memo(() => { @@ -51,32 +50,22 @@ const TaskHeader = React.memo(() => { setDueDate(due); }, [task?.due]); + const updateTaskListAndTaskDetails = (err)=>{ + if (selectedFilter && !err) { + dispatch(getBPMTaskDetail(taskId)); + dispatch( + fetchServiceTaskList(reqData,null,firstResult) + ); + } else { + dispatch(setBPMTaskDetailUpdating(false)); + } + }; + const onClaim = () => { dispatch(setBPMTaskDetailUpdating(true)); dispatch( // eslint-disable-next-line no-unused-vars - claimBPMTask(taskId, username, (err, response) => { - if (!err) { - if (!SocketIOService.isConnected()) { - if (selectedFilter) { - dispatch(getBPMTaskDetail(taskId)); - dispatch( - fetchServiceTaskList(reqData,null,firstResult) - ); - } else { - dispatch(setBPMTaskDetailUpdating(false)); - } - } - if(selectedFilter){ - dispatch( - fetchServiceTaskList(reqData,null,firstResult) - ); - } - - } else { - dispatch(setBPMTaskDetailUpdating(false)); - } - }) + claimBPMTask(taskId, username, updateTaskListAndTaskDetails) ); }; const onChangeClaim = (userId) => { @@ -85,23 +74,7 @@ const TaskHeader = React.memo(() => { dispatch(setBPMTaskDetailUpdating(true)); dispatch( // eslint-disable-next-line no-unused-vars - updateAssigneeBPMTask(taskId, userId, (err, response) => { - if (!err) { - if (!SocketIOService.isConnected()) { - if (selectedFilter) { - dispatch(getBPMTaskDetail(taskId)); - } - } - if(selectedFilter){ - dispatch( - fetchServiceTaskList(reqData,null,firstResult) - ); - } - - } else { - dispatch(setBPMTaskDetailUpdating(false)); - } - }) + updateAssigneeBPMTask(taskId, userId, updateTaskListAndTaskDetails) ); } }; @@ -110,23 +83,7 @@ const TaskHeader = React.memo(() => { dispatch(setBPMTaskDetailUpdating(true)); dispatch( // eslint-disable-next-line no-unused-vars - unClaimBPMTask(taskId, (err, response) => { - if (!err) { - if (!SocketIOService.isConnected()) { - if (selectedFilter) { - dispatch(getBPMTaskDetail(taskId)); - } - } - if(selectedFilter){ - dispatch( - fetchServiceTaskList(reqData,null,firstResult) - ); - } - - } else { - dispatch(setBPMTaskDetailUpdating(false)); - } - }) + unClaimBPMTask(taskId, updateTaskListAndTaskDetails) ); }; @@ -139,18 +96,7 @@ const TaskHeader = React.memo(() => { }; dispatch( // eslint-disable-next-line no-unused-vars - updateBPMTask(taskId, updatedTask, (err, response) => { - if (!err) { - if (!SocketIOService.isConnected()) { - dispatch(getBPMTaskDetail(taskId)); - dispatch( - fetchServiceTaskList(reqData,null,firstResult) - ); - } - } else { - dispatch(setBPMTaskDetailUpdating(false)); - } - }) + updateBPMTask(taskId, updatedTask, updateTaskListAndTaskDetails) ); }; @@ -163,18 +109,7 @@ const TaskHeader = React.memo(() => { }; dispatch( // eslint-disable-next-line no-unused-vars - updateBPMTask(taskId, updatedTask, (err, response) => { - if (!err) { - if (!SocketIOService.isConnected()) { - dispatch(getBPMTaskDetail(taskId)); - dispatch( - fetchServiceTaskList(reqData,null,firstResult) - ); - } - } else { - dispatch(setBPMTaskDetailUpdating(false)); - } - }) + updateBPMTask(taskId, updatedTask, updateTaskListAndTaskDetails) ); }; diff --git a/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskList.js b/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskList.js index 420c371629..264049693b 100644 --- a/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskList.js +++ b/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskList.js @@ -41,10 +41,17 @@ const ServiceFlowTaskList = React.memo(() => { ); useEffect(() => { - if (selectedFilter) { + if (selectedFilter?.id) { + const selectedBPMFilterParams = { + ...selectedFilter, + criteria: { + ...selectedFilter?.criteria, + ...reqData?.criteria + } + }; dispatch(setBPMTaskLoader(true)); dispatch(setBPMTaskListActivePage(1)); - dispatch(fetchServiceTaskList(reqData,null,firstResult)); + dispatch(fetchServiceTaskList(selectedBPMFilterParams,null,firstResult)); } }, [reqData]); diff --git a/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskListView.js b/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskListView.js index bf79534d6e..97a9292da3 100644 --- a/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskListView.js +++ b/forms-flow-web/src/components/ServiceFlow/list/ServiceTaskListView.js @@ -76,15 +76,12 @@ const ServiceTaskListView = React.memo(() => { } }, [dispatch, reqData]); - const getTaskDetails = (taskId) => { - if (taskId !== bpmTaskId) { + + + const getTaskDetails = (taskId) => { dispatch(push(`${redirectUrl.current}task/${taskId}`)); - } - }; + }; - const handleViewDetails = (taskId) => { - getTaskDetails(taskId); - }; const handlePageChange = (pageNumber) => { dispatch(setBPMTaskListActivePage(pageNumber)); dispatch(setBPMTaskLoader(true)); @@ -140,7 +137,7 @@ const ServiceTaskListView = React.memo(() => {
handleViewDetails(task.id)} + onClick={() => getTaskDetails(task.id)} className="font-weight-normal" style={{ color: "#1a5a96", textDecoration: 'none' }}>{t("View Details")}
diff --git a/jobs/sentiment-analysis/requirements.txt b/jobs/sentiment-analysis/requirements.txt index 5886dd2e5c..7af8292d77 100644 --- a/jobs/sentiment-analysis/requirements.txt +++ b/jobs/sentiment-analysis/requirements.txt @@ -26,7 +26,7 @@ flask-jwt-oidc==0.3.0 flask-restx==1.1.0 fsspec==2023.6.0 gunicorn==20.1.0 -huggingface-hub==0.15.1 +huggingface-hub==0.19.4 idna==3.4 itsdangerous==2.1.2 joblib==1.3.0 @@ -58,10 +58,10 @@ spacy==2.3.9 srsly==1.0.6 sympy==1.12 thinc==7.4.6 -tokenizers==0.13.3 +tokenizers===0.15.2 torch==2.0.1 tqdm==4.65.0 -transformers==4.30.2 +transformers==4.36.2 typing_extensions==4.6.3 urllib3==2.0.7 wasabi==0.10.1 diff --git a/jobs/sentiment-analysis/setup.cfg b/jobs/sentiment-analysis/setup.cfg index 2a2e78e644..99a0392c48 100755 --- a/jobs/sentiment-analysis/setup.cfg +++ b/jobs/sentiment-analysis/setup.cfg @@ -2,7 +2,7 @@ name = sentiment_analysis url = https://raw.githubusercontent.com/AOT-Technologies/forms-flow-ai/ author = AOT Technologies -version = 5.3.0 +version = 5.3.1 author_email = classifiers = Development Status :: Beta From 076eec18f0a7e3c023134d3f0e1f9e9e47224e29 Mon Sep 17 00:00:00 2001 From: auslin-aot <99173163+auslin-aot@users.noreply.github.com> Date: Fri, 1 Mar 2024 16:00:46 +0530 Subject: [PATCH 3/4] Webapi: Changes to the Roles and Groups endpoint to accommodate modifications related to subgroups in Keycloak 23. (#1930) --- CHANGELOG.md | 8 +++++++- .../formsflow_api/services/external/keycloak.py | 14 +++++++++++++- .../services/factory/keycloak_group_service.py | 15 +++++++++++++-- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78ab58ef23..f69889a875 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,13 @@ Mark items as `Added`, `Changed`, `Fixed`, `Modified`, `Removed`, `Untested Fea **forms-flow-data-analysis-api** -* Fixed security vulnerabilities +* Fixed security vulnerabilities + +`Modified` + +**forms-flow-api** + +* Changes have been made to the Roles and Groups endpoint to accommodate modifications related to subgroups in Keycloak 23. ## 5.3.0 - 2023-11-24 diff --git a/forms-flow-api/src/formsflow_api/services/external/keycloak.py b/forms-flow-api/src/formsflow_api/services/external/keycloak.py index 176b0ecfaa..d7267c110b 100644 --- a/forms-flow-api/src/formsflow_api/services/external/keycloak.py +++ b/forms-flow-api/src/formsflow_api/services/external/keycloak.py @@ -90,7 +90,10 @@ def get_analytics_groups(self, page_no: int, limit: int): for group in group_list_response: if group["name"] == KEYCLOAK_DASHBOARD_BASE_GROUP: - dashboard_group_list = list(group["subGroups"]) + if group.get("subGroupCount", 0) > 0: + dashboard_group_list = self.get_subgroups(group["id"]) + else: + dashboard_group_list = list(group["subGroups"]) return dashboard_group_list def get_analytics_roles(self, page_no: int, limit: int): @@ -166,6 +169,15 @@ def get_groups(self): current_app.logger.debug("Groups %s", group_list_response) return group_list_response + def get_subgroups(self, group_id): + """Return sub groups.""" + current_app.logger.debug(f"Getting subgroups for groupID: {group_id}") + group_list_response = self.get_request( + url_path=f"groups/{group_id}/children?briefRepresentation=false" + ) + current_app.logger.debug("Sub Groups %s", group_list_response) + return group_list_response + def get_roles(self, search: str = ""): """Return roles.""" current_app.logger.debug("Getting roles") diff --git a/forms-flow-api/src/formsflow_api/services/factory/keycloak_group_service.py b/forms-flow-api/src/formsflow_api/services/factory/keycloak_group_service.py index 4906294d7e..4a64fa4cc0 100644 --- a/forms-flow-api/src/formsflow_api/services/factory/keycloak_group_service.py +++ b/forms-flow-api/src/formsflow_api/services/factory/keycloak_group_service.py @@ -127,6 +127,16 @@ def add_description(self, data: Dict): data.pop("description", None) return data + def sub_groups(self, group_id, response): + """Fetch subgroups of the group if subGroupCount greater than 0.""" + sub_group = self.client.get_subgroups(group_id) + for group in sub_group: + group = self.format_response(group) + response.append(group) + if group.get("subGroupCount", 0) > 0: + self.sub_groups(group.get("id"), response) + return response + def flat(self, data, response): """Flatten response to single list of dictionary. @@ -136,10 +146,11 @@ def flat(self, data, response): for group in data: subgroups = group.pop("subGroups", data) group = self.format_response(group) + response.append(group) if subgroups == []: - response.append(group) + if group.get("subGroupCount", 0) > 0: + response = self.sub_groups(group.get("id"), response) elif subgroups != []: - response.append(group) self.flat(subgroups, response) return response From 5e36fd9d98d2ff57dc034a2a117406f2bc2f85aa Mon Sep 17 00:00:00 2001 From: auslin-aot Date: Fri, 1 Mar 2024 16:29:10 +0530 Subject: [PATCH 4/4] lint fix --- .github/workflows/forms-flow-data-analysis-api-ci.yml | 2 +- .github/workflows/forms-flow-documents-ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/forms-flow-data-analysis-api-ci.yml b/.github/workflows/forms-flow-data-analysis-api-ci.yml index 47abc50da5..57835dce1b 100644 --- a/.github/workflows/forms-flow-data-analysis-api-ci.yml +++ b/.github/workflows/forms-flow-data-analysis-api-ci.yml @@ -29,7 +29,7 @@ jobs: strategy: matrix: - python-version: [3.11.7] + python-version: [3.11.8] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/forms-flow-documents-ci.yml b/.github/workflows/forms-flow-documents-ci.yml index 75092be498..b35ae77ed1 100644 --- a/.github/workflows/forms-flow-documents-ci.yml +++ b/.github/workflows/forms-flow-documents-ci.yml @@ -34,7 +34,7 @@ jobs: strategy: matrix: - python-version: [3.12.1] + python-version: [3.12.2] steps: - uses: actions/checkout@v2