app.atmobb.discussion.getThreadPage
Schema Diff
+55 -1
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 20 non-breaking changes.
Breaking Changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.atmobb.discussion.getThreadPage#postView", src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.uri", kind: "prop", name: Some("uri") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.atmobb.discussion.getThreadPage#postView", src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.value", kind: "prop", name: Some("value") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.atmobb.discussion.getThreadPage#postView", src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.author", kind: "prop", name: Some("author") }
Non-Breaking Changes (20)
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.author" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorPosts" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorProfile" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorStamps" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorStamps:items" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorTotalPosts" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.cid" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.indexedAt" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.uri" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.value" }
- AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.getStamps#trayEntry" }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorPosts", kind: "prop", name: Some("authorPosts") }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorProfile", kind: "prop", name: Some("authorProfile") }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorStamps", kind: "prop", name: Some("authorStamps") }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorTotalPosts", kind: "prop", name: Some("authorTotalPosts") }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.cid", kind: "prop", name: Some("cid") }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.indexedAt", kind: "prop", name: Some("indexedAt") }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView.authorStamps", tgt: "app.atmobb.discussion.getThreadPage#postView.authorStamps:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView.authorStamps:items", tgt: "app.atmobb.forum.getStamps#trayEntry", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.author" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorPosts" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorProfile" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorStamps" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorStamps:items" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.authorTotalPosts" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.cid" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.indexedAt" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.uri" }AddedVertex { vertex_id: "app.atmobb.discussion.getThreadPage#postView.value" }AddedVertex { vertex_id: "app.atmobb.forum.getStamps#trayEntry" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.atmobb.discussion.getThreadPage#postView", src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.uri", kind: "prop", name: Some("uri") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.atmobb.discussion.getThreadPage#postView", src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.value", kind: "prop", name: Some("value") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.atmobb.discussion.getThreadPage#postView", src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.author", kind: "prop", name: Some("author") }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorPosts", kind: "prop", name: Some("authorPosts") }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorProfile", kind: "prop", name: Some("authorProfile") }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorStamps", kind: "prop", name: Some("authorStamps") }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.authorTotalPosts", kind: "prop", name: Some("authorTotalPosts") }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.cid", kind: "prop", name: Some("cid") }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView", tgt: "app.atmobb.discussion.getThreadPage#postView.indexedAt", kind: "prop", name: Some("indexedAt") }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView.authorStamps", tgt: "app.atmobb.discussion.getThreadPage#postView.authorStamps:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.atmobb.discussion.getThreadPage#postView.authorStamps:items", tgt: "app.atmobb.forum.getStamps#trayEntry", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "One page of a thread: the thread, total reply count, and a page of replies in chronological order, with author profiles and postcounts hydrated. The thread carries its moderation flags for the viewing forum (hidden, locked, pinned).",
5
+
"description": "One page of a thread: the thread, total reply count, and a page of replies in chronological order, with author profiles and worn stamps hydrated. The thread carries its moderation flags for the viewing forum (hidden, locked, pinned).",
6
6
"output": {
7
7
"encoding": "application/json",
8
8
"schema": {
9
9
"properties": {
10
10
"cursor": {
11
11
"type": "string"
12
12
},
13
13
"poll": {
14
14
"description": "Vote counts per option, voter total, and the viewer's votes, when the thread has a poll.",
15
15
"type": "unknown"
16
16
},
17
17
"replies": {
18
+
"description": "Each item is shaped like #postView.",
18
19
"items": {
19
20
"type": "unknown"
20
21
},
21
22
"type": "array"
22
23
},
23
24
"replyCount": {
24
25
"type": "integer"
25
26
},
26
27
"replyIndex": {
27
28
"type": "integer"
28
29
},
29
30
"thread": {
31
+
"description": "Shaped like #postView, plus origin and the moderation flags hidden, locked, lockedAt, and pinned.",
30
32
"type": "unknown"
31
33
}
32
34
},
33
35
"required": [
34
36
"replies"
35
37
],
36
38
"type": "object"
37
39
}
38
40
},
39
41
"parameters": {
40
42
"properties": {
41
43
"cursor": {
42
44
"type": "string"
43
45
},
44
46
"forum": {
45
47
"format": "did",
46
48
"type": "string"
47
49
},
48
50
"limit": {
49
51
"default": 25,
50
52
"maximum": 100,
51
53
"minimum": 1,
52
54
"type": "integer"
53
55
},
54
56
"reply": {
55
57
"description": "Return the page holding this reply instead of the cursor's page. Its chronological position comes back as replyIndex.",
56
58
"format": "at-uri",
57
59
"type": "string"
58
60
},
59
61
"thread": {
60
62
"format": "at-uri",
61
63
"type": "string"
62
64
},
63
65
"viewer": {
64
66
"description": "The reader, for their own poll votes.",
65
67
"format": "did",
66
68
"type": "string"
67
69
}
68
70
},
69
71
"required": [
70
72
"thread",
71
73
"forum"
72
74
],
73
75
"type": "params"
74
76
},
75
77
"type": "query"
78
+
},
79
+
"postView": {
80
+
"description": "The fields a thread and each reply share: the post itself and its author, hydrated.",
81
+
"properties": {
82
+
"author": {
83
+
"format": "did",
84
+
"type": "string"
85
+
},
86
+
"authorPosts": {
87
+
"description": "Deprecated and no longer rendered: the author's post count on this forum. Kept for older clients.",
88
+
"type": "integer"
89
+
},
90
+
"authorProfile": {
91
+
"description": "The author's app.atmobb.actor.profile record, when they have one.",
92
+
"type": "unknown"
93
+
},
94
+
"authorStamps": {
95
+
"description": "The stamps the author wears on the viewing forum, in order.",
96
+
"items": {
97
+
"ref": "app.atmobb.forum.getStamps#trayEntry",
98
+
"type": "ref"
99
+
},
100
+
"maxLength": 3,
101
+
"type": "array"
102
+
},
103
+
"authorTotalPosts": {
104
+
"description": "Deprecated and no longer rendered: the author's post count across every indexed forum. Kept for older clients.",
105
+
"type": "integer"
106
+
},
107
+
"cid": {
108
+
"format": "cid",
109
+
"type": "string"
110
+
},
111
+
"indexedAt": {
112
+
"format": "datetime",
113
+
"type": "string"
114
+
},
115
+
"uri": {
116
+
"format": "at-uri",
117
+
"type": "string"
118
+
},
119
+
"value": {
120
+
"description": "The thread or reply record.",
121
+
"type": "unknown"
122
+
}
123
+
},
124
+
"required": [
125
+
"uri",
126
+
"author",
127
+
"value"
128
+
],
129
+
"type": "object"
76
130
}
77
131
},
78
132
"id": "app.atmobb.discussion.getThreadPage",
79
133
"lexicon": 1
80
134
}