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
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "Marks where members-only content begins; blocks after this delimiter are only served to readers with an active paid membership.",
5
+
"description": "Marks where members-only content begins and declares which publication members can read past it.",
6
6
"properties": {
7
-
"tier": {
8
-
"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.",
7
+
"audience": {
8
+
"description": "Whether access is available to all subscribers, all paid members, or selected paid tiers.",
9
+
"knownValues": [
10
+
"subscribers",
11
+
"paid",
12
+
"tiers"
13
+
],
9
14
"type": "string"
15
+
},
16
+
"tierIds": {
17
+
"description": "Paid tier ids that grant access when audience is tiers. An empty selection grants no membership access.",
18
+
"items": {
19
+
"type": "string"
20
+
},
21
+
"type": "array"
10
22
}
11
23
},
12
-
"required": [],
24
+
"required": [
25
+
"audience"
26
+
],
13
27
"type": "object"
14
28
}
15
29
},
16
30
"id": "pub.leaflet.blocks.membersOnlyDelimiter",
17
31
"lexicon": 1
18
32
}