Files
wehub-resource-sync a9cd7750f4
CI / detect-changes (push) Waiting to run
CI / build (push) Waiting to run
UI v2 CI / E2E (Mocked) (push) Blocked by required conditions
UI v2 Integration CI / E2E (Integration) (push) Waiting to run
CI / unit-test (push) Blocked by required conditions
CI / test-harness (push) Waiting to run
CI / generate-e2e-matrix (push) Waiting to run
CI / e2e (push) Blocked by required conditions
CI / build-ui (push) Waiting to run
Publish docs via GitHub Pages / Deploy docs (push) Waiting to run
Release Drafter / update_release_draft (push) Waiting to run
UI v2 CI / Lint, Format & Test (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 12:37:56 +08:00

379 lines
11 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://conductoross.org/schemas/Task.json",
"title": "Task",
"description": "Task runtime instance schema",
"type": "object",
"required": ["taskType", "taskId", "workflowInstanceId"],
"properties": {
"taskType": {
"type": "string",
"description": "Type of the task (e.g., SIMPLE, HTTP, SUB_WORKFLOW, etc.)"
},
"status": {
"type": "string",
"description": "Current status of the task",
"enum": [
"IN_PROGRESS",
"CANCELED",
"FAILED",
"FAILED_WITH_TERMINAL_ERROR",
"COMPLETED",
"COMPLETED_WITH_ERRORS",
"SCHEDULED",
"TIMED_OUT",
"SKIPPED"
]
},
"inputData": {
"type": "object",
"description": "Input data for the task execution",
"additionalProperties": true,
"default": {}
},
"referenceTaskName": {
"type": "string",
"description": "Reference name of the task as defined in the workflow definition"
},
"retryCount": {
"type": "integer",
"description": "Current retry count for this task",
"minimum": 0,
"default": 0
},
"seq": {
"type": "integer",
"description": "Sequence number of this task in the workflow execution",
"minimum": 0
},
"correlationId": {
"type": "string",
"description": "Correlation ID for tracking related tasks"
},
"pollCount": {
"type": "integer",
"description": "Number of times this task has been polled by workers",
"minimum": 0,
"default": 0
},
"taskDefName": {
"type": "string",
"description": "Task definition name (defaults to taskType if not specified)"
},
"scheduledTime": {
"type": "integer",
"description": "Timestamp when the task was scheduled (milliseconds since epoch)",
"format": "int64",
"minimum": 0
},
"startTime": {
"type": "integer",
"description": "Timestamp when the task was first polled (milliseconds since epoch)",
"format": "int64",
"minimum": 0
},
"endTime": {
"type": "integer",
"description": "Timestamp when the task completed execution (milliseconds since epoch)",
"format": "int64",
"minimum": 0
},
"updateTime": {
"type": "integer",
"description": "Timestamp when the task was last updated (milliseconds since epoch)",
"format": "int64",
"minimum": 0
},
"startDelayInSeconds": {
"type": "integer",
"description": "Delay in seconds before the task can be polled",
"minimum": 0,
"default": 0
},
"retriedTaskId": {
"type": "string",
"description": "Task ID of the task that was retried to create this task"
},
"retried": {
"type": "boolean",
"description": "Indicates if this task has been retried",
"default": false
},
"executed": {
"type": "boolean",
"description": "Indicates if the task has completed its lifecycle",
"default": false
},
"callbackFromWorker": {
"type": "boolean",
"description": "Whether a callback from the worker is expected",
"default": true
},
"responseTimeoutSeconds": {
"type": "integer",
"description": "Time in seconds after which the task will be re-queued if no response is received",
"format": "int64",
"minimum": 0
},
"workflowInstanceId": {
"type": "string",
"description": "Unique identifier of the workflow instance this task belongs to"
},
"workflowType": {
"type": "string",
"description": "Name/type of the workflow this task belongs to"
},
"taskId": {
"type": "string",
"description": "Unique identifier for this task instance"
},
"reasonForIncompletion": {
"type": "string",
"description": "Reason why the task did not complete successfully (max 500 characters)",
"maxLength": 500
},
"callbackAfterSeconds": {
"type": "integer",
"description": "Number of seconds to wait before making the task available for polling again",
"format": "int64",
"minimum": 0,
"default": 0
},
"workerId": {
"type": "string",
"description": "Identifier of the worker that is executing or has executed this task"
},
"outputData": {
"type": "object",
"description": "Output data produced by the task execution",
"additionalProperties": true,
"default": {}
},
"workflowTask": {
"type": "object",
"description": "The WorkflowTask definition from the workflow definition",
"additionalProperties": true
},
"domain": {
"type": "string",
"description": "Domain for task execution isolation"
},
"inputMessage": {
"description": "Input message in protobuf Any format (for protobuf support)"
},
"outputMessage": {
"description": "Output message in protobuf Any format (for protobuf support)"
},
"rateLimitPerFrequency": {
"type": "integer",
"description": "Maximum number of task executions allowed per rateLimitFrequencyInSeconds",
"minimum": 0,
"default": 0
},
"rateLimitFrequencyInSeconds": {
"type": "integer",
"description": "Time window in seconds for rate limiting",
"minimum": 0,
"default": 0
},
"externalInputPayloadStoragePath": {
"type": "string",
"description": "External storage path where the task input payload is stored (when input is too large)"
},
"externalOutputPayloadStoragePath": {
"type": "string",
"description": "External storage path where the task output payload is stored (when output is too large)"
},
"workflowPriority": {
"type": "integer",
"description": "Priority value inherited from the workflow",
"minimum": 0,
"maximum": 99,
"default": 0
},
"executionNameSpace": {
"type": "string",
"description": "Namespace for task execution"
},
"isolationGroupId": {
"type": "string",
"description": "Isolation group identifier for task execution isolation"
},
"iteration": {
"type": "integer",
"description": "Iteration number for tasks in a loop (DO_WHILE tasks)",
"minimum": 0,
"default": 0
},
"subWorkflowId": {
"type": "string",
"description": "Workflow ID of the sub-workflow if this is a SUB_WORKFLOW task"
},
"subworkflowChanged": {
"type": "boolean",
"description": "Flag indicating that a sub-workflow has been modified directly",
"default": false
},
"firstStartTime": {
"type": "integer",
"description": "Timestamp of the first start time across all retries (milliseconds since epoch)",
"format": "int64",
"minimum": 0
},
"executionMetadata": {
"$ref": "#/definitions/ExecutionMetadata"
},
"parentTaskId": {
"type": "string",
"description": "Task ID of the parent task if this task is associated with a parent (e.g., event tasks)"
}
},
"definitions": {
"TaskDef": {
"type": "object",
"description": "Task definition reference (can be embedded via workflowTask.taskDefinition)",
"properties": {
"name": {
"type": "string",
"description": "Task definition name"
},
"description": {
"type": "string",
"description": "Task description"
},
"retryCount": {
"type": "integer",
"minimum": 0
},
"timeoutSeconds": {
"type": "integer",
"minimum": 0
},
"timeoutPolicy": {
"type": "string",
"enum": ["RETRY", "TIME_OUT_WF", "ALERT_ONLY"]
},
"retryLogic": {
"type": "string",
"enum": ["FIXED", "EXPONENTIAL_BACKOFF", "LINEAR_BACKOFF"]
},
"retryDelaySeconds": {
"type": "integer",
"minimum": 0
},
"responseTimeoutSeconds": {
"type": "integer",
"minimum": 1
},
"concurrentExecLimit": {
"type": "integer"
},
"rateLimitPerFrequency": {
"type": "integer"
},
"rateLimitFrequencyInSeconds": {
"type": "integer"
},
"isolationGroupId": {
"type": "string"
},
"executionNameSpace": {
"type": "string"
},
"ownerEmail": {
"type": "string",
"format": "email"
},
"pollTimeoutSeconds": {
"type": "integer"
},
"backoffScaleFactor": {
"type": "integer",
"minimum": 1
}
}
},
"WorkflowTask": {
"type": "object",
"description": "Workflow task template definition",
"properties": {
"name": {
"type": "string",
"description": "Task name"
},
"taskReferenceName": {
"type": "string",
"description": "Unique reference name within the workflow"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"description": "Task type"
},
"inputParameters": {
"type": "object",
"additionalProperties": true
},
"optional": {
"type": "boolean"
},
"startDelay": {
"type": "integer",
"minimum": 0
},
"taskDefinition": {
"$ref": "#/definitions/TaskDef"
}
}
},
"ExecutionMetadata": {
"type": "object",
"description": "Execution metadata for capturing operational metadata including enhanced timing measurements",
"properties": {
"serverSendTime": {
"type": "integer",
"description": "Server send time (milliseconds)",
"format": "int64"
},
"clientReceiveTime": {
"type": "integer",
"description": "Client receive time (milliseconds)",
"format": "int64"
},
"executionStartTime": {
"type": "integer",
"description": "Execution start time (milliseconds)",
"format": "int64"
},
"executionEndTime": {
"type": "integer",
"description": "Execution end time (milliseconds)",
"format": "int64"
},
"clientSendTime": {
"type": "integer",
"description": "Client send time (milliseconds)",
"format": "int64"
},
"pollNetworkLatency": {
"type": "integer",
"description": "Poll network latency (milliseconds)",
"format": "int64"
},
"updateNetworkLatency": {
"type": "integer",
"description": "Update network latency (milliseconds)",
"format": "int64"
},
"additionalContext": {
"type": "object",
"description": "Additional context as Map for flexibility",
"additionalProperties": true
}
}
}
}
}