social.colibri.moderation
Schema Diff
+12 -2
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 4 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.moderation:body.action", sort: "knownValues", old_value: "[\"ban\",\"unban\",\"hideMessage\",\"unhideMessage\",\"kick\"]", new_value: "[\"ban\",\"unban\",\"hideMessage\",\"unhideMessage\",\"kick\",\"suppressEmbeds\",\"unsuppressEmbeds\"]" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "social.colibri.moderation:body.embeds" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.moderation:body.embeds:items" }
- AddedEdge AddedEdge { src: "social.colibri.moderation:body", tgt: "social.colibri.moderation:body.embeds", kind: "prop", name: Some("embeds") }
- AddedEdge AddedEdge { src: "social.colibri.moderation:body.embeds", tgt: "social.colibri.moderation:body.embeds:items", kind: "items", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "social.colibri.moderation:body.embeds" }AddedVertex { vertex_id: "social.colibri.moderation:body.embeds:items" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.moderation:body.action", sort: "knownValues", old_value: "[\"ban\",\"unban\",\"hideMessage\",\"unhideMessage\",\"kick\"]", new_value: "[\"ban\",\"unban\",\"hideMessage\",\"unhideMessage\",\"kick\",\"suppressEmbeds\",\"unsuppressEmbeds\"]" }
Additional Notes
- Non-breaking: AddedEdge { src: "social.colibri.moderation:body", tgt: "social.colibri.moderation:body.embeds", kind: "prop", name: Some("embeds") }
- Non-breaking: AddedEdge { src: "social.colibri.moderation:body.embeds", tgt: "social.colibri.moderation:body.embeds:items", kind: "items", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A moderation event scoped to the community that owns this repo. Acts as an append-only audit log; current state is derived from the action history per subject.",
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
14
"action": {
15
15
"description": "The moderation action being recorded.",
16
16
"knownValues": [
17
17
"ban",
18
18
"unban",
19
19
"hideMessage",
20
20
"unhideMessage",
21
-
"kick"
21
+
"kick",
22
+
"suppressEmbeds",
23
+
"unsuppressEmbeds"
22
24
],
23
25
"type": "string"
24
26
},
25
27
"createdAt": {
26
28
"format": "datetime",
27
29
"type": "string"
28
30
},
29
31
"createdBy": {
30
32
"description": "DID of the issuer (typically a member with the required permission).",
31
33
"format": "did",
32
34
"type": "string"
33
35
},
36
+
"embeds": {
37
+
"description": "URLs this action applies to, used by suppressEmbeds and unsuppressEmbeds. Ignored by every other action.",
38
+
"items": {
39
+
"format": "uri",
40
+
"type": "string"
41
+
},
42
+
"type": "array"
43
+
},
34
44
"reason": {
35
45
"description": "Optional human-readable reason for the action.",
36
46
"maxLength": 512,
37
47
"type": "string"
38
48
},
39
49
"subject": {
40
50
"ref": "lex:social.colibri.moderation#subject",
41
51
"type": "ref"
42
52
}
43
53
},
44
54
"required": [
45
55
"action",
46
56
"subject",
47
57
"createdBy",
48
58
"createdAt"
49
59
],
50
60
"type": "object"
51
61
},
52
62
"type": "record"
53
63
},
54
64
"subject": {
55
65
"description": "Target of the moderation action. Use `did` for user-targeted actions, `uri` for content-targeted actions.",
56
66
"properties": {
57
67
"did": {
58
68
"format": "did",
59
69
"type": "string"
60
70
},
61
71
"uri": {
62
72
"format": "at-uri",
63
73
"type": "string"
64
74
}
65
75
},
66
76
"type": "object"
67
77
}
68
78
},
69
79
"id": "social.colibri.moderation",
70
80
"lexicon": 1,
71
-
"revision": 1
81
+
"revision": 2
72
82
}