Skip to main content

KuFlow Public API (2022-10-08)

Download OpenAPI specification:Download

Introduction

This document contains the KuFlow REST API reference. This API is a fundamental part in the integration of external systems with KuFlow and is used, among others, by the different implementations of the Workers that connect to our network.

API Versioning

A versioning strategy allows our clients to continue using the existing REST API and migrate their applications to the newer API when they are ready.

The scheme followed is a simplification of Semver where only MAJOR versions are differentiated from MINOR or PATCH versions, i.e. a version number of only two levels is used. With this approach, you only have to migrate your applications if you want to upgrade to a MAJOR version of the KuFlow API. In case you want to upgrade to a MINOR version, you can do so without any incompatibility issues.

The versioning of the api is done through the URI Path, that is, the version number is included in the URI Path. The URL structure would be as follows:

https://{endpoint}/v{VERSION}/{api-path}

Idempotency

The API is designed to support idempotency in order to achieve a correct resilience in the implementation of its clients. The way to achieve this is very simple, in the methods that create resources, you simply have to specify a UUID in the input data and the API will respond by creating or returning the resource if it previously existed. With this mechanism, your systems can implement retry logic without worrying about performing data tradeoffs.

OpenAPI Specification

This API is documented in OpenAPI format. This file allows you to create REST clients with the technology of your choice automatically.

Principal

Operations about principals.

Find all accessible Principals

List all the Principals that have been created and the used credentials has access.

Available sort query values: id, name

Authorizations:
BasicAuthBearerAuthOAuth2Auth
query Parameters
size
integer [ 0 .. 1000 ]
Default: 25

The number of records returned within a single API call.

page
integer >= 0
Default: 0

The page number of the current page in the returned records, 0 is the first page.

sort
Array of strings

Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc

Default sort order is ascending. Multiple sort criteria are supported.

Please refer to the method description for supported properties.

type
string (PrincipalType)
Enum: "USER" "APPLICATION" "SYSTEM"

Filter principals by type.

groupId
Array of strings <uuid> [ items <uuid > ]

Filter by group ids.

tenantId
Array of strings <uuid> [ items <uuid > ]

Filter by tenantId.

Responses

Response samples

Content type
application/json
{
  • "objectType": "PRINCIPAL_PAGE",
  • "metadata": {
    },
  • "content": [
    ]
}

Get a Principal by ID

Returns the requested Principal when has access to do it.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "USER",
  • "name": "string",
  • "user": {
    },
  • "application": {
    }
}

Tenant User

Operations about tenant users.

Find all accessible Tenant Users

List all the Tenant Users that have been created and the used credentials has access.

Available sort query values: id, createdAt, lastModifiedAt

Authorizations:
BasicAuthBearerAuthOAuth2Auth
query Parameters
size
integer [ 0 .. 1000 ]
Default: 25

The number of records returned within a single API call.

page
integer >= 0
Default: 0

The page number of the current page in the returned records, 0 is the first page.

sort
Array of strings

Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc

Default sort order is ascending. Multiple sort criteria are supported.

Please refer to the method description for supported properties.

groupId
Array of strings <uuid> [ items <uuid > ]

Filter by group ids.

email
Array of strings <email> [ items <email > ]

Filter by email.

tenantId
Array of strings <uuid> [ items <uuid > ]

Filter by tenantId.

Responses

Response samples

Content type
application/json
{
  • "objectType": "PRINCIPAL_PAGE",
  • "metadata": {
    },
  • "content": [
    ]
}

Get a Tenant User by ID

Returns the requested TenantUser when has access to do it.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "metadata": {
    },
  • "principal": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Process

Operations about processes.

Find all accessible Processes

List all the Processes that have been created and the credentials has access.

Available sort query values: id, createdAt, lastModifiedAt

Authorizations:
BasicAuthBearerAuthOAuth2Auth
query Parameters
size
integer [ 0 .. 1000 ]
Default: 25

The number of records returned within a single API call.

page
integer >= 0
Default: 0

The page number of the current page in the returned records, 0 is the first page.

sort
Array of strings

Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc

Default sort order is ascending. Multiple sort criteria are supported.

Please refer to the method description for supported properties.

tenantId
Array of strings <uuid> [ items <uuid > ]

Filter by tenantId.

Responses

Response samples

Content type
application/json
{
  • "objectType": "PRINCIPAL_PAGE",
  • "metadata": {
    },
  • "content": [
    ]
}

Create a new process

Creates a process. This option has direct correspondence to the action of starting a process in the Kuflow GUI.

When a process is created, the current user is assigned as the process initiator, if you want to change it, you can pass a valid initiator using the following options:

  • If you know the principal ID you can assign it to initiator.id
  • If you know the user ID you can assign it to initiator.user.id
  • If you know the user email you can assign it to initiator.user.email
  • If you know the application ID you can assign it to initiator.application.id

If you want the method to be idempotent, please specify the id field in the request body.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
Request Body schema: application/json
required

Process to create

objectType
string (AuditedObjectType)
Deprecated
Enum: "AUTHENTICATION" "TENANT_USER" "PROCESS" "PROCESS_PAGE_ITEM" "TASK" "TASK_PAGE_ITEM" "WORKER" "ROBOT"

Audited object Types.

createdBy
string <uuid>

Who create this model.

createdAt
string <date-time>

When this model was created.

lastModifiedBy
string <uuid>

Who was last update this model.

lastModifiedAt
string <date-time>

When this model type was last updated.

id
string <uuid>

Process ID.

subject
string [ 1 .. 255 ] characters

Process subject.

state
string (ProcessState)
Enum: "RUNNING" "COMPLETED" "CANCELLED"

Process state

required
object (ProcessDefinitionSummary)
object

Process element values, an ElementValueDocument is not allowed.

object (JsonFormsValue)

Json form values, used when the render type selected is JSON Forms.

object (Principal)
object (RelatedProcess)
tenantId
string <uuid>

Tenant ID.

Responses

Request samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Get a Process by ID

Returns the requested Process when has access to do it.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Change process initiator

Change the current initiator of a process.

Allows you to choose a user (by email or principal identifier) or an application (principal identifier). Only one option will be necessary.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to change the process initiator.

principalId
string <uuid>
email
string <email>

Responses

Request samples

Content type
application/json
{
  • "principalId": "0a52818d-1e0c-4e64-848e-4d04f9e914e5",
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Save a process element, aka: metadata

Allow to save an element.

If values already exist for the provided element code, it replaces them with the new ones, otherwise it creates them. The values of the previous elements that no longer exist will be deleted.

If the process is already finished the invocations fails with an error.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to save an element.

elementDefinitionCode
required
string
Array of objects (ProcessElementValue)

Responses

Request samples

Content type
application/json
{
  • "elementDefinitionCode": "string",
  • "elementValues": [
    ]
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Delete an element by code

Allow to delete a process element by specifying the item definition code.

Remove all the element values.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to delete an element.

elementDefinitionCode
required
string

Code of task element to delete.

Responses

Request samples

Content type
application/json
{
  • "elementDefinitionCode": "string"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Complete a Process

Complete a Process. The state of Process is set to 'completed'.

If you are already in this state, no action is taken.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Cancel a Process

Cancel a Process. The Process state is set to 'cancelled'.

All the active tasks will be marked as cancelled too.

If you are already in this state, no action is taken.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Upload and save a document in a user action

Allow saving a user action document uploading the content.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
fileContentType
required
string

Document content type

fileName
required
string

Document name

userActionValueId
required
string <uuid>

User action value ID related to de document

Request Body schema: application/octet-stream
required

Document to save.

string <binary>

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Save JSON data

Allow to save a JSON validating that the data follow the related schema. If the data is invalid, then the json form is marked as invalid.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to save the JSON value.

required
object (JsonFormsValueData)

json value filled that complain with the related json schema.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "data": { }
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "subject": "string",
  • "state": "RUNNING",
  • "processDefinition": {
    },
  • "elementValues": {
    },
  • "entity": {
    },
  • "initiator": {
    },
  • "relatedProcess": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Save an entity value document

Save a document in the process to later be linked into the JSON data.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
fileContentType
required
string

Document content type

fileName
required
string

Document name

schemaPath
required
string

JSON Schema path related to the document. The uploaded document will be validated by the passed schema path.

Request Body schema: application/octet-stream
required

Document to save.

string <binary>

Responses

Response samples

Content type
application/json
{
  • "value": "string"
}

Download document

Given a process and a documentUri, download a document.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
documentUri
required
string

Document URI to download.

Responses

Response samples

Content type
application/json
{
  • "timestamp": "2019-08-24T14:15:22Z",
  • "status": 0,
  • "message": "string",
  • "errors": [
    ]
}

Task

Operations about tasks.

Find all accessible Tasks

List all Tasks that have been created and the credentials has access.

Available sort query values: id, createdAt, lastModifiedAt, claimedAt, completedAt, cancelledAt

Authorizations:
BasicAuthBearerAuthOAuth2Auth
query Parameters
size
integer [ 0 .. 1000 ]
Default: 25

The number of records returned within a single API call.

page
integer >= 0
Default: 0

The page number of the current page in the returned records, 0 is the first page.

sort
Array of strings

Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc

Default sort order is ascending. Multiple sort criteria are supported.

Please refer to the method description for supported properties.

processId
Array of strings <uuid> [ items <uuid > ]

Filter by an array of process ids.

state
Array of strings (TaskState)
Items Enum: "READY" "CLAIMED" "COMPLETED" "CANCELLED"

Filter by an array of task states.

taskDefinitionCode
Array of strings

Filter by an array of task definition codes.

tenantId
Array of strings <uuid> [ items <uuid > ]

Filter by tenantId.

Responses

Response samples

Content type
application/json
{
  • "objectType": "PRINCIPAL_PAGE",
  • "metadata": {
    },
  • "content": [
    ]
}

Create a new Task in the selected Process

Create a Task and optionally fill its elements. We can fill in any type of element except documents.

If you want to add document type elements, you can pass a reference to an existing document type element indicating its 'uri'. This will copy that document into the element. In case you want to add a new document, please use the corresponding API method.

If you want that the task created is claimed you can a valid owner using the following options:

  • If you know the principal ID you can assign it to owner.id
  • If you know the user ID you can assign it to owner.user.id
  • If you know the user email you can assign it to owner.user.email
  • If you know the application ID you can assign it to owner.application.id

If you want the method to be idempotent, please specify the id field in the request body.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
query Parameters
activityToken
string
Deprecated

[DEPRECATED] When create a KuFlow Task backed with a Temporal.io servers, this value is required and must be set with the context task token of Temporal.io activity. It is no longer necessary because it will be never used for the latest SDKs versions

Request Body schema: application/json
required

Task to be created

objectType
string (AuditedObjectType)
Deprecated
Enum: "AUTHENTICATION" "TENANT_USER" "PROCESS" "PROCESS_PAGE_ITEM" "TASK" "TASK_PAGE_ITEM" "WORKER" "ROBOT"

Audited object Types.

createdBy
string <uuid>

Who create this model.

createdAt
string <date-time>

When this model was created.

lastModifiedBy
string <uuid>

Who was last update this model.

lastModifiedAt
string <date-time>

When this model type was last updated.

id
string <uuid>
state
string (TaskState)
Enum: "READY" "CLAIMED" "COMPLETED" "CANCELLED"

Task state

required
object (TaskDefinitionSummary)

In creation task, one of 'id, version or code' is mandatory.

processId
required
string <uuid>
object

Task element values, en ElementValueDocument is not allowed, used when the task render type selected is JSON Forms

object (JsonFormsValue)

Json form values, used when the render type selected is JSON Forms.

Array of objects (Log)
object (Principal)
tenantId
string <uuid>

Tenant ID.

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "tenantId": "859f5585-493f-44f8-b9b4-beb633bd9ac7"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Get a task given it ID

Allow to get a task by ID.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Claim a task

Allow to claim a task.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Assign a task

Allow to assign a task to a user or application. Only one option will be necessary.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to change the task owner.

principalId
string <uuid>
email
string <email>

Responses

Request samples

Content type
application/json
{
  • "principalId": "0a52818d-1e0c-4e64-848e-4d04f9e914e5",
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Save an element

Allow to save an element i.e., a field, a decision, a form, a principal or document.

In the case of document type elements, this method only allows references to be made to other existing document type elements for the purpose of copying that file into the element. To do this you need to pass a reference to the document using the 'uri' attribute. In case you want to add a new document, please use the corresponding API method. If values already exist for the provided element code, it replaces them with the new ones, otherwise it creates them. The values of the previous elements that no longer exist will be deleted. To remove an element, use the appropriate API method.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to save an element.

elementDefinitionCode
required
string
Array of objects (TaskElementValue)

Responses

Request samples

Content type
application/json
{
  • "elementDefinitionCode": "string",
  • "elementValues": [
    ]
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Save an element document

Allow to save an element document uploading the content.

If it is a multiple element, and the ID referenced in the body does not exist or is empty, the document will be added to the element. If the element already exists (the ID referenced in the body corresponds to an existing one), it updates it.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
fileContentType
required
string

Document content type

fileName
required
string

Document name

elementDefinitionCode
required
string

Element Definition Code

elementValueId
string <uuid>

Element Value ID

elementValueValid
boolean
Default: true

Element Value ID

Request Body schema: application/octet-stream
required

Command to save a document element value.

string <binary>

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Delete an element by code

Allow to delete task element by specifying the item definition code.

Remove all the element values.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to delete an element.

elementDefinitionCode
required
string

Code of task element to delete.

Responses

Request samples

Content type
application/json
{
  • "elementDefinitionCode": "string"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Delete an element document value

Allow to delete a specific document from an element of document type using its id.

Note: If it is a multiple item, it will only delete the specified document. If it is a single element, in addition to the document, it will also delete the element.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to delete a document element value.

documentId
required
string <uuid>

Document ID to delete.

Responses

Request samples

Content type
application/json
{
  • "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Download document

Given a task, download a document from an element of document type.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
documentId
required
string <uuid>

Document ID to download.

Responses

Response samples

Content type
application/json
{
  • "timestamp": "2019-08-24T14:15:22Z",
  • "status": 0,
  • "message": "string",
  • "errors": [
    ]
}

Download a Form rendered as PDF or Zip of PDFs (when the element is multiple)

Given a task, generate a PDF from a Form type element with the data filled in, if any. If there are multiple form values, they are packed into a ZIP.

Important!: To use this feature, please contact to kuflow@kuflow.com

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
elementDefinitionCode
required
string

Element definition code of a Form Element to download.

Responses

Response samples

Content type
application/json
{
  • "timestamp": "2019-08-24T14:15:22Z",
  • "status": 0,
  • "message": "string",
  • "errors": [
    ]
}

Save JSON data

Allow to save a JSON data validating that the data follow the related schema. If the data is invalid, then the json form is marked as invalid.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Command to save the JSON value.

object (JsonFormsValueData)

json value filled that complain with the related json schema.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "data": { }
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Save a JSON Forms document

Save a document in the task to later be linked into the JSON data.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
fileContentType
required
string

Document content type

fileName
required
string

Document name

schemaPath
required
string

JSON Schema path related to the document. The uploaded document will be validated by the passed schema path.

Request Body schema: application/octet-stream
required

Document to save.

string <binary>

Responses

Response samples

Content type
application/json
{
  • "value": "string"
}

Download document

Given a task, download a document from a json form data.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
documentUri
required
string

Document URI to download.

Responses

Response samples

Content type
application/json
{
  • "timestamp": "2019-08-24T14:15:22Z",
  • "status": 0,
  • "message": "string",
  • "errors": [
    ]
}

Complete a task

Allow to complete a claimed task by the principal.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Append a log to the task

A log entry is added to the task. If the number of log entries is reached, the oldest log entry is removed.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Request Body schema: application/json
required

Log to be created.

id
string <uuid>
createdAt
string <date-time>

When this model was created.

message
required
string
level
required
string (LogLevel)
Enum: "INFO" "WARN" "ERROR"

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "level": "INFO"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "state": "READY",
  • "taskDefinition": {
    },
  • "processId": "9e0ad09b-5150-48c0-aded-707587048fd9",
  • "elementValues": {
    },
  • "jsonFormsValue": {
    },
  • "logs": [
    ],
  • "owner": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Worker

Operations about workers.

Create or update a worker

Register a worker in KuFlow, this allows the platform to have a catalogue of all registered workers.

If already exist a worker for the same identity, the worker will be updated.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
Request Body schema: application/json
required

Worker to create or update

objectType
string (AuditedObjectType)
Deprecated
Enum: "AUTHENTICATION" "TENANT_USER" "PROCESS" "PROCESS_PAGE_ITEM" "TASK" "TASK_PAGE_ITEM" "WORKER" "ROBOT"

Audited object Types.

createdBy
string <uuid>

Who create this model.

createdAt
string <date-time>

When this model was created.

lastModifiedBy
string <uuid>

Who was last update this model.

lastModifiedAt
string <date-time>

When this model type was last updated.

id
string <uuid>
identity
required
string [ 1 .. 255 ] characters
taskQueue
required
string [ 1 .. 255 ] characters
workflowTypes
Array of strings[ items [ 1 .. 255 ] characters ]
activityTypes
Array of strings[ items [ 1 .. 255 ] characters ]
hostname
required
string [ 1 .. 255 ] characters
ip
required
string [ 7 .. 40 ] characters
installationId
string <uuid>

Installation Id.

robotIds
Array of strings <uuid> [ items <uuid > ]

Robot Ids that this worker implements.

tenantId
string <uuid>

Tenant ID.

Responses

Request samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "identity": "string",
  • "taskQueue": "string",
  • "workflowTypes": [
    ],
  • "activityTypes": [
    ],
  • "hostname": "string",
  • "ip": "strings",
  • "installationId": "7a1bf939-4d70-4439-9ced-a3dbbce12bd7",
  • "robotIds": [
    ],
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "identity": "string",
  • "taskQueue": "string",
  • "workflowTypes": [
    ],
  • "activityTypes": [
    ],
  • "hostname": "string",
  • "ip": "strings",
  • "installationId": "7a1bf939-4d70-4439-9ced-a3dbbce12bd7",
  • "robotIds": [
    ],
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Robot

Operations about robots.

Find all accessible Robots

List all the Robots that have been created and the credentials has access.

Available sort query values: createdAt, lastModifiedAt

Authorizations:
BasicAuthBearerAuthOAuth2Auth
query Parameters
size
integer [ 0 .. 1000 ]
Default: 25

The number of records returned within a single API call.

page
integer >= 0
Default: 0

The page number of the current page in the returned records, 0 is the first page.

sort
Array of strings

Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc

Default sort order is ascending. Multiple sort criteria are supported.

Please refer to the method description for supported properties.

tenantId
Array of strings <uuid> [ items <uuid > ]

Filter by tenantId.

filterContext
string (RobotFilterContext)
Enum: "READY" "DEFAULT"

Filter by the specified context.

Responses

Response samples

Content type
application/json
{
  • "objectType": "PRINCIPAL_PAGE",
  • "metadata": {
    },
  • "content": [
    ]
}

Get a Robot by ID

Returns the requested Robot when has access to do it.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "code": "string",
  • "name": "string",
  • "description": "string",
  • "sourceType": "PACKAGE",
  • "sourceFile": {
    },
  • "environmentVariables": {
    },
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}

Download robot code

Given a robot, download the source code.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

Responses

Response samples

Content type
application/json
{
  • "timestamp": "2019-08-24T14:15:22Z",
  • "status": 0,
  • "message": "string",
  • "errors": [
    ]
}

Download robot asset

Given a robot, download the requested asset.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
path Parameters
id
required
string <uuid>

The resource ID.

query Parameters
type
required
string (RobotAssetType)
Enum: "PYTHON" "PYTHON_PIP" "NODEJS"

The asset type.

version
required
string

The asset version.

platform
required
string (RobotAssetPlatform)
Enum: "WINDOWS" "MAC_OS" "LINUX"

The asset platform.

architecture
required
string (RobotAssetArchitecture)
Enum: "X86_32" "X86_64"

The asset platform architecture.

Responses

Response samples

Content type
application/json
{
  • "timestamp": "2019-08-24T14:15:22Z",
  • "status": 0,
  • "message": "string",
  • "errors": [
    ]
}

Authentication

Operations for handling authentication tokens.

Create an authentication for the current principal.

Authorizations:
BasicAuthBearerAuthOAuth2Auth
Request Body schema: application/json
required

Authentication to be created.

objectType
string (AuditedObjectType)
Deprecated
Enum: "AUTHENTICATION" "TENANT_USER" "PROCESS" "PROCESS_PAGE_ITEM" "TASK" "TASK_PAGE_ITEM" "WORKER" "ROBOT"

Audited object Types.

createdBy
string <uuid>

Who create this model.

createdAt
string <date-time>

When this model was created.

lastModifiedBy
string <uuid>

Who was last update this model.

lastModifiedAt
string <date-time>

When this model type was last updated.

id
string <uuid>
type
string (AuthenticationType)
Enum: "ENGINE" "ENGINE_TOKEN" "ENGINE_CERTIFICATE"
tenantId
string <uuid>

Tenant id. This attribute is required when an OAuth2 authentication is used.

token
string
Deprecated

Engine authentication token.

@deprecated use engineToken.token

expiredAt
string <date-time>
Deprecated

Engine authentication token expiration.

@deprecated use engineToken.expiredAt

object (AuthenticationEngineToken)
object (AuthenticationEngineCertificate)

Responses

Request samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "ENGINE",
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
  • "token": "string",
  • "expiredAt": "2019-08-24T14:15:22Z",
  • "engineToken": {
    },
  • "engineCertificate": {
    }
}

Response samples

Content type
application/json
{
  • "objectType": "AUTHENTICATION",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastModifiedBy": "ac5c7580-b36d-42f3-a739-e202c634d1d1",
  • "lastModifiedAt": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "ENGINE",
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
  • "token": "string",
  • "expiredAt": "2019-08-24T14:15:22Z",
  • "engineToken": {
    },
  • "engineCertificate": {
    }
}

Webhook

Operations that Kuflow invokes towards external systems.

Event sent Webhook

Information about a event produced in the platform

Authorizations:
BasicAuthBearerAuthOAuth2Auth
Request Body schema: application/json
id
required
string <uuid>
type
required
string (WebhookType)

Type of the Event.

timestamp
required
string <date-time>
required
object (WebhookEventProcessStateChangedData)

Responses

Request samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "PROCESS.STATE_CHANGED",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}
Kuflow Logo