From
bafyreigmon2cbiaq26mxmtm53sg37txxfpra75ioql7gifmbsmcg3avqzi
indexed 2026-08-23 12:32 UTC
View this version
To
bafyreiextraarakpdvl2tx3yxeift5mwt2dirzmnsvi34hcuddq7zoy7vm
indexed 2026-10-15 15:34 UTC
View this version
Compatibility
backward compatible Backward compatible. 18 non-breaking changes.
Non-breaking changes (18)
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedMembers" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedMembers:items" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedRoles" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedRoles:items" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.ownerOnly" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToMembers" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToMembers:items" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToRoles" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToRoles:items" }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.allowedMembers", kind: "prop", name: Some("allowedMembers") }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.allowedRoles", kind: "prop", name: Some("allowedRoles") }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.ownerOnly", kind: "prop", name: Some("ownerOnly") }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.visibleToMembers", kind: "prop", name: Some("visibleToMembers") }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.visibleToRoles", kind: "prop", name: Some("visibleToRoles") }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body.allowedMembers", tgt: "social.colibri.beta.category:body.allowedMembers:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body.allowedRoles", tgt: "social.colibri.beta.category:body.allowedRoles:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body.visibleToMembers", tgt: "social.colibri.beta.category:body.visibleToMembers:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.category:body.visibleToRoles", tgt: "social.colibri.beta.category:body.visibleToRoles:items", kind: "items", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedMembers" }AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedMembers:items" }AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedRoles" }AddedVertex { vertex_id: "social.colibri.beta.category:body.allowedRoles:items" }AddedVertex { vertex_id: "social.colibri.beta.category:body.ownerOnly" }AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToMembers" }AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToMembers:items" }AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToRoles" }AddedVertex { vertex_id: "social.colibri.beta.category:body.visibleToRoles:items" }
Notes
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.allowedMembers", kind: "prop", name: Some("allowedMembers") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.allowedRoles", kind: "prop", name: Some("allowedRoles") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.ownerOnly", kind: "prop", name: Some("ownerOnly") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.visibleToMembers", kind: "prop", name: Some("visibleToMembers") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body", tgt: "social.colibri.beta.category:body.visibleToRoles", kind: "prop", name: Some("visibleToRoles") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body.allowedMembers", tgt: "social.colibri.beta.category:body.allowedMembers:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body.allowedRoles", tgt: "social.colibri.beta.category:body.allowedRoles:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body.visibleToMembers", tgt: "social.colibri.beta.category:body.visibleToMembers:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.category:body.visibleToRoles", tgt: "social.colibri.beta.category:body.visibleToRoles:items", kind: "items", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "A named group of channels within a community.",66
"key": "tid",77
"record": {88
"properties": {9
"allowedMembers": {10
"description": "Members allowed to post in the category's channels in addition to allowedRoles.",11
"items": {12
"description": "A member permitted to post.",13
"format": "did",14
"type": "string"15
},16
"type": "array"17
},18
"allowedRoles": {19
"description": "Roles allowed to post in the category's channels. Empty means no role restriction. A channel that sets its own posting restriction overrides this.",20
"items": {21
"description": "A role permitted to post.",22
"format": "record-key",23
"type": "string"24
},25
"type": "array"26
},927
"channelOrder": {1028
"description": "The channels in this category, in display order, by space key.",1129
"items": {1230
"description": "The space key of a channel in this category.",1331
"format": "record-key",1432
"type": "string"1533
},1634
"type": "array"1735
},1836
"name": {1937
"description": "The category's name.",2038
"maxLength": 32,2139
"minLength": 1,2240
"type": "string"41
},42
"ownerOnly": {43
"default": false,44
"description": "Whether only community admins may post in the category's channels. A channel that sets its own posting restriction overrides this.",45
"type": "boolean"46
},47
"visibleToMembers": {48
"description": "Members that may read the category's channels in addition to visibleToRoles.",49
"items": {50
"description": "A member permitted to read.",51
"format": "did",52
"type": "string"53
},54
"type": "array"55
},56
"visibleToRoles": {57
"description": "Roles that may read the category's channels. Empty or absent means every member may read them. A channel with its own non-empty visibleToRoles or visibleToMembers overrides this. A non-empty list makes the category's other channels private, enforced the same way as a private channel.",58
"items": {59
"description": "A role permitted to read.",60
"format": "record-key",61
"type": "string"62
},63
"type": "array"2364
}2465
},2566
"required": [2667
"name",2768
"channelOrder"2869
],2970
"type": "object"3071
},3172
"type": "record"3273
}3374
},3475
"id": "social.colibri.beta.category",3576
"lexicon": 13677
}