social.colibri.channel
Schema Diff
+8 -7
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 3 non-breaking changes.
Breaking Changes (1)
- ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.channel:body.ownerOnly", sort: "default", value: "false" }
Non-Breaking Changes (3)
- AddedVertex AddedVertex { vertex_id: "social.colibri.channel:body.ownerOnly" }
- AddedEdge AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.ownerOnly", kind: "prop", name: Some("ownerOnly") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "social.colibri.channel:body.type", sort: "enum" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "social.colibri.channel:body.ownerOnly" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.channel:body.ownerOnly", sort: "default", value: "false" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "social.colibri.channel:body.type", sort: "enum" }
Additional Notes
- Non-breaking: AddedEdge { src: "social.colibri.channel:body", tgt: "social.colibri.channel:body.ownerOnly", kind: "prop", name: Some("ownerOnly") }
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
-
"enum": [
25
-
"text",
26
-
"voice",
27
-
"forum"
28
-
],
29
24
"type": "string",
30
-
"description": "The type of the channel."
25
+
"format": "nsid",
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."
31
27
},
32
28
"$type": {
33
29
"type": "string",
34
30
"format": "nsid",
35
31
"description": "The type of the record."
36
32
},
37
33
"category": {
38
34
"type": "string",
39
35
"format": "record-key",
40
36
"description": "The category this channel belongs to."
41
37
},
42
38
"community": {
43
39
"type": "string",
44
40
"format": "record-key",
45
41
"description": "The record key of the community this channel belongs to."
46
42
},
43
+
"ownerOnly": {
44
+
"type": "boolean",
45
+
"default": false,
46
+
"description": "Whether the owner of the community is the only one allowed to post in the channel or not."
47
+
},
47
48
"description": {
48
49
"type": "string",
49
50
"default": "",
50
51
"maxLength": 256,
51
52
"description": "A description of the channel."
52
53
}
53
54
}
54
55
},
55
56
"description": "A channel that belongs to a category on Colibri."
56
57
}
57
58
},
58
59
"$type": "com.atproto.lexicon.schema",
59
60
"lexicon": 1,
60
-
"revision": 1
61
+
"revision": 2
61
62
}