app.atmobb.forum.membership
Schema Diff
+58 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 23 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 (23)
- 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" }
- 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.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 }
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" }
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.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 }
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"
16
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
+
},
17
74
"wearing": {
18
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).",
19
76
"items": {
20
77
"maxLength": 300,
21
78
"type": "string"
22
79
},
23
-
"maxLength": 3,
80
+
"maxLength": 6,
24
81
"type": "array"
25
82
}
26
83
},
27
84
"required": [
28
85
"forum"
29
86
],
30
87
"type": "object"
31
88
},
32
89
"type": "record"
33
90
}
34
91
},
35
92
"id": "app.atmobb.forum.membership",
36
93
"lexicon": 1
37
94
}