app.atmobb.forum.membership

lexicons.atmobb.app

Schema Diff

+66 -0

From

CID
bafyreichywdh56m...
Indexed At
2026-07-26 20:07 UTC
View this version

To

CID
bafyreieynmww352...
Indexed At
2026-10-07 04:30 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 27 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.atmobb.forum.membership#closedPeriod", src: "app.atmobb.forum.membership#closedPeriod", tgt: "app.atmobb.forum.membership#closedPeriod.from", kind: "prop", name: Some("from") }
Non-Breaking Changes (27)
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership#closedPeriod" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership#closedPeriod.from" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership#closedPeriod.to" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbook" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookBlocked" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookBlocked:items" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookClosed" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookClosed:items" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookHidden" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookHidden:items" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.pinned" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.pinned:items" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.wearing" }
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.forum.membership:body.wearing:items" }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership#closedPeriod", tgt: "app.atmobb.forum.membership#closedPeriod.to", kind: "prop", name: Some("to") }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbook", kind: "prop", name: Some("guestbook") }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbookBlocked", kind: "prop", name: Some("guestbookBlocked") }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbookClosed", kind: "prop", name: Some("guestbookClosed") }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbookHidden", kind: "prop", name: Some("guestbookHidden") }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.pinned", kind: "prop", name: Some("pinned") }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.wearing", kind: "prop", name: Some("wearing") }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body.guestbookBlocked", tgt: "app.atmobb.forum.membership:body.guestbookBlocked:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body.guestbookClosed", tgt: "app.atmobb.forum.membership:body.guestbookClosed:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body.guestbookClosed:items", tgt: "app.atmobb.forum.membership#closedPeriod", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body.guestbookHidden", tgt: "app.atmobb.forum.membership:body.guestbookHidden:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body.pinned", tgt: "app.atmobb.forum.membership:body.pinned:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.atmobb.forum.membership:body.wearing", tgt: "app.atmobb.forum.membership:body.wearing:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.atmobb.forum.membership#closedPeriod" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership#closedPeriod.from" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership#closedPeriod.to" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbook" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookBlocked" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookBlocked:items" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookClosed" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookClosed:items" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookHidden" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.guestbookHidden:items" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.pinned" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.pinned:items" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.wearing" }
  • AddedVertex { vertex_id: "app.atmobb.forum.membership:body.wearing:items" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.atmobb.forum.membership#closedPeriod", src: "app.atmobb.forum.membership#closedPeriod", tgt: "app.atmobb.forum.membership#closedPeriod.from", kind: "prop", name: Some("from") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership#closedPeriod", tgt: "app.atmobb.forum.membership#closedPeriod.to", kind: "prop", name: Some("to") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbook", kind: "prop", name: Some("guestbook") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbookBlocked", kind: "prop", name: Some("guestbookBlocked") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbookClosed", kind: "prop", name: Some("guestbookClosed") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.guestbookHidden", kind: "prop", name: Some("guestbookHidden") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.pinned", kind: "prop", name: Some("pinned") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body", tgt: "app.atmobb.forum.membership:body.wearing", kind: "prop", name: Some("wearing") }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body.guestbookBlocked", tgt: "app.atmobb.forum.membership:body.guestbookBlocked:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body.guestbookClosed", tgt: "app.atmobb.forum.membership:body.guestbookClosed:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body.guestbookClosed:items", tgt: "app.atmobb.forum.membership#closedPeriod", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body.guestbookHidden", tgt: "app.atmobb.forum.membership:body.guestbookHidden:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body.pinned", tgt: "app.atmobb.forum.membership:body.pinned:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.atmobb.forum.membership:body.wearing", tgt: "app.atmobb.forum.membership:body.wearing:items", kind: "items", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 +
    "closedPeriod": {
5 +
      "description": "A span the guestbook was closed. With no end it is closed still.",
6 +
      "properties": {
7 +
        "from": {
8 +
          "format": "datetime",
9 +
          "type": "string"
10 +
        },
11 +
        "to": {
12 +
          "format": "datetime",
13 +
          "type": "string"
14 +
        }
15 +
      },
16 +
      "required": [
17 +
        "from"
18 +
      ],
19 +
      "type": "object"
20 +
    },
4 21
    "main": {
5 22
      "description": "Declares membership in a forum. Lives in the member's own repo, pointing at the forum's DID — joining is an act of the member, leaving is deleting this record.",
6 23
      "key": "tid",
7 24
      "record": {
8 25
        "properties": {
9 26
          "createdAt": {
10 27
            "format": "datetime",
11 28
            "type": "string"
12 29
          },
13 30
          "forum": {
14 31
            "format": "did",
15 32
            "type": "string"
33 +
          },
34 +
          "guestbook": {
35 +
            "description": "Whether the member's guestbook on this forum is open for signing. Absent means closed.",
36 +
            "type": "boolean"
37 +
          },
38 +
          "guestbookBlocked": {
39 +
            "description": "Signers the member blocked from their guestbook; none of their entries show.",
40 +
            "items": {
41 +
              "format": "did",
42 +
              "type": "string"
43 +
            },
44 +
            "maxLength": 500,
45 +
            "type": "array"
46 +
          },
47 +
          "guestbookClosed": {
48 +
            "description": "Periods the guestbook was closed; an entry indexed during one never shows. Turning the guestbook on records the end of the current closed period (or, the first time, a period from the beginning of time to now); turning it off starts a new one. Past 20, the oldest periods merge into one, so nothing they covered resurfaces.",
49 +
            "items": {
50 +
              "ref": "#closedPeriod",
51 +
              "type": "ref"
52 +
            },
53 +
            "maxLength": 20,
54 +
            "type": "array"
55 +
          },
56 +
          "guestbookHidden": {
57 +
            "description": "At-uris of guestbook entries the member hid.",
58 +
            "items": {
59 +
              "format": "at-uri",
60 +
              "type": "string"
61 +
            },
62 +
            "maxLength": 500,
63 +
            "type": "array"
64 +
          },
65 +
          "pinned": {
66 +
            "description": "At-uris of the member's own topics on this forum, pinned to their profile page in order.",
67 +
            "items": {
68 +
              "format": "at-uri",
69 +
              "type": "string"
70 +
            },
71 +
            "maxLength": 4,
72 +
            "type": "array"
73 +
          },
74 +
          "wearing": {
75 +
            "description": "Stamp ids the member wears on this forum, in order: an admin stamp's at-uri, or the fixed id of a generated stamp (atmobb:board:<board at-uri>, atmobb:arrival, atmobb:first-light, atmobb:early-days).",
76 +
            "items": {
77 +
              "maxLength": 300,
78 +
              "type": "string"
79 +
            },
80 +
            "maxLength": 6,
81 +
            "type": "array"
16 82
          }
17 83
        },
18 84
        "required": [
19 85
          "forum"
20 86
        ],
21 87
        "type": "object"
22 88
      },
23 89
      "type": "record"
24 90
    }
25 91
  },
26 92
  "id": "app.atmobb.forum.membership",
27 93
  "lexicon": 1
28 94
}

Compare Other Versions

Lexicon Garden

@