{"id":18687552,"url":"https://github.com/alfresco/alfresco-process-application-deployment","last_synced_at":"2026-04-01T17:52:31.748Z","repository":{"id":38085475,"uuid":"229108079","full_name":"Alfresco/alfresco-process-application-deployment","owner":"Alfresco","description":"Helm chart to deploy a single AAE application","archived":false,"fork":false,"pushed_at":"2026-03-24T09:06:39.000Z","size":5546,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":57,"default_branch":"develop","last_synced_at":"2026-03-25T11:17:48.313Z","etag":null,"topics":["aae","activiti","alfresco-activiti-enterprise","apa","helm","helm-chart","hxp-bdu","hxps","kubernetes","product-aae"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Alfresco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-19T17:40:51.000Z","updated_at":"2026-03-24T09:00:56.000Z","dependencies_parsed_at":"2023-12-18T17:02:24.642Z","dependency_job_id":"969dbc57-749e-4c3b-abde-0f2b8a413246","html_url":"https://github.com/Alfresco/alfresco-process-application-deployment","commit_stats":null,"previous_names":[],"tags_count":3893,"template":false,"template_full_name":null,"purl":"pkg:github/Alfresco/alfresco-process-application-deployment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-process-application-deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-process-application-deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-process-application-deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-process-application-deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alfresco","download_url":"https://codeload.github.com/Alfresco/alfresco-process-application-deployment/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alfresco%2Falfresco-process-application-deployment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aae","activiti","alfresco-activiti-enterprise","apa","helm","helm-chart","hxp-bdu","hxps","kubernetes","product-aae"],"created_at":"2024-11-07T10:33:15.618Z","updated_at":"2026-04-01T17:52:31.717Z","avatar_url":"https://github.com/Alfresco.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# alfresco-process-application-deployment\n\n[![Build Status](https://github.com/Alfresco/alfresco-process-application-deployment/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/Alfresco/alfresco-process-application-deployment/actions/workflows/build.yml?query=branch%3Adevelop)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n\nHelm chart to install an AAE application.\n\nFor all the available values, see the chart [README.md](helm/alfresco-process-application/README.md#values).\n\n## Prerequisites\n\nInstall the [AAE infrastructure](https://github.com/Alfresco/alfresco-process-infrastructure-deployment):\n\n```bash\nHELM_OPTS+=\" --set alfresco-deployment-service.enabled=false\"\n\nhelm upgrade aae alfresco/alfresco-process-infrastructure --version 7.1.0-M10 ${HELM_OPTS[*]} --install --wait\n```\n\nA [keycloak security client](https://www.keycloak.org/docs/latest/server_admin/#oidc-clients)\nmust be created with the same name of the application before installing the helm chart.\nBy default the runtime bundle api will validate the user token against that client.\n\nThe expected client level roles are `ACTIVITI_USER` and `ACTIVITI_ADMIN`, and of course\nusers must be associated to either one of the client level roles.\n\n[This procedure can be automated via the alfresco-deployment-cli](docs/create_application_security_client.md).\n\n### add quay-registry-secret\n\nConfigure access to pull images from quay.io in the namespace where the app is to be installed:\n\n```bash\nkubectl create secret \\\n  docker-registry quay-registry-secret \\\n    --docker-server=quay.io \\\n    --docker-username=\"${DOCKER_REGISTRY_USERNAME}\" \\\n    --docker-password=\"${DOCKER_REGISTRY_PASSWORD}\" \\\n    --docker-email=\"none\"\n```\n\n## Install Application\n\nMake sure you add the secret of your registry under `registryPullSecrets` in values.yaml and review contents.\n\nHelm command to install application chart:\n\n```bash\nhelm upgrade app ./helm/alfresco-process-application --install --set global.gateway.domain=your-domain.com\n```\n\n## How To Configure Messaging Broker\n\nTo deploy Rabbitmq message broker, use `values-rabbitmq.yaml`\n```yaml\nglobal:\n  messaging:\n    broker: rabbitmq\n\nrabbitmq:\n  enabled: true\n\nkafka:\n  enabled: false\n```\n\nTo deploy Kafka message broker, use `values-kafka.yaml`\n```yaml\nglobal:\n  messaging:\n    broker: kafka\n\nrabbitmq:\n  enabled: false\n\nkafka:\n  enabled: true\n```\n\nTo connect to external Kafka broker, use global.kafka values:\n```yaml\nglobal:\n  kafka:\n    ## global.kafka.brokers -- Multiple brokers can be provided in a comma separated list host[:port], e.g. host1,host2:port\n    brokers: \"kafka\"\n    ## global.kafka.extraEnv -- extra environment variables string template for Kafka binder parameters,\n    extraEnv: |\n      - name: KAFKA_FOO\n        value: \"BAR\"\n\n## Disable provided Kafka chart\nkafka:\n  enabled: false\n```\n\n\nTo enable partitioned messaging use the following `values-partitioned.yaml`\n```yaml\nglobal:\n  messaging:\n    partitioned: true\n    partitionCount: 2\n```\n\n\n### install.sh\n\nHelper script to launch installation:\n\n```bash\nHELM_OPTS+=\" --debug --dry-run\" ./install.sh\n```\n\nVerify the k8s yaml output than launch again without `--dry-run`.\n\nSupported optional vars:\n\n* **RELEASE_NAME** to handle upgrade or a non auto-generated release name\n* **HELM_OPTS** to pass extra options to helm\n\n## Environment Setup\n\n### setup directories\n\nAdjust as in your local development environment:\n\n```bash\nexport AAE_APPLICATION_CHART_HOME=\"$HOME/src/Alfresco/alfresco-process-application-deployment\"\nexport ACTIVITI_CLOUD_ACCEPTANCE_TESTS_HOME=\"$HOME/src/Activiti/activiti-cloud-application/activiti-cloud-acceptance-scenarios\"\n```\n\n### set main variables\n\n```bash\nexport APP_NAME=\"default-app\"\nexport REALM=\"alfresco\"\n```\n\n### set environment specific variables\n\nDefine a **PROTOCOL** (_http_ or _https_) and **DOMAIN** for your environment.\n\n#### for localhost\n\n```bash\nexport PROTOCOL=\"http\"\nexport GATEWAY_HOST=\"localhost\"\nexport SSO_HOST=\"host.docker.internal\"\n```\n\n#### for AAE dev example environment\n\n```bash\nexport CLUSTER=\"aaedev\"\nexport PROTOCOL=\"https\"\nexport DOMAIN=\"${CLUSTER}.envalfresco.com\"\nexport GATEWAY_HOST=\"${GATEWAY_HOST:-${DOMAIN}}\"\nexport SSO_HOST=\"${SSO_HOST:-${DOMAIN}}\"\n```\n\n### set helm env variables\n\n```bash\nexport HELM_OPTS=\"\n  --debug \\\n  --set global.gateway.http=$(if [[ \"${PROTOCOL}\" == \"http\" ]]; then echo true; else echo false; fi) \\\n  --set global.gateway.host=${GATEWAY_HOST} \\\n  --set global.keycloak.host=${SSO_HOST} \\\n  --set global.keycloak.realm=${REALM}\n\"\n```\n\n\n### Configuration steps for using Volume to get Project files:\n**Note**: This block of steps only relevant if you are using: [example-application-project](https://github.com/Alfresco/example-process-application/tree/master/example-application-project) to fetch project files.\n```\n1. Once the example-project image is built and push to your choice of registry, make sure you add the registry-secret for that registry on the namespace you going to deploy this app.\n2. update values in **values.yaml***\n   - add repository url for volumeinit to pull the project files image\n   - In runtime-bundle - update projectName in order to allow PROJECT_MANIFEST_FILE_PATH to point to the correct json file.\n\nInstallation step:\n\nNote: make sure your Release name is the same as CLASSPATH_DIRECTORY_NAME passed in build.properties for example-applcation-project.\n\nhelm upgrade app ./helm/alfresco-process-application  --install --set global.gateway.domain=your-domain.com\n```\n\n### set test variables\n\n```bash\nexport MODELING_URL=${PROTOCOL}://${GATEWAY_HOST}/modeling-service\nexport GATEWAY_URL=${PROTOCOL}://${GATEWAY_HOST}/${APP_NAME}\nexport SSO_URL=${PROTOCOL}://${SSO_HOST}/auth\n```\n\n#### run application acceptance tests\n\nTo test, [set test](#set-test-variables) then run:\n\n```bash\ncd ${ACTIVITI_CLOUD_ACCEPTANCE_TESTS_HOME}\nmvn -pl 'runtime-acceptance-tests' clean verify serenity:aggregate\n```\n\n### override Docker images with internal Docker Registry\n\n```bash\nexport REGISTRY_HOST=registry.your-domain.com\n\nmake login\n\nmake values-registry.yaml\n\nHELM_OPTS+=\"-f values-registry.yaml\"\n```\nthen [install application](#install-application)\n\n\n## Testing\n\n### Notification Service\n\nOpen GraphiQL UI and login with an admin user like _testadmin:password_:\n```bash\nopen ${GATEWAY_URL}/graphiql\n```\n\nand input the following GraphQL query after running acceptance tests to see _process instances_:\n```\n{\n  ProcessInstances {\n    select {\n      id\n      status\n      name\n      processDefinitionId\n      processDefinitionKey\n      processDefinitionVersion\n      tasks {\n        id\n        name\n        status\n        assignee\n      }\n      variables {\n        id\n        name\n        type\n        value\n      }\n    }\n  }\n}\n```\n\nthen input the following GraphQL to create a subscription and run processes to see events arriving via websockets:\n```\nsubscription {\n engineEvents {\n   serviceName\n   appName\n   businessKey\n   PROCESS_STARTED {\n     id\n     timestamp\n     entity {\n       id\n       parentId\n       name\n       description\n       businessKey\n       initiator\n     }\n   }\n   PROCESS_COMPLETED {\n     id\n     timestamp\n     entity {\n       id\n       parentId\n       name\n       description\n       businessKey\n       initiator\n     }\n   }\n   TASK_CREATED {\n     id\n     entity {\n       id\n       priority\n       status\n       assignee\n       dueDate\n       createdDate\n       claimedDate\n       description\n     }\n   }\n   TASK_ASSIGNED {\n     id\n     entity {\n       id\n       priority\n       status\n       assignee\n       dueDate\n       createdDate\n       claimedDate\n       description\n     }\n   }\n   TASK_COMPLETED {\n     id\n     entity {\n       id\n       priority\n       status\n       assignee\n       dueDate\n       createdDate\n       claimedDate\n       description\n     }\n   }\n }\n}\n```\n\n## CI/CD\n\nRunning on GH Actions.\n\nFor Dependabot PRs to be validated by CI, the label \"CI\" should be added to the PR.\n\nRequires the following secrets to be set:\n\n| Name                                                  | Description                            |\n| ----------------------------------------------------- | -------------------------------------- |\n| BOT_GITHUB_TOKEN                                      | Token to launch other builds on GH     |\n| BOT_GITHUB_USERNAME                                   | Username to issue propagation PRs      |\n| RANCHER2_URL                                          | Rancher URL to perform helm tests      |\n| RANCHER2_ACCESS_KEY                                   | Rancher access key                     |\n| RANCHER2_SECRET_KEY                                   | Rancher secret key                     |\n| TEAMS_NOTIFICATION_AUTOMATE_BACKEND_WORKFLOW_WEBHOOK  | Webhook to notify Teams on failure     |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfresco%2Falfresco-process-application-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falfresco%2Falfresco-process-application-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfresco%2Falfresco-process-application-deployment/lists"}