{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "wfEngineCommon", "type": "object", "title": "Workflow Engine common schema definitions", "definitions": { "skip": { "type": "integer", "description": "The number of documents skipped before returning data. When 0, no data is skipped.", "minimum": 0, "examples": [ 0 ] }, "limit": { "type": "integer", "title": "The returned document limit", "description": "Specifies a limit to the maximum number of data results returned.", "minimum": 0, "maximum": 100, "examples": [ 50 ] }, "sort": { "type": "string", "description": "Field to sort by. Default is workflow.name.", "default": "workflow.name" }, "order": { "type": "integer", "description": "The sort direction: 1 for ascending or -1 for descending.", "default": 1, "enum": [ -1, 1 ] }, "total": { "type": "integer", "description": "The total number of documents returned from a search.", "minimum": 0, "examples": [ 100 ] }, "x": { "type": "number", "title": "The X position on the workflow", "description": "The x coordinate position of this task on the workflow", "examples": [ 0.36142061281337046 ] }, "y": { "type": "number", "title": "The Y position on the workflow", "description": "The x coordinate position of this task on the workflow", "examples": [ 0.502092050209205 ] }, "expandedSearchOptions": { "type": "object", "title": "Search Options", "properties": { "expand": { "type": "array", "title": "List of fields to get expanded data", "description": "Sets the fields to expand. Generally, these are fields like \"metrics.user\", \"metrics.owner\", \"created_by\", etc", "items": { "type": "string", "examples": [ "created_by", "user", "owner" ] } }, "fields": { "$ref": "#/definitions/queryResultFieldFilter" }, "query": { "$ref": "#/definitions/queryObject" }, "limit": { "$ref": "#/definitions/limit" }, "local": { "$id": "#/properties/options/properties/local", "type": "boolean", "description": "Look on local IAP server" }, "skip": { "$ref": "#/definitions/skip" }, "sort": { "type": "object", "title": "The Sort fields", "description": "Set to sort the documents coming back from the query. If multiple fields, sorts from first field then to last field", "additionalProperties": { "type": "integer", "enum": [ -1, 1 ] }, "examples": [ { "name": -1 } ] } } }, "evaluationOperand": { "oneOf": [ { "type": "object" }, { "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" } ], "title": "A comparison value", "description": "Used in evaluations as either the object to compare, or the object to compare to" }, "evaluationOperator": { "type": "string", "enum": [ "contains", "!contains", "<", "<=", ">", ">=", "==", "!=" ], "title": "The Operator ", "description": "The operation (contains, !contains, <,<=, etc)", "examples": [ "contains" ] }, "evaluationItem": { "type": "object", "title": "Evaluation Object", "description": "Contains all the items/properties needed for a comparison operation/evaluation", "required": [ "operand_1", "operator", "operand_2" ], "properties": { "query": { "type": "string", "title": "Query for first operand", "description": "Query the operand_1 (optional)", "examples": [ "somePropertyNameInOperand_1IfItIsAnObject.nestedProperty" ] }, "rightQuery": { "type": "string", "title": "Query for second operand", "description": "Query the operand_2 (optional)", "examples": [ "somePropertyNameInOperand_2IfItIsAnObject.nestedProperty" ] }, "operand_1": { "$ref": "#/definitions/evaluationOperand" }, "operator": { "$ref": "#/definitions/evaluationOperator" }, "operand_2": { "$ref": "#/definitions/evaluationOperand" } } }, "mongoObjectId": { "type": "string", "pattern": "^[0-9a-f]{24}$", "title": "MongoDB ObjectID", "description": "String representation of a MongoDB ObjectId", "examples": [ "4321abcdef694aa79dae47ad", "5cb7b531d06cceb89fd21b1c" ] }, "workflowTaskId": { "type": "string", "pattern": "^[0-9a-f]{1,4}$|^workflow_start$|^workflow_end$", "title": "Workflow task id", "description": "Four character hexadecimal task identifier", "examples": [ "12ab", "cd34" ] }, "queryObject": { "type": "object", "description": "A MongoDB query object", "additionalProperties": { "type": "string" }, "examples": [ { "name": "abcd" } ] }, "queryResultFieldFilter": { "type": "object", "description": "Filter specifying which fields are returned from a query. The structure of each property must conform to 'fieldName': 1. Eg. name:1 will return the 'name' field and name:0 will exclude the 'name' field from the results", "additionalProperties": { "type": "integer", "enum": [ -1, 1 ] }, "examples": [ { "name": 1 } ] }, "retrySettings": { "type": "object", "title": "Retry Settings", "description": "Retry settings for a task.", "required": [ "state", "autoRetry", "limit", "delay" ], "properties": { "state": { "type": "array", "title": "State", "description": "Finish states the task will retry on. The task will retry on any of the included states.", "items": { "type": "string", "enum": [ "success", "error", "failure" ] } }, "autoRetry": { "type": "boolean", "title": "Auto Retry", "description": "Whether the task is set to retry automatically or manually." }, "limit": { "type": "integer", "title": "Limit", "description": "Limit of retries on a task before it will take normal transitions and stop retrying.", "examples": [ 10, 20 ] }, "delay": { "type": "integer", "title": "Delay", "description": "Delay between each retry in milliseconds.", "examples": [ 1000, 2000 ] }, "count": { "type": "integer", "title": "Count", "description": "Current retry count used for workflow engine job processing", "examples": [ 5 ] } }, "additionalProperties": false } } }