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

Compare Other Versions

Lexicon Garden

@