pub.leaflet.blocks.membersOnlyDelimiter
Schema Diff
+18 -4
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 5 non-breaking changes.
Breaking Changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter", src: "pub.leaflet.blocks.membersOnlyDelimiter", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.audience", kind: "prop", name: Some("audience") }
- RemovedVertex RemovedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.tier" }
- RemovedEdge RemovedEdge { src: "pub.leaflet.blocks.membersOnlyDelimiter", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.tier", kind: "prop", name: Some("tier") }
Non-Breaking Changes (5)
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.audience" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds:items" }
- AddedEdge AddedEdge { src: "pub.leaflet.blocks.membersOnlyDelimiter", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds", kind: "prop", name: Some("tierIds") }
- AddedEdge AddedEdge { src: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds:items", kind: "items", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.tier" }
Added Elements
AddedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.audience" }AddedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds" }AddedVertex { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds:items" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "pub.leaflet.blocks.membersOnlyDelimiter", src: "pub.leaflet.blocks.membersOnlyDelimiter", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.audience", kind: "prop", name: Some("audience") }
- Breaking: RemovedEdge { src: "pub.leaflet.blocks.membersOnlyDelimiter", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.tier", kind: "prop", name: Some("tier") }
- Non-breaking: AddedEdge { src: "pub.leaflet.blocks.membersOnlyDelimiter", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds", kind: "prop", name: Some("tierIds") }
- Non-breaking: AddedEdge { src: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds", tgt: "pub.leaflet.blocks.membersOnlyDelimiter.tierIds:items", kind: "items", name: None }
1
1
{
2
2
"id": "pub.leaflet.blocks.membersOnlyDelimiter",
3
3
"defs": {
4
4
"main": {
5
5
"type": "object",
6
-
"required": [],
6
+
"required": [
7
+
"audience"
8
+
],
7
9
"properties": {
8
-
"tier": {
10
+
"tierIds": {
11
+
"type": "array",
12
+
"items": {
13
+
"type": "string"
14
+
},
15
+
"description": "Paid tier ids that grant access when audience is tiers. An empty selection grants no membership access."
16
+
},
17
+
"audience": {
9
18
"type": "string",
10
-
"description": "Id of the lowest membership tier whose members can read past the delimiter; tiers rank by price, so pricier tiers read through too. Absent means any paid membership."
19
+
"description": "Whether access is available to all subscribers, all paid members, or selected paid tiers.",
20
+
"knownValues": [
21
+
"subscribers",
22
+
"paid",
23
+
"tiers"
24
+
]
11
25
}
12
26
},
13
-
"description": "Marks where members-only content begins; blocks after this delimiter are only served to readers with an active paid membership."
27
+
"description": "Marks where members-only content begins and declares which publication members can read past it."
14
28
}
15
29
},
16
30
"$type": "com.atproto.lexicon.schema",
17
31
"lexicon": 1
18
32
}