com.getorbyt.notification.defs
Schema Diff
+15 -4
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 4 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "com.getorbyt.notification.defs#notificationView.reason", sort: "knownValues", old_value: "[\"follow\",\"followImport\",\"friendJoined\"]", new_value: "[\"follow\",\"followImport\",\"friendJoined\",\"communityJoined\",\"communityPostRemoved\",\"communityReport\",\"communityTransferOffered\",\"communityModmail\",\"communityModmailReply\"]" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.defs#view" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.community" }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.community", kind: "prop", name: Some("community") }
- AddedEdge AddedEdge { src: "com.getorbyt.notification.defs#notificationView.community", tgt: "com.getorbyt.community.defs#view", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.getorbyt.community.defs#view" }AddedVertex { vertex_id: "com.getorbyt.notification.defs#notificationView.community" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "com.getorbyt.notification.defs#notificationView.reason", sort: "knownValues", old_value: "[\"follow\",\"followImport\",\"friendJoined\"]", new_value: "[\"follow\",\"followImport\",\"friendJoined\",\"communityJoined\",\"communityPostRemoved\",\"communityReport\",\"communityTransferOffered\",\"communityModmail\",\"communityModmailReply\"]" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView", tgt: "com.getorbyt.notification.defs#notificationView.community", kind: "prop", name: Some("community") }
- Non-breaking: AddedEdge { src: "com.getorbyt.notification.defs#notificationView.community", tgt: "com.getorbyt.community.defs#view", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"notificationView": {
5
-
"description": "One Orbyt activity item. Computed from Orbyt records when read, never stored.",
5
+
"description": "One Orbyt activity item. Computed when read from Orbyt records and Community service state, never stored.",
6
6
"properties": {
7
7
"author": {
8
8
"ref": "com.getorbyt.actor.defs#profileView",
9
9
"type": "ref"
10
10
},
11
+
"community": {
12
+
"description": "The Community a `community*` reason is about. Absent for other reasons, and absent when the Community can no longer be shown.",
13
+
"ref": "com.getorbyt.community.defs#view",
14
+
"type": "ref"
15
+
},
11
16
"indexedAt": {
12
17
"format": "datetime",
13
18
"type": "string"
14
19
},
15
20
"isRead": {
16
21
"type": "boolean"
17
22
},
18
23
"reason": {
19
-
"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. 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.",
24
+
"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.",
20
25
"knownValues": [
21
26
"follow",
22
27
"followImport",
23
-
"friendJoined"
28
+
"friendJoined",
29
+
"communityJoined",
30
+
"communityPostRemoved",
31
+
"communityReport",
32
+
"communityTransferOffered",
33
+
"communityModmail",
34
+
"communityModmailReply"
24
35
],
25
36
"type": "string"
26
37
},
27
38
"uri": {
28
-
"description": "The record behind the item: the follow record, or for `friendJoined` the joining account's repository (`at://<did>`).",
39
+
"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.",
29
40
"format": "at-uri",
30
41
"type": "string"
31
42
}
32
43
},
33
44
"required": [
34
45
"uri",
35
46
"reason",
36
47
"author",
37
48
"isRead",
38
49
"indexedAt"
39
50
],
40
51
"type": "object"
41
52
}
42
53
},
43
54
"id": "com.getorbyt.notification.defs",
44
55
"lexicon": 1
45
56
}