com.getorbyt.notification.defs
Schema Diff
+90 -0
Compatibility Analysis
Breaking Changes Detected
6 breaking changes, 25 non-breaking changes.
Breaking Changes (6)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#display", src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.lead", kind: "prop", name: Some("lead") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#display", src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.text", kind: "prop", name: Some("text") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#display", src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.link", kind: "prop", name: Some("link") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#displayLink", src: "com.getorbyt.notification.defs#displayLink", tgt: "com.getorbyt.notification.defs#displayLink.byteEnd", kind: "prop", name: Some("byteEnd") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#displayLink", src: "com.getorbyt.notification.defs#displayLink", tgt: "com.getorbyt.notification.defs#displayLink.uri", kind: "prop", name: Some("uri") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#displayLink", src: "com.getorbyt.notification.defs#displayLink", tgt: "com.getorbyt.notification.defs#displayLink.byteStart", kind: "prop", name: Some("byteStart") }
Non-Breaking Changes (25)
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#display" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.badge" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.lead" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.link" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.links" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.links:items" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.text" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink.byteEnd" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink.byteStart" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink.uri" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.authors" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.authors:items" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.count" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.display" }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.badge", kind: "prop", name: Some("badge") }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.links", kind: "prop", name: Some("links") }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#display.links", tgt: "com.getorbyt.notification.defs#display.links:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#display.links:items", tgt: "com.getorbyt.notification.defs#displayLink", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.authors", kind: "prop", name: Some("authors") }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.count", kind: "prop", name: Some("count") }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.display", kind: "prop", name: Some("display") }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView.authors", tgt: "com.getorbyt.notification.defs#notificationView.authors:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView.authors:items", tgt: "com.getorbyt.actor.defs#profileView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView.display", tgt: "com.getorbyt.notification.defs#display", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.getorbyt.notification.defs#display" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.badge" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.lead" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.link" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.links" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.links:items" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#display.text" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink.byteEnd" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink.byteStart" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#displayLink.uri" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.authors" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.authors:items" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.count" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.display" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#display", src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.lead", kind: "prop", name: Some("lead") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#display", src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.text", kind: "prop", name: Some("text") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#display", src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.link", kind: "prop", name: Some("link") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#displayLink", src: "com.getorbyt.notification.defs#displayLink", tgt: "com.getorbyt.notification.defs#displayLink.byteEnd", kind: "prop", name: Some("byteEnd") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#displayLink", src: "com.getorbyt.notification.defs#displayLink", tgt: "com.getorbyt.notification.defs#displayLink.uri", kind: "prop", name: Some("uri") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.getorbyt.notification.defs#displayLink", src: "com.getorbyt.notification.defs#displayLink", tgt: "com.getorbyt.notification.defs#displayLink.byteStart", kind: "prop", name: Some("byteStart") }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.badge", kind: "prop", name: Some("badge") }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#display", tgt: "com.getorbyt.notification.defs#display.links", kind: "prop", name: Some("links") }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#display.links", tgt: "com.getorbyt.notification.defs#display.links:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#display.links:items", tgt: "com.getorbyt.notification.defs#displayLink", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.authors", kind: "prop", name: Some("authors") }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.count", kind: "prop", name: Some("count") }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.display", kind: "prop", name: Some("display") }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView.authors", tgt: "com.getorbyt.notification.defs#notificationView.authors:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView.authors:items", tgt: "com.getorbyt.actor.defs#profileView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView.display", tgt: "com.getorbyt.notification.defs#display", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"display": {
5
+
"description": "A server-written Activity row.",
6
+
"properties": {
7
+
"badge": {
8
+
"description": "What sits on the lead image's corner: the author's face, up to three faces from `authors`, or the Community's art. Absent means nothing.",
9
+
"knownValues": [
10
+
"author",
11
+
"authors",
12
+
"community"
13
+
],
14
+
"type": "string"
15
+
},
16
+
"lead": {
17
+
"description": "Whose image leads the row, and whose name heads it: the author's face and handle, or the Community's art and `/name`. The row comes from whoever the reader would say it came from.",
18
+
"knownValues": [
19
+
"author",
20
+
"community"
21
+
],
22
+
"type": "string"
23
+
},
24
+
"link": {
25
+
"description": "What tapping the row opens, as an `orbyt://` link.",
26
+
"format": "uri",
27
+
"type": "string"
28
+
},
29
+
"links": {
30
+
"description": "Spans of `text` that open something of their own.",
31
+
"items": {
32
+
"ref": "#displayLink",
33
+
"type": "ref"
34
+
},
35
+
"maxLength": 8,
36
+
"type": "array"
37
+
},
38
+
"text": {
39
+
"description": "The sentence after the row's heading, such as `spotlight.orbyt.video and 2 others joined`.",
40
+
"maxGraphemes": 300,
41
+
"maxLength": 600,
42
+
"type": "string"
43
+
}
44
+
},
45
+
"required": [
46
+
"lead",
47
+
"text",
48
+
"link"
49
+
],
50
+
"type": "object"
51
+
},
52
+
"displayLink": {
53
+
"description": "A span of display text, by UTF-8 byte offsets as rich text facets count them, and what it opens.",
54
+
"properties": {
55
+
"byteEnd": {
56
+
"minimum": 0,
57
+
"type": "integer"
58
+
},
59
+
"byteStart": {
60
+
"minimum": 0,
61
+
"type": "integer"
62
+
},
63
+
"uri": {
64
+
"format": "uri",
65
+
"type": "string"
66
+
}
67
+
},
68
+
"required": [
69
+
"byteStart",
70
+
"byteEnd",
71
+
"uri"
72
+
],
73
+
"type": "object"
74
+
},
4
75
"notificationView": {
5
76
"description": "One Orbyt activity item. Computed when read from Orbyt records and Community service state, never stored.",
6
77
"properties": {
7
78
"author": {
8
79
"ref": "com.getorbyt.actor.defs#profileView",
9
80
"type": "ref"
10
81
},
82
+
"authors": {
83
+
"description": "The newest distinct authors of a gathered item, newest first; the first is `author`. Absent when the item has one author.",
84
+
"items": {
85
+
"ref": "com.getorbyt.actor.defs#profileView",
86
+
"type": "ref"
87
+
},
88
+
"maxLength": 3,
89
+
"type": "array"
90
+
},
11
91
"community": {
12
92
"description": "The Community a `community*` reason is about. Absent for other reasons, and absent when the Community can no longer be shown.",
13
93
"ref": "com.getorbyt.community.defs#view",
14
94
"type": "ref"
15
95
},
96
+
"count": {
97
+
"description": "How many events this item gathers: the joins to one Community in one day, the open reports on one post, or the messages in one Modmail thread. Absent means one. `author` and `indexedAt` are the newest event's.",
98
+
"minimum": 1,
99
+
"type": "integer"
100
+
},
101
+
"display": {
102
+
"description": "How the row reads, written by the service so wording, grouping and destinations change without a client release. A client that understands it draws the row from it and keeps its own per-reason wording only for items without one.",
103
+
"ref": "#display",
104
+
"type": "ref"
105
+
},
16
106
"indexedAt": {
17
107
"format": "datetime",
18
108
"type": "string"
19
109
},
20
110
"isRead": {
21
111
"type": "boolean"
22
112
},
23
113
"reason": {
24
114
"description": "`follow`: the author followed the viewer on Orbyt. `followImport`: the author's follow came from importing their network follows, so the network never announced it; clients may group these. `friendJoined`: an account the viewer follows on the connected network joined Orbyt. `communityJoined`: the author joined a Community the viewer administers. `communityPostRemoved`: the author, a moderator, removed the viewer's post from a Community; it stays listed while the post is removed. `communityReport`: the author reported a post in a Community the viewer moderates; it stays listed while the report is open. `communityTransferOffered`: the author offered the viewer ownership of a Community; it stays listed while the offer is pending. `communityModmail`: the author, a member, wrote to the mod team of a Community where the viewer holds manage-mail; it stays listed while the thread is open. `communityModmailReply`: the mod team of a Community answered the viewer's Modmail; the author is the Community's own account, because the reply speaks for the team. A client that mirrors follows to the network may leave out `follow`, which the network already reports. A client renders a reason it does not recognise generically or skips it.",
25
115
"knownValues": [
26
116
"follow",
27
117
"followImport",
28
118
"friendJoined",
29
119
"communityJoined",
30
120
"communityPostRemoved",
31
121
"communityReport",
32
122
"communityTransferOffered",
33
123
"communityModmail",
34
124
"communityModmailReply"
35
125
],
36
126
"type": "string"
37
127
},
38
128
"uri": {
39
129
"description": "The record behind the item: the follow record; for `friendJoined` the joining account's repository (`at://<did>`); for `communityJoined` the membership record; for `communityPostRemoved` and `communityReport` the post; for `communityTransferOffered`, `communityModmail` and `communityModmailReply` the Community.",
40
130
"format": "at-uri",
41
131
"type": "string"
42
132
}
43
133
},
44
134
"required": [
45
135
"uri",
46
136
"reason",
47
137
"author",
48
138
"isRead",
49
139
"indexedAt"
50
140
],
51
141
"type": "object"
52
142
}
53
143
},
54
144
"id": "com.getorbyt.notification.defs",
55
145
"lexicon": 1
56
146
}