town.muni.arbiter.resolveSpaceMembers

zicklag.dev

Schema Diff

+51 -30

From

CID
bafyreib22jl64vh...
Indexed At
2026-05-19 20:56 UTC
View this version

To

CID
bafyreiff75iw52q...
Indexed At
2026-05-19 22:18 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

9 breaking changes, 11 non-breaking changes.

Breaking Changes (9)
  • RemovedVertex RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input" }
  • RemovedVertex RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.arbiterDid" }
  • RemovedVertex RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.resolverDepth" }
  • RemovedVertex RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.spaceKey" }
  • RemovedEdge RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers", tgt: "town.muni.arbiter.resolveSpaceMembers:input", kind: "prop", name: Some("input") }
  • RemovedEdge RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers:input", tgt: "town.muni.arbiter.resolveSpaceMembers:input.arbiterDid", kind: "prop", name: Some("arbiterDid") }
  • RemovedEdge RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers:input", tgt: "town.muni.arbiter.resolveSpaceMembers:input.resolverDepth", kind: "prop", name: Some("resolverDepth") }
  • RemovedEdge RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers:input", tgt: "town.muni.arbiter.resolveSpaceMembers:input.spaceKey", kind: "prop", name: Some("spaceKey") }
  • KindChanged KindChanged { vertex_id: "town.muni.arbiter.resolveSpaceMembers", old_kind: "procedure", new_kind: "query" }
Non-Breaking Changes (11)
  • AddedVertex AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces" }
  • AddedVertex AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items" }
  • AddedVertex AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.access" }
  • AddedVertex AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.space" }
  • AddedVertex AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:params" }
  • AddedEdge AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers", tgt: "town.muni.arbiter.resolveSpaceMembers:params", kind: "prop", name: Some("parameters") }
  • AddedEdge AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces", kind: "prop", name: Some("missingSpaces") }
  • AddedEdge AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.access", kind: "prop", name: Some("access") }
  • AddedEdge AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.space", kind: "prop", name: Some("space") }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.spaceKey", sort: "maxLength" }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input" }
  • RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.arbiterDid" }
  • RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.resolverDepth" }
  • RemovedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.spaceKey" }

Added Elements

  • AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces" }
  • AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items" }
  • AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.access" }
  • AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.space" }
  • AddedVertex { vertex_id: "town.muni.arbiter.resolveSpaceMembers:params" }

Constraint Changes

  • ConstraintRemoved ConstraintRemoved { vertex_id: "town.muni.arbiter.resolveSpaceMembers:input.spaceKey", sort: "maxLength" }

Additional Notes

  • Breaking: RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers", tgt: "town.muni.arbiter.resolveSpaceMembers:input", kind: "prop", name: Some("input") }
  • Breaking: RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers:input", tgt: "town.muni.arbiter.resolveSpaceMembers:input.arbiterDid", kind: "prop", name: Some("arbiterDid") }
  • Breaking: RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers:input", tgt: "town.muni.arbiter.resolveSpaceMembers:input.resolverDepth", kind: "prop", name: Some("resolverDepth") }
  • Breaking: RemovedEdge { src: "town.muni.arbiter.resolveSpaceMembers:input", tgt: "town.muni.arbiter.resolveSpaceMembers:input.spaceKey", kind: "prop", name: Some("spaceKey") }
  • Breaking: KindChanged { vertex_id: "town.muni.arbiter.resolveSpaceMembers", old_kind: "procedure", new_kind: "query" }
  • Non-breaking: AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers", tgt: "town.muni.arbiter.resolveSpaceMembers:params", kind: "prop", name: Some("parameters") }
  • Non-breaking: AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces", kind: "prop", name: Some("missingSpaces") }
  • Non-breaking: AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.access", kind: "prop", name: Some("access") }
  • Non-breaking: AddedEdge { src: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items", tgt: "town.muni.arbiter.resolveSpaceMembers:output.missingSpaces:items.space", kind: "prop", name: Some("space") }
1 1
{
2 2
  "id": "town.muni.arbiter.resolveSpaceMembers",
3 3
  "defs": {
4 4
    "main": {
5 -
      "type": "procedure",
6 -
      "input": {
7 -
        "schema": {
8 -
          "type": "object",
9 -
          "required": [
10 -
            "arbiterDid",
11 -
            "spaceKey"
12 -
          ],
13 -
          "properties": {
14 -
            "spaceKey": {
15 -
              "type": "string",
16 -
              "maxLength": 1024,
17 -
              "description": "The key of the space to configure."
18 -
            },
19 -
            "arbiterDid": {
20 -
              "type": "string",
21 -
              "format": "did",
22 -
              "description": "The DID of the arbiter that the space is in."
23 -
            },
24 -
            "resolverDepth": {
25 -
              "type": "integer",
26 -
              "description": "The maximum depth to allow when doing remote resolutions needed to evaluate the\naccess of the requesting user."
27 -
            }
28 -
          }
29 -
        },
30 -
        "encoding": "application/json"
31 -
      },
5 +
      "type": "query",
32 6
      "errors": [
33 7
        {
34 8
          "name": "ErrArbiterNotExists",
35 9
          "description": "The specified arbiter does not exist on this server."
36 10
        },
37 11
        {
38 12
          "name": "ErrSpaceNotExists",
39 13
          "description": "The specified space does not exist on this arbiter."
40 14
        },
41 15
        {
42 16
          "name": "ErrPermissionDenied",
43 17
          "description": "The requesting user is not allowed to make the request."
44 18
        }
45 19
      ],
46 20
      "output": {
47 21
        "schema": {
48 22
          "type": "object",
49 23
          "required": [
50 -
            "members"
24 +
            "members",
25 +
            "missingSpaces"
51 26
          ],
52 27
          "properties": {
53 28
            "members": {
54 29
              "type": "array",
55 30
              "items": {
56 31
                "type": "object",
57 32
                "required": [
58 33
                  "did",
59 34
                  "access"
60 35
                ],
61 36
                "properties": {
62 37
                  "did": {
63 38
                    "type": "string",
64 39
                    "format": "did",
65 -
                    "description": "The member DID"
40 +
                    "description": "The member DID."
66 41
                  },
67 42
                  "access": {
68 43
                    "refs": [],
69 44
                    "type": "union",
70 45
                    "description": "The member's access config object."
71 46
                  }
72 47
                }
73 48
              },
74 49
              "description": "The members of the space"
50 +
            },
51 +
            "missingSpaces": {
52 +
              "type": "array",
53 +
              "items": {
54 +
                "type": "object",
55 +
                "required": [
56 +
                  "space",
57 +
                  "access"
58 +
                ],
59 +
                "properties": {
60 +
                  "space": {
61 +
                    "ref": "town.muni.arbiter.defs#memberRemoteSpace",
62 +
                    "type": "ref",
63 +
                    "description": "The space that could not be resolved."
64 +
                  },
65 +
                  "access": {
66 +
                    "refs": [],
67 +
                    "type": "union",
68 +
                    "description": "The access object of the space that could not be resolved."
69 +
                  }
70 +
                }
71 +
              },
72 +
              "description": "Contains the list of remote spaces that could not be resolved.\n\nIf the hosts of remote spaces time out, then the server will reply with all\nof the members that it was able to resolve and will list the spaces that\ncould not be resolved in `missingSpaces`."
75 73
            }
76 74
          }
77 75
        },
78 76
        "encoding": "application/json"
79 77
      },
80 -
      "description": "Get the flattened, resolved list of members for a space.\n\nThis member list will be the same as what the server is expected to return\nas the space host, but it will additionally contain a resolved member config\nobject for each member.\n\nThe details of the member config object are dependent on the server implementation\nand the arbiter config type."
78 +
      "parameters": {
79 +
        "type": "params",
80 +
        "required": [
81 +
          "arbiterDid",
82 +
          "spaceKey"
83 +
        ],
84 +
        "properties": {
85 +
          "spaceKey": {
86 +
            "type": "string",
87 +
            "maxLength": 1024,
88 +
            "description": "The key of the space to configure."
89 +
          },
90 +
          "arbiterDid": {
91 +
            "type": "string",
92 +
            "format": "did",
93 +
            "description": "The DID of the arbiter that the space is in."
94 +
          },
95 +
          "resolverDepth": {
96 +
            "type": "integer",
97 +
            "description": "The maximum depth to allow when doing remote resolutions.\n\nBecause spaces are allowed to have members resolved from remote spaces,\nall of the arbiter endpoints have an optional resolution depth parameter\nthat can be used to limit how many chained remote calls can be resolved.\n\nThis applies both to queries and procedures. Queries may need to resolve\nexternal members to complete the member list, and procedures may need\nto resolve external members if the requesting member is not in the local\nmember list, to see if the member has access through a remote list."
98 +
          }
99 +
        }
100 +
      },
101 +
      "description": "Get the flattened, resolved list of members for a space.\n\nThis member list will be the same as what the server is expected to return\nas the space host, but it will additionally contain a member config\nobject for each member.\n\nThe details of the member config object are dependent on the server implementation\nand possibly the arbiter config type."
81 102
    }
82 103
  },
83 104
  "$type": "com.atproto.lexicon.schema",
84 105
  "lexicon": 1
85 106
}

Compare Other Versions

Lexicon Garden

@