social.colibri.community

colibri.social

Schema Diff

+42 -5

From

CID
bafyreihp57u44nu...
Indexed At
2026-03-19 20:26 UTC
View this version

To

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

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 11 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.community:body", src: "social.colibri.community:body", tgt: "social.colibri.community:body.requiresApprovalToJoin", kind: "prop", name: Some("requiresApprovalToJoin") }
Non-Breaking Changes (11)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.community:body.appview" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.community:body.banner" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.community:body.linkEmbeds" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.community:body.migratedFrom" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.community:body.migratedTo" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.community:body.requiresApprovalToJoin" }
  • AddedEdge AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.appview", kind: "prop", name: Some("appview") }
  • AddedEdge AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.banner", kind: "prop", name: Some("banner") }
  • AddedEdge AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.linkEmbeds", kind: "prop", name: Some("linkEmbeds") }
  • AddedEdge AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.migratedFrom", kind: "prop", name: Some("migratedFrom") }
  • AddedEdge AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.migratedTo", kind: "prop", name: Some("migratedTo") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "social.colibri.community:body.appview" }
  • AddedVertex { vertex_id: "social.colibri.community:body.banner" }
  • AddedVertex { vertex_id: "social.colibri.community:body.linkEmbeds" }
  • AddedVertex { vertex_id: "social.colibri.community:body.migratedFrom" }
  • AddedVertex { vertex_id: "social.colibri.community:body.migratedTo" }
  • AddedVertex { vertex_id: "social.colibri.community:body.requiresApprovalToJoin" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.community:body", src: "social.colibri.community:body", tgt: "social.colibri.community:body.requiresApprovalToJoin", kind: "prop", name: Some("requiresApprovalToJoin") }
  • Non-breaking: AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.appview", kind: "prop", name: Some("appview") }
  • Non-breaking: AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.banner", kind: "prop", name: Some("banner") }
  • Non-breaking: AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.linkEmbeds", kind: "prop", name: Some("linkEmbeds") }
  • Non-breaking: AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.migratedFrom", kind: "prop", name: Some("migratedFrom") }
  • Non-breaking: AddedEdge { src: "social.colibri.community:body", tgt: "social.colibri.community:body.migratedTo", kind: "prop", name: Some("migratedTo") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "A community, or \"server\", is where users join to interact with each other on Colibri.",
6 -
      "key": "tid",
5 +
      "description": "A community, or \"server\", is where users join to interact with each other on Colibri. Singleton record on the community DID's repo.",
6 +
      "key": "literal:self",
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 +
          "appview": {
15 +
            "description": "DID of the AppView that administers this community and acts as its off-protocol hub (Humming presence relay and voice SFU host). Written by the credential-holding AppView. Consumers that find this field absent fall back to did:web:api.colibri.social.",
16 +
            "format": "did",
17 +
            "type": "string"
18 +
          },
19 +
          "banner": {
20 +
            "accept": [
21 +
              "image/jpeg",
22 +
              "image/png",
23 +
              "image/gif",
24 +
              "image/webp"
25 +
            ],
26 +
            "description": "A banner for the community that will be shown to users.",
27 +
            "type": "blob"
28 +
          },
14 29
          "categoryOrder": {
15 30
            "description": "The order of the categories in this community.",
16 31
            "items": {
17 32
              "description": "A category in this community.",
18 33
              "format": "record-key",
19 34
              "type": "string"
20 35
            },
21 36
            "type": "array"
22 37
          },
23 38
          "description": {
24 39
            "default": "",
25 40
            "description": "A description of the community.",
26 41
            "maxLength": 256,
27 42
            "type": "string"
28 43
          },
44 +
          "linkEmbeds": {
45 +
            "default": true,
46 +
            "description": "Whether link previews are displayed in this community by default. Individual channels may override this.",
47 +
            "type": "boolean"
48 +
          },
49 +
          "migratedFrom": {
50 +
            "description": "Set on a community created by migrating a legacy community. Points at the legacy community record this one replaces.",
51 +
            "format": "at-uri",
52 +
            "type": "string"
53 +
          },
54 +
          "migratedTo": {
55 +
            "description": "Set on a legacy community record once it has been migrated. Points at the new community record that replaces it; consumers treat this community as retired and hide it.",
56 +
            "format": "at-uri",
57 +
            "type": "string"
58 +
          },
29 59
          "name": {
30 60
            "default": "New Community",
31 61
            "description": "The name of the community.",
32 62
            "maxLength": 32,
33 63
            "minLength": 1,
34 64
            "type": "string"
35 65
          },
36 66
          "picture": {
37 67
            "accept": [
38 68
              "image/jpeg",
39 69
              "image/png",
40 -
              "image/gif"
70 +
              "image/gif",
71 +
              "image/webp"
41 72
            ],
42 73
            "description": "An image for the community that will be shown to users.",
43 74
            "type": "blob"
75 +
          },
76 +
          "requiresApprovalToJoin": {
77 +
            "default": true,
78 +
            "description": "Whether users can chat in this community without the owner having to create an acknowledgement record.",
79 +
            "type": "boolean"
44 80
          }
45 81
        },
46 82
        "required": [
47 83
          "name",
48 84
          "description",
49 -
          "categoryOrder"
85 +
          "categoryOrder",
86 +
          "requiresApprovalToJoin"
50 87
        ],
51 88
        "type": "object"
52 89
      },
53 90
      "type": "record"
54 91
    }
55 92
  },
56 93
  "id": "social.colibri.community",
57 94
  "lexicon": 1,
58 -
  "revision": 1
95 +
  "revision": 5
59 96
}

Compare Other Versions

Lexicon Garden

@