Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6bbff78
add ability to accept task on behalf of groups
ldavidsdl Feb 23, 2026
d49995f
expose config options on task types, and workflow task templates
ldavidsdl Feb 23, 2026
98ec2bd
fix links, reference to query param, add concurrent_editing example
ldavidsdl Feb 23, 2026
bdf2a90
added taskTypeConfigValues to task
ldavidsdl Feb 23, 2026
be9aaa1
additional descriptions
ldavidsdl Feb 24, 2026
d4e59ce
added configValues request and response on project plan
ldavidsdl Feb 24, 2026
2284209
Adapt default styling for deprecated fields
rwsrtritean Mar 16, 2026
e7f0a48
rename field to configurationValues
ldavidsdl Mar 26, 2026
fdb3ad0
adding missing configurationValues
Apr 22, 2026
7180dbb
adding metadata to group/user
Apr 28, 2026
5010ead
Merge remote-tracking branch 'origin/ability-to-accept-tasks-on-behal…
Apr 28, 2026
230942a
updated Whats-New.md
Apr 29, 2026
d8ab86b
updated Whats-New.md and refactored matadata
Apr 29, 2026
dcfd880
adding description an examples for metadata
Apr 29, 2026
75c75d5
inlining
Apr 29, 2026
d0ad6ea
attempting to fix sdk creation
Apr 29, 2026
a263656
attempting to fix sdk creation
Apr 30, 2026
6c351b3
attempting to fix sdk creation
Apr 30, 2026
2f3109c
attempting to fix sdk creation
Apr 30, 2026
dcaef60
attempting to fix sdk creation
Apr 30, 2026
42aa1c8
attempting to fix sdk creation
Apr 30, 2026
8c7e920
attempting to fix sdk creation
Apr 30, 2026
e184dfa
attempting to fix sdk creation
Apr 30, 2026
2eedbdb
attempting to fix sdk creation
Apr 30, 2026
770087c
attempting to fix sdk creation
Apr 30, 2026
5d259f4
attempting to use ref for metadata
Apr 30, 2026
76ddad7
Revert "attempting to use ref for metadata"
Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
225 changes: 198 additions & 27 deletions articles/LCPublicAPI/api/Public-API.v1.json
Original file line number Diff line number Diff line change
Expand Up @@ -19753,7 +19753,7 @@
"Workflow"
],
"summary": "Update Workflow",
"description": "Updates the workflow in terms of: name, description, and task configuration (and its details). Observe the rules of [JSON Merge Patch Semantics](https://tools.ietf.org/html/rfc7386).",
"description": "Updates the workflow in terms of: name, description, task configuration (and its details), and task type configuration values (`configurationValues`). Observe the rules of [JSON Merge Patch Semantics](https://tools.ietf.org/html/rfc7386).",
"parameters": [
{
"$ref": "#/components/parameters/Authorization"
Expand Down Expand Up @@ -21621,6 +21621,16 @@
"customer"
],
"description": "- default : groups in the Root folder (location) provisioned by the system, automatically. Examples: Administrator, Project Manager, Engineer, Terminologist.\r\n- customer : groups provisioned by the system, automatically, for each customer location you add. Examples: Customer Requester, Customer Reviewer.\r\n- vendor : group provisioned by the system, automatically, for each vendor location you add. Examples: Vendor Project Manager.\r\n- custom : groups you can create in a location of your choice. Examples: Project Manager, Translator."
},
"metadata": {
"title": "Metadata",
"description": "Additional metadata values in a key–value pair format",
"additionalProperties": true,
"example": {
"colour": "green",
"flag-enabled": true,
"max value": 3
}
}
}
},
Expand Down Expand Up @@ -21731,6 +21741,16 @@
"items": {
"type": "string"
}
},
"metadata": {
"title": "Metadata",
"description": "Additional metadata values in a key–value pair format",
"additionalProperties": true,
"example": {
"colour": "green",
"flag-enabled": true,
"max value": 3
}
}
}
},
Expand Down Expand Up @@ -26217,7 +26237,7 @@
"description": "The configuration of a task that will be created in the future.",
"properties": {
"taskTemplate": {
"$ref": "#/components/schemas/object-id"
"$ref": "#/components/schemas/workflow-task-template"
},
"scope": {
"$ref": "#/components/schemas/task-configuration-scope"
Expand All @@ -26240,6 +26260,13 @@
"example": "2022-01-12T12:00:00Z",
"description": "The due date of the future task. <br> UTC Timezone <br> Allowed formats: <br> \"YYYY-MM-DDThh:mmZ\" <br> \"YYYY-MM-DDThh:mm:ssZ\" <br> \"YYYY-MM-DDThh:mm:ss.sZ\" <br> \"YYYY-MM-DDThh:mm:ss.ssZ\" <br> \"YYYY-MM-DDThh:mm:ss.sssZ\"",
"nullable": true
},
"configurationValues": {
"type": "array",
"description": "The task type configuration values set on this task. Each item corresponds to a configuration key defined in `taskTemplate.taskType.configurationDefinitions`.",
"items": {
"$ref": "#/components/schemas/workflow-task-type-config-value"
}
}
},
"required": [
Expand Down Expand Up @@ -26310,6 +26337,12 @@
},
"dueBy": {
"$ref": "#/components/schemas/date-time"
},
"configurationValues": {
"type": "array",
"items": {
"$ref": "#/components/schemas/workflow-task-type-config-value"
}
}
},
"required": [
Expand Down Expand Up @@ -27747,6 +27780,13 @@
"completedAt": {
"$ref": "#/components/schemas/date-time",
"description": "The completion timestamp of the task. <br> UTC Timezone <br> Allowed formats: <br> \"YYYY-MM-DDThh:mmZ\" <br> \"YYYY-MM-DDThh:mm:ssZ\" <br> \"YYYY-MM-DDThh:mm:ss.sZ\" <br> \"YYYY-MM-DDThh:mm:ss.ssZ\" <br> \"YYYY-MM-DDThh:mm:ss.sssZ\""
},
"configurationValues": {
"type": "array",
"description": "The task type configuration values set on this task. Each item corresponds to a configuration key defined in `taskType.configurationDefinitions`.",
"items": {
"$ref": "#/components/schemas/workflow-task-type-config-value"
}
}
},
"required": [
Expand Down Expand Up @@ -27981,6 +28021,13 @@
"$ref": "#/components/schemas/task-type-outcome"
}
},
"configurationDefinitions": {
"type": "array",
"description": "Defines the configurable options available for this task type. Each entry describes one configuration option including its data type, default value, allowed values and constraints.",
"items": {
"$ref": "#/components/schemas/task-type-configuration-definition"
}
},
"location": {
"$ref": "#/components/schemas/folder-v2"
}
Expand All @@ -27989,6 +28036,87 @@
"id"
]
},
"task-type-configuration-definition": {
"title": "Task Type Configuration Definition",
"type": "object",
"description": "Describes a single configurable option for a task type.",
"properties": {
"id": {
"type": "string",
"description": "The identifier for the configuration option (e.g. `FORCE_CLOSE_MAX_AGE`)."
},
"name": {
"type": "string",
"description": "Human-readable name for the configuration option."
},
"description": {
"type": "string",
"description": "Explanation of what this configuration option controls."
},
"dataType": {
"type": "string",
"description": "The data type of the configuration value.",
"enum": [
"integer",
"boolean",
"string"
]
},
"optional": {
"type": "boolean",
"description": "Whether this configuration option is optional. If `false`, a value must always be supplied."
},
"defaultValue": {
"description": "The default value applied when no value is explicitly set. The type matches `dataType`. May be `null` when no default is defined.",
"nullable": true,
"type": "object"
},
"options": {
"type": "array",
"nullable": true,
"description": "Enumerated list of accepted string values. Present only when `dataType` is `string` and the value is restricted to a fixed set. `null` when any value is allowed.",
"items": {
"type": "string"
}
},
"constraints": {
"type": "array",
"description": "Validation constraints applied to the value (e.g. minimum/maximum for numeric types).",
"items": {
"$ref": "#/components/schemas/task-type-configuration-constraint"
}
}
},
"required": [
"id",
"name",
"dataType",
"optional"
]
},
"task-type-configuration-constraint": {
"title": "Task Type Configuration Constraint",
"type": "object",
"description": "A validation constraint applied to a task type configuration value.",
"properties": {
"type": {
"type": "string",
"description": "The kind of constraint.",
"enum": [
"minValue",
"maxValue"
]
},
"value": {
"description": "The constraint threshold. Type matches the parent configuration option's `dataType`.",
"type": "object"
}
},
"required": [
"type",
"value"
]
},
"task-outcome": {
"title": "Task Outcome",
"type": "object",
Expand Down Expand Up @@ -28072,20 +28200,12 @@
"deprecated": true
},
"account": {
"allOf": [
{
"$ref": "#/components/schemas/account"
}
],
"allOf": [{ "$ref": "#/components/schemas/account" }],
"description": "The account the user is part of.",
"deprecated": true
},
"location": {
"allOf": [
{
"$ref": "#/components/schemas/folder-v2"
}
],
"allOf": [{ "$ref": "#/components/schemas/folder-v2" }],
"deprecated": true
},
"groups": {
Expand All @@ -28096,19 +28216,11 @@
"deprecated": true
},
"userType": {
"allOf": [
{
"$ref": "#/components/schemas/user-type"
}
],
"allOf": [{ "$ref": "#/components/schemas/user-type" }],
"deprecated": true
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/user-status"
}
],
"allOf": [{ "$ref": "#/components/schemas/user-status" }],
"deprecated": true
},
"invitationLink": {
Expand All @@ -28117,11 +28229,7 @@
"deprecated": true
},
"membership": {
"allOf": [
{
"$ref": "#/components/schemas/account-membership-type"
}
],
"allOf": [{ "$ref": "#/components/schemas/account-membership-type" }],
"deprecated": true
}
},
Expand Down Expand Up @@ -31456,6 +31564,16 @@
},
"membership": {
"$ref": "#/components/schemas/account-membership-type"
},
"metadata": {
"title": "Metadata",
"description": "Additional metadata values in a key–value pair format",
"additionalProperties": true,
"example": {
"colour": "green",
"flag-enabled": true,
"max value": 3
}
}
}
},
Expand Down Expand Up @@ -31586,6 +31704,16 @@
"type": "object",
"$ref": "#/components/schemas/object-id"
}
},
"metadata": {
"title": "Metadata",
"description": "Additional metadata values in a key–value pair format",
"additionalProperties": true,
"example": {
"colour": "green",
"flag-enabled": true,
"max value": 3
}
}
}
},
Expand Down Expand Up @@ -31770,6 +31898,13 @@
},
"taskTemplate": {
"$ref": "#/components/schemas/workflow-task-template"
},
"configurationValues": {
"type": "array",
"description": "The task type configuration values set on this workflow task. Each item corresponds to a configuration key defined in `taskTemplate.taskType.configurationDefinitions`.",
"items": {
"$ref": "#/components/schemas/workflow-task-type-config-value"
}
}
},
"required": [
Expand Down Expand Up @@ -31816,6 +31951,12 @@
},
"scope": {
"$ref": "#/components/schemas/task-configuration-scope-request"
},
"configurationValues": {
"type": "array",
"items": {
"$ref": "#/components/schemas/workflow-task-type-config-value"
}
}
},
"required": [
Expand All @@ -31825,6 +31966,29 @@
"scope"
]
},
"workflow-task-type-config-value": {
"title": "Workflow Task Type Config Value",
"type": "object",
"description": "A key-value pair representing a task type configuration setting.\n\nValid configuration keys (`id`), data types, options (for string types), and constraints (e.g., min/max for integer types) are defined in the sibling field `taskTemplate.taskType.configurationDefinitions` within the same task configuration.",
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"description": "The configuration key identifier (e.g. `FORCE_CLOSE_MAX_AGE`, `EDITOR_MODE`, `CONCURRENT_EDITING_ENABLED`)."
},
"value": {
"description": "The configuration value.",
"type": "object"
}
},
"example": {
"id": "CONCURRENT_EDITING_ENABLED",
"value": false
}
},
"workflow-task-template": {
"title": "Workflow Task Template",
"type": "object",
Expand Down Expand Up @@ -31898,6 +32062,13 @@
"items": {
"$ref": "#/components/schemas/workflow-template-transition"
}
},
"configurationValues": {
"type": "array",
"description": "The task type configuration values set on this task. Each item corresponds to a configuration key defined in `taskTemplates.taskType.configurationDefinitions`.",
"items": {
"$ref": "#/components/schemas/workflow-task-type-config-value"
}
}
},
"required": [
Expand Down
7 changes: 7 additions & 0 deletions articles/LCPublicAPI/docs/Whats-New.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

</br>

## 29 April 2026
- Tasks can now be [accepted](../api/Public-API.v1-fv.html#/operations/AcceptTask) on behalf of a group.
- We've exposed task type configuration definitions and values across Get and List endpoints for [Projects](../api/Public-API.v1-fv.html#/operations/GetProject), [Project Templates](../api/Public-API.v1-fv.html#/operations/GetProjectTemplate), [Workflows](../api/Public-API.v1-fv.html#/operations/GetWorkflow), [Tasks](../api/Public-API.v1-fv.html#/operations/GetTask), and [Task Types](../api/Public-API.v1-fv.html#/operations/GetTaskType).
- Task type configuration values can now be modified when updating [Workflows](../api/Public-API.v1-fv.html#/operations/UpdateWorkflow) and [Project Plans](../api/Public-API.v1-fv.html#/operations/UpdateProject).
- User and group metadata definitions have been added to the contract for improved data modeling.
- We fixed various bugs.

## 7 April 2026
- Task owner functionality has been extended to support groups. The [Get Task](../api/Public-API.v1-fv.html#/operations/GetTask) endpoint now returns group information when a task is assigned to a group instead of an individual user. Webhook events have been adapted to support group ownership.
- Previous task owner fields linked to user have been deprecated and will be maintained for backwards compatibility for at least 6 months.
Expand Down
Loading