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.

OpenAPI Specification

flowable-dmn-openapi.yml Raw ↑
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