@@ -241,6 +241,41 @@
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "flow.dag",
 | 
			
		||||
      "summary": "Compute and return the execution DAG for a Flow",
 | 
			
		||||
      "params": [
 | 
			
		||||
        {
 | 
			
		||||
          "name": "params",
 | 
			
		||||
          "schema": {
 | 
			
		||||
            "$ref": "#/components/schemas/FlowLoadParams"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "result": {
 | 
			
		||||
        "name": "result",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "$ref": "#/components/schemas/FlowDag"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "errors": [
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/components/errors/InvalidParams"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/components/errors/NotFound"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/components/errors/StorageError"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/components/errors/DagMissingDependency"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "$ref": "#/components/errors/DagCycleDetected"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "job.create",
 | 
			
		||||
      "summary": "Create/Upsert Job in a context",
 | 
			
		||||
@@ -747,6 +782,125 @@
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "JobSummary": {
 | 
			
		||||
        "type": "object",
 | 
			
		||||
        "required": [
 | 
			
		||||
          "id",
 | 
			
		||||
          "depends",
 | 
			
		||||
          "prerequisites",
 | 
			
		||||
          "script_type"
 | 
			
		||||
        ],
 | 
			
		||||
        "properties": {
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "integer",
 | 
			
		||||
            "format": "uint32"
 | 
			
		||||
          },
 | 
			
		||||
          "depends": {
 | 
			
		||||
            "type": "array",
 | 
			
		||||
            "items": {
 | 
			
		||||
              "type": "integer",
 | 
			
		||||
              "format": "uint32"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "prerequisites": {
 | 
			
		||||
            "type": "array",
 | 
			
		||||
            "items": {
 | 
			
		||||
              "type": "string"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "script_type": {
 | 
			
		||||
            "$ref": "#/components/schemas/ScriptType"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "EdgeTuple": {
 | 
			
		||||
        "type": "array",
 | 
			
		||||
        "items": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "integer",
 | 
			
		||||
            "format": "uint32"
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "integer",
 | 
			
		||||
            "format": "uint32"
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "minItems": 2,
 | 
			
		||||
        "maxItems": 2,
 | 
			
		||||
        "description": "Tuple [from, to] representing a directed edge"
 | 
			
		||||
      },
 | 
			
		||||
      "FlowDag": {
 | 
			
		||||
        "type": "object",
 | 
			
		||||
        "required": [
 | 
			
		||||
          "flow_id",
 | 
			
		||||
          "caller_id",
 | 
			
		||||
          "context_id",
 | 
			
		||||
          "nodes",
 | 
			
		||||
          "edges",
 | 
			
		||||
          "reverse_edges",
 | 
			
		||||
          "roots",
 | 
			
		||||
          "leaves",
 | 
			
		||||
          "levels"
 | 
			
		||||
        ],
 | 
			
		||||
        "properties": {
 | 
			
		||||
          "flow_id": {
 | 
			
		||||
            "type": "integer",
 | 
			
		||||
            "format": "uint32"
 | 
			
		||||
          },
 | 
			
		||||
          "caller_id": {
 | 
			
		||||
            "type": "integer",
 | 
			
		||||
            "format": "uint32"
 | 
			
		||||
          },
 | 
			
		||||
          "context_id": {
 | 
			
		||||
            "type": "integer",
 | 
			
		||||
            "format": "uint32"
 | 
			
		||||
          },
 | 
			
		||||
          "nodes": {
 | 
			
		||||
            "type": "object",
 | 
			
		||||
            "additionalProperties": {
 | 
			
		||||
              "$ref": "#/components/schemas/JobSummary"
 | 
			
		||||
            },
 | 
			
		||||
            "description": "Map keyed by job id (serialized as string in JSON)"
 | 
			
		||||
          },
 | 
			
		||||
          "edges": {
 | 
			
		||||
            "type": "array",
 | 
			
		||||
            "items": {
 | 
			
		||||
              "$ref": "#/components/schemas/EdgeTuple"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "reverse_edges": {
 | 
			
		||||
            "type": "array",
 | 
			
		||||
            "items": {
 | 
			
		||||
              "$ref": "#/components/schemas/EdgeTuple"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "roots": {
 | 
			
		||||
            "type": "array",
 | 
			
		||||
            "items": {
 | 
			
		||||
              "type": "integer",
 | 
			
		||||
              "format": "uint32"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "leaves": {
 | 
			
		||||
            "type": "array",
 | 
			
		||||
            "items": {
 | 
			
		||||
              "type": "integer",
 | 
			
		||||
              "format": "uint32"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "levels": {
 | 
			
		||||
            "type": "array",
 | 
			
		||||
            "items": {
 | 
			
		||||
              "type": "array",
 | 
			
		||||
              "items": {
 | 
			
		||||
                "type": "integer",
 | 
			
		||||
                "format": "uint32"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            "description": "Topological execution layers (parallelizable batches)"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "ActorCreate": {
 | 
			
		||||
        "type": "object",
 | 
			
		||||
        "required": [
 | 
			
		||||
@@ -1219,6 +1373,14 @@
 | 
			
		||||
      "StorageError": {
 | 
			
		||||
        "code": -32010,
 | 
			
		||||
        "message": "Storage Error"
 | 
			
		||||
      },
 | 
			
		||||
      "DagMissingDependency": {
 | 
			
		||||
        "code": -32020,
 | 
			
		||||
        "message": "DAG Missing Dependency"
 | 
			
		||||
      },
 | 
			
		||||
      "DagCycleDetected": {
 | 
			
		||||
        "code": -32021,
 | 
			
		||||
        "message": "DAG Cycle Detected"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user