social.colibri.channel

colibri.social

Schema Diff

+26 -1

From

CID
bafyreigzndf6k2h...
Indexed At
2026-04-19 12:22 UTC
View this version

To

CID
bafyreicizzfddvh...
Indexed At
2026-08-15 22:24 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 12 non-breaking changes.

Non-Breaking Changes (12)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel:body.allowedMembers" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel:body.allowedMembers:items" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel:body.allowedRoles" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel:body.allowedRoles:items" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel:body.linkEmbeds" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.channel:body.migratedFrom" }
  • AddedEdge AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.allowedMembers", kind: "prop", name: Some("allowedMembers") }
  • AddedEdge AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.allowedRoles", kind: "prop", name: Some("allowedRoles") }
  • AddedEdge AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.linkEmbeds", kind: "prop", name: Some("linkEmbeds") }
  • AddedEdge AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.migratedFrom", kind: "prop", name: Some("migratedFrom") }
  • AddedEdge AddedEdge { src: "social.colibri.channel:body.allowedMembers", tgt: "social.colibri.channel:body.allowedMembers:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.channel:body.allowedRoles", tgt: "social.colibri.channel:body.allowedRoles:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "social.colibri.channel:body.allowedMembers" }
  • AddedVertex { vertex_id: "social.colibri.channel:body.allowedMembers:items" }
  • AddedVertex { vertex_id: "social.colibri.channel:body.allowedRoles" }
  • AddedVertex { vertex_id: "social.colibri.channel:body.allowedRoles:items" }
  • AddedVertex { vertex_id: "social.colibri.channel:body.linkEmbeds" }
  • AddedVertex { vertex_id: "social.colibri.channel:body.migratedFrom" }

Additional Notes

  • Non-breaking: AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.allowedMembers", kind: "prop", name: Some("allowedMembers") }
  • Non-breaking: AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.allowedRoles", kind: "prop", name: Some("allowedRoles") }
  • Non-breaking: AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.linkEmbeds", kind: "prop", name: Some("linkEmbeds") }
  • Non-breaking: AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.migratedFrom", kind: "prop", name: Some("migratedFrom") }
  • Non-breaking: AddedEdge { src: "social.colibri.channel:body.allowedMembers", tgt: "social.colibri.channel:body.allowedMembers:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.channel:body.allowedRoles", tgt: "social.colibri.channel:body.allowedRoles:items", kind: "items", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A channel that belongs to a category on Colibri.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "$type": {
10 10
            "description": "The type of the record.",
11 11
            "format": "nsid",
12 12
            "type": "string"
13 13
          },
14 +
          "allowedMembers": {
15 +
            "description": "Member DIDs explicitly allowed to post in this channel, in addition to allowedRoles.",
16 +
            "items": {
17 +
              "format": "did",
18 +
              "type": "string"
19 +
            },
20 +
            "type": "array"
21 +
          },
22 +
          "allowedRoles": {
23 +
            "description": "Role record-keys allowed to post in this channel. Empty/absent means no role restriction.",
24 +
            "items": {
25 +
              "format": "record-key",
26 +
              "type": "string"
27 +
            },
28 +
            "type": "array"
29 +
          },
14 30
          "category": {
15 31
            "description": "The category this channel belongs to.",
16 32
            "format": "record-key",
17 33
            "type": "string"
18 34
          },
19 35
          "community": {
20 36
            "description": "The record key of the community this channel belongs to.",
21 37
            "format": "record-key",
22 38
            "type": "string"
23 39
          },
24 40
          "description": {
25 41
            "default": "",
26 42
            "description": "A description of the channel.",
27 43
            "maxLength": 256,
28 44
            "type": "string"
29 45
          },
46 +
          "linkEmbeds": {
47 +
            "description": "Whether link previews are displayed in this channel. Absent means the community default applies.",
48 +
            "type": "boolean"
49 +
          },
50 +
          "migratedFrom": {
51 +
            "description": "Set on a channel created by migrating a legacy community. Points at the legacy channel record this one replaces, so message history for the old channel can be surfaced here.",
52 +
            "format": "at-uri",
53 +
            "type": "string"
54 +
          },
30 55
          "name": {
31 56
            "default": "New channel",
32 57
            "description": "The name of the channel.",
33 58
            "maxLength": 32,
34 59
            "minLength": 1,
35 60
            "type": "string"
36 61
          },
37 62
          "ownerOnly": {
38 63
            "default": false,
39 64
            "description": "Whether the owner of the community is the only one allowed to post in the channel or not.",
40 65
            "type": "boolean"
41 66
          },
42 67
          "type": {
43 68
            "description": "The type of the channel. Colibri provides social.colibri.channel.text, social.colibri.channel.forum, social.colibri.channel.link, and social.colibri.channel.voice.",
44 69
            "format": "nsid",
45 70
            "type": "string"
46 71
          }
47 72
        },
48 73
        "required": [
49 74
          "name",
50 75
          "type",
51 76
          "category",
52 77
          "community"
53 78
        ],
54 79
        "type": "object"
55 80
      },
56 81
      "type": "record"
57 82
    }
58 83
  },
59 84
  "id": "social.colibri.channel",
60 85
  "lexicon": 1,
61 -
  "revision": 2
86 +
  "revision": 5
62 87
}

Compare Other Versions

Lexicon Garden

@