Deployment of Base Component and Workflows¶
At each start of the backend the included base components and workflows are deployed automatically, also if the hetida designer database is not empty (see below).
You can suppress the auto-deployment by setting the environment variable HD_BACKEND_AUTODEPLOY_BASE_TRANSFORMATIONS to false in the docker-compose.yml or docker-compose-dev.yml file.
...
hetida-designer-backend:
...
environment:
...
- HD_BACKEND_AUTODEPLOY_BASE_TRANSFORMATIONS=false
...
...
...
If the database is not empty, the base components and workflows stored in your database are overwritten by the version in the image. This way fixes of base components and workflows arrive with a new image, even if they are made in already released revisions. This might affect the reproducibility of workflows using them. Despite that any other components or workflows that you created stay untouched.
You can disable auto-deployment if the database is not empty by setting the environment variable HD_BACKEND_PRESERVE_DB_ON_AUTODEPLOY to true in the docker-compose.yml or docker-compose-dev.yml file. Up to version 0.14.6 this was the default.
You can disable overwriting released and disabled components and workflows during the auto-deployment by setting the environment variable HD_BACKEND_ALLOW_OVERWRITE_RELEASED to false in the docker-compose.yml or docker-compose-dev.yml file.
Recommendation
It is recommended to allow overwriting so that bug fixes of released components and workflows are automatically deployed. If you preserve the database or disabled overwriting during auto-deploy, you can deploy such updates manually as described below.
Not setting HD_BACKEND_AUTODEPLOY_BASE_TRANSFORMATIONS or HD_BACKEND_ALLOW_OVERWRITE_RELEASED has the same result as setting them to true. Not setting HD_BACKEND_PRESERVE_DB_ON_AUTODEPLOY has the same result as setting it to false.
Manual Deployment of Base Component and Workflows¶
If you de-activated auto-deployment of base components and workflows and want to deploy them now at a later stage, you should run
docker run --rm \
-e "HETIDA_DESIGNER_BACKEND_API_URL=http://hetida-designer-backend:8090/api/" \
--name htdruntime_deployment \
--network hetida-designer-network \
--entrypoint python hetida/designer-runtime -c 'from hetdesrun.exportimport.importing import import_transformation_from_dir; import_transformation_from_dir("./transformations/");'
Note that in the case of the development environment it makes sense to run the deployment command using the locally built runtime image via
docker run --rm \
-e "HETIDA_DESIGNER_BACKEND_API_URL=http://hetida-designer-backend:8090/api/" \
--name htdruntime_deployment \
--network hetida-designer-network \
--entrypoint python hetida-designer_hetida-designer-runtime -c 'from hetdesrun.exportimport.importing import import_transformation_from_dir; import_transformation_from_dir("./transformations/");'
In case your checked out repository directory has a different name replace hetida-designer_hetida-designer-runtime by <directory name>_hetida-designer-runtime.