diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 0ce642d97a..9f2f048483 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -1,212 +1,188 @@ -name: BUILD-PM4 +name: deploy-k8s +run-name: ${{ github.actor }} send deploy EKS 🚀 on: - #push: - # branches: - # - kr-github-actions pull_request: types: [opened, reopened, synchronize, edited, closed] - schedule: - - cron: '30 2 * * *' # every day at midnight - #workflow_dispatch: - #pull_request: - # branches: - # - main + #schedule: + # - cron: '30 2 * * *' # every day at midnight workflow_dispatch: workflow_call: env: - SHA: ${{github.event.pull_request.head.sha}} - PROJECT: ${{github.event.pull_request.head.repo.name}} - CI_PR_BODY: ${{ github.event_name == 'schedule' && 'ci:deploy' || github.event.pull_request.body }} - PACKAGE_URL: ${{github.event.pull_request.head.repo.ssh_url}} - PACKAGE_BRANCH: ${{github.event.pull_request.head.ref}} - #MY_GITHUB_TOKEN: ${{ secrets.GH_STATUS_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} - #GIT_TOKEN: ${{ secrets.MY_GH_TOKEN }} - OWNER: ${{ github.event.pull_request.head.repo.owner.login }} - #Other Parameters aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - aws-url: ${{ secrets.AWS_URL }} - STM_TOKEN: ${{ secrets.STM_TOKEN }} - CI_PACKAGE_BRANCH: ${{github.event.pull_request.head.ref || 'develop' }} - CI_PROJECT: ${{github.event.pull_request.head.repo.name || 'processmaker' }} - CI_TEST: $CI_PROJECT - IMAGE_TAG1: $(echo "$CI_PROJECT-$CI_PACKAGE_BRANCH" | sed "s;/;-;g") - GITHUB_COMMENT: ${{ secrets.GH_COMMENT }} + AWS_URL: ${{ secrets.AWS_URL }} pull_req_id: ${{github.event.pull_request.number}} - BASE: ${{ contains(github.event.pull_request.body, 'ci:php81') && 'ci-base' || 'ci-base-php82' }} - CDATA_LICENSE_DOCUSIGN: ${{ secrets.CDATA_LICENSE_DOCUSIGN }} - CDATA_LICENSE_EXCEL: ${{ secrets.CDATA_LICENSE_EXCEL }} - CDATA_LICENSE_GITHUB: ${{ secrets.CDATA_LICENSE_GITHUB }} - CDATA_LICENSE_SLACK: ${{ secrets.CDATA_LICENSE_SLACK }} + DATE: $(date -d '-1 day' '+%Y-%m-%d'|sed 's/-//g') + CURRENT_DATE: $(date '+%Y-%m-%d %H:%M:%S'|sed 's/-//g') + CI_PACKAGE_BRANCH: ${{github.event.pull_request.head.ref || 'next' }} + CI_PROJECT: ${{github.event.pull_request.head.repo.name || 'processmaker' }} + CI_PR_BODY: ${{ github.event_name == 'schedule' && 'No ci tags needed here' || github.event.pull_request.body }} + IMAGE_TAG: $(echo "$CI_PROJECT-$CI_PACKAGE_BRANCH" | sed "s;/;-;g") + DEPLOY: ${{ secrets.DEPLOY }} + GH_USER: ${{ secrets.GH_USER }} + GH_EMAIL: ${{ secrets.GH_EMAIL }} + GITHUB_COMMENT: ${{ secrets.GH_COMMENT }} + DOM_EKS: ${{ secrets.DOM_EKS }} + GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} + BUILD_BASE: ${{ (contains(github.event.pull_request.body, 'ci:build-base') || github.event_name == 'schedule') && '1' || '0' }} + BASE_IMAGE: ${{ secrets.REGISTRY_HOST }}/processmaker/processmaker:base + K8S_BRANCH: develop concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: - job1: - name: build-stm-image + imageEKS: + name: build-docker-image-EKS if: github.event.action != 'closed' - runs-on: ${{ vars.RUNNER }} - steps: - - name: Export Params + runs-on: ${{ vars.RUNNER }} + steps: + - name: Set image name run: | - echo "Env Check: CI_PROJECT: $CI_PROJECT CI_PACKAGE_BRANCH: $CI_PACKAGE_BRANCH CI_PR_BODY: $CI_PR_BODY BASE: $BASE" - echo "REPOSITORY=${{env.aws-url}}/enterprise" >> $GITHUB_ENV - echo "TAG=${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "IMAGE=${{env.aws-url}}/enterprise:${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - #Additional - echo "CACHEBUSTER="$(date +%s) >> $GITHUB_ENV - - name: Clone Repo STM + RESOLVED_IMAGE_TAG=${{ env.IMAGE_TAG }} + echo "IMAGE=${{ secrets.REGISTRY_HOST }}/processmaker/enterprise:$RESOLVED_IMAGE_TAG" >> $GITHUB_ENV + - name: Clone repo K8S run: | - git clone --depth 1 -b cicd "https://$GITHUB_TOKEN@github.com/ProcessMaker/pm4-stm-docker.git" pm4-stm-docker - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 + echo "IMAGE: ${{ env.IMAGE }}" + git clone --depth 1 -b "$K8S_BRANCH" "https://$GITHUB_TOKEN@github.com/ProcessMaker/pm4-k8s-distribution.git" pm4-k8s-distribution + - name: Generate image EKS + run: | + cd pm4-k8s-distribution/images + branch=$CI_PACKAGE_BRANCH tag=${{env.IMAGE_TAG}} bash build.k8s-cicd.sh + echo "VERSION=${{ env.IMAGE_TAG }}" >> $GITHUB_ENV + - name: List Images + run: | + docker images + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: processmaker/enterprise:${{ env.VERSION }} + format: 'table' + exit-code: '0' + ignore-unfixed: false + vuln-type: 'os,library' + scanners: 'vuln,secret' + severity: 'MEDIUM,HIGH,CRITICAL' + env: + TRIVY_TIMEOUT: 30m + - name: Login to Harbor + uses: docker/login-action@v2 with: - aws-access-key-id: ${{ env.aws-access-key-id }} - aws-secret-access-key: ${{ env.aws-secret-access-key }} - aws-region: ${{ env.aws-region }} - - name: Login to ECR + registry: ${{ secrets.REGISTRY_HOST }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + - name: Push Enterprise Image to Harbor run: | - aws ecr get-login-password | docker login --username AWS --password-stdin ${{env.aws-url}} - - name: Build and Push the base images - if: contains(github.event.pull_request.body, 'ci:build-base') || github.event_name == 'schedule' - run: | - cd pm4-stm-docker - docker-compose build --no-cache base-php82 - docker-compose build --no-cache cache - docker push ${REPOSITORY}:ci-base-php82 - docker push ${REPOSITORY}:ci-cache - - name: Build and Push the image to ECR + docker tag processmaker/enterprise:${{env.IMAGE_TAG}} ${{ secrets.REGISTRY_HOST }}/processmaker/enterprise:${{env.IMAGE_TAG}} + docker push ${{ secrets.REGISTRY_HOST }}/processmaker/enterprise:${{env.IMAGE_TAG}} + prepareDB: + needs: imageEKS + runs-on: self-hosted + steps: + - name: Clone private repository run: | - cd pm4-stm-docker - docker-compose build processmaker - docker push ${IMAGE} - job2: - name: deploy-stm - if: github.event.action != 'closed' - needs: job1 + git clone --depth 1 -b eng "https://$GITHUB_TOKEN@github.com/ProcessMaker/argocd.git" argocd + - name: CreateDB + run: | + cd argocd + deploy=$(echo -n ${{env.IMAGE_TAG}} | md5sum | head -c 10) + sed -i "s/{{instance}}/ci-$deploy/" template-db.yaml + kubectl get namespace ci-processmaker-ns-pm4 + namespace=$(kubectl get namespace $deploy-ns-pm4|grep $deploy|awk '{print $1}') + kubectl apply -f template-db.yaml + deployEKS: + name: build-deploy-EKS + if: contains(github.event.pull_request.body, 'ci:deploy') + needs: imageEKS runs-on: ${{ vars.RUNNER }} - container: - image: cimg/php:7.4 - options: --user root - steps: - - name: Export Params + steps: + - name: Clone private repository run: | - echo "Env Check: CI_PROJECT: $CI_PROJECT CI_PACKAGE_BRANCH: $CI_PACKAGE_BRANCH CI_PR_BODY: $CI_PR_BODY" - echo "REPOSITORY=${{env.aws-url}}/enterprise" >> $GITHUB_ENV - echo "TAG=${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "IMAGE_TAG=${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "IMAGE=${{env.aws-url}}/enterprise:${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "STM_TOKEN=${{env.STM_TOKEN}}" >> $GITHUB_ENV - - name: Clone Repo STM + git clone --depth 1 -b eng "https://$GITHUB_TOKEN@github.com/ProcessMaker/argocd.git" argocd + - name: Install pm4-tools run: | - git clone --depth 1 -b cicd "https://$GITHUB_TOKEN@github.com/ProcessMaker/pm4-stm-docker.git" pm4-stm-docker - cd pm4-stm-docker - - name: Configure AWS Credentials + git clone --depth 1 -b "$K8S_BRANCH" "https://$GITHUB_TOKEN@github.com/ProcessMaker/pm4-k8s-distribution.git" pm4-k8s-distribution + cd pm4-k8s-distribution/images/pm4-tools + composer install --no-interaction + cd .. + - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: - aws-access-key-id: ${{ env.aws-access-key-id }} - aws-secret-access-key: ${{ env.aws-secret-access-key }} - aws-region: ${{ env.aws-region }} - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v1 - - name: Deploy STM - id: stm + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID1 }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY1 }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Set up kubectl run: | - mkdir -p /tmp/workspace - cd pm4-stm-docker/deploy-stm - composer install --no-dev - php run.php - if [ -f "url.txt" ]; then - INSTANCE_URL=$(cat url.txt) + curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" + chmod +x kubectl + sudo mv kubectl /usr/local/bin/ + - name: Authenticate with Amazon EKS + run: aws eks update-kubeconfig --region us-east-1 --name pm4-eng + - name: Deploy instance EKS + run: | + cd argocd + deploy=$(echo -n ${{env.IMAGE_TAG}} | md5sum | head -c 10) + current_datetime=$(echo -n ${{env.CURRENT_DATE}} | md5sum | head -c 10) + echo "NAMESPACE : ci-$deploy-ns-pm4" + helm repo add processmaker ${{ secrets.HELM_REPO }} --username ${{ secrets.HELM_USERNAME }} --password ${{ secrets.HELM_PASSWORD }} && helm repo update + if ! kubectl get namespace/ci-$deploy-ns-pm4 ; then + echo "Creating Deploy :: $deploy" + sed -i "s/{{instance}}/ci-$deploy/" template-instance.yaml + sed -i "s/{{image}}/${{env.IMAGE_TAG}}/" template-instance.yaml + cat template-instance.yaml + helm install --timeout 40m -f template-instance.yaml ci-$deploy processmaker/enterprise + sed -i "s/{{instance}}/ci-$deploy/" template-cert.yaml + sed -i "s/{{tls-crt}}/${{ secrets.TLS_CRT }}/" template-cert.yaml + sed -i "s/{{tls-key}}/${{ secrets.TLS_KEY }}/" template-cert.yaml + kubectl apply -f template-cert.yaml + else + echo "Bouncing Instance "; + sed -i "s/{{instance}}/ci-$deploy/g" template-bounce.yaml + sed -i "s/{{current_datetime}}/$current_datetime/g" template-bounce.yaml + helm upgrade --timeout 20m ci-$deploy processmaker/enterprise --version 2.1.0 + kubectl apply -f template-bounce.yaml fi - echo "Instance URL: '${INSTANCE_URL}'" + export INSTANCE_URL=https://ci-$deploy$DOM_EKS echo "INSTANCE_URL=${INSTANCE_URL}" >> "$GITHUB_ENV" - - name: Publish the URL to the Github PR - if: success() || steps.stm.conclusion == 'success' + ../pm4-k8s-distribution/images/pm4-tools/pm wait-for-instance-ready + - name: Comment Instance run: | - cd pm4-stm-docker echo "Instance URL: '${INSTANCE_URL}'" - bash ./github_comment.sh "$PROJECT" "$pull_req_id" - job3: - name: run-phpunit - if: github.event.action != 'closed' - needs: job1 - runs-on: ${{ vars.RUNNER }} - steps: - - name: Export Params - run: | - echo "REPOSITORY=${{env.aws-url}}/enterprise" >> $GITHUB_ENV - echo "TAG=${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "IMAGE=${{env.aws-url}}/enterprise:${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - - name: Clone Repo STM - run: | - git clone --depth 1 -b cicd "https://$GITHUB_TOKEN@github.com/ProcessMaker/pm4-stm-docker.git" pm4-stm-docker - cd pm4-stm-docker - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ env.aws-access-key-id }} - aws-secret-access-key: ${{ env.aws-secret-access-key }} - aws-region: ${{ env.aws-region }} - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v1 - - name: PHPUnits - run: | - cd pm4-stm-docker - docker pull $IMAGE - docker-compose down -v - docker-compose build phpunit - docker-compose run phpunit - #job4: - # name: run-benchmarks - # needs: job2 - # runs-on: ${{ vars.RUNNER }} - # steps: - # - name: my-step - # run: | - # echo "Fifth Step" - #job5: - # name: run-cypress - # needs: job2 - # runs-on: ${{ vars.RUNNER }} - # steps: - # - name: my-step - # run: | - # echo "fourth Step" - #job6: - # name: run-cypress-qa - # needs: job2 - # runs-on: ${{ vars.RUNNER }} - # steps: - # - name: my-step - # run: | - # echo "Sixt Step" - job7: + bash argocd/gh_comment.sh "$CI_PROJECT" "$pull_req_id" + deleteEKS: name: Delete Instance if: github.event.action == 'closed' + runs-on: self-hosted + steps: + - name: Delete instance EKS + run: | + deploy=$(echo -n $IMAGE_TAG | md5sum | head -c 10) + echo "Deleting Instace :: ci-$deploy" + helm delete ci-$deploy + kubectl delete namespace ci-$deploy-ns-pm4 + runPhpUnit: + name: run-phpunit + if: github.event.action != 'closed' + needs: imageEKS runs-on: ${{ vars.RUNNER }} - container: - image: cimg/php:7.4 - options: --user root steps: - name: Export Params run: | - echo "REPOSITORY=${{env.aws-url}}/enterprise" >> $GITHUB_ENV - echo "TAG=${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "IMAGE_TAG=${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "IMAGE=${{env.aws-url}}/enterprise:${{env.IMAGE_TAG1}}" >> $GITHUB_ENV - echo "STM_TOKEN=${{env.STM_TOKEN}}" >> $GITHUB_ENV - - name: Clone Repo STM + echo "IMAGE=${{ secrets.REGISTRY_HOST }}/processmaker/enterprise:${{env.IMAGE_TAG}}" >> $GITHUB_ENV + - name: Clone repo K8S run: | - git clone --depth 1 -b cicd "https://$GITHUB_TOKEN@github.com/ProcessMaker/pm4-stm-docker.git" pm4-stm-docker - cd pm4-stm-docker - - name: Delete Instance STM - run: | - mkdir -p /tmp/workspace - cd pm4-stm-docker/deploy-stm - composer install --no-dev - php run-delete-instance.php + echo "IMAGE: ${{ env.IMAGE }}" + git clone --depth 1 -b "$K8S_BRANCH" "https://$GITHUB_TOKEN@github.com/ProcessMaker/pm4-k8s-distribution.git" pm4-k8s-distribution + - name: Login to Harbor + uses: docker/login-action@v2 + with: + registry: ${{ secrets.REGISTRY_HOST }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + - name: PHPUnits + run: | + cd pm4-k8s-distribution/images/pm4-tools + docker pull $IMAGE + docker-compose down -v + docker-compose build phpunit + docker-compose run phpunit \ No newline at end of file diff --git a/ProcessMaker/Ai/Handlers/LanguageTranslationHandler.php b/ProcessMaker/Ai/Handlers/LanguageTranslationHandler.php index fda05562ff..b8a0571fa0 100644 --- a/ProcessMaker/Ai/Handlers/LanguageTranslationHandler.php +++ b/ProcessMaker/Ai/Handlers/LanguageTranslationHandler.php @@ -18,8 +18,8 @@ public function __construct() { parent::__construct(); $this->config = [ - 'model' => 'text-davinci-003', - 'max_tokens' => 2200, + 'model' => 'gpt-3.5-turbo-16k', + 'max_tokens' => 6000, 'temperature' => 0, 'top_p' => 1, 'n' => 1, @@ -52,6 +52,10 @@ public function generatePrompt(String $type = null, String $json_list) : Object $prompt = $this->replaceLanguage($prompt, $this->targetLanguage['humanLanguage']); $prompt = $this->replaceStopSequence($prompt); $this->config['prompt'] = $prompt; + $this->config['messages'] = [[ + 'role' => 'user', + 'content' => $prompt, + ]]; return $this; } @@ -61,17 +65,25 @@ public function execute() $listCharCount = strlen($this->json_list); $totalChars = $listCharCount * 3; $currentChunkCount = 0; + $config = $this->getConfig(); + unset($config['prompt']); $client = app(Client::class); $stream = $client - ->completions() - ->createStreamed(array_merge($this->getConfig())); + ->chat() + ->createStreamed(array_merge($config)); $fullResponse = ''; foreach ($stream as $response) { - $currentChunkCount += strlen($response->choices[0]->text); - self::sendResponse($response->choices[0]->text, $currentChunkCount, $totalChars); - $fullResponse .= $response->choices[0]->text; + if (array_key_exists('content', $response->choices[0]->toArray()['delta'])) { + $currentChunkCount += strlen($response->choices[0]->toArray()['delta']['content']); + self::sendResponse( + $response->choices[0]->toArray()['delta']['content'], + $currentChunkCount, + $totalChars + ); + $fullResponse .= $response->choices[0]->toArray()['delta']['content']; + } } return $this->formatResponse($fullResponse); diff --git a/ProcessMaker/Ai/Handlers/NlqToCategoryHandler.php b/ProcessMaker/Ai/Handlers/NlqToCategoryHandler.php index c89c17d1dd..54130e07fe 100644 --- a/ProcessMaker/Ai/Handlers/NlqToCategoryHandler.php +++ b/ProcessMaker/Ai/Handlers/NlqToCategoryHandler.php @@ -10,7 +10,7 @@ public function __construct() { parent::__construct(); $this->config = [ - 'model' => 'text-davinci-003', + 'model' => 'gpt-3.5-turbo', 'max_tokens' => 20, 'temperature' => 0, 'top_p' => 1, @@ -34,7 +34,10 @@ public function generatePrompt(String $type = null, String $question) : Object $prompt = $this->replaceStopSequence($prompt); $prompt = $this->replaceDefaultType($prompt, $type); - $this->config['prompt'] = $prompt; + $this->config['messages'] = [[ + 'role' => 'user', + 'content' => $prompt, + ]]; return $this; } @@ -43,15 +46,18 @@ public function execute() { $client = app(Client::class); $response = $client - ->completions() - ->create(array_merge($this->getConfig())); + ->chat() + ->create( + array_merge($this->getConfig() + ) + ); return $this->formatResponse($response); } private function formatResponse($response) { - $result = ltrim($response->choices[0]->text); + $result = ltrim($response->choices[0]->message->content); return [strtolower($result), $response->usage, $this->question]; } diff --git a/ProcessMaker/Ai/Handlers/NlqToPmqlHandler.php b/ProcessMaker/Ai/Handlers/NlqToPmqlHandler.php index 81d43b4dc3..c2eae050f4 100644 --- a/ProcessMaker/Ai/Handlers/NlqToPmqlHandler.php +++ b/ProcessMaker/Ai/Handlers/NlqToPmqlHandler.php @@ -10,7 +10,7 @@ public function __construct() { parent::__construct(); $this->config = [ - 'model' => 'text-davinci-003', + 'model' => 'gpt-3.5-turbo', 'max_tokens' => 1900, 'temperature' => 0, 'top_p' => 1, @@ -34,7 +34,10 @@ public function generatePrompt(String $type = null, String $question) : Object $prompt = $this->replaceStopSequence($prompt); $prompt = $this->replaceWithCurrentYear($prompt); - $this->config['prompt'] = $prompt; + $this->config['messages'] = [[ + 'role' => 'user', + 'content' => $prompt, + ]]; return $this; } @@ -43,15 +46,18 @@ public function execute() { $client = app(Client::class); $response = $client - ->completions() - ->create(array_merge($this->getConfig())); + ->chat() + ->create( + array_merge($this->getConfig() + ) + ); return $this->formatResponse($response); } private function formatResponse($response) { - $result = ltrim($response->choices[0]->text); + $result = ltrim($response->choices[0]->message->content); $result = explode('Question:', $result)[0]; $result = rtrim(rtrim(str_replace("\n", '', $result))); $result = str_replace('\'', '', $result); diff --git a/ProcessMaker/Http/Controllers/RequestController.php b/ProcessMaker/Http/Controllers/RequestController.php index 8b0ffb0b8a..a4add102b4 100644 --- a/ProcessMaker/Http/Controllers/RequestController.php +++ b/ProcessMaker/Http/Controllers/RequestController.php @@ -89,8 +89,15 @@ public function show(ProcessRequest $request, Media $mediaItems) ->where('status', 'ACTIVE') ->orderBy('id')->first(); + // If the interstitial is enabled on the start event, then use it as the task + if ($active) { + $task = $allowInterstitial ? $startEvent : $active; + } else { + $task = $startEvent; + } + return redirect(route('tasks.edit', [ - 'task' => $active ? $active->getKey() : $startEvent->getKey() + 'task' => $task->getKey(), ])); } } diff --git a/composer.json b/composer.json index f7f9c9a28f..f3a24dbe44 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "processmaker/processmaker", - "version": "4.8.2", + "version": "4.8.3", "description": "BPM PHP Software", "keywords": [ "php bpm processmaker" @@ -96,9 +96,9 @@ "Gmail" ], "processmaker": { - "build": "6ddfe95a", + "build": "c8fb9ea3", "custom": { - "package-ellucian-ethos": "1.14.2", + "package-ellucian-ethos": "1.14.5", "package-plaid": "1.3.1", "paypal-package": "dev-fall", "pps-adsync": "dev-fall", @@ -112,6 +112,7 @@ "package-csi": "dev-fall", "package-jxchange": "dev-fall", "package-zjukumari-logs": "dev-fall", + "package-zj-adps": "dev-fall", "package-zj-wingate": "dev-fall", "package-banner-sync": "dev-fall", "package-service-task": "dev-fall", @@ -135,7 +136,7 @@ "docker-executor-node-ssr": "1.5.0", "package-actions-by-email": "1.15.0", "package-advanced-user-manager": "1.8.0", - "package-ai": "1.3.0", + "package-ai": "1.3.1", "package-analytics-reporting": "1.3.2", "package-auth": "1.15.3", "package-cdata": "1.0.2", diff --git a/composer.lock b/composer.lock index 5ff1a4de87..498bf58d8f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0e2bf759df812117e65fe62678170f76", + "content-hash": "3e9b4ae75225ce29dfe125ce6a5b5e18", "packages": [ { "name": "aws/aws-crt-php", diff --git a/database/migrations/2023_12_18_104245_check_fix_status_at_users_table.php b/database/migrations/2023_12_18_104245_check_fix_status_at_users_table.php new file mode 100644 index 0000000000..da37de0ed6 --- /dev/null +++ b/database/migrations/2023_12_18_104245_check_fix_status_at_users_table.php @@ -0,0 +1,32 @@ +Type, 0, 4) === 'enum'; + if (!$isEnum) { + return; + } + // change the column status to varchar + DB::statement('ALTER TABLE users MODIFY COLUMN status VARCHAR(255) NOT NULL DEFAULT "ACTIVE"'); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + } +}; diff --git a/package-lock.json b/package-lock.json index 3236caecd2..38b7c72aec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@processmaker/processmaker", - "version": "4.8.2", + "version": "4.8.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@processmaker/processmaker", - "version": "4.8.2", + "version": "4.8.3", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 512a19b07b..06113ae944 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@processmaker/processmaker", - "version": "4.8.2", + "version": "4.8.3", "description": "ProcessMaker 4", "author": "DevOps ", "license": "ISC",