From a4992f325a31484f113da66c8e2b10e5f80930c9 Mon Sep 17 00:00:00 2001 From: Alex Chapellon Date: Fri, 19 Jan 2024 12:49:17 +0100 Subject: [PATCH] OPSEXP-2440: fix Alfresco Intelligence Service (#1074) Co-authored-by: Giovanni Toraldo <71768+gionn@users.noreply.github.com> --- docs/helm/examples/with-ai.md | 45 +- helm/alfresco-content-services/Chart.lock | 8 +- helm/alfresco-content-services/Chart.yaml | 4 +- helm/alfresco-content-services/README.md | 7 +- .../templates/config-transformer-routes.yaml | 386 ------------------ .../tests/config-infra_test.yaml | 4 +- helm/alfresco-content-services/values.yaml | 10 +- 7 files changed, 50 insertions(+), 414 deletions(-) delete mode 100644 helm/alfresco-content-services/templates/config-transformer-routes.yaml diff --git a/docs/helm/examples/with-ai.md b/docs/helm/examples/with-ai.md index 49d56ae7b..5df081836 100644 --- a/docs/helm/examples/with-ai.md +++ b/docs/helm/examples/with-ai.md @@ -22,18 +22,51 @@ by AIS. ## Deploy +Create a local values file to contain Helm charts' configuration options (`ai-values.yaml`): + +```yaml +alfresco-ai-transformer: + enabled: true + aws: + accessKeyId: YOUR-AI-AWS-ACCESS-KEY-ID + secretAccessKey: YOUR-AI-AWS-SECRET-KEY + region: YOUR-AWS-REGION + s3Bucket: YOUR-AI-BUCKET-NAME + comprehendRoleARN: YOUR-AI-AWS-COMPREHEND-ROLE-ARN +alfresco-transform-service: + filestore: + persistence.enabled: true + storageClass: nfs-client + transformrouter: + environment: + JAVA_OPTS: -XX:MaxRAMPercentage=80 + TRANSFORMER_URL_AWS_AI: http://alfresco-intelligence-service + TRANSFORMER_QUEUE_AWS_AI: "org.alfresco.transform.engine.ai-aws.acs" + TRANSFORMER_ROUTES_ADDITIONAL_AI: "/etc/ats-routes/ai-pipeline-routes.json" + volumeMounts: + - name: ai-transform-routes + mountPath: /etc/ats-routes + volumes: + - name: ai-routes + configMap: + names: ai-transform-pipelines + items: + - key: ai-pipeline-routes.json + path: ai-pipeline-routes.json +``` + +> Replace AWS credentials and Kubernetes storageClass with actual values + When we bring all this together we can deploy ACS using the command below (replacing all the `YOUR-XZY` properties with the values gathered during the setup of the services): ```bash helm install acs alfresco/alfresco-content-services \ - --set alfresco-repository.persistence.enabled=false \ - --set alfresco-transform-service.filestore.persistence.enabled=true \ - --set alfresco-transform-service.filestore.persistence.storageClass="nfs-client" \ --set global.known_urls=https://acs.YOUR-DOMAIN-NAME \ --set global.search.sharedSecret=$(openssl rand -hex 24) \ --set global.alfrescoRegistryPullSecrets=quay-registry-secret \ + --set alfresco-repository.persistence.enabled=false \ --set alfresco-repository.image.repository="quay.io/alfresco/alfresco-content-repository-aws" \ --set share.image.repository="quay.io/alfresco/alfresco-share-aws" \ --set postgresql.enabled=false \ @@ -47,11 +80,7 @@ helm install acs alfresco/alfresco-content-services \ --set messageBroker.user="alfresco" \ --set messageBroker.password="YOUR-MQ-PASSWORD" \ --set global.ai.enabled=true \ - --set ai.aws.accessKey="YOUR-AI-AWS-ACCESS-KEY-ID" \ - --set ai.aws.secretAccessKey="YOUR-AI-AWS-SECRET-KEY" \ - --set ai.aws.region="YOUR-AWS-REGION" \ - --set ai.aws.s3Bucket="YOUR-AI-BUCKET-NAME" \ - --set ai.aws.comprehendRoleARN="YOUR-AI-AWS-COMPREHEND-ROLE-ARN" \ + -f ai-values.yaml \ --atomic \ --timeout 10m0s \ --namespace=alfresco diff --git a/helm/alfresco-content-services/Chart.lock b/helm/alfresco-content-services/Chart.lock index 5e42306c4..b27053ee7 100644 --- a/helm/alfresco-content-services/Chart.lock +++ b/helm/alfresco-content-services/Chart.lock @@ -1,7 +1,7 @@ dependencies: - name: alfresco-common repository: https://alfresco.github.io/alfresco-helm-charts/ - version: 3.1.0 + version: 3.1.1 - name: postgresql repository: oci://registry-1.docker.io/bitnamicharts version: 12.8.5 @@ -43,9 +43,9 @@ dependencies: version: 0.5.0-alpha.0 - name: alfresco-ai-transformer repository: https://alfresco.github.io/alfresco-helm-charts/ - version: 1.0.0-alpha.4 + version: 1.0.0-alpha.6 - name: elasticsearch repository: https://helm.elastic.co version: 7.17.3 -digest: sha256:add0aeea25d25f49d0ceed4a037aa34d1a8797cb6033841a2323380650032e6b -generated: "2024-01-12T16:58:53.556503+01:00" +digest: sha256:e403533d6ddceea2004ec7dc476f274bbfd4468fb9f1942700a22bb0a71b2ca7 +generated: "2024-01-18T18:12:35.957453+01:00" diff --git a/helm/alfresco-content-services/Chart.yaml b/helm/alfresco-content-services/Chart.yaml index d1696a240..13c588be1 100644 --- a/helm/alfresco-content-services/Chart.yaml +++ b/helm/alfresco-content-services/Chart.yaml @@ -17,7 +17,7 @@ sources: - https://github.com/Alfresco/acs-deployment dependencies: - name: alfresco-common - version: 3.1.0 + version: 3.1.1 repository: https://alfresco.github.io/alfresco-helm-charts/ - name: postgresql version: 12.8.5 @@ -78,7 +78,7 @@ dependencies: repository: https://alfresco.github.io/alfresco-helm-charts/ condition: alfresco-connector-ms365.enabled - name: alfresco-ai-transformer - version: 1.0.0-alpha.4 + version: 1.0.0-alpha.6 repository: https://alfresco.github.io/alfresco-helm-charts/ condition: alfresco-ai-transformer.enabled - name: elasticsearch diff --git a/helm/alfresco-content-services/README.md b/helm/alfresco-content-services/README.md index 26e82bbd9..e86bccff0 100644 --- a/helm/alfresco-content-services/README.md +++ b/helm/alfresco-content-services/README.md @@ -19,8 +19,8 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b | https://activiti.github.io/activiti-cloud-helm-charts | alfresco-control-center(common) | 8.0.0 | | https://activiti.github.io/activiti-cloud-helm-charts | alfresco-digital-workspace(common) | 8.0.0 | | https://alfresco.github.io/alfresco-helm-charts/ | activemq | 3.4.1 | -| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-ai-transformer | 1.0.0-alpha.4 | -| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-common | 3.1.0 | +| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-ai-transformer | 1.0.0-alpha.6 | +| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-common | 3.1.1 | | https://alfresco.github.io/alfresco-helm-charts/ | alfresco-connector-ms365 | 0.5.0-alpha.0 | | https://alfresco.github.io/alfresco-helm-charts/ | alfresco-connector-msteams | 0.2.0 | | https://alfresco.github.io/alfresco-helm-charts/ | alfresco-repository | 0.1.2 | @@ -45,6 +45,7 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b | activemq.nameOverride | string | `"activemq"` | | | activemq.nodeSelector | object | `{}` | Possibility to choose Node for pod, with a key-value pair label e.g {"kubernetes.io/hostname": multinode-demo-m02} | | alfresco-ai-transformer.enabled | bool | `false` | toggle deploying Alfresco ai transformer for more details about configuration check https://github.com/Alfresco/alfresco-helm-charts/tree/main/charts/alfresco-ai-transformer | +| alfresco-ai-transformer.fullnameOverride | string | `"alfresco-intelligence-service"` | Enforce static resource naming in AIS so the ATS trouter can be given the URL of the service | | alfresco-ai-transformer.image.repository | string | `"quay.io/alfresco/alfresco-ai-docker-engine"` | | | alfresco-ai-transformer.image.tag | string | `"3.0.1"` | | | alfresco-ai-transformer.messageBroker.existingConfigMap.name | string | `"alfresco-infrastructure"` | Name of the configmap which holds the message broker URL | @@ -86,7 +87,6 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b | alfresco-digital-workspace.env.API_URL | string | `"{protocol}//{hostname}{:port}"` | | | alfresco-digital-workspace.env.APP_CONFIG_AUTH_TYPE | string | `"BASIC"` | | | alfresco-digital-workspace.env.APP_CONFIG_PROVIDER | string | `"ECM"` | | -| alfresco-digital-workspace.extraEnv | string | `"{{- if .Values.global.ai.enabled }}\n- name: APP_CONFIG_PLUGIN_AI_SERVICE\n value: '{{ .Values.global.ai.enabled }}'\n{{- end }}"` | | | alfresco-digital-workspace.image.pullPolicy | string | `"IfNotPresent"` | | | alfresco-digital-workspace.image.repository | string | `"quay.io/alfresco/alfresco-digital-workspace"` | | | alfresco-digital-workspace.image.tag | string | `"4.3.0"` | | @@ -217,7 +217,6 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b | elasticsearch.clusterHealthCheckParams | string | `"wait_for_status=yellow&timeout=1s"` | | | elasticsearch.enabled | bool | `false` | Enables the embedded elasticsearch cluster | | elasticsearch.replicas | int | `1` | | -| global.ai.enabled | bool | `false` | Enable AI capabilities in ADW AI plugin | | global.alfrescoRegistryPullSecrets | string | `nil` | If a private image registry a secret can be defined and passed to kubernetes, see: https://github.com/Alfresco/acs-deployment/blob/a924ad6670911f64f1bba680682d266dd4ea27fb/docs/helm/eks-deployment.md#docker-registry-secret | | global.known_urls | list | `["https://localhost","http://localhost"]` | list of trusted URLs. URLs a re used to configure Cross-origin protections Also the first entry is considered the main hosting domain of the platform. | | global.mail | object | `{"host":null,"password":null,"port":587,"protocol":"smtp","smtp":{"auth":true,"starttls":{"enable":true}},"smtps":{"auth":true},"username":"anonymous"}` | For a full information of configuring the outbound email system, see https://docs.alfresco.com/content-services/latest/config/email/#manage-outbound-emails | diff --git a/helm/alfresco-content-services/templates/config-transformer-routes.yaml b/helm/alfresco-content-services/templates/config-transformer-routes.yaml deleted file mode 100644 index 16cea2f97..000000000 --- a/helm/alfresco-content-services/templates/config-transformer-routes.yaml +++ /dev/null @@ -1,386 +0,0 @@ -{{- if .Values.global.ai.enabled }} -# Defines transformer routes -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ template "alfresco.shortname" . }}-transform-routes-configmap -data: - ai-pipeline-routes.json: |- - { - "transformers": [ - { - "transformerName": "gifToRekognitionViaJpg", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/gif", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "tiffToRekognitionViaGif", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/gif"}, - {"transformerName": "gifToRekognitionViaJpg"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/tiff", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "pdfToRekognitionViaPng", - "transformerPipeline" : [ - {"transformerName": "pdfrenderer", "targetMediaType": "image/png"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/pdf", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" } - ], - "transformOptions": [ - "pdfRendererOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "officeToRekognitionViaPdf", - "transformerPipeline" : [ - {"transformerName": "libreoffice", "targetMediaType": "application/pdf"}, - {"transformerName": "pdfToRekognitionViaPng"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/msword", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" }, - {"sourceMediaType": "application/vnd.ms-excel", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" }, - {"sourceMediaType": "application/vnd.ms-powerpoint", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.labels.v1+json" } - ], - "transformOptions": [ - "pdfRendererOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "pdfToComprehendEntityRecognitionViaTextract", - "transformerPipeline" : [ - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/pdf", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "officeToComprehendEntityRecognitionViaText", - "transformerPipeline" : [ - {"transformerName": "TikaAuto", "targetMediaType": "text/plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/msword", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" }, - {"sourceMediaType": "application/vnd.ms-excel", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" }, - {"sourceMediaType": "application/vnd.ms-powerpoint", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "msOutlookToComprehendEntityRecognitionViaText", - "transformerPipeline" : [ - {"transformerName": "OutlookMsg", "targetMediaType": "text/plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/vnd.ms-outlook", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "pdfToComprehendClassificationViaText", - "transformerPipeline" : [ - {"transformerName": "PdfBox", "targetMediaType": "text/plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/pdf", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" } - ], - "transformOptions": [ - "pdfboxOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "officeToComprehendClassificationViaText", - "transformerPipeline" : [ - {"transformerName": "libreoffice", "targetMediaType": "text/plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/msword", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" }, - {"sourceMediaType": "application/vnd.ms-excel", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" }, - {"sourceMediaType": "application/vnd.ms-powerpoint", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" }, - {"sourceMediaType": "application/vnd.ms-outlook", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "gifToTextractPlainViaJpg", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/gif", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "tiffToTextractPlainViaGif", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/gif"}, - {"transformerName": "gifToTextractPlainViaJpg"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/tiff", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "gifToTextractViaJpg", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/gif", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "tiffToTextractViaGif", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/gif"}, - {"transformerName": "gifToTextractViaJpg"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/tiff", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "officeToTextractViaPdf", - "transformerPipeline" : [ - {"transformerName": "libreoffice", "targetMediaType": "application/pdf"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/msword", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" }, - {"sourceMediaType": "application/vnd.ms-excel", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" }, - {"sourceMediaType": "application/vnd.ms-powerpoint", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.textract.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "imageToComprendEntityRecognitionViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/png", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" }, - {"sourceMediaType": "image/jpeg", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "gifToComprendEntityRecognitionViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/gif", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "tiffToComprendEntityRecognitionViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "gifToComprendEntityRecognitionViaTextractPlain"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/tiff", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.features.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "imageToComprendClassificationViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/png", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" }, - {"sourceMediaType": "image/jpeg", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "gifToComprendClassificationViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/gif", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "tiffToComprendClassificationViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "gifToComprendClassificationViaTextractPlain"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/tiff", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.classifiers.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "pdfToComprehendPiiEntityTypesViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/pdf", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "officeToComprehendPiiEntityTypesViaText", - "transformerPipeline" : [ - {"transformerName": "TikaAuto", "targetMediaType": "text/plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "application/msword", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" }, - {"sourceMediaType": "application/vnd.ms-excel", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" }, - {"sourceMediaType": "application/vnd.ms-powerpoint", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" }, - {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" }, - {"sourceMediaType": "application/vnd.ms-outlook", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "imageToComprehendPiiEntityTypesViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/png", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" }, - {"sourceMediaType": "image/jpeg", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" } - ], - "transformOptions": [ - "awsAiOptions" - ] - }, - { - "transformerName": "gifToComprehendPiiEntityTypesViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "AWS_AI", "targetMediaType": "application/vnd.alfresco.ai.textract.v1+plain"}, - {"transformerName": "AWS_AI"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/gif", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - }, - { - "transformerName": "tiffToComprehendPiiEntityTypesViaTextractPlain", - "transformerPipeline" : [ - {"transformerName": "imagemagick", "targetMediaType": "image/jpeg"}, - {"transformerName": "gifToComprehendPiiEntityTypesViaTextractPlain"} - ], - "supportedSourceAndTargetList": [ - {"sourceMediaType": "image/tiff", "maxSourceSizeBytes": -1, "targetMediaType": "application/vnd.alfresco.ai.pii.entities.v1+json" } - ], - "transformOptions": [ - "imageMagickOptions", - "awsAiOptions" - ] - } - ] - } -{{- end }} diff --git a/helm/alfresco-content-services/tests/config-infra_test.yaml b/helm/alfresco-content-services/tests/config-infra_test.yaml index be536d7ee..c2f1a5c00 100644 --- a/helm/alfresco-content-services/tests/config-infra_test.yaml +++ b/helm/alfresco-content-services/tests/config-infra_test.yaml @@ -62,7 +62,7 @@ tests: - equal: path: data.SFS_URL value: >- - http://RELEASE-NAME-filestore/alfresco/api/-default-/private/sfs/versions/1/file/ + http://RELEASE-NAME-filestore/alfresco/api/-default-/private/sfs/versions/1/file - notExists: path: data.ATS_URL @@ -112,7 +112,7 @@ tests: - equal: path: data.SFS_URL value: >- - http://RELEASE-NAME-filestore/alfresco/api/-default-/private/sfs/versions/1/file/ + http://RELEASE-NAME-filestore/alfresco/api/-default-/private/sfs/versions/1/file - equal: path: data.ATS_URL value: >- diff --git a/helm/alfresco-content-services/values.yaml b/helm/alfresco-content-services/values.yaml index 013ed092b..f33fbd2ad 100644 --- a/helm/alfresco-content-services/values.yaml +++ b/helm/alfresco-content-services/values.yaml @@ -59,9 +59,6 @@ global: rollingUpdate: maxSurge: 1 maxUnavailable: 0 - ai: - # -- Enable AI capabilities in ADW AI plugin - enabled: false database: # -- Enable using an external database for Alfresco Content Services. Must disable `postgresql.enabled` when true. external: false @@ -365,11 +362,6 @@ alfresco-digital-workspace: APP_CONFIG_PROVIDER: "ECM" APP_CONFIG_AUTH_TYPE: "BASIC" API_URL: "{protocol}//{hostname}{:port}" - extraEnv: |- - {{- if .Values.global.ai.enabled }} - - name: APP_CONFIG_PLUGIN_AI_SERVICE - value: '{{ .Values.global.ai.enabled }}' - {{- end }} securityContext: runAsNonRoot: true runAsUser: 101 @@ -518,6 +510,8 @@ alfresco-ai-transformer: # -- toggle deploying Alfresco ai transformer for more details about configuration check # https://github.com/Alfresco/alfresco-helm-charts/tree/main/charts/alfresco-ai-transformer enabled: false + # -- Enforce static resource naming in AIS so the ATS trouter can be given the URL of the service + fullnameOverride: alfresco-intelligence-service image: repository: quay.io/alfresco/alfresco-ai-docker-engine tag: 3.0.1