From d221351fdc91db70e68a56982b89dd4b8a42eecc Mon Sep 17 00:00:00 2001 From: Amara Graham Date: Wed, 26 Feb 2025 09:53:27 -0600 Subject: [PATCH] Remove Tasklist GraphQL from 8.8 (#5080) * move api ref * initial removals and link changes * link fixes, all versions * add redirect * fix link build issues --- .../schemas/requests/task-search-request.mdx | 6 +- .../schemas/responses/form-response.mdx | 3 +- .../schemas/responses/task-response.mdx | 12 +- .../responses/task-search-response.mdx | 12 +- .../tasklist-api/assets/tasklist.graphqls | 203 ----------- .../tasklist-api/directives/_category_.yml | 1 - .../tasklist-api/directives/deprecated.mdx | 54 --- .../tasklist-api/directives/include.mdx | 54 --- .../tasklist-api/directives/skip.mdx | 54 --- .../tasklist-api/directives/specified-by.mdx | 54 --- .../tasklist-api/enums/_category_.yml | 1 - docs/apis-tools/tasklist-api/enums/sort.mdx | 63 ---- .../tasklist-api/enums/task-sort-fields.mdx | 73 ---- .../tasklist-api/enums/task-state.mdx | 68 ---- docs/apis-tools/tasklist-api/generated.md | 20 - .../tasklist-api/inputs/_category_.yml | 1 - .../tasklist-api/inputs/date-filter-input.mdx | 59 --- .../tasklist-api/inputs/task-order-by.mdx | 59 --- .../tasklist-api/inputs/task-query.mdx | 133 ------- .../tasklist-api/inputs/variable-input.mdx | 63 ---- .../tasklist-api/interfaces/_category_.yml | 1 - .../tasklist-api/mutations/_category_.yml | 1 - .../tasklist-api/mutations/claim-task.mdx | 78 ---- .../tasklist-api/mutations/complete-task.mdx | 65 ---- .../mutations/delete-process-instance.mdx | 60 --- .../tasklist-api/mutations/unclaim-task.mdx | 60 --- .../tasklist-api/objects/_category_.yml | 1 - docs/apis-tools/tasklist-api/objects/form.mdx | 68 ---- docs/apis-tools/tasklist-api/objects/task.mdx | 144 -------- docs/apis-tools/tasklist-api/objects/user.mdx | 78 ---- .../tasklist-api/objects/variable.mdx | 82 ----- .../tasklist-api/queries/_category_.yml | 1 - .../tasklist-api/queries/current-user.mdx | 52 --- docs/apis-tools/tasklist-api/queries/form.mdx | 65 ---- docs/apis-tools/tasklist-api/queries/task.mdx | 60 --- .../apis-tools/tasklist-api/queries/tasks.mdx | 60 --- .../tasklist-api/queries/variable.mdx | 60 --- .../tasklist-api/queries/variables.mdx | 65 ---- .../tasklist-api/scalars/DateTime.mdx | 50 --- .../tasklist-api/scalars/_category_.yml | 1 - .../tasklist-api/scalars/boolean.mdx | 54 --- docs/apis-tools/tasklist-api/scalars/id.mdx | 50 --- docs/apis-tools/tasklist-api/scalars/int.mdx | 50 --- .../tasklist-api/scalars/string.mdx | 50 --- .../apis-tools/tasklist-api/sidebar-schema.js | 10 - .../tasklist-api-authentication.md | 92 ----- .../tasklist-api-graphql-to-rest-migration.md | 216 ----------- .../tasklist-api/tasklist-api-overview.md | 113 ------ .../tasklist-api/tasklist-api-tutorial.md | 341 ------------------ .../tasklist-api/unions/_category_.yml | 1 - docs/apis-tools/working-with-apis-tools.md | 4 - .../understanding-human-tasks-management.md | 2 +- .../development/handling-data-in-processes.md | 2 +- .../manage-clusters/manage-api-clients.md | 4 - .../setup-client-connection-credentials.md | 4 - docs/reference/announcements/880.md | 2 +- optimize_sidebars.js | 154 -------- sidebars.js | 1 - static/.htaccess | 3 + .../apis-tools/tasklist-api/enums/sort.mdx | 2 +- .../tasklist-api/enums/task-sort-fields.mdx | 2 +- .../tasklist-api/enums/task-state.mdx | 2 +- .../tasklist-api/inputs/date-filter-input.mdx | 4 +- .../tasklist-api/inputs/task-order-by.mdx | 4 +- .../tasklist-api/inputs/task-query.mdx | 32 +- .../tasklist-api/scalars/DateTime.mdx | 2 +- .../tasklist-api-graphql-to-rest-migration.md | 58 +-- .../tasklist-api/tasklist-api-overview.md | 8 +- .../tasklist/introduction-to-tasklist.md | 6 +- .../apis-tools/tasklist-api/enums/sort.mdx | 2 +- .../tasklist-api/enums/task-sort-fields.mdx | 2 +- .../tasklist-api/inputs/date-filter-input.mdx | 4 +- .../tasklist-api/inputs/task-order-by.mdx | 4 +- .../tasklist-api/inputs/task-query.mdx | 32 +- .../tasklist-api/scalars/DateTime.mdx | 2 +- .../tasklist-api-graphql-to-rest-migration.md | 58 +-- .../tasklist-api/tasklist-api-overview.md | 2 +- .../tasklist/introduction-to-tasklist.md | 6 +- .../apis-tools/tasklist-api/enums/sort.mdx | 2 +- .../tasklist-api/enums/task-sort-fields.mdx | 2 +- .../tasklist-api/inputs/date-filter-input.mdx | 4 +- .../tasklist-api/inputs/task-order-by.mdx | 4 +- .../tasklist-api/inputs/task-query.mdx | 32 +- .../tasklist-api/scalars/DateTime.mdx | 2 +- .../tasklist-api-graphql-to-rest-migration.md | 58 +-- .../apis-tools/tasklist-api/enums/sort.mdx | 2 +- .../tasklist-api/enums/task-sort-fields.mdx | 2 +- .../tasklist-api/inputs/date-filter-input.mdx | 4 +- .../tasklist-api/inputs/task-order-by.mdx | 4 +- .../tasklist-api/inputs/task-query.mdx | 32 +- .../tasklist-api/scalars/DateTime.mdx | 2 +- .../tasklist-api-graphql-to-rest-migration.md | 58 +-- .../apis-tools/tasklist-api/enums/sort.mdx | 2 +- .../tasklist-api/enums/task-sort-fields.mdx | 2 +- .../tasklist-api/enums/task-state.mdx | 2 +- .../tasklist-api/inputs/date-filter-input.mdx | 4 +- .../tasklist-api/inputs/task-order-by.mdx | 4 +- .../tasklist-api/inputs/task-query.mdx | 32 +- .../tasklist-api/inputs/variable-input.mdx | 2 +- .../tasklist-api/scalars/DateTime.mdx | 2 +- .../tasklist-api-graphql-to-rest-migration.md | 58 +-- 101 files changed, 291 insertions(+), 3455 deletions(-) delete mode 100644 docs/apis-tools/tasklist-api/assets/tasklist.graphqls delete mode 100644 docs/apis-tools/tasklist-api/directives/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/directives/deprecated.mdx delete mode 100644 docs/apis-tools/tasklist-api/directives/include.mdx delete mode 100644 docs/apis-tools/tasklist-api/directives/skip.mdx delete mode 100644 docs/apis-tools/tasklist-api/directives/specified-by.mdx delete mode 100644 docs/apis-tools/tasklist-api/enums/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/enums/sort.mdx delete mode 100644 docs/apis-tools/tasklist-api/enums/task-sort-fields.mdx delete mode 100644 docs/apis-tools/tasklist-api/enums/task-state.mdx delete mode 100644 docs/apis-tools/tasklist-api/generated.md delete mode 100644 docs/apis-tools/tasklist-api/inputs/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/inputs/date-filter-input.mdx delete mode 100644 docs/apis-tools/tasklist-api/inputs/task-order-by.mdx delete mode 100644 docs/apis-tools/tasklist-api/inputs/task-query.mdx delete mode 100644 docs/apis-tools/tasklist-api/inputs/variable-input.mdx delete mode 100644 docs/apis-tools/tasklist-api/interfaces/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/mutations/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/mutations/claim-task.mdx delete mode 100644 docs/apis-tools/tasklist-api/mutations/complete-task.mdx delete mode 100644 docs/apis-tools/tasklist-api/mutations/delete-process-instance.mdx delete mode 100644 docs/apis-tools/tasklist-api/mutations/unclaim-task.mdx delete mode 100644 docs/apis-tools/tasklist-api/objects/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/objects/form.mdx delete mode 100644 docs/apis-tools/tasklist-api/objects/task.mdx delete mode 100644 docs/apis-tools/tasklist-api/objects/user.mdx delete mode 100644 docs/apis-tools/tasklist-api/objects/variable.mdx delete mode 100644 docs/apis-tools/tasklist-api/queries/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/queries/current-user.mdx delete mode 100644 docs/apis-tools/tasklist-api/queries/form.mdx delete mode 100644 docs/apis-tools/tasklist-api/queries/task.mdx delete mode 100644 docs/apis-tools/tasklist-api/queries/tasks.mdx delete mode 100644 docs/apis-tools/tasklist-api/queries/variable.mdx delete mode 100644 docs/apis-tools/tasklist-api/queries/variables.mdx delete mode 100644 docs/apis-tools/tasklist-api/scalars/DateTime.mdx delete mode 100644 docs/apis-tools/tasklist-api/scalars/_category_.yml delete mode 100644 docs/apis-tools/tasklist-api/scalars/boolean.mdx delete mode 100644 docs/apis-tools/tasklist-api/scalars/id.mdx delete mode 100644 docs/apis-tools/tasklist-api/scalars/int.mdx delete mode 100644 docs/apis-tools/tasklist-api/scalars/string.mdx delete mode 100644 docs/apis-tools/tasklist-api/sidebar-schema.js delete mode 100644 docs/apis-tools/tasklist-api/tasklist-api-authentication.md delete mode 100644 docs/apis-tools/tasklist-api/tasklist-api-graphql-to-rest-migration.md delete mode 100644 docs/apis-tools/tasklist-api/tasklist-api-overview.md delete mode 100644 docs/apis-tools/tasklist-api/tasklist-api-tutorial.md delete mode 100644 docs/apis-tools/tasklist-api/unions/_category_.yml diff --git a/docs/apis-tools/tasklist-api-rest/schemas/requests/task-search-request.mdx b/docs/apis-tools/tasklist-api-rest/schemas/requests/task-search-request.mdx index 28a31a7dd88..9551432a7b0 100644 --- a/docs/apis-tools/tasklist-api-rest/schemas/requests/task-search-request.mdx +++ b/docs/apis-tools/tasklist-api-rest/schemas/requests/task-search-request.mdx @@ -160,13 +160,11 @@ TaskSearchRequest - query object to search tasks by provided params. #### [TaskSearchRequest.processDefinitionKey](#)`string` -> Reference to process definition -> (renamed equivalent of [`TaskQuery.processDefinitionId`](../../../tasklist-api/inputs/task-query.mdx#code-style-fontweight-normal-taskquerybprocessdefinitionidbcodestring-) field). +> Reference to process definition. #### [TaskSearchRequest.processInstanceKey](#)`string` -> Reference to process instance -> (renamed equivalent of [`TaskQuery.processInstanceId`](../../../tasklist-api/inputs/task-query.mdx#code-style-fontweight-normal-taskquerybprocessinstanceidbcodestring-) field). +> Reference to process instance. #### [TaskSearchRequest.followUpDateDate](#)[`DateFilter`](../models/date-filter-input.mdx) diff --git a/docs/apis-tools/tasklist-api-rest/schemas/responses/form-response.mdx b/docs/apis-tools/tasklist-api-rest/schemas/responses/form-response.mdx index 46f1d603b42..050d21a493e 100644 --- a/docs/apis-tools/tasklist-api-rest/schemas/responses/form-response.mdx +++ b/docs/apis-tools/tasklist-api-rest/schemas/responses/form-response.mdx @@ -89,8 +89,7 @@ FormResponse - represents task embedded form. #### [FormResponse.processDefinitionKey](#)`string` -> Reference to process definition -> (renamed equivalent of [`Form.processDefinitionId`](../../../tasklist-api/objects/form.mdx#code-style-fontweight-normal-formbprocessdefinitionidbcodestring--) field) +> Reference to process definition. #### [FormResponse.schema](#)`string` diff --git a/docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx b/docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx index 7a2c8ac4a8c..00926f59887 100644 --- a/docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx +++ b/docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx @@ -127,13 +127,11 @@ TaskResponse - represents a user task. #### [TaskResponse.creationDate](#)`string` -> When was the task created -> (renamed equivalent of [`Task.creationTime`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcreationtimebcodestring--) field) +> When was the task created. #### [TaskResponse.completionDate](#)`string` -> When was the task completed -> (renamed equivalent of [`Task.completionTime`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcompletiontimebcodestring-) field) +> When was the task completed. #### [TaskResponse.assignee](#)`string` @@ -161,13 +159,11 @@ TaskResponse - represents a user task. #### [TaskResponse.processDefinitionKey](#)`string` -> Reference to process definition -> (renamed equivalent of [`Task.processDefinitionId`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessdefinitionidbcodestring-) field) +> Reference to process definition. #### [TaskResponse.processInstanceKey](#)`string` -> Reference to process instance id -> (renamed equivalent of [`Task.processInstanceId`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessinstanceidbcodestring-) field) +> Reference to process instance id. #### [TaskResponse.tenantId](#)`string` diff --git a/docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx b/docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx index b466ec57832..1c8e537311b 100644 --- a/docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx +++ b/docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx @@ -137,13 +137,11 @@ TaskSearchResponse - representing the searched task. #### [TaskSearchResponse.creationDate](#)`string` -> When was the task created -> (renamed equivalent of [`Task.creationTime`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcreationtimebcodestring--) field) +> When was the task created. #### [TaskSearchResponse.completionDate](#)`string` -> When was the task completed -> (renamed equivalent of [`Task.completionTime`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcompletiontimebcodestring-) field) +> When was the task completed. #### [TaskSearchResponse.assignee](#)`string` @@ -167,13 +165,11 @@ TaskSearchResponse - representing the searched task. #### [TaskSearchResponse.processDefinitionKey](#)`string` -> Reference to process definition -> (renamed equivalent of [`Task.processDefinitionId`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessdefinitionidbcodestring-) field) +> Reference to process definition. #### [TaskSearchResponse.processInstanceKey](#)`string` -> Reference to process instance id -> (renamed equivalent of [`Task.processInstanceId`](../../../tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessinstanceidbcodestring-) field) +> Reference to process instance id. #### [TaskSearchResponse.tenantId](#)`string` diff --git a/docs/apis-tools/tasklist-api/assets/tasklist.graphqls b/docs/apis-tools/tasklist-api/assets/tasklist.graphqls deleted file mode 100644 index 3442bfa6777..00000000000 --- a/docs/apis-tools/tasklist-api/assets/tasklist.graphqls +++ /dev/null @@ -1,203 +0,0 @@ -scalar DateTime - -# Describes the User task. -type Task { - # The unique identifier of the task - id: ID! - # Name of the task - name: String! - # Task Definition ID (node BPMN id) of the process - taskDefinitionId: String! - # Name of the process - processName: String! - # When was the task created - creationTime: String! - # When was the task completed - completionTime: String - # Username/id of who is assigned to the task - assignee: String - # Variables associated to the task - variables: [Variable!] - # State of the task - taskState: TaskState! - # Array of values to be copied into `TaskQuery` to request for next or previous page of tasks. - sortValues: [String!] - # Flag to show that the task is first in current filter - isFirst: Boolean - # Reference to the task form - formKey: String - #Reference to process definition - processDefinitionId: String - #Reference to processInstance definition - processInstanceId: String - #Candidate groups - candidateGroups: [String!] - #Follow-up Date for Task - followUpDate: DateTime - #Due date for Task - dueDate: DateTime - #Candidate users - candidateUsers: [String!] -} - -#Describes task embedded form -type Form { - #The unique identifier of the embedded form within one process - id: String! - #Reference to process definition - processDefinitionId: String! - #Form content - schema: String! -} - -type Process { - id: String! - name: String - processDefinitionId: String - version: Int -} - -input DateFilter { - from: DateTime! - to: DateTime! -} - -#Task query - query to get one page of tasks. -input TaskQuery { - # State of the tasks - state: TaskState - # Are the tasks assigned? - assigned: Boolean - # Who is assigned to the tasks? - assignee: String - # given group is in candidate groups list - candidateGroup: String - # given user is in candidate users list - candidateUser: String - # process definition id - processDefinitionId: String - # process instance id - processInstanceId: String - #Size of tasks page (default: 50). - pageSize: Int - # Task definition ID - what's the BPMN flow node? - taskDefinitionId: String - #Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly after this values plus same sort values. - searchAfter: [String!] - #Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly after this values. - searchAfterOrEqual: [String!] - #Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly before this values plus same sort values. - searchBefore: [String!] - #Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly before this values. - searchBeforeOrEqual: [String!] - #Follow-up Date for Task - followUpDate: DateFilter - #Due Date for Task - dueDate: DateFilter - #order - sort: [TaskOrderBy] -} - -input TaskOrderBy { - field: TaskSortFields! - order: Sort! -} - -enum Sort { - ASC - DESC -} - -enum TaskSortFields { - creationTime - completionTime - followUpDate - dueDate -} - -# State of the task. -enum TaskState { - CREATED - COMPLETED - CANCELED -} - -# Variable used in task. -type Variable { - id: ID! - name: String! - # full variable value - value: String! - # value preview (limited in size) - previewValue: String! - # shows, whether previewValue contains truncated value or full value - isValueTruncated: Boolean! -} -# Change or add a variable with name and value. -input VariableInput { - # Name of the variable. - name: String! - # Value of the variable. Complex values, e.g. a list of objects, must be serialized as JSON. - value: String! -} - -type ProcessInstance { - id: ID! -} - -type C8AppLink { - name: String! - link: String! -} -# Describes the user. -type User { - userId: ID! - displayName: String - permissions: [String!] - roles: [String] - salesPlanType: String - c8Links: [C8AppLink] -} -# What can be searched for. -type Query { - # Get list of tasks based on `TaskQuery`. - tasks(query: TaskQuery!): [Task!]! - # Get one task by id. Returns task or error when task does not exist. - task(id: String!): Task! - # Get currently logged in user. - currentUser: User! - # Get task form by id and processDefinitionId - form(id: String!, processDefinitionId: String!): Form - # Get a collection of Variables by name - variables(taskId: String!, variableNames: [String!]!): [Variable!]! - # Get the variables by variable id - variable(id: String!): Variable! - # Get the processes - processes(search: String): [Process!]! -} -# What can be changed. -type Mutation { - # Complete a task with taskId and optional variables. Returns the task. - completeTask(taskId: String!, variables: [VariableInput!]!): Task! - """ - Claim a task with `taskId` to `assignee`. Returns the task. - - When using Graphql API with JWT authentication token following parameters may be used: - * `assignee`. When using a JWT token, the assignee parameter is NOT optional when called directly from the API. - The system will not be able to detect the assignee from the JWT token, therefore the assignee parameter needs to be - explicitly passed in this instance. - * `allowOverrideAssignment`. When `true` the task that is already assigned may be claimed again. Otherwise the task - must be first unclaimed and only then claimed again. (Default: `true`) - """ - claimTask( - taskId: String! - assignee: String - allowOverrideAssignment: Boolean - ): Task! - # Unclaim a task with taskId. Returns the task. - unclaimTask(taskId: String!): Task! - # Delete process instance by given processInstanceId. Returns true if process instance could be deleted. - deleteProcessInstance(processInstanceId: String!): Boolean! - # start a Process from tasklist - startProcess(processDefinitionId: String!): ProcessInstance! -} diff --git a/docs/apis-tools/tasklist-api/directives/_category_.yml b/docs/apis-tools/tasklist-api/directives/_category_.yml deleted file mode 100644 index 309996eee2c..00000000000 --- a/docs/apis-tools/tasklist-api/directives/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Directives" diff --git a/docs/apis-tools/tasklist-api/directives/deprecated.mdx b/docs/apis-tools/tasklist-api/directives/deprecated.mdx deleted file mode 100644 index 34223694e6f..00000000000 --- a/docs/apis-tools/tasklist-api/directives/deprecated.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: deprecated -title: deprecated -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Marks the field or enum value as deprecated - -```graphql -directive @deprecated( - reason: String = "No longer supported" -) -``` - -### Arguments - -#### [deprecated.reason](#)[`String`](../scalars/string.mdx) - -> The reason for the deprecation diff --git a/docs/apis-tools/tasklist-api/directives/include.mdx b/docs/apis-tools/tasklist-api/directives/include.mdx deleted file mode 100644 index 1e10ec91b54..00000000000 --- a/docs/apis-tools/tasklist-api/directives/include.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: include -title: include -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Directs the executor to include this field or fragment only when the `if` argument is true - -```graphql -directive @include( - if: Boolean! -) -``` - -### Arguments - -#### [include.if](#)[`Boolean!`](../scalars/boolean.mdx) - -> Included when true. diff --git a/docs/apis-tools/tasklist-api/directives/skip.mdx b/docs/apis-tools/tasklist-api/directives/skip.mdx deleted file mode 100644 index 05326f76d4a..00000000000 --- a/docs/apis-tools/tasklist-api/directives/skip.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: skip -title: skip -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Directs the executor to skip this field or fragment when the `if`'argument is true. - -```graphql -directive @skip( - if: Boolean! -) -``` - -### Arguments - -#### [skip.if](#)[`Boolean!`](../scalars/boolean.mdx) - -> Skipped when true. diff --git a/docs/apis-tools/tasklist-api/directives/specified-by.mdx b/docs/apis-tools/tasklist-api/directives/specified-by.mdx deleted file mode 100644 index ac0d0adb080..00000000000 --- a/docs/apis-tools/tasklist-api/directives/specified-by.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: specified-by -title: specifiedBy -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Exposes a URL that specifies the behaviour of this scalar. - -```graphql -directive @specifiedBy( - url: String! -) -``` - -### Arguments - -#### [specifiedBy.url](#)[`String!`](../scalars/string.mdx) - -> The URL that specifies the behaviour of this scalar. diff --git a/docs/apis-tools/tasklist-api/enums/_category_.yml b/docs/apis-tools/tasklist-api/enums/_category_.yml deleted file mode 100644 index a91f30b39a4..00000000000 --- a/docs/apis-tools/tasklist-api/enums/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Enums" diff --git a/docs/apis-tools/tasklist-api/enums/sort.mdx b/docs/apis-tools/tasklist-api/enums/sort.mdx deleted file mode 100644 index 435dd21ce06..00000000000 --- a/docs/apis-tools/tasklist-api/enums/sort.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: sort -title: Sort -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -State of the task. - -```graphql -enum Sort { - ASC - DESC -} -``` - -### Values - -#### [Sort.ASC](#) - -> Ascending - -#### [Sort.DESC](#) - -> Descending - -### Member of - -[`TaskQuery`](/docs/apis-tools/tasklist-api/inputs/task-query.mdx) diff --git a/docs/apis-tools/tasklist-api/enums/task-sort-fields.mdx b/docs/apis-tools/tasklist-api/enums/task-sort-fields.mdx deleted file mode 100644 index 11105070a2d..00000000000 --- a/docs/apis-tools/tasklist-api/enums/task-sort-fields.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: task-sort-fields -title: TaskSortFields -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -State of the task. - -```graphql -enum TaskSortFields { - creationTime - completionTime - followUpDate - dueDate -} -``` - -### Values - -#### [TaskSortFields.creationTime](#) - -> Use the field creationTime for sorting - -#### [TaskSortFields.completionTime](#) - -> Use the field completionTime for sorting - -#### [TaskSortFields.followUpDate](#) - -> Use the field followUpDate for sorting - -#### [TaskSortFields.dueDate](#) - -> Use the field dueDate for sorting - -### Member of - -[`TaskQuery`](/docs/apis-tools/tasklist-api/inputs/task-query.mdx) diff --git a/docs/apis-tools/tasklist-api/enums/task-state.mdx b/docs/apis-tools/tasklist-api/enums/task-state.mdx deleted file mode 100644 index 736495f669f..00000000000 --- a/docs/apis-tools/tasklist-api/enums/task-state.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: task-state -title: TaskState -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -State of the task. - -```graphql -enum TaskState { - CREATED - COMPLETED - CANCELED -} -``` - -### Values - -#### [TaskState.CREATED](#) - -> - -#### [TaskState.COMPLETED](#) - -> - -#### [TaskState.CANCELED](#) - -> - -### Member of - -[`Task`](../objects/task.mdx) [`TaskQuery`](../inputs/task-query.mdx) diff --git a/docs/apis-tools/tasklist-api/generated.md b/docs/apis-tools/tasklist-api/generated.md deleted file mode 100644 index 72b93fb4bf3..00000000000 --- a/docs/apis-tools/tasklist-api/generated.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: schema -slug: /apis-tools/tasklist-api -title: Schema Documentation -sidebar_position: 1 -hide_table_of_contents: true -pagination_next: null -pagination_prev: null -sidebar_class_name: navbar__toggle ---- - -This documentation has been automatically generated from the GraphQL schema. -GraphQL schema file to download: [tasklist.graphqls](./assets/tasklist.graphqls) - -Use the docs in the sidebar to find out how to use the schema: - -- **Allowed operations**: queries and mutations. -- **Schema-defined types**: scalars, objects, enums, interfaces, unions, and input objects. - -Generated on 11/11/2022, 11:24:49 AM. diff --git a/docs/apis-tools/tasklist-api/inputs/_category_.yml b/docs/apis-tools/tasklist-api/inputs/_category_.yml deleted file mode 100644 index 170f758fc24..00000000000 --- a/docs/apis-tools/tasklist-api/inputs/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Inputs" diff --git a/docs/apis-tools/tasklist-api/inputs/date-filter-input.mdx b/docs/apis-tools/tasklist-api/inputs/date-filter-input.mdx deleted file mode 100644 index 076db907a0b..00000000000 --- a/docs/apis-tools/tasklist-api/inputs/date-filter-input.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: date-filter-input -title: DateFilter -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Filter using a date range - -```graphql -input DateFilter { - from: DateTime! - to: DateTime! -} -``` - -### Fields - -#### [DateFilter.from](#)[`DateTime!`](/docs/apis-tools/tasklist-api/scalars/DateTime.mdx) - -> Start date range to search from - -#### [DateFilter.to](#)[`DateTime!`](/docs/apis-tools/tasklist-api/scalars/DateTime.mdx) - -> End date range to search to diff --git a/docs/apis-tools/tasklist-api/inputs/task-order-by.mdx b/docs/apis-tools/tasklist-api/inputs/task-order-by.mdx deleted file mode 100644 index 2451b8d2a53..00000000000 --- a/docs/apis-tools/tasklist-api/inputs/task-order-by.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: task-order-by -title: TaskOrderBy -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Filter using a date range - -```graphql -input TaskOrderBy { - field: TaskSortFields! - order: Sort! -} -``` - -### Fields - -#### [TaskOrderBy.field](#)[`TaskSortFields!`](/docs/apis-tools/tasklist-api/enums/task-sort-fields.mdx) - -> Allowed fields to sort by - -#### [TaskOrderBy.order](#)[`Sort!`](/docs/apis-tools/tasklist-api/enums/sort.mdx) - -> Define if sorting is Ascending or Descending diff --git a/docs/apis-tools/tasklist-api/inputs/task-query.mdx b/docs/apis-tools/tasklist-api/inputs/task-query.mdx deleted file mode 100644 index b19a391a76b..00000000000 --- a/docs/apis-tools/tasklist-api/inputs/task-query.mdx +++ /dev/null @@ -1,133 +0,0 @@ ---- -id: task-query -title: TaskQuery -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Task query - query to get one page of tasks. - -```graphql -input TaskQuery { - state: TaskState - assigned: Boolean - assignee: String - candidateGroup: String - candidateUser: String - processDefinitionId: String - processInstanceId: String - followUpDate: DateFilter - dueDate: DateFilter - pageSize: Int - taskDefinitionId: String - searchAfter: [String!] - searchAfterOrEqual: [String!] - searchBefore: [String!] - searchBeforeOrEqual: [String!] - sort: [TaskOrderBy] -} -``` - -### Fields - -#### [TaskQuery.state](#)[`TaskState`](/docs/apis-tools/tasklist-api/enums/task-state.mdx) - -> State of the tasks - -#### [TaskQuery.assigned](#)[`Boolean`](/docs/apis-tools/tasklist-api/scalars/boolean.mdx) - -> Are the tasks assigned? - -#### [TaskQuery.assignee](#)[`String`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Who is assigned to the tasks? - -#### [TaskQuery.candidateGroup](#)[`String`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> given group is in candidate groups list - -#### [TaskQuery.candidateUser](#)[`String`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> given group is in candidate user list - -#### [TaskQuery.processDefinitionId](#)[`String`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Reference to process definition - -#### [TaskQuery.processInstanceId](#)[`String`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Reference to process instance - -#### [TaskQuery.followUpDateDate](#)[`DateFilter`](/docs/apis-tools/tasklist-api/inputs/date-filter-input.mdx) - -> Follow-up date for the task - -#### [TaskQuery.dueDate](#)[`DateFilter`](/docs/apis-tools/tasklist-api/inputs/date-filter-input.mdx) - -> Due date for the task - -#### [TaskQuery.pageSize](#)[`Int`](/docs/apis-tools/tasklist-api/scalars/int.mdx) - -> Size of tasks page (default: 50). - -#### [TaskQuery.taskDefinitionId](#)[`String`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Task definition ID - what's the BPMN flow node? - -#### [TaskQuery.searchAfter](#)[`[String!]`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly after this values plus same sort values. - -#### [TaskQuery.searchAfterOrEqual](#)[`[String!]`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly after this values. - -#### [TaskQuery.searchBefore](#)[`[String!]`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly before this values plus same sort values. - -#### [TaskQuery.searchBeforeOrEqual](#)[`[String!]`](/docs/apis-tools/tasklist-api/scalars/string.mdx) - -> Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly before this values. - -#### [TaskQuery.sort](#)[`[TaskOrderBy]`](/docs/apis-tools/tasklist-api/inputs/task-order-by.mdx) - -> Array of values copied from `sortValues` of one of the tasks, query will return page of tasks going directly before this values. - -### Member of - -[`tasks`](/apis-tools/tasklist-api/queries/tasks.mdx) diff --git a/docs/apis-tools/tasklist-api/inputs/variable-input.mdx b/docs/apis-tools/tasklist-api/inputs/variable-input.mdx deleted file mode 100644 index d3958e48255..00000000000 --- a/docs/apis-tools/tasklist-api/inputs/variable-input.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: variable-input -title: VariableInput -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Change or add a variable with name and value. - -```graphql -input VariableInput { - name: String! - value: String! -} -``` - -### Fields - -#### [VariableInput.name](#)[`String!`](../scalars/string.mdx) - -> Name of the variable. - -#### [VariableInput.value](#)[`String!`](../scalars/string.mdx) - -> Value of the variable. Complex values, e.g. a list of objects, must be serialized as JSON. - -### Member of - -[`completeTask`](../mutations/complete-task.mdx) diff --git a/docs/apis-tools/tasklist-api/interfaces/_category_.yml b/docs/apis-tools/tasklist-api/interfaces/_category_.yml deleted file mode 100644 index 2adeef08a87..00000000000 --- a/docs/apis-tools/tasklist-api/interfaces/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Interfaces" diff --git a/docs/apis-tools/tasklist-api/mutations/_category_.yml b/docs/apis-tools/tasklist-api/mutations/_category_.yml deleted file mode 100644 index 4896c1e5d33..00000000000 --- a/docs/apis-tools/tasklist-api/mutations/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Mutations" diff --git a/docs/apis-tools/tasklist-api/mutations/claim-task.mdx b/docs/apis-tools/tasklist-api/mutations/claim-task.mdx deleted file mode 100644 index 5c2b84857dc..00000000000 --- a/docs/apis-tools/tasklist-api/mutations/claim-task.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: claim-task -title: claimTask -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Claim a task with `taskId` to `assignee`. Returns the task. - -When using Graphql API with JWT authentication token following parameters may be used: - -- `assignee`. When using a JWT token, the assignee parameter is NOT optional when called directly from the API. - The system will not be able to detect the assignee from the JWT token, therefore the assignee parameter needs to be - explicitly passed in this instance. -- `allowOverrideAssignment`. When `true` the task that is already assigned may be claimed again. Otherwise the task - must be first unclaimed and only then claimed again. (Default: `true`) - -```graphql -claimTask( - taskId: String! - assignee: String - allowOverrideAssignment: Boolean -): Task! -``` - -### Arguments - -#### [claimTask.taskId](#)[`String!`](../scalars/string.mdx) - -> - -#### [claimTask.assignee](#)[`String`](../scalars/string.mdx) - -> - -#### [claimTask.allowOverrideAssignment](#)[`Boolean`](../scalars/boolean.mdx) - -> - -### Type - -#### [`Task`](../objects/task.mdx) - -> Describes the User task. diff --git a/docs/apis-tools/tasklist-api/mutations/complete-task.mdx b/docs/apis-tools/tasklist-api/mutations/complete-task.mdx deleted file mode 100644 index 1c713a2a5f4..00000000000 --- a/docs/apis-tools/tasklist-api/mutations/complete-task.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: complete-task -title: completeTask -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Complete a task with taskId and optional variables. Returns the task. - -```graphql -completeTask( - taskId: String! - variables: [VariableInput!]! -): Task! -``` - -### Arguments - -#### [completeTask.taskId](#)[`String!`](../scalars/string.mdx) - -> - -#### [completeTask.variables](#)[`[VariableInput!]!`](../inputs/variable-input.mdx) - -> - -### Type - -#### [`Task`](../objects/task.mdx) - -> Describes the User task. diff --git a/docs/apis-tools/tasklist-api/mutations/delete-process-instance.mdx b/docs/apis-tools/tasklist-api/mutations/delete-process-instance.mdx deleted file mode 100644 index d71c392e7a8..00000000000 --- a/docs/apis-tools/tasklist-api/mutations/delete-process-instance.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: delete-process-instance -title: deleteProcessInstance -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Delete process instance by given processInstanceId. Returns true if process instance could be deleted. - -```graphql -deleteProcessInstance( - processInstanceId: String! -): Boolean! -``` - -### Arguments - -#### [deleteProcessInstance.processInstanceId](#)[`String!`](../scalars/string.mdx) - -> - -### Type - -#### [`Boolean`](../scalars/boolean.mdx) - -> The `Boolean` scalar type represents `true` or `false`. diff --git a/docs/apis-tools/tasklist-api/mutations/unclaim-task.mdx b/docs/apis-tools/tasklist-api/mutations/unclaim-task.mdx deleted file mode 100644 index e00f4659f5b..00000000000 --- a/docs/apis-tools/tasklist-api/mutations/unclaim-task.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: unclaim-task -title: unclaimTask -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Unclaim a task with taskId. Returns the task. - -```graphql -unclaimTask( - taskId: String! -): Task! -``` - -### Arguments - -#### [unclaimTask.taskId](#)[`String!`](../scalars/string.mdx) - -> - -### Type - -#### [`Task`](../objects/task.mdx) - -> Describes the User task. diff --git a/docs/apis-tools/tasklist-api/objects/_category_.yml b/docs/apis-tools/tasklist-api/objects/_category_.yml deleted file mode 100644 index f56c1499f38..00000000000 --- a/docs/apis-tools/tasklist-api/objects/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Objects" diff --git a/docs/apis-tools/tasklist-api/objects/form.mdx b/docs/apis-tools/tasklist-api/objects/form.mdx deleted file mode 100644 index 19a5a47f743..00000000000 --- a/docs/apis-tools/tasklist-api/objects/form.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -id: form -title: Form -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Describes task embedded form - -```graphql -type Form { - id: String! - processDefinitionId: String! - schema: String! -} -``` - -### Fields - -#### [Form.id](#)[`String!`](../scalars/string.mdx) - -> The unique identifier of the embedded form within one process - -#### [Form.processDefinitionId](#)[`String!`](../scalars/string.mdx) - -> Reference to process definition - -#### [Form.schema](#)[`String!`](../scalars/string.mdx) - -> Form content - -### Returned by - -[`form`](../queries/form.mdx) diff --git a/docs/apis-tools/tasklist-api/objects/task.mdx b/docs/apis-tools/tasklist-api/objects/task.mdx deleted file mode 100644 index 800fec6ebcc..00000000000 --- a/docs/apis-tools/tasklist-api/objects/task.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -id: task -title: Task -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Describes the User task. - -```graphql -type Task { - id: ID! - name: String! - taskDefinitionId: String! - processName: String! - creationTime: String! - completionTime: String - assignee: String - variables: [Variable!] - taskState: TaskState! - sortValues: [String!] - isFirst: Boolean - formKey: String - processDefinitionId: String - processInstanceId: String - candidateGroups: [String!] - candidateUsers: [String!] - followUpDate: DateTime - #Due date for Task - dueDate: DateTime -} -``` - -### Fields - -#### [Task.id](#)[`ID!`](../scalars/id.mdx) - -> The unique identifier of the task - -#### [Task.name](#)[`String!`](../scalars/string.mdx) - -> Name of the task - -#### [Task.taskDefinitionId](#)[`String!`](../scalars/string.mdx) - -> Task Definition ID (node BPMN id) of the process - -#### [Task.processName](#)[`String!`](../scalars/string.mdx) - -> Name of the process - -#### [Task.creationTime](#)[`String!`](../scalars/string.mdx) - -> When was the task created - -#### [Task.completionTime](#)[`String`](../scalars/string.mdx) - -> When was the task completed - -#### [Task.assignee](#)[`String`](../scalars/string.mdx) - -> Username/id of who is assigned to the task - -#### [Task.variables](#)[`[Variable!]`](../objects/variable.mdx) - -> Variables associated to the task - -#### [Task.taskState](#)[`TaskState!`](../enums/task-state.mdx) - -> State of the task - -#### [Task.sortValues](#)[`[String!]`](../scalars/string.mdx) - -> Array of values to be copied into `TaskQuery` to request for next or previous page of tasks. - -#### [Task.isFirst](#)[`Boolean`](../scalars/boolean.mdx) - -> Flag to show that the task is first in current filter - -#### [Task.formKey](#)[`String`](../scalars/string.mdx) - -> Reference to the task form - -#### [Task.processDefinitionId](#)[`String`](../scalars/string.mdx) - -> Reference to process definition - -#### [Task.processInstanceId](#)[`String`](../scalars/string.mdx) - -> Reference to process instance id - -#### [Task.candidateGroups](#)[`[String!]`](../scalars/string.mdx) - -> Candidate groups - -#### [Task.candidateUsers](#)[`[String!]`](../scalars/string.mdx) - -> Candidate users - -#### [Task.followUpDate](#)[`[String!]`](../scalars/DateTime.mdx) - -> Follow-up date for the task - -#### [Task.dueDate](#)[`[String!]`](../scalars/DateTime.mdx) - -> Due date for the task - -### Returned by - -[`claimTask`](../mutations/claim-task.mdx) [`completeTask`](../mutations/complete-task.mdx) [`task`](../queries/task.mdx) [`tasks`](../queries/tasks.mdx) [`unclaimTask`](../mutations/unclaim-task.mdx) diff --git a/docs/apis-tools/tasklist-api/objects/user.mdx b/docs/apis-tools/tasklist-api/objects/user.mdx deleted file mode 100644 index cc9bcaa35ac..00000000000 --- a/docs/apis-tools/tasklist-api/objects/user.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: user -title: User -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Describes the user. - -```graphql -type User { - userId: ID! - displayName: String - permissions: [String!] - roles: [String] - salesPlanType: String -} -``` - -### Fields - -#### [User.userId](#)[`ID!`](../scalars/id.mdx) - -> - -#### [User.displayName](#)[`String`](../scalars/string.mdx) - -> - -#### [User.permissions](#)[`[String!]`](../scalars/string.mdx) - -> - -#### [User.roles](#)[`[String]`](../scalars/string.mdx) - -> - -#### [User.salesPlanType](#)[`String`](../scalars/string.mdx) - -> - -### Returned by - -[`currentUser`](../queries/current-user.mdx) diff --git a/docs/apis-tools/tasklist-api/objects/variable.mdx b/docs/apis-tools/tasklist-api/objects/variable.mdx deleted file mode 100644 index 99555238c1d..00000000000 --- a/docs/apis-tools/tasklist-api/objects/variable.mdx +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: variable -title: Variable -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Variable used in task. - -```graphql -type Variable { - id: ID! - name: String! - value: String! - previewValue: String! - isValueTruncated: Boolean! -} -``` - -### Fields - -#### [Variable.id](#)[`ID!`](../scalars/id.mdx) - -> - -#### [Variable.name](#)[`String!`](../scalars/string.mdx) - -> - -#### [Variable.value](#)[`String!`](../scalars/string.mdx) - -> full variable value - -#### [Variable.previewValue](#)[`String!`](../scalars/string.mdx) - -> value preview (limited in size) - -#### [Variable.isValueTruncated](#)[`Boolean!`](../scalars/boolean.mdx) - -> shows, whether previewValue contains truncated value or full value - -### Returned by - -[`variable`](../queries/variable.mdx) [`variables`](../queries/variables.mdx) - -### Member of - -[`Task`](../objects/task.mdx) diff --git a/docs/apis-tools/tasklist-api/queries/_category_.yml b/docs/apis-tools/tasklist-api/queries/_category_.yml deleted file mode 100644 index 529a48de855..00000000000 --- a/docs/apis-tools/tasklist-api/queries/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Queries" diff --git a/docs/apis-tools/tasklist-api/queries/current-user.mdx b/docs/apis-tools/tasklist-api/queries/current-user.mdx deleted file mode 100644 index 997da3571aa..00000000000 --- a/docs/apis-tools/tasklist-api/queries/current-user.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: current-user -title: currentUser -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Get currently logged in user. - -```graphql -currentUser: User! -``` - -### Type - -#### [`User`](../objects/user.mdx) - -> Describes the user. diff --git a/docs/apis-tools/tasklist-api/queries/form.mdx b/docs/apis-tools/tasklist-api/queries/form.mdx deleted file mode 100644 index a4d110d93dc..00000000000 --- a/docs/apis-tools/tasklist-api/queries/form.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: form -title: form -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Get task form by id and processDefinitionId - -```graphql -form( - id: String! - processDefinitionId: String! -): Form -``` - -### Arguments - -#### [form.id](#)[`String!`](../scalars/string.mdx) - -> - -#### [form.processDefinitionId](#)[`String!`](../scalars/string.mdx) - -> - -### Type - -#### [`Form`](../objects/form.mdx) - -> Describes task embedded form diff --git a/docs/apis-tools/tasklist-api/queries/task.mdx b/docs/apis-tools/tasklist-api/queries/task.mdx deleted file mode 100644 index f3f7e23e70c..00000000000 --- a/docs/apis-tools/tasklist-api/queries/task.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: task -title: task -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Get one task by id. Returns task or error when task does not exist. - -```graphql -task( - id: String! -): Task! -``` - -### Arguments - -#### [task.id](#)[`String!`](../scalars/string.mdx) - -> - -### Type - -#### [`Task`](../objects/task.mdx) - -> Describes the User task. diff --git a/docs/apis-tools/tasklist-api/queries/tasks.mdx b/docs/apis-tools/tasklist-api/queries/tasks.mdx deleted file mode 100644 index 2073800499c..00000000000 --- a/docs/apis-tools/tasklist-api/queries/tasks.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: tasks -title: tasks -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Get list of tasks based on `TaskQuery`. - -```graphql -tasks( - query: TaskQuery! -): [Task!]! -``` - -### Arguments - -#### [tasks.query](#)[`TaskQuery!`](../inputs/task-query.mdx) - -> - -### Type - -#### [`Task`](../objects/task.mdx) - -> Describes the User task. diff --git a/docs/apis-tools/tasklist-api/queries/variable.mdx b/docs/apis-tools/tasklist-api/queries/variable.mdx deleted file mode 100644 index df3c0de0594..00000000000 --- a/docs/apis-tools/tasklist-api/queries/variable.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: variable -title: variable -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Get the variables by variable id - -```graphql -variable( - id: String! -): Variable! -``` - -### Arguments - -#### [variable.id](#)[`String!`](../scalars/string.mdx) - -> - -### Type - -#### [`Variable`](../objects/variable.mdx) - -> Variable used in task. diff --git a/docs/apis-tools/tasklist-api/queries/variables.mdx b/docs/apis-tools/tasklist-api/queries/variables.mdx deleted file mode 100644 index 9654f63c846..00000000000 --- a/docs/apis-tools/tasklist-api/queries/variables.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: variables -title: variables -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -Get a collection of Variables by name - -```graphql -variables( - taskId: String! - variableNames: [String!]! -): [Variable!]! -``` - -### Arguments - -#### [variables.taskId](#)[`String!`](../scalars/string.mdx) - -> - -#### [variables.variableNames](#)[`[String!]!`](../scalars/string.mdx) - -> - -### Type - -#### [`Variable`](../objects/variable.mdx) - -> Variable used in task. diff --git a/docs/apis-tools/tasklist-api/scalars/DateTime.mdx b/docs/apis-tools/tasklist-api/scalars/DateTime.mdx deleted file mode 100644 index 9f5272a3fc7..00000000000 --- a/docs/apis-tools/tasklist-api/scalars/DateTime.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: datetime -title: DateTime -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -The `DateTime` scalar type represents date and time data and is compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. - -```graphql -scalar DateTime -``` - -### Member of - -[`Task`](/docs/apis-tools/tasklist-api/inputs/task-query.mdx) diff --git a/docs/apis-tools/tasklist-api/scalars/_category_.yml b/docs/apis-tools/tasklist-api/scalars/_category_.yml deleted file mode 100644 index 882b071de4b..00000000000 --- a/docs/apis-tools/tasklist-api/scalars/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Scalars" diff --git a/docs/apis-tools/tasklist-api/scalars/boolean.mdx b/docs/apis-tools/tasklist-api/scalars/boolean.mdx deleted file mode 100644 index 7d445378c90..00000000000 --- a/docs/apis-tools/tasklist-api/scalars/boolean.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: boolean -title: Boolean -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -The `Boolean` scalar type represents `true` or `false`. - -```graphql -scalar Boolean -``` - -### Returned by - -[`deleteProcessInstance`](../mutations/delete-process-instance.mdx) - -### Member of - -[`claimTask`](../mutations/claim-task.mdx) [`include`](../directives/include.mdx) [`skip`](../directives/skip.mdx) [`Task`](../objects/task.mdx) [`TaskQuery`](../inputs/task-query.mdx) [`Variable`](../objects/variable.mdx) diff --git a/docs/apis-tools/tasklist-api/scalars/id.mdx b/docs/apis-tools/tasklist-api/scalars/id.mdx deleted file mode 100644 index 7504beac023..00000000000 --- a/docs/apis-tools/tasklist-api/scalars/id.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: id -title: ID -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. - -```graphql -scalar ID -``` - -### Member of - -[`Task`](../objects/task.mdx) [`User`](../objects/user.mdx) [`Variable`](../objects/variable.mdx) diff --git a/docs/apis-tools/tasklist-api/scalars/int.mdx b/docs/apis-tools/tasklist-api/scalars/int.mdx deleted file mode 100644 index e85fdb3c003..00000000000 --- a/docs/apis-tools/tasklist-api/scalars/int.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: int -title: Int -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. - -```graphql -scalar Int -``` - -### Member of - -[`TaskQuery`](../inputs/task-query.mdx) diff --git a/docs/apis-tools/tasklist-api/scalars/string.mdx b/docs/apis-tools/tasklist-api/scalars/string.mdx deleted file mode 100644 index 818899c478a..00000000000 --- a/docs/apis-tools/tasklist-api/scalars/string.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: string -title: String -hide_table_of_contents: false ---- - -export const Bullet = () => ( - <> - -  ●  - - -); - -export const SpecifiedBy = (props) => ( - <> - Specification - - ⎘ - - -); - -export const Badge = (props) => ( - <> - {props.text} - -); - -The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. - -```graphql -scalar String -``` - -### Member of - -[`claimTask`](../mutations/claim-task.mdx) [`completeTask`](../mutations/complete-task.mdx) [`deleteProcessInstance`](../mutations/delete-process-instance.mdx) [`deprecated`](../directives/deprecated.mdx) [`Form`](../objects/form.mdx) [`form`](../queries/form.mdx) [`specifiedBy`](../directives/specified-by.mdx) [`Task`](../objects/task.mdx) [`task`](../queries/task.mdx) [`TaskQuery`](../inputs/task-query.mdx) [`unclaimTask`](../mutations/unclaim-task.mdx) [`User`](../objects/user.mdx) [`Variable`](../objects/variable.mdx) [`variable`](../queries/variable.mdx) [`VariableInput`](../inputs/variable-input.mdx) [`variables`](../queries/variables.mdx) diff --git a/docs/apis-tools/tasklist-api/sidebar-schema.js b/docs/apis-tools/tasklist-api/sidebar-schema.js deleted file mode 100644 index 82b59566af1..00000000000 --- a/docs/apis-tools/tasklist-api/sidebar-schema.js +++ /dev/null @@ -1,10 +0,0 @@ -/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ - -module.exports = { - "Tasklist API (GraphQL)": [ - { - type: "autogenerated", - dirName: "apis-tools/tasklist-api", - }, - ], -}; diff --git a/docs/apis-tools/tasklist-api/tasklist-api-authentication.md b/docs/apis-tools/tasklist-api/tasklist-api-authentication.md deleted file mode 100644 index 2cd6c2d4a5f..00000000000 --- a/docs/apis-tools/tasklist-api/tasklist-api-authentication.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -id: tasklist-api-authentication -title: Authentication -slug: /apis-tools/tasklist-api/tasklist-api-authentication -sidebar_position: 2 -description: "Build apps powered by BPMN that require human interaction, and make requests." ---- - -Authenticate to access the Tasklist API. - -## Authentication in the cloud - -To access the API endpoint, you need an access token. - -Your client must send a header in each request: - -`Authorization: Bearer ` - -For example, send a request using _curl_: - -```shell -curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer " -d '{"query": "{tasks(query:{}){name}}"}' http://localhost:8080/graphql -``` - -### How to obtain the access token - -You must obtain a token to use the Tasklist API. When you create a Tasklist [client](/guides/setup-client-connection-credentials.md), you get all the information needed to connect to Tasklist. - -Refer to our guide on [building your own client](/apis-tools/build-your-own-client.md). - -The following settings are needed: - -| Name | Description | Default value | -| ------------------------ | ----------------------------------------------- | --------------------- | -| client id | Name of your registered client | - | -| client secret | Password for your registered client | - | -| audience | Permission name; if not given use default value | `tasklist.camunda.io` | -| authorization server url | Token issuer server | - | - -Send a token issue _POST_ request to the authorization server with the following content: - -```json -{ - "client_id": "", - "client_secret": "", - "audience": "", - "grant_type": "client_credentials" -} -``` - -Refer to the following example with _curl_: - -```shell -curl -X POST --header 'content-type: application/json' --data '{"client_id": "", "client_secret":"","audience":"","grant_type":"client_credentials"}' https:// -``` - -If the authentication is successful, the authorization server sends back the access token, when it expires, scope, and type: - -```json -{ - "access_token": "ey...", - "scope": "...", - "expires_in": 86400, - "token_type": "Bearer" -} -``` - -## Authentication for Self-Managed cluster - -### Authentication via Identity JWT access token - -The authentication is described in [Tasklist Configuration - Authentication](/self-managed/tasklist-deployment/tasklist-authentication.md#identity). - -### Authentication via cookie - -:::note -When authenticating via cookie, note that Cross-Site Request Forgery (CSRF) protection must be disabled to allow this method of authentication. In a Camunda Self-Managed cluster, set the configuration property `camunda.tasklist.csrfPreventionEnabled` to `false`. -::: - -Another way to access the Tasklist API in a Self-Managed cluster is to send cookie headers in each request. The cookie can be obtained by using the API endpoint `/api/login`. Take the following steps: - -1. Log in as user 'demo' and store the cookie in the file `cookie.txt`: - -```shell -curl -c cookie.txt -X POST 'http://localhost:8080/api/login?username=demo&password=demo' -``` - -2. Send the cookie (as a header) in each API request. In this case, request all process definitions: - -```shell -curl -b cookie.txt -X POST 'http://localhost:8080/v1/process-definitions/search' -H 'Content-Type: application/json' -d '{}' -``` diff --git a/docs/apis-tools/tasklist-api/tasklist-api-graphql-to-rest-migration.md b/docs/apis-tools/tasklist-api/tasklist-api-graphql-to-rest-migration.md deleted file mode 100644 index 3b17a3ad4fd..00000000000 --- a/docs/apis-tools/tasklist-api/tasklist-api-graphql-to-rest-migration.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -id: tasklist-api-graphql-to-rest-migration -title: GraphQL to REST API migration -slug: /apis-tools/tasklist-api/tasklist-api-graphql-to-rest-migration -sidebar_position: 3 -description: "This article provides a guide for developers to migrate from GraphQL to REST API seamlessly." ---- - -We want to provide you with the information you need to successfully migrate from our GraphQL API -to our new REST API version. In this document, we'll explain the differences between the two APIs -and provide guidance on how to make the switch. - -GraphQL has been a popular and valuable tool for many of our customers, but we recognize that there are -certain advantages to using a RESTful architecture. Our new REST API version provides a more structured -and predictable way of accessing our data, which can improve performance and greater reliability. - -It's worth noting that all of our other APIs use REST, so moving to a RESTful architecture will align this API -with the rest of our ecosystem. This will make it easier to maintain and enhance our APIs over time, -as well as providing a more consistent experience for API customers. - -## GraphQL operation to REST API endpoint mapping - -### Queries - -#### Task - -Instead of [task](../tasklist-api/queries/task.mdx) GraphQL query: - -```graphql -# Get one task by id. Returns task or error when task does not exist. -task(id: String!): Task! -``` - -Use the following [get task](../tasklist-api-rest/controllers/tasklist-api-rest-task-controller.md#get-task) endpoint: - -```bash -curl -X 'GET' \ - 'http://{host}/v1/tasks/{taskId}' \ - -H 'accept: application/json' - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' -``` - -:::note - -The following fields in REST API response were renamed compared to the equivalent GraphQL response: - -- [`Task.creationTime`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcreationtimebcodestring--) ⇒ [`TaskResponse.creationDate`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx#code-style-fontweight-normal-taskresponsebcreationdatebcodestring-) -- [`Task.completionTime`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcompletiontimebcodestring-) ⇒ [`TaskResponse.completionDate`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx#code-style-fontweight-normal-taskresponsebcompletiondatebcodestring) -- [`Task.processDefinitionId`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessdefinitionidbcodestring-) ⇒ [`TaskResponse.processDefinitionKey`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx#code-style-fontweight-normal-taskresponsebprocessdefinitionkeybcodestring) -- [`Task.processInstanceId`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessinstanceidbcodestring-) ⇒ [`TaskResponse.processInstanceKey`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-response.mdx#code-style-fontweight-normal-taskresponsebprocessinstancekeybcodestring) - -::: - -#### Tasks - -Instead of [tasks](../tasklist-api/queries/tasks.mdx) GraphQL query: - -```graphql -# Get list of tasks based on `TaskQuery`. -tasks(query: TaskQuery!): [Task!]! -``` - -Use the following [search tasks](../tasklist-api-rest/controllers/tasklist-api-rest-task-controller.md#search-tasks) endpoint: - -```bash -curl -X 'POST' \ - 'http://{host}/v1/tasks/search' \ - -H 'accept: application/json' \ - -H 'Content-Type: application/json' \ - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' \ - -d '{ - "state": "CREATED", - "assigned": true -}' -``` - -:::note - -Please note that several field names in request body and response were changed in REST API comparing to the equivalent GraphQL input/response models, in order to improve the consistency and clarity of our API: - -- in request body: - - - [`TaskQuery.processDefinitionId`](docs/apis-tools/tasklist-api/inputs/task-query.mdx#code-style-fontweight-normal-taskquerybprocessdefinitionidbcodestring-) ⇒ [`TaskSearchRequest.processDefinitionKey`](docs/apis-tools/tasklist-api-rest/schemas/requests/task-search-request.mdx#code-style-fontweight-normal-tasksearchrequestbprocessdefinitionkeybcodestring) - - [`TaskQuery.processInstanceId`](docs/apis-tools/tasklist-api/inputs/task-query.mdx#code-style-fontweight-normal-taskquerybprocessinstanceidbcodestring-) ⇒ [`TaskSearchRequest.processInstanceKey`](docs/apis-tools/tasklist-api-rest/schemas/requests/task-search-request.mdx#code-style-fontweight-normal-tasksearchrequestbprocessinstancekeybcodestring) - -- in response: - - [`Task.creationTime`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcreationtimebcodestring--) ⇒ [`TaskSearchResponse.creationDate`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx#code-style-fontweight-normal-tasksearchresponsebcreationdatebcodestring-) - - [`Task.completionTime`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbcompletiontimebcodestring-) ⇒ [`TaskSearchResponse.completionDate`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx#code-style-fontweight-normal-tasksearchresponsebcompletiondatebcodestring) - - [`Task.processDefinitionId`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessdefinitionidbcodestring-) ⇒ [`TaskSearchResponse.processDefinitionKey`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx#code-style-fontweight-normal-tasksearchresponsebprocessdefinitionkeybcodestring) - - [`Task.processInstanceId`](docs/apis-tools/tasklist-api/objects/task.mdx#code-style-fontweight-normal-taskbprocessinstanceidbcodestring-) ⇒ [`TaskSearchResponse.processInstanceKey`](docs/apis-tools/tasklist-api-rest/schemas/responses/task-search-response.mdx#code-style-fontweight-normal-tasksearchresponsebprocessinstancekeybcodestring) - -::: - -#### Variable - -Instead of [variable](../tasklist-api/queries/variable.mdx) GraphQL query: - -```graphql -# Get the variables by variable id -variable(id: String!): Variable! -``` - -Use the following [get variable](../tasklist-api-rest/controllers/tasklist-api-rest-variables-controller.md#get-variable) endpoint: - -```bash -curl -X 'GET' \ - 'http://{host}/v1/variables/{variableId}' \ - -H 'accept: application/json' \ - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' -``` - -#### Variables - -Instead of [variables](../tasklist-api/queries/variables.mdx) GraphQL query: - -```graphql -# Get a collection of Variables by name -variables(taskId: String!, variableNames: [String!]!): [Variable!]! -``` - -Use the following [search task variables](../tasklist-api-rest/controllers/tasklist-api-rest-task-controller.md#search-task-variables) endpoint: - -```bash -curl -X 'POST' \ - 'http://{host}/v1/tasks/{taskId}/variables/search' \ - -H 'accept: application/json' \ - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' \ - -d '{ - "variableNames": [ - "varA", "varB" - ] - }' -``` - -#### Form - -Instead of [form](../tasklist-api/queries/form.mdx) GraphQL query: - -```graphql -# Get task form by formId and processDefinitionId -form(id: String!, processDefinitionId: String!): Form -``` - -Use the following [get form](../tasklist-api-rest/controllers/tasklist-api-rest-form-controller.md#get-form) endpoint: - -```bash -curl -X 'GET' \ - 'http://{host}/v1/forms/{formId}?processDefinitionKey={processDefinitionKey}' \ - -H 'accept: application/json' \ - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' -``` - -:::note - -Note that `processDefinitionKey` query parameter in HTTP request represents the same value as [`form.processDefinitionId`](docs/apis-tools/tasklist-api/queries/form.mdx#code-style-fontweight-normal-formbprocessdefinitionidbcodestring--), -and in REST API response [`FormResponse.processDefinitionKey`](docs/apis-tools/tasklist-api-rest/schemas/responses/form-response.mdx#code-style-fontweight-normal-formresponsebprocessdefinitionkeybcodestring-) field -is the renamed equivalent of [`Form.processDefinitionId`](docs/apis-tools/tasklist-api/objects/form.mdx#code-style-fontweight-normal-formbprocessdefinitionidbcodestring--). - -::: - -### Mutations - -#### Claim task - -Instead of [claimTasks](../tasklist-api/mutations/claim-task.mdx) GraphQL mutation: - -```graphql -# Claim a task with `taskId` to `assignee`. Returns the task. -claimTask(taskId: String!, assignee: String, allowOverrideAssignment: Boolean): Task! -``` - -Use the following [assign task](../tasklist-api-rest/controllers/tasklist-api-rest-task-controller.md#assign-task) endpoint: - -```bash -curl -X 'PATCH' \ - 'http://{host}/v1/tasks/{taskId}/assign' \ - -H 'accept: application/json' \ - -H 'Content-Type: application/json' \ - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' -``` - -#### Unclaim task - -Instead of [unclaimTasks](../tasklist-api/mutations/unclaim-task.mdx) GraphQL mutation: - -```graphql -# Unclaim a task with taskId. Returns the task. -unclaimTask(taskId: String!): Task! -``` - -Use the following [unassign task](../tasklist-api-rest/controllers/tasklist-api-rest-task-controller.md#unassign-task) endpoint: - -```bash -curl -X 'PATCH' \ - 'http://{host}/v1/tasks/{taskId}/unassign' \ - -H 'accept: application/json' \ - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' -``` - -#### Complete task - -Instead of [completeTasks](../tasklist-api/mutations/complete-task.mdx) GraphQL mutation: - -```graphql -# Complete a task with taskId and optional variables. Returns the task. -completeTask(taskId: String!, variables: [VariableInput!]!): Task! -``` - -Use the following [complete task](../tasklist-api-rest/controllers/tasklist-api-rest-task-controller.md#complete-task) endpoint: - -```bash -curl -X 'PATCH' \ - 'http://{host}/v1/tasks/{taskId}/complete' \ - -H 'accept: application/json' \ - -H 'Cookie: TASKLIST-SESSION={tasklistSessionId}' -``` diff --git a/docs/apis-tools/tasklist-api/tasklist-api-overview.md b/docs/apis-tools/tasklist-api/tasklist-api-overview.md deleted file mode 100644 index 7f3eaf0586e..00000000000 --- a/docs/apis-tools/tasklist-api/tasklist-api-overview.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: tasklist-api-overview -title: Overview -slug: /apis-tools/tasklist-api/tasklist-api-overview -sidebar_position: 1 -description: "Build apps powered by BPMN that require human interaction, and make requests." ---- - -Learn the basics on how to consume the Tasklist GraphQL API. Read more about how to build a real world application [here](../tasklist-api-tutorial). Be sure to [authenticate to use the Tasklist API](./tasklist-api-authentication.md). - -:::info -The GraphQL API is deprecated. To ensure a smooth transition, we'll continue to support our GraphQL API for a period of time, giving you an opportunity to migrate to the new REST API version at your own pace. - -Review the [Tasklist REST API](../tasklist-api-rest/tasklist-api-rest-overview.md). The REST API offers more functionality than the GraphQL API, and a more streamlined and efficient way of interacting with our service. -::: - -## Endpoint - -Tasklist provides a GraphQL API at endpoint `/graphql`. - -From Camunda 8 the endpoint is `${base-url}/graphql`. - -For SaaS: `https://${REGION}.tasklist.camunda.io:443/${CLUSTER_ID}/graphql`, and for Self-Managed installations: `http://localhost:8080/graphql`. - -## Obtaining the Tasklist schema - -To obtain the Tasklist GraphQL schema, visit the API collection in [GitHub](https://github.com/camunda-community-hub/camunda-8-api-postman-collection), which is fully functioning in [Postman](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/20317927-6394943f-b57c-4c04-acf9-391a8614103b?action=share&creator=11465105). - -Alternatively, send a request to the endpoint with a GraphQL introspection query as described [here](https://graphql.org/learn/introspection/), or use the [generated API documentation](/apis-tools/tasklist-api/generated.md). - -There are also several [tools to explore GraphQL APIs](https://altair.sirmuel.design). - -For example, you want to know about provided types: - -```graphql -query { - __schema { - queryType { - fields { - name - type { - kind - ofType { - kind - name - } - } - } - } - } -} -``` - -## Example requests and responses - -### Get all task names - -_Request:_ - -```graphql -{ - tasks(query: {}) { - name - } -} -``` - -_Response:_ - -```json -{ - "data": { - "tasks": [ - { - "name": "Check payment" - }, - { - "name": "Register the passenger" - } - ] - } -} -``` - -### Get all tasks completed with id, name, and state - -_Request:_ - -```graphql -{ - tasks(query: { state: COMPLETED }) { - id - name - taskState - } -} -``` - -_Response:_ - -```json -{ - "data": { - "tasks": [ - { - "id": "2251799813685728", - "name": "Check payment", - "taskState": "COMPLETED" - } - ] - } -} -``` diff --git a/docs/apis-tools/tasklist-api/tasklist-api-tutorial.md b/docs/apis-tools/tasklist-api/tasklist-api-tutorial.md deleted file mode 100644 index 5ecdd5ba456..00000000000 --- a/docs/apis-tools/tasklist-api/tasklist-api-tutorial.md +++ /dev/null @@ -1,341 +0,0 @@ ---- -id: tasklist-api-tutorial -title: Tutorial -slug: /apis-tools/tasklist-api/tasklist-api-tutorial -sidebar_position: 2 -description: "Let's implement an application using the Tasklist API." ---- - -## Building an application using the Tasklist API and NestJS - -The Tasklist API provides a simple way for you to build apps powered by BPMN that require human interaction. - -With this example, we'll use NestJS (one of the most popular Node.js backend frameworks) to a build a loan request review application. - -## Getting started - -For this tutorial we'll need: - -- Node v14+ -- The [NestJS CLI](https://docs.nestjs.com/cli/overview) tool. Install it by running `npm install -g @nestjs/cli`. -- [A cluster on Camunda 8](../../components/console/manage-clusters/create-cluster.md) -- [A set of API credentials; remember to check the Tasklist option when creating them](../../components/console/manage-clusters/manage-api-clients.md). Don't forget to save these, we'll need them later. -- [A clone of this repo](https://github.com/camunda-community-hub/camunda-cloud-tasklist-api-nestjs) - -## Before moving forward - -If you have all the prerequisites from the getting started section above, you will have cloned a repo with the complete demo application we're going to build over this tutorial. The default branch in this repo has the complete application, so we need to `checkout` to the branch `0-getting-started` before proceeding. - -Inside the repo folder, you'll find some files and two folders, one of these folders is called `demo-data/` and the other `frontend/`. As it might be evident inside each of these folders, there are two different projects. - -The former will be responsible by deploying the demo process into Zeebe and generating instances for that process. The latter is a front-end application that will consume our API; this project is bootstrapped with [Vite](https://vitejs.dev), [bulma](https://bulma.io) for styling, and [react-query](https://react-query.tanstack.com) - -## Creating a new NestJS application - -Now let's bootstrap our NestJS app. Take the following steps: - -1. Open your terminal and go to the cloned repository folder. -2. Run `nest new api`. -3. Pick `yarn` as a package manager. - -This will create the NestJS project for us inside the `api/` folder. We can clean up the project a bit and remove the files `api/app.controller.spec.ts`, `api/app.controller.ts`, and `api/app.service.ts`. - -We can also remove the references from the deleted files in `api/app.module.ts`. The file should look like this: - -```ts -import { Module } from "@nestjs/common"; - -@Module({ - imports: [], - controllers: [], - providers: [], -}) -export class AppModule {} -``` - -To check if everything is working as expected, run `yarn workspace api run start:dev` from the root folder on your terminal. You will observe a message similar to the one below: - -```sh -[00:00:00 AM] Starting compilation in watch mode... -[00:00:00 AM] Found 0 errors. Watching for file changes. -[Nest] 46621 - 00/00/0000, 00:00:00 AM LOG [NestFactory] Starting Nest application... -[Nest] 46621 - 00/00/0000, 00:00:00 AM LOG [InstanceLoader] AppModule dependencies initialized +12ms -[Nest] 46621 - 00/00/0000, 00:00:00 AM LOG [NestApplication] Nest application successfully started +3ms -``` - -## Generating the Tasklist service - -Inside the `api/` folder we'll need to generate a service that will be responsible for accessing the Tasklist API. Take the following steps: - -1. Run `nest g service`. -2. You'll be prompted to pick a name for the service, let's pick `tasklist`. -3. Run `yarn add @nestjs/axios`. - -A folder called `tasklist/` will be created with the service definition and test; you can delete the tests if you wish. We also installed the package `@nestjs/axios`, so we can make requests to the Tasklist API. -To make HTTP requests we need to inject the module into the service, like below: - -```ts -import { Injectable } from "@nestjs/common"; -import { HttpService } from "@nestjs/axios"; - -@Injectable() -export class TasklistService { - constructor(private readonly http: HttpService) {} -} -``` - -Now, we're ready to make requests to the API. First, let's define a Data Transfer Object (DTO) with the shape of the tasks we're going to request. For that, we can create a file in `tasklist/dto/task.dto.ts`. There, we can define the DTO as follows: - -```ts -type Variable = { - name: string; - value: string; -}; - -export class TaskDto { - id: string; - name: string; - processName: string; - creationTime: string; - completionTime: string | null; - assignee: string | null; - variables: Variable[]; - taskState: "CREATED" | "COMPLETED" | "CANCELED"; - sortValues: [string, string]; - isFirst: boolean | null; - formKey: string | null; - processDefinitionId: string; - taskDefinitionId: string; -} -``` - -We can implement the requests. For this, we need to define the Tasklist API query and define the methods on the service: - -```ts -import { HttpService } from "@nestjs/axios"; -import { Injectable } from "@nestjs/common"; -import { firstValueFrom } from "rxjs"; -import { TaskDto } from "./dto/task.dto"; - -const getTasksQuery = ` - query GetTasks($state: TaskState $pageSize: Int $searchAfter: [String!] $searchBefore: [String!] $taskDefinitionId: String!) { - tasks(query: { state: $state pageSize: $pageSize searchAfter: $searchAfter searchBefore: $searchBefore taskDefinitionId: $taskDefinitionId }) { - id - creationTime - variables { - value - name - } - taskState - isFirst - sortValues - } - } -`; - -type QueryVariables = { - pageSize?: number; - searchAfter?: [string, string]; - searchBefore?: [string, string]; - state?: "CREATED" | "COMPLETED"; - taskDefinitionId?: string; -}; - -@Injectable() -export class TasklistService { - constructor(private readonly http: HttpService) {} - - async getTasks(variables: QueryVariables): Promise { - const { http } = this; - const { errors, data } = ( - await firstValueFrom( - http.post("/", { - /* - for simplicity we just used Axios here, but since the Tasklist API is a GraphQL API - a package like `graphql-request` might be better suited for this - */ - query: getTasksQuery, - variables, - }) - ) - ).data; - - if (errors) { - // handle error - } - - return data.tasks; - } -} -``` - -To keep things concise, we have one query and one method here. To observe the complete implementation, review [this file](https://github.com/camunda-community-hub/camunda-cloud-tasklist-api-nestjs/blob/2-generating-tasklist-service/api/src/tasklist/tasklist.service.ts). - -## Handling the Tasklist API authentication - -We have the implementation of our service, but we still can't make requests to the Tasklist API because we're not providing any credentials to the API. - -To achieve this, we need to rename the file `.env.example` to `.env` (the file needs to be on the root because we'll reuse it to generate the demo data), and the content of this file must look like this: - -```sh -ZEEBE_ADDRESS=".bru-2.zeebe.camunda.io:443" -ZEEBE_CLIENT_ID="k2FKt_PNMrRUFQO-QOR9MtCygvGsT.sm" -ZEEBE_CLIENT_SECRET="C-o5WFhvoZKv4-oQGHWg~d2MObjdr-GUv3cdqRS3~6fCoHaLleEEwnOqRToQvWda" -ZEEBE_AUTHORIZATION_SERVER_URL="https://login.cloud.camunda.io/oauth/token" -TASKLIST_API_ADDRESS="https://bru-2.tasklist.camunda.io//graphql" -ZEEBE_AUTHORIZATION_AUDIENCE="tasklist.camunda.io" -``` - -You can find all this information on the **API** tab of the cluster page. The client id and secret must be on the file you downloaded in the getting started section. - -Now that we have our credentials, we can authenticate and inject the JWT token into every request we make into Tasklist API. - -For this, we need to turn our Tasklist service into part of a module. Run `nest g module` and name it `tasklist`, the same we named the service. This will generate the module file and update `app.module.ts`. -We need to edit the `app.module.ts` file to use only the module: - -```ts -import { Module } from "@nestjs/common"; -import { TasklistModule } from "./tasklist/tasklist.module"; - -@Module({ - imports: [TasklistModule], - controllers: [], - providers: [], -}) -export class AppModule {} -``` - -We can install the package `@nestjs/config` and finally implement the authentication: - -```ts -import { Logger, Module, OnModuleInit } from "@nestjs/common"; -import { ConfigModule, ConfigService } from "@nestjs/config"; -import { HttpModule, HttpService } from "@nestjs/axios"; -import { TasklistService } from "./tasklist.service"; -import { firstValueFrom, map } from "rxjs"; - -type AuthResponse = { - access_token: string; - scope: string; - expires_in: number; - token_type: string; -}; - -@Module({ - imports: [ - HttpModule, - ConfigModule.forRoot({ - envFilePath: "../.env", - }), - ], - providers: [TasklistService], - exports: [TasklistService, HttpModule, ConfigModule], -}) -export class TasklistModule implements OnModuleInit { - logger = new Logger(TasklistModule.name); - - constructor( - private readonly http: HttpService, - private readonly config: ConfigService - ) {} - - public async onModuleInit() { - const { - http: { axiosRef }, - config, - logger, - } = this; - const credentials = await this.fetchCredentials(); - - logger.log("Tasklist credentials fetched"); - - axiosRef.defaults.baseURL = config.get("TASKLIST_API_ADDRESS"); - axiosRef.defaults.headers["Authorization"] = - `Bearer ${credentials.access_token}`; - axiosRef.defaults.headers["Content-Type"] = "application/json"; - setTimeout(this.onModuleInit.bind(this), credentials.expires_in * 1000); // we need convert minutes to milliseconds - } - - private async fetchCredentials() { - const { http, config } = this; - - return firstValueFrom( - http - .post(config.get("ZEEBE_AUTHORIZATION_SERVER_URL"), { - client_id: config.get("ZEEBE_CLIENT_ID"), - client_secret: config.get("ZEEBE_CLIENT_SECRET"), - audience: config.get("ZEEBE_AUTHORIZATION_AUDIENCE"), - grant_type: "client_credentials", - }) - .pipe(map((response) => response.data)) - ); - } -} -``` - -When this module is initialized, we can read the credentials using the `@nestjs/config` package, authenticate into the API, and inject the JWT into Axios. We also set a timeout to request a new token when the first one expires. - -## Creating your application API - -We're now able to implement our actual business logic, but first we need to install some packages to create our custom GraphQL API. - -Run `yarn add @nestjs/graphql graphql apollo-server-express`. - -We'll have to generate a module, a service, and a resource. To achieve this, run the following commands: - -```sh -nest g module -nest g service -nest g resource -``` - -Use the name `loanRequests` for all options. For the resource generation, select the option `GraphQL (code first)` and you don't have to generate the CRUD entry points. - -We can now change our `app.module.ts` file to its final form: - -```ts -import { Module } from "@nestjs/common"; -import { GraphQLModule } from "@nestjs/graphql"; -import { LoanRequestsModule } from "./loan-requests/loan-requests.module"; - -@Module({ - imports: [ - GraphQLModule.forRoot({ - autoSchemaFile: true, - playground: true, - }), - LoanRequestsModule, - ], -}) -export class AppModule {} -``` - -And the `loan-requests/loan-requests.module.ts` to: - -```ts -import { Module } from "@nestjs/common"; -import { LoanRequestsService } from "./loan-requests.service"; -import { TasklistModule } from "src/tasklist/tasklist.module"; -import { LoanRequestsResolver } from "./loan-requests.resolver"; - -@Module({ - imports: [TasklistModule], - providers: [LoanRequestsResolver, LoanRequestsService], - exports: [LoanRequestsService, TasklistModule], -}) -export class LoanRequestsModule {} -``` - -We just need to implement the service, which will have three methods (one to get all requests, one to get a single request, and one to make a decision.) - -We will also have four resolvers for the GraphQL API (two mutations and two queries). - -Find the full implementation [here](https://github.com/camunda-community-hub/camunda-cloud-tasklist-api-nestjs/tree/4-application/api/src/loan-requests). - -You can run `yarn start:dev` inside the `api/` folder and the NestJS app should start without errors. - -To test your API, you can access `localhost:3000/graphl` on your browser and should refer to our custom GraphQL API playground. - -## Demo data generation and sample frontend - -To test our app with a real frontend, we can change the port inside `api/main.ts` to `6000`. Then, run from the root folder `yarn start:demo-data` to start the backend, frontend, and demo data generation, or just `yarn start` if you don't need any new data. diff --git a/docs/apis-tools/tasklist-api/unions/_category_.yml b/docs/apis-tools/tasklist-api/unions/_category_.yml deleted file mode 100644 index f6c8705b502..00000000000 --- a/docs/apis-tools/tasklist-api/unions/_category_.yml +++ /dev/null @@ -1 +0,0 @@ -label: "Unions" diff --git a/docs/apis-tools/working-with-apis-tools.md b/docs/apis-tools/working-with-apis-tools.md index e413dd21ab8..0f75b9bb805 100644 --- a/docs/apis-tools/working-with-apis-tools.md +++ b/docs/apis-tools/working-with-apis-tools.md @@ -38,10 +38,6 @@ Official clients have been developed and tested by Camunda. They also add conven -:::note -Other components in Camunda 8, such as [Tasklist API (GraphQL)](../apis-tools/tasklist-api/generated.md), provide language-agnostic APIs, but no clients to interact with them. GraphQL enables you to query, claim, and complete user tasks. -::: - ## Learn about Camunda Components and their APIs :::note diff --git a/docs/components/best-practices/architecture/understanding-human-tasks-management.md b/docs/components/best-practices/architecture/understanding-human-tasks-management.md index a2edbfae66c..82a8bcf1bd5 100644 --- a/docs/components/best-practices/architecture/understanding-human-tasks-management.md +++ b/docs/components/best-practices/architecture/understanding-human-tasks-management.md @@ -27,7 +27,7 @@ As a general rule, you should assign human tasks, like [user tasks](/components/ ``` -Then, require individual members of that group to explicitly _claim tasks_ before working on them. This way, you avoid different people working on the same task at the same time. Refer to [`claimTask`](../../../apis-tools/tasklist-api/mutations/claim-task.mdx). +Then, require individual members of that group to explicitly _claim tasks_ before working on them. This way, you avoid different people working on the same task at the same time. Refer to [`Assign a task`](/apis-tools/tasklist-api-rest/specifications/assign-task.api.mdx). ```graphql claimTask( diff --git a/docs/components/best-practices/development/handling-data-in-processes.md b/docs/components/best-practices/development/handling-data-in-processes.md index 9aa8fc51da7..d22f30ad2ae 100644 --- a/docs/components/best-practices/development/handling-data-in-processes.md +++ b/docs/components/best-practices/development/handling-data-in-processes.md @@ -48,7 +48,7 @@ In Camunda 8, [values are stored as JSON](/components/concepts/variables.md#vari This best practice describes variable handling within Camunda 8. Process variables are handled slightly differently with Camunda 7. Consult the [Camunda 7 documentation](https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/) for details. In essence, variable values are not handled as JSON and thus there are [different values](https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/#supported-variable-values) supported. ::: -You can dynamically create such variables by assigning an object of choice to a (string typed) variable name; for example, by passing a `Map` when [completing](../../../apis-tools/tasklist-api/mutations/complete-task.mdx) the "Review tweet" task via the API: +You can dynamically create such variables by assigning an object of choice to a (string typed) variable name; for example, by passing a `Map` when [completing](apis-tools/tasklist-api-rest/specifications/complete-task.api.mdx) the "Review tweet" task via the API: ``` // TODO: Double check! diff --git a/docs/components/console/manage-clusters/manage-api-clients.md b/docs/components/console/manage-clusters/manage-api-clients.md index d5753278548..8dac9d75c4c 100644 --- a/docs/components/console/manage-clusters/manage-api-clients.md +++ b/docs/components/console/manage-clusters/manage-api-clients.md @@ -43,8 +43,6 @@ When the rate limit is triggered, the client will receive an HTTP 429 response. Currently, Camunda 8 SaaS supports the following scopes: - Zeebe - Access to the [Zeebe gRPC](/apis-tools/zeebe-api/grpc.md) and [REST](/apis-tools/camunda-api-rest/camunda-api-rest-overview.md) APIs. -- Tasklist - Access to the [Tasklist GraphQL](/apis-tools/tasklist-api/tasklist-api-overview.md) API. -- Operate - Access to the [Operate REST API](/apis-tools/operate-api/overview.md). - Optimize - Access to the [Optimize REST API]($optimize$/apis-tools/optimize-api/overview). - Secrets - Access cluster secrets in a [hybrid setup](/guides/use-connectors-in-hybrid-mode.md). @@ -77,6 +75,4 @@ The downloaded file contains all necessary information to communicate with your Depending on the scopes granted to these client credentials, the following variables may also be present: -- `CAMUNDA_TASKLIST_BASE_URL`: The base URL for the Tasklist API. - `CAMUNDA_OPTIMIZE_BASE_URL`: The base URL for the Optimize API. -- `CAMUNDA_OPERATE_BASE_URL`: The base URL for the Operate API. diff --git a/docs/guides/setup-client-connection-credentials.md b/docs/guides/setup-client-connection-credentials.md index 18301f74c79..14166917fb3 100644 --- a/docs/guides/setup-client-connection-credentials.md +++ b/docs/guides/setup-client-connection-credentials.md @@ -14,8 +14,6 @@ Here, we'll set up client connection credentials to create, name, and connect yo Currently, Camunda 8 SaaS supports the following scopes: - Zeebe - Access to the [Zeebe gRPC](/apis-tools/zeebe-api/grpc.md) and [REST](/apis-tools/camunda-api-rest/camunda-api-rest-overview.md) APIs. -- Tasklist - Access to the [Tasklist GraphQL](/apis-tools/tasklist-api/tasklist-api-overview.md) API. -- Operate - Access to the [Operate REST API](/apis-tools/operate-api/overview.md). - Optimize - Access to the [Optimize REST API]($optimize$/apis-tools/optimize-api/overview). - Secrets - Access cluster secrets in a [hybrid setup](/guides/use-connectors-in-hybrid-mode.md). @@ -43,6 +41,4 @@ The downloaded file contains all the necessary information to communicate with y Depending on the scopes granted to these client credentials, the following variables may also be present: -- `CAMUNDA_TASKLIST_BASE_URL`: The base URL for the Tasklist API. - `CAMUNDA_OPTIMIZE_BASE_URL`: The base URL for the Optimize API. -- `CAMUNDA_OPERATE_BASE_URL`: The base URL for the Operate API. diff --git a/docs/reference/announcements/880.md b/docs/reference/announcements/880.md index b4661347f1f..106ca4e257d 100644 --- a/docs/reference/announcements/880.md +++ b/docs/reference/announcements/880.md @@ -53,7 +53,7 @@ With the 8.8 release, Camunda announces the deprecation of several [Zeebe gRPC]( ### Removed: Tasklist GraphQL API -With the 8.8 release, the deprecated [Tasklist GraphQL API](/apis-tools/tasklist-api/tasklist-api-overview.md) will be removed from the product. +With the 8.8 release, the deprecated Tasklist GraphQL API will be removed from the product.