cloudflare-native port of the tangled knot server
1{
2 "lexicon": 1,
3 "id": "sh.tangled.ci.pipeline.subscribeLogs",
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}