com.getorbyt.notification.defs

getorbyt.com

Schema Diff

+15 -4

From

CID
bafyreiagrcjqsbf...
Indexed At
2026-09-24 19:31 UTC
View this version

To

CID
bafyreih5yf6dkyi...
Indexed At
2026-10-05 14:21 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@