sh.tangled.ci.subscribePipelineLogs.json

 1{
 2  "lexicon": 1,
 3  "id": "sh.tangled.ci.subscribePipelineLogs",
 4  "defs": {
 5    "main": {
 6      "type": "subscription",
 7      "description": "Pipeline logs stream",
 8      "parameters": {
 9        "type": "params",
10        "required": ["pipeline"],
11        "properties": {
12          "pipeline": {
13            "type": "string",
14            "format": "tid",
15            "description": "Pipeline ID"
16          },
17          "workflows": {
18            "type": "array",
19            "items": {
20              "type": "string",
21              "description": "Workflow name"
22            },
23            "description": "filter logs by specific workflows"
24          }
25        }
26      },
27      "message": {
28        "schema": {
29          "type": "union",
30          "refs": ["#control", "#data"]
31        }
32      },
33      "errors": [
34        {
35          "name": "WorkflowNotFound",
36          "description": "Workflow not found"
37        },
38        {
39          "name": "InvalidRequest",
40          "description": "Invalid request parameters"
41        }
42      ]
43    },
44    "control": {
45      "type": "object",
46      "required": ["time", "workflow", "step", "content"],
47      "properties": {
48        "time": { "type": "string", "format": "datetime" },
49        "workflow": { "type": "string", "description": "workflow name" },
50        "step": { "type": "integer", "description": "Step ID" },
51        "content": { "type": "string" },
52        "command": { "type": "string", "description": "Step command" },
53        "status": {
54          "type": "string",
55          "enum": ["start", "end"],
56          "description": "Step status"
57        },
58        "kind": {
59          "type": "string",
60          "enum": ["system", "user"],
61          "description": "Step kind"
62        }
63      }
64    },
65    "data": {
66      "type": "object",
67      "required": ["time", "workflow", "step", "content", "stream"],
68      "properties": {
69        "time": { "type": "string", "format": "datetime" },
70        "workflow": { "type": "string", "description": "workflow name" },
71        "step": { "type": "integer", "description": "Step ID" },
72        "content": { "type": "string" },
73        "stream": { "type": "string", "enum": [ "stdout", "stderr" ] }
74      }
75    }
76  }
77}