com.getorbyt.community.manageMember

getorbyt.com

Schema Diff

+16 -0

From

CID
bafyreie7qbneuxh...
Indexed At
2026-09-01 05:23 UTC
View this version

To

CID
bafyreihkoy42o3f...
Indexed At
2026-10-04 14:54 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 6 non-breaking changes.

Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.durationDays" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.message" }
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.manageMember:output.restrictedUntil" }
  • AddedEdge AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.durationDays", kind: "prop", name: Some("durationDays") }
  • AddedEdge AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.message", kind: "prop", name: Some("message") }
  • AddedEdge AddedEdge { src: "com.getorbyt.community.manageMember:output", tgt: "com.getorbyt.community.manageMember:output.restrictedUntil", kind: "prop", name: Some("restrictedUntil") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.durationDays" }
  • AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.message" }
  • AddedVertex { vertex_id: "com.getorbyt.community.manageMember:output.restrictedUntil" }

Additional Notes

  • Non-breaking: AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.durationDays", kind: "prop", name: Some("durationDays") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.message", kind: "prop", name: Some("message") }
  • Non-breaking: AddedEdge { src: "com.getorbyt.community.manageMember:output", tgt: "com.getorbyt.community.manageMember:output.restrictedUntil", kind: "prop", name: Some("restrictedUntil") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "Mute, ban, or re-role a member. Only an administrator may set a role; a moderator may mute and ban, but never a peer or an administrator. Administration is service state and may be granted to an account that does not hold the declaration record; authority over the record itself is never transferable and always belongs to the repository that holds it.",
6 6
      "errors": [
7 7
        {
8 8
          "name": "CommunityNotFound"
9 9
        },
10 10
        {
11 11
          "name": "InsufficientRole"
12 12
        },
13 13
        {
14 14
          "name": "InvalidAction"
15 15
        },
16 16
        {
17 17
          "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.",
18 18
          "name": "AuthenticationRequired"
19 19
        }
20 20
      ],
21 21
      "input": {
22 22
        "encoding": "application/json",
23 23
        "schema": {
24 24
          "properties": {
25 25
            "action": {
26 26
              "knownValues": [
27 27
                "setRole",
28 28
                "mute",
29 29
                "unmute",
30 30
                "ban",
31 31
                "unban"
32 32
              ],
33 33
              "type": "string"
34 34
            },
35 35
            "community": {
36 36
              "format": "at-uri",
37 37
              "type": "string"
38 38
            },
39 39
            "did": {
40 40
              "format": "did",
41 41
              "type": "string"
42 42
            },
43 +
            "durationDays": {
44 +
              "description": "For mute and ban: how many days it lasts. Absent means until a moderator lifts it.",
45 +
              "maximum": 999,
46 +
              "minimum": 1,
47 +
              "type": "integer"
48 +
            },
49 +
            "message": {
50 +
              "description": "For mute and ban: what the member is told.",
51 +
              "maxLength": 2000,
52 +
              "type": "string"
53 +
            },
43 54
            "role": {
44 55
              "description": "The role to set. Granting owner grants administration — moderation and role assignment — to another account; it does not move the declaration record, which stays in the repository that holds it, and the holder's own administration can never be revoked.",
45 56
              "knownValues": [
46 57
                "owner",
47 58
                "moderator",
48 59
                "member"
49 60
              ],
50 61
              "type": "string"
51 62
            }
52 63
          },
53 64
          "required": [
54 65
            "community",
55 66
            "did",
56 67
            "action"
57 68
          ],
58 69
          "type": "object"
59 70
        }
60 71
      },
61 72
      "output": {
62 73
        "encoding": "application/json",
63 74
        "schema": {
64 75
          "properties": {
76 +
            "restrictedUntil": {
77 +
              "description": "When a timed mute or ban ends.",
78 +
              "format": "datetime",
79 +
              "type": "string"
80 +
            },
65 81
            "status": {
66 82
              "knownValues": [
67 83
                "none",
68 84
                "active",
69 85
                "muted",
70 86
                "banned"
71 87
              ],
72 88
              "type": "string"
73 89
            }
74 90
          },
75 91
          "required": [
76 92
            "status"
77 93
          ],
78 94
          "type": "object"
79 95
        }
80 96
      },
81 97
      "type": "procedure"
82 98
    }
83 99
  },
84 100
  "id": "com.getorbyt.community.manageMember",
85 101
  "lexicon": 1
86 102
}

Compare Other Versions

Lexicon Garden

@