com.getorbyt.community.moderatePost
Schema Diff
+17 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.moderatePost:input.ruleIndex" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.moderatePost:output.removalActionId" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.moderatePost:output.removedRuleIndex" }
- AddedEdge AddedEdge { src: "com.getorbyt.community.moderatePost:input", tgt: "com.getorbyt.community.moderatePost:input.ruleIndex", kind: "prop", name: Some("ruleIndex") }
- AddedEdge AddedEdge { src: "com.getorbyt.community.moderatePost:output", tgt: "com.getorbyt.community.moderatePost:output.removalActionId", kind: "prop", name: Some("removalActionId") }
- AddedEdge AddedEdge { src: "com.getorbyt.community.moderatePost:output", tgt: "com.getorbyt.community.moderatePost:output.removedRuleIndex", kind: "prop", name: Some("removedRuleIndex") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.getorbyt.community.moderatePost:input.ruleIndex" }AddedVertex { vertex_id: "com.getorbyt.community.moderatePost:output.removalActionId" }AddedVertex { vertex_id: "com.getorbyt.community.moderatePost:output.removedRuleIndex" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.getorbyt.community.moderatePost:input", tgt: "com.getorbyt.community.moderatePost:input.ruleIndex", kind: "prop", name: Some("ruleIndex") }
- Non-breaking: AddedEdge { src: "com.getorbyt.community.moderatePost:output", tgt: "com.getorbyt.community.moderatePost:output.removalActionId", kind: "prop", name: Some("removalActionId") }
- Non-breaking: AddedEdge { src: "com.getorbyt.community.moderatePost:output", tgt: "com.getorbyt.community.moderatePost:output.removedRuleIndex", kind: "prop", name: Some("removedRuleIndex") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A moderator action on one post's Community-level state. Removal is scoped to the Community; only actions that change state are journaled.",
6
6
"errors": [
7
7
{
8
8
"name": "CommunityNotFound"
9
9
},
10
10
{
11
11
"name": "InsufficientRole"
12
12
},
13
13
{
14
14
"name": "PostNotFound"
15
15
},
16
16
{
17
17
"name": "InvalidAction"
18
+
},
19
+
{
20
+
"description": "The request carried no service-auth token, or one this service could not verify for the method. Distinct from InsufficientRole: the caller's identity was never established, so no role decision was made. A client should reauthorize and retry once rather than tell the viewer they lack access.",
21
+
"name": "AuthenticationRequired"
18
22
}
19
23
],
20
24
"input": {
21
25
"encoding": "application/json",
22
26
"schema": {
23
27
"properties": {
24
28
"action": {
25
29
"knownValues": [
26
30
"remove",
27
31
"restore",
28
32
"pin",
29
33
"unpin"
30
34
],
31
35
"type": "string"
32
36
},
33
37
"community": {
34
38
"format": "at-uri",
35
39
"type": "string"
36
40
},
37
41
"post": {
38
42
"description": "The linked app.bsky.feed.post URI.",
39
43
"format": "at-uri",
40
44
"type": "string"
41
45
},
42
46
"reason": {
43
47
"description": "Required for removal, shown to the author, and recorded in the moderation log.",
44
48
"maxLength": 1000,
45
49
"type": "string"
50
+
},
51
+
"ruleIndex": {
52
+
"description": "For removal: the Community rule the post broke, by position. Shown to the author.",
53
+
"minimum": 0,
54
+
"type": "integer"
46
55
}
47
56
},
48
57
"required": [
49
58
"community",
50
59
"post",
51
60
"action"
52
61
],
53
62
"type": "object"
54
63
}
55
64
},
56
65
"output": {
57
66
"encoding": "application/json",
58
67
"schema": {
59
68
"properties": {
60
69
"changed": {
61
70
"type": "boolean"
62
71
},
63
72
"pinned": {
64
73
"type": "boolean"
65
74
},
75
+
"removalActionId": {
76
+
"maxLength": 128,
77
+
"type": "string"
78
+
},
66
79
"removedAt": {
67
80
"format": "datetime",
68
81
"type": "string"
69
82
},
70
83
"removedReason": {
71
84
"type": "string"
72
85
},
86
+
"removedRuleIndex": {
87
+
"minimum": 0,
88
+
"type": "integer"
89
+
},
73
90
"status": {
74
91
"knownValues": [
75
92
"visible",
76
93
"removed"
77
94
],
78
95
"type": "string"
79
96
}
80
97
},
81
98
"required": [
82
99
"status",
83
100
"pinned",
84
101
"changed"
85
102
],
86
103
"type": "object"
87
104
}
88
105
},
89
106
"type": "procedure"
90
107
}
91
108
},
92
109
"id": "com.getorbyt.community.moderatePost",
93
110
"lexicon": 1
94
111
}