Camunda Deploy

Camunda Deploy

Certified

Deploy BPMN, DMN and form resources to a Camunda cluster

Sends one deployment command holding every resource, so either all of them are deployed or none is. A resource value is either the file content itself or a kestra:// internal storage URI produced by an earlier task.

yaml
type: io.kestra.plugin.camunda.Deploy

Deploy a BPMN process stored as a Namespace File.

yaml
id: deploy_camunda_process
namespace: company.team

tasks:
  - id: deploy
    type: io.kestra.plugin.camunda.Deploy
    restAddress: "{{ secret('CAMUNDA_REST_ADDRESS') }}"
    clientId: "{{ secret('CAMUNDA_CLIENT_ID') }}"
    clientSecret: "{{ secret('CAMUNDA_CLIENT_SECRET') }}"
    authorizationServerUrl: "{{ secret('CAMUNDA_AUTH_SERVER_URL') }}"
    audience: "{{ secret('CAMUNDA_AUDIENCE') }}"
    resources:
      order-fulfillment.bpmn: "{{ read('order-fulfillment.bpmn') }}"

Deploy a process and a decision table together against a local development cluster.

yaml
id: deploy_camunda_resources
namespace: company.team

tasks:
  - id: deploy
    type: io.kestra.plugin.camunda.Deploy
    restAddress: http://localhost:8080
    resources:
      order-fulfillment.bpmn: "{{ read('order-fulfillment.bpmn') }}"
      discount.dmn: "{{ read('discount.dmn') }}"

  - id: log_deployment
    type: io.kestra.plugin.core.log.Log
    message: "Deployed {{ outputs.deploy.processes | length }} process(es) as deployment {{ outputs.deploy.deploymentKey }}"
Properties
SubTypestring

Resources to deploy, keyed by resource name

The key is the resource name and must end with .bpmn or .xml for a process, .dmn for a decision, or .form for a form. The value is either the resource content or a kestra:// internal storage URI.

OAuth2 audience

Required for OAuth2 against a self-managed cluster. The audience claim the identity provider must issue the token for, commonly zeebe-api. Derived from the cluster for Camunda SaaS, so leave it unset there.

OAuth2 token endpoint

Required for OAuth2 against a self-managed cluster, for example http://localhost: 18080/auth/realms/camunda-platform/protocol/openid-connect/token.

OAuth2 client ID

Set together with clientSecret and either authorizationServerUrl (self-managed) or clusterId (SaaS).

OAuth2 client secret

Set together with clientId.

Camunda SaaS cluster ID

Switches the client to SaaS mode, where restAddress and grpcAddress are derived from the cluster ID and region.

gRPC gateway address of the Camunda cluster

For a self-managed cluster, for example http://localhost: 26500. Setting it without restAddress sends this task's commands over gRPC instead of REST.

Password for Basic authentication

Must be set together with username.

Camunda SaaS region

For example bru-2. Only used with clusterId.

REST API base URL of the Camunda cluster

For a self-managed cluster, the orchestration cluster address, for example http://localhost: 8080. Commands use the REST API unless only grpcAddress is set.

Camunda tenant ID

Camunda's own multi-tenancy identifier, unrelated to the Kestra tenant the flow runs in. Applied to every command this task sends. Defaults to <default>, which is the only tenant on a cluster that does not have multi-tenancy enabled.

Possible Values
RESTGRPC

Which API to send commands over

Defaults to gRPC on Camunda SaaS, and on a self-managed cluster to the API implied by whichever address is set, falling back to REST when both or neither are. SaaS defaults to gRPC because a default free-tier cluster answers 404 Not Found on the REST base the client derives, while gRPC succeeds with the same credentials. Set REST to opt back in if your cluster serves it.

Username for Basic authentication

Must be set together with password. Mutually exclusive with the OAuth2 properties.

Decisions deployed by this command

Definitions
decisionKeyinteger

Key assigned to this decision

dmnDecisionIdstring

DMN decision ID

dmnDecisionNamestring

DMN decision name

versioninteger

Version of the decision

Key of the created deployment

Forms deployed by this command

Definitions
formIdstring

Form ID

formKeyinteger

Key assigned to this form

resourceNamestring

Name of the deployed resource

versioninteger

Version of the form

Processes deployed by this command

Definitions
bpmnProcessIdstring

BPMN process ID, the id attribute of the process element

processDefinitionKeyinteger

Key assigned to this process definition

resourceNamestring

Name of the deployed resource

versioninteger

Version of the process definition

Tenant the deployment belongs to