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
"id": "social.colibri.moderation",
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
"action",
11
11
"subject",
12
12
"createdBy",
13
13
"createdAt"
14
14
],
15
15
"properties": {
16
16
"$type": {
17
17
"type": "string",
18
18
"format": "nsid",
19
19
"description": "The type of the record."
20
20
},
21
21
"action": {
22
22
"type": "string",
23
23
"description": "The moderation action being recorded.",
24
24
"knownValues": [
25
25
"ban",
26
26
"unban",
27
27
"hideMessage",
28
28
"unhideMessage",
29
-
"kick"
29
+
"kick",
30
+
"suppressEmbeds",
31
+
"unsuppressEmbeds"
30
32
]
31
33
},
34
+
"embeds": {
35
+
"type": "array",
36
+
"items": {
37
+
"type": "string",
38
+
"format": "uri"
39
+
},
40
+
"description": "URLs this action applies to, used by suppressEmbeds and unsuppressEmbeds. Ignored by every other action."
41
+
},
32
42
"reason": {
33
43
"type": "string",
34
44
"maxLength": 512,
35
45
"description": "Optional human-readable reason for the action."
36
46
},
37
47
"subject": {
38
48
"ref": "lex:social.colibri.moderation#subject",
39
49
"type": "ref"
40
50
},
41
51
"createdAt": {
42
52
"type": "string",
43
53
"format": "datetime"
44
54
},
45
55
"createdBy": {
46
56
"type": "string",
47
57
"format": "did",
48
58
"description": "DID of the issuer (typically a member with the required permission)."
49
59
}
50
60
}
51
61
},
52
62
"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."
53
63
},
54
64
"subject": {
55
65
"type": "object",
56
66
"properties": {
57
67
"did": {
58
68
"type": "string",
59
69
"format": "did"
60
70
},
61
71
"uri": {
62
72
"type": "string",
63
73
"format": "at-uri"
64
74
}
65
75
},
66
76
"description": "Target of the moderation action. Use `did` for user-targeted actions, `uri` for content-targeted actions."
67
77
}
68
78
},
69
79
"$type": "com.atproto.lexicon.schema",
70
80
"lexicon": 1,
71
-
"revision": 1
81
+
"revision": 2
72
82
}