To deploy a configuration on the Repository side copy the JSON file, for example custom_pipelines.json into the
tomcat/shared/classes/alfresco/extension/transform/pipelines directory. Then make sure alfresco-global.properties is
configured with the default location for transform pipelines:
local.transform.pipeline.config.dir=shared/classes/alfresco/extension/transform/pipelines
On startup this location is checked every 10 seconds, but then switches to once an hour if successful. After a problem, it tries every 10 seconds again. These are the same properties used to decide when to read T-Engine configurations, because pipelines combine transformers in the T-Engines.
local.transform.service.cronExpression=4 30 0/1 * * ?
local.transform.service.initialAndOnError.cronExpression=0/10 * * * * ?
If you are using Docker Compose in development, you will need to copy your pipeline definition into your running Repository container. One way is to use the following command, and it will be picked up the next time the location is read, which is dependent on the cron values.
docker cp custom_pipelines.json <alfresco container>:/usr/local/tomcat/shared/classes/alfresco/extension/transform/pipelines/
In a Kubernetes environment, ConfigMaps
can be used to add pipeline definitions. You will need to create a ConfigMap from the JSON file and mount the ConfigMap
through a volume to the Repository pods.
kubectl create configmap custom-pipeline-config --from-file=custom_pipelines.json
The necessary volumes are already provided out of the box and the files in ConfigMap custom-pipeline-config will be mounted to
/usr/local/tomcat/shared/classes/alfresco/extension/transform/pipelines/. Again, the files will be picked up the next
time the location is read, or when the repository pods are restarted.
Note
From Kubernetes documentation: Caution: If there are some files in the mountPath location, they will be deleted.