com.publicdomainrelay.temp.tangled.spindle.trigger
Schema Diff
+24 -17
Compatibility Analysis
Breaking Changes Detected
7 breaking changes, 7 non-breaking changes.
Breaking Changes (7)
- RemovedVertex RemovedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.logsUrl" }
- RemovedVertex RemovedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.statusUrl" }
- RemovedVertex RemovedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.workflow" }
- RemovedEdge RemovedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.logsUrl", kind: "prop", name: Some("logsUrl") }
- RemovedEdge RemovedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.statusUrl", kind: "prop", name: Some("statusUrl") }
- RemovedEdge RemovedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.workflow", kind: "prop", name: Some("workflow") }
- KindChanged KindChanged { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", old_kind: "object", new_kind: "ref" }
Non-Breaking Changes (7)
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult" }
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.logsUrl" }
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.statusUrl" }
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.workflow" }
- AddedEdge AddedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.logsUrl", kind: "prop", name: Some("logsUrl") }
- AddedEdge AddedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.statusUrl", kind: "prop", name: Some("statusUrl") }
- AddedEdge AddedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.workflow", kind: "prop", name: Some("workflow") }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.logsUrl" }RemovedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.statusUrl" }RemovedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.workflow" }
Added Elements
AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult" }AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.logsUrl" }AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.statusUrl" }AddedVertex { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.workflow" }
Additional Notes
- Breaking: RemovedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.logsUrl", kind: "prop", name: Some("logsUrl") }
- Breaking: RemovedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.statusUrl", kind: "prop", name: Some("statusUrl") }
- Breaking: RemovedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items.workflow", kind: "prop", name: Some("workflow") }
- Breaking: KindChanged { vertex_id: "com.publicdomainrelay.temp.tangled.spindle.trigger:output.workflows:items", old_kind: "object", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.logsUrl", kind: "prop", name: Some("logsUrl") }
- Non-breaking: AddedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.statusUrl", kind: "prop", name: Some("statusUrl") }
- Non-breaking: AddedEdge { src: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult", tgt: "com.publicdomainrelay.temp.tangled.spindle.trigger#workflowResult.workflow", kind: "prop", name: Some("workflow") }
1
1
{
2
2
"id": "com.publicdomainrelay.temp.tangled.spindle.trigger",
3
3
"defs": {
4
4
"main": {
5
5
"type": "procedure",
6
6
"input": {
7
7
"schema": {
8
8
"type": "object",
9
9
"required": [
10
10
"knot",
11
11
"pipelineRkey",
12
12
"actor",
13
13
"repoDid",
14
14
"repoName",
15
15
"ref"
16
16
],
17
17
"properties": {
18
18
"ref": {
19
19
"type": "string",
20
20
"description": "Commit SHA to run at. The spindle fetches .github/workflows/*.yml at this exact commit, so it must be a real commit, not a branch name."
21
21
},
22
22
"knot": {
23
23
"type": "string",
24
24
"description": "Knot hostname that hosts the repo, e.g. knot1.tangled.sh."
25
25
},
26
26
"actor": {
27
27
"type": "string",
28
28
"format": "did",
29
29
"description": "DID of the actor the run is attributed to. Must equal the issuer of the service-auth token."
30
30
},
31
31
"inputs": {
32
32
"type": "unknown",
33
33
"description": "Optional workflow_dispatch-style inputs, as a map of string keys to string values."
34
34
},
35
35
"repoDid": {
36
36
"type": "string",
37
37
"format": "did",
38
38
"description": "DID of the repo (the owner DID used for sh.tangled.repo.blob lookups)."
39
39
},
40
40
"repoName": {
41
41
"type": "string",
42
42
"description": "Human-readable repo name, e.g. myrepo."
43
43
},
44
44
"pipelineRkey": {
45
45
"type": "string",
46
46
"description": "Record key identifying this pipeline run; only needs to be unique per run."
47
47
}
48
48
}
49
49
},
50
50
"encoding": "application/json"
51
51
},
52
52
"errors": [
53
53
{
54
54
"name": "InvalidRequest",
55
55
"description": "Malformed body or missing required fields."
56
56
},
57
57
{
58
58
"name": "Unauthorized",
59
59
"description": "Missing or invalid inter-service auth token."
60
60
},
61
61
{
62
62
"name": "Forbidden",
63
63
"description": "Token issuer does not match actor, or repo is not authorized for this spindle."
64
64
}
65
65
],
66
66
"output": {
67
67
"schema": {
68
68
"type": "object",
69
69
"required": [
70
70
"submitted",
71
71
"knot",
72
72
"pipelineRkey",
73
73
"ref",
74
74
"workflows"
75
75
],
76
76
"properties": {
77
77
"ref": {
78
78
"type": "string"
79
79
},
80
80
"knot": {
81
81
"type": "string"
82
82
},
83
83
"submitted": {
84
84
"type": "boolean",
85
85
"description": "True once the trigger was accepted and workflow submission started."
86
86
},
87
87
"workflows": {
88
88
"type": "array",
89
89
"items": {
90
-
"type": "object",
91
-
"required": [
92
-
"workflow"
93
-
],
94
-
"properties": {
95
-
"logsUrl": {
96
-
"type": "string",
97
-
"format": "uri"
98
-
},
99
-
"workflow": {
100
-
"type": "string"
101
-
},
102
-
"statusUrl": {
103
-
"type": "string",
104
-
"format": "uri"
105
-
}
106
-
}
90
+
"ref": "#workflowResult",
91
+
"type": "ref"
107
92
},
108
93
"description": "The workflow stems that were submitted, with their log/status stream URLs."
109
94
},
110
95
"pipelineRkey": {
111
96
"type": "string"
112
97
}
113
98
}
114
99
},
115
100
"encoding": "application/json"
116
101
},
117
102
"description": "Manually trigger a pipeline run on a Tangled spindle. Intended to be called via PDS service proxying (the 'atproto-proxy' header, pointed at the spindle's did:web service entry), so the user's PDS mints and signs the inter-service auth token; the spindle verifies the token's issuer against their DID document and requires it to match the trigger's 'actor'. Mirrors the sh.tangled.pipeline fields a knot dispatches on a push/PR event."
103
+
},
104
+
"workflowResult": {
105
+
"type": "object",
106
+
"required": [
107
+
"workflow"
108
+
],
109
+
"properties": {
110
+
"logsUrl": {
111
+
"type": "string",
112
+
"format": "uri",
113
+
"description": "URL to the log stream for this workflow run."
114
+
},
115
+
"workflow": {
116
+
"type": "string",
117
+
"description": "Workflow stem that was submitted."
118
+
},
119
+
"statusUrl": {
120
+
"type": "string",
121
+
"format": "uri",
122
+
"description": "URL to the status stream for this workflow run."
123
+
}
124
+
}
118
125
}
119
126
},
120
127
"$type": "com.atproto.lexicon.schema",
121
128
"lexicon": 1
122
129
}