Flowable DMN API
REST API for the DMN rules engine enabling deployment and execution of decision tables, single and multi-result decision execution, and management of decision definitions and deployments.
REST API for the DMN rules engine enabling deployment and execution of decision tables, single and multi-result decision execution, and management of decision definitions and deployments.
openapi: 3.0.0
info:
description: "# flowable / flowəb(ə)l /\r\n\r\n- a compact and highly efficient\
\ workflow and Business Process Management (BPM) platform for developers, system\
\ admins and business users.\r\n- a lightning fast, tried and tested BPMN 2 process\
\ engine written in Java. It is Apache 2.0 licensed open source, with a committed\
\ community.\r\n- can run embedded in a Java application, or as a service on a\
\ server, a cluster, and in the cloud. It integrates perfectly with Spring. With\
\ a rich Java and REST API, it is the ideal engine for orchestrating human or\
\ system activities."
version: v1
title: Flowable DMN REST API
contact:
name: Flowable
url: http://www.flowable.org/
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
tags:
- name: DMN Decision Service
- name: DMN Rule Service
- name: Decision
- name: Decision Tables
- name: Decisions
- name: Deployment
- name: Engine
- name: Historic Decision Executions
paths:
/dmn-history/historic-decision-executions:
get:
tags:
- Historic Decision Executions
summary: List of historic decision executions
description: ''
operationId: listHistoricDecisionExecutions
parameters:
- name: id
in: query
description: Only return historic decision executions with the given id.
required: false
schema:
type: string
- name: decisionDefinitionId
in: query
description: Only return historic decision executions with the given definition
id.
required: false
schema:
type: string
- name: deploymentId
in: query
description: Only return historic decision executions with the given deployment
id.
required: false
schema:
type: string
- name: decisionKey
in: query
description: Only return historic decision executions with the given decision
key.
required: false
schema:
type: string
- name: activityId
in: query
description: Only return historic decision executions with the given activity
id.
required: false
schema:
type: string
- name: executionId
in: query
description: Only return historic decision executions with the given execution
id.
required: false
schema:
type: string
- name: instanceId
in: query
description: Only return historic decision executions with the given instance
id.
required: false
schema:
type: string
- name: scopeType
in: query
description: Only return historic decision executions with the given scope
type.
required: false
schema:
type: string
- name: withoutScopeType
in: query
description: Only return historic decision executions without a scope type.
required: false
schema:
type: string
- name: processInstanceIdWithChildren
in: query
description: Return all historic decision executions with the given process
instance id or its entity link children.
required: false
schema:
type: string
- name: caseInstanceIdWithChildren
in: query
description: Return all historic decision executions with the given case instance
id or its entity link children.
required: false
schema:
type: string
- name: failed
in: query
description: Only return historic decision executions with the failed state.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return historic decision executions with the given tenant
id.
required: false
schema:
type: string
- name: tenantIdLike
in: query
description: Only return historic decision executions like the given tenant
id.
required: false
schema:
type: string
- name: sort
in: query
description: Property to sort on, to be used together with the order.
required: false
schema:
type: string
enum:
- startTime
- endTime
- tenantId
- name: order
in: query
description: The sort order, either 'asc' or 'desc'. Defaults to 'asc'.
required: false
schema:
type: string
- name: start
in: query
description: Index of the first row to fetch. Defaults to 0.
required: false
schema:
type: integer
- name: size
in: query
description: Number of rows to fetch, starting from start. Defaults to 10.
required: false
schema:
type: integer
responses:
'200':
description: Indicates request was successful and the historic decision
executions are returned
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseHistoricDecisionExecutionResponse'
'400':
description: Indicates a parameter was passed in the wrong format. The status-message
contains additional information.
security:
- basicAuth: []
/dmn-history/historic-decision-executions/{historicDecisionExecutionId}:
get:
tags:
- Historic Decision Executions
summary: Get a historic decision execution
description: ''
operationId: getHistoricDecisionExecution
parameters:
- name: historicDecisionExecutionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates request was successful and the historic decision
execution is returned
content:
application/json:
schema:
$ref: '#/components/schemas/HistoricDecisionExecutionResponse'
'404':
description: Indicates the requested historic decision execution was not
found.
security:
- basicAuth: []
/dmn-history/historic-decision-executions/{historicDecisionExecutionId}/auditdata:
get:
tags:
- Historic Decision Executions
summary: Get a historic decision execution audit content
description: ''
operationId: getHistoricDecisionExecutionAuditData
parameters:
- name: historicDecisionExecutionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the historic decision execution has been found and
the audit data has been returned.
content:
application/json:
schema:
type: string
'404':
description: Indicates the requested historic decision execution was not
found. The status-description contains additional information.
security:
- basicAuth: []
/dmn-management/engine:
get:
tags:
- Engine
summary: Get DMN engine info
description: Returns a read-only view of the DMN engine that is used in this
REST-service.
operationId: getEngineInfo
responses:
'200':
description: Indicates the engine info is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/EngineInfoResponse'
security:
- basicAuth: []
/dmn-repository/decision-tables:
get:
tags:
- Decision Tables
summary: List of decision tables
description: ''
operationId: listDecisionTables
parameters:
- name: category
in: query
description: Only return decision tables with the given category.
required: false
schema:
type: string
- name: categoryLike
in: query
description: Only return decision tables with a category like the given name.
required: false
schema:
type: string
- name: categoryNotEquals
in: query
description: Only return decision tables which do not have the given category.
required: false
schema:
type: string
- name: key
in: query
description: Only return decision tables with the given key.
required: false
schema:
type: string
- name: keyLike
in: query
description: Only return decision tables with a name like the given key.
required: false
schema:
type: string
- name: name
in: query
description: Only return decision tables with the given name.
required: false
schema:
type: string
- name: nameLike
in: query
description: Only return decision tables with a name like the given name.
required: false
schema:
type: string
- name: resourceName
in: query
description: Only return decision tables with the given resource name.
required: false
schema:
type: string
- name: resourceNameLike
in: query
description: Only return decision tables with a name like the given resource
name.
required: false
schema:
type: string
- name: version
in: query
description: Only return decision tables with the given version.
required: false
schema:
type: integer
- name: latest
in: query
description: Only return the latest decision tables versions. Can only be
used together with key and keyLike parameters, using any other parameter
will result in a 400-response.
required: false
schema:
type: boolean
- name: deploymentId
in: query
description: Only return decision tables with the given category.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return decision tables with the given tenant ID.
required: false
schema:
type: string
- name: sort
in: query
description: Property to sort on, to be used together with the order.
required: false
schema:
type: string
enum:
- name
- id
- key
- category
- deploymentId
- version
- name: order
in: query
description: The sort order, either 'asc' or 'desc'. Defaults to 'asc'.
required: false
schema:
type: string
- name: start
in: query
description: Index of the first row to fetch. Defaults to 0.
required: false
schema:
type: integer
- name: size
in: query
description: Number of rows to fetch, starting from start. Defaults to 10.
required: false
schema:
type: integer
responses:
'200':
description: Indicates request was successful and the process-definitions
are returned
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseDecisionResponse'
'400':
description: Indicates a parameter was passed in the wrong format or that
latest is used with other parameters other than key and keyLike. The status-message
contains additional information.
security:
- basicAuth: []
/dmn-repository/decision-tables/{decisionTableId}:
get:
tags:
- Decision Tables
summary: Get a decision table
description: ''
operationId: getDecisionTable
parameters:
- name: decisionTableId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates request was successful and the decision table is
returned
content:
application/json:
schema:
$ref: '#/components/schemas/DecisionResponse'
'404':
description: Indicates the requested decision table was not found.
security:
- basicAuth: []
/dmn-repository/decision-tables/{decisionTableId}/model:
get:
tags:
- Decision Tables
summary: Get a decision table DMN (definition) model
description: ''
operationId: getDecisionTableModel
parameters:
- name: decisionTableId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the decision table was found and the model is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/DmnDefinition'
'404':
description: Indicates the requested decision table was not found.
security:
- basicAuth: []
/dmn-repository/decision-tables/{decisionTableId}/resourcedata:
get:
tags:
- Decision Tables
summary: Get a decision table resource content
description: ''
operationId: getDecisionTableResource
parameters:
- name: decisionTableId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates both decision table and resource have been found
and the resource data has been returned.
content:
application/json:
schema:
type: array
items:
type: string
format: byte
'404':
description: Indicates the requested decision table was not found or there
is no resource with the given id present in the decision table. The status-description
contains additional information.
security:
- basicAuth: []
/dmn-repository/decisions:
get:
tags:
- Decisions
summary: List of decision
description: ''
operationId: listDecisions
parameters:
- name: category
in: query
description: Only return decision with the given category.
required: false
schema:
type: string
- name: categoryLike
in: query
description: Only return decision with a category like the given name.
required: false
schema:
type: string
- name: categoryNotEquals
in: query
description: Only return decision which do not have the given category.
required: false
schema:
type: string
- name: key
in: query
description: Only return decision with the given key.
required: false
schema:
type: string
- name: keyLike
in: query
description: Only return decision with a name like the given key.
required: false
schema:
type: string
- name: name
in: query
description: Only return decision with the given name.
required: false
schema:
type: string
- name: nameLike
in: query
description: Only return decision with a name like the given name.
required: false
schema:
type: string
- name: resourceName
in: query
description: Only return decision with the given resource name.
required: false
schema:
type: string
- name: resourceNameLike
in: query
description: Only return decision with a name like the given resource name.
required: false
schema:
type: string
- name: version
in: query
description: Only return decision with the given version.
required: false
schema:
type: integer
- name: latest
in: query
description: Only return the latest decision versions. Can only be used together
with key and keyLike parameters, using any other parameter will result in
a 400-response.
required: false
schema:
type: boolean
- name: deploymentId
in: query
description: Only return decisions which are part of a deployment with the
given deployment id.
required: false
schema:
type: string
- name: parentDeploymentId
in: query
description: Only return decisions which are part of a deployment with the
given parent deployment id.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return decision with the given tenant ID.
required: false
schema:
type: string
- name: decisionType
in: query
description: Only return decision with the given type.
required: false
schema:
type: string
- name: decisionTypeLike
in: query
description: Only return decision like the given type.
required: false
schema:
type: string
- name: sort
in: query
description: Property to sort on, to be used together with the order.
required: false
schema:
type: string
enum:
- name
- id
- key
- category
- deploymentId
- version
- decisionType
- name: order
in: query
description: The sort order, either 'asc' or 'desc'. Defaults to 'asc'.
required: false
schema:
type: string
- name: start
in: query
description: Index of the first row to fetch. Defaults to 0.
required: false
schema:
type: integer
- name: size
in: query
description: Number of rows to fetch, starting from start. Defaults to 10.
required: false
schema:
type: integer
responses:
'200':
description: Indicates request was successful and the process-definitions
are returned
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseDecisionResponse'
'400':
description: Indicates a parameter was passed in the wrong format or that
latest is used with other parameters other than key and keyLike. The status-message
contains additional information.
security:
- basicAuth: []
/dmn-repository/decisions/{decisionId}:
get:
tags:
- Decisions
summary: Get a decision
description: ''
operationId: getDecision
parameters:
- name: decisionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates request was successful and the decision is returned
content:
application/json:
schema:
$ref: '#/components/schemas/DecisionResponse'
'404':
description: Indicates the requested decision was not found.
security:
- basicAuth: []
/dmn-repository/decisions/{decisionId}/image:
get:
tags:
- Decisions
summary: Get a decision requirements diagram image
description: ''
operationId: getImageResource
parameters:
- name: decisionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates request was successful and the decision requirements
diagram image returned
content:
image/png:
schema:
type: array
items:
type: string
format: byte
'404':
description: Indicates the requested decision requirements diagram image
was not found.
security:
- basicAuth: []
/dmn-repository/decisions/{decisionId}/model:
get:
tags:
- Decisions
summary: Get a decision DMN (definition) model
description: ''
operationId: getDecisionModel
parameters:
- name: decisionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the decision was found and the model is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/DmnDefinition'
'404':
description: Indicates the requested decision was not found.
security:
- basicAuth: []
/dmn-repository/decisions/{decisionId}/resourcedata:
get:
tags:
- Decisions
summary: Get a decision resource content
description: ''
operationId: getDecisionResource
parameters:
- name: decisionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates both decision and resource have been found and the
resource data has been returned.
content:
application/json:
schema:
type: array
items:
type: string
format: byte
'404':
description: Indicates the requested decision was not found or there is
no resource with the given id present in the decision . The status-description
contains additional information.
security:
- basicAuth: []
/dmn-repository/deployments:
get:
tags:
- Deployment
summary: List of decision deployments
description: ''
operationId: listDecisionDeployments
parameters:
- name: name
in: query
description: Only return decision deployments with the given name.
required: false
schema:
type: string
- name: nameLike
in: query
description: Only return decision deployments with a name like the given name.
required: false
schema:
type: string
- name: category
in: query
description: Only return decision deployments with the given category.
required: false
schema:
type: string
- name: categoryNotEquals
in: query
description: Only return decision deployments which do not have the given
category.
required: false
schema:
type: string
- name: parentDeploymentId
in: query
description: Only return decision deployments with the given parent deployment
id.
required: false
schema:
type: string
- name: parentDeploymentIdLike
in: query
description: Only return decision deployments with a parent deployment id
like the given value.
required: false
schema:
type: string
- name: tenantId
in: query
description: Only return decision deployments with the given tenantId.
required: false
schema:
type: string
- name: tenantIdLike
in: query
description: Only return decision deployments with a tenantId like the given
value.
required: false
schema:
type: string
- name: withoutTenantId
in: query
description: If true, only returns decision deployments without a tenantId
set. If false, the withoutTenantId parameter is ignored.
required: false
schema:
type: boolean
- name: sort
in: query
description: Property to sort on, to be used together with the order.
required: false
schema:
type: string
enum:
- id
- name
- deployTime
- tenantId
- name: order
in: query
description: The sort order, either 'asc' or 'desc'. Defaults to 'asc'.
required: false
schema:
type: string
- name: start
in: query
description: Index of the first row to fetch. Defaults to 0.
required: false
schema:
type: integer
- name: size
in: query
description: Number of rows to fetch, starting from start. Defaults to 10.
required: false
schema:
type: integer
responses:
'200':
description: Indicates the request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/DataResponseDmnDeploymentResponse'
security:
- basicAuth: []
post:
tags:
- Deployment
summary: Create a new decision deployment
description: 'The request body should contain data of type multipart/form-data.
There should be exactly one file in the request, any additional files will
be ignored. The deployment name is the name of the file-field passed in. If
multiple resources need to be deployed in a single deployment, compress the
resources in a zip and make sure the file-name ends with .bar or .zip.
An additional parameter (form-field) can be passed in the request body with
name tenantId. The value of this field will be used as the id of the tenant
this deployment is done in.'
operationId: uploadDecisionDeployment
parameters:
- name: tenantId
in: query
required: false
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'201':
description: Indicates the deployment was created.
content:
application/json:
schema:
$ref: '#/components/schemas/DmnDeploymentResponse'
'400':
description: Indicates there was no content present in the request body
or the content mime-type is not supported for deployment. The status-description
contains additional information.
security:
- basicAuth: []
/dmn-repository/deployments/{deploymentId}:
get:
tags:
- Deployment
summary: Get a decision deployment
description: ''
operationId: getDecisionDeployment
parameters:
- name: deploymentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates the deployment was found and returned.
content:
application/json:
schema:
$ref: '#/components/schemas/DmnDeploymentResponse'
'404':
description: Indicates the requested deployment was not found.
security:
- basicAuth: []
delete:
tags:
- Deployment
summary: Delete a decision deployment
description: ''
operationId: deleteDecisionDeployment
parameters:
- name: deploymentId
in: path
required: true
schema:
type: string
responses:
'204':
description: Indicates the deployment was found and has been deleted. Response-body
is intentionally empty.
'404':
description: Indicates the requested deployment was not found.
security:
- basicAuth: []
/dmn-repository/deployments/{deploymentId}/resourcedata/{resourceName}:
get:
tags:
- Deployment
summary: Get a decision deployment resource content
description: The response body will contain the binary resource-content for
the requested resource. The response content-type will be the same as the
type returned in the resources mimeType property. Also, a content-disposition
header is set, allowing browsers to download the file instead of displaying
it.
operationId: getDecisionTableDeploymentResource
parameters:
- name: deploymentId
in: path
required: true
schema:
type: string
- name: resourceName
in: path
required: true
schema:
type: string
responses:
'200':
description: Indicates both deployment and resource have been found and
the resource data has been returned.
content:
'*/*':
schema:
type: array
items:
type: string
format: byte
'404':
description: Indicates the requested deployment was not found or there is
no resource with the given id present in the deployment. The status-description
contains additional information.
security:
- basicAuth: []
/dmn-rule/execute:
post:
tags:
- DMN Rule Service
summary: Execute a Decision
description: ''
operationId: execute
requestBody:
$ref: '#/components/requestBodies/DmnRuleServiceRequest'
responses:
'201':
description: Indicates the Decision has been executed
content:
application/json:
schema:
$ref: '#/components/schemas/DmnRuleServiceResponse'
security:
- basicAuth: []
/dmn-rule/execute-decision:
post:
tags:
- DMN Decision Service
summary: Execute a decision
description: ''
operationId: executeDecision
requestBody:
$ref: '#/components/requestBodies/DmnRuleServiceRequest'
responses:
'201':
description: Indicates the decision has been executed
content:
application/json:
schema:
$ref: '#/components/schemas/DmnRuleServiceResponse'
security:
- basicAuth: []
/dmn-rule/execute-decision-service:
post:
tags:
- DMN Decision Service
summary: Execute a decision service
description: ''
operationId: executeDecisionService
requestBody:
$ref: '#/components/requestBodies/DmnRuleServiceRequest'
responses:
'201':
description: Indicates the decision service has been executed
content:
application/json:
schema:
$ref: '#/components/schemas/DmnRuleServiceResponse'
security:
- basicAuth: []
/dmn-rule/execute-decision-service/single-result:
post:
tags:
- DMN Decision Service
summary: Execute a decision service expecting a single result
description: ''
operationId: executeDecisionServiceWithSingleResult
requestBody:
$ref: '#/components/requestBodies/DmnRuleServiceRequest'
responses:
'201':
description: Indicates the decision service has been executed
content:
application/json:
schema:
$ref: '#/components/schemas/DmnRuleServiceSingleResponse'
'500':
description: Indicates the decision service returned multiple results
security:
- basicAuth: []
/dmn-rule/execute-decision/single-result:
post:
tags:
- DMN Decision Service
summary: Execute a decision expecting a single result
description: ''
operationId: executeDecisionWithSingleResult
requestBody:
$ref: '#/components/requestBodies/DmnRuleServiceRequest'
responses:
'201':
description: Indicates the decision or decision service has been executed
content:
application/json:
schema:
$ref: '#/components/schemas/DmnRuleServiceSingleResponse'
'500':
description: Indicates the decision returned multiple results
security:
- basicAuth: []
/dmn-rule/execute/single-result:
post:
tags:
- DMN Rule Service
summary: Execute a decision or a decision service expecting a single result
description: ''
operationId: executeWithSingleResu
# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/flowable/refs/heads/main/openapi/flowable-dmn-openapi.yml