fyi.opensocial.listSiteRecords

lexicons.opensocial.fyi

Schema Diff

+58 -3

From

CID
bafyreibcki34667...
Indexed At
2026-10-08 18:10 UTC
View this version

To

CID
bafyreiaaxwjpk6j...
Indexed At
2026-10-11 05:03 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 8 non-breaking changes.

Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords#siteRecord.cid" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords#siteRecord.handle" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords:output.cursor" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords:output.filling" }
  • AddedEdge AddedEdge { src: "fyi.opensocial.listSiteRecords#siteRecord", tgt: "fyi.opensocial.listSiteRecords#siteRecord.cid", kind: "prop", name: Some("cid") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.listSiteRecords#siteRecord", tgt: "fyi.opensocial.listSiteRecords#siteRecord.handle", kind: "prop", name: Some("handle") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.listSiteRecords:output", tgt: "fyi.opensocial.listSiteRecords:output.cursor", kind: "prop", name: Some("cursor") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.listSiteRecords:output", tgt: "fyi.opensocial.listSiteRecords:output.filling", kind: "prop", name: Some("filling") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords#siteRecord.cid" }
  • AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords#siteRecord.handle" }
  • AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords:output.cursor" }
  • AddedVertex { vertex_id: "fyi.opensocial.listSiteRecords:output.filling" }

Additional Notes

  • Non-breaking: AddedEdge { src: "fyi.opensocial.listSiteRecords#siteRecord", tgt: "fyi.opensocial.listSiteRecords#siteRecord.cid", kind: "prop", name: Some("cid") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.listSiteRecords#siteRecord", tgt: "fyi.opensocial.listSiteRecords#siteRecord.handle", kind: "prop", name: Some("handle") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.listSiteRecords:output", tgt: "fyi.opensocial.listSiteRecords:output.cursor", kind: "prop", name: Some("cursor") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.listSiteRecords:output", tgt: "fyi.opensocial.listSiteRecords:output.filling", kind: "prop", name: Some("filling") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "Records of one collection from the host's index of the group's own repo and its members' public repos, newest first. Without `repo`, a collection the group's site declares it reads, from the group (answered to anyone) or its members (members only). With `repo`, that one account's records — the group's or a member's — of any collection, kept on demand once asked for; members only. `field` and `equals` keep only records whose field (a name, or a path like subject.uri) equals that value.",
5 +
      "description": "Records of one collection from the host's index, newest first. Without `repo`, a collection the group's site declares it reads, from the group (answered to anyone) or its members (members only). With `repo`, that one account's records — the group's or a member's — of any collection, kept on demand once asked for; members only. `field` and `equals` keep only records whose field (a name, or a path like subject.uri) equals that value. With `from: \"network\"`, everyone's records of the collection, from every account on the network that writes it: answered to anyone once the host keeps it, which it does from when a saved page declares it, unless too many accounts write it; `filling` says it is still being gathered. With `repos`, each of those accounts' newest record of any collection, such as each one's profile, answered to anyone; an account not heard from in time is left out, and fills in for the next read.",
6 6
      "errors": [
7 7
        {
8 8
          "name": "NotFound"
9 9
        },
10 10
        {
11 11
          "name": "NotDeclared"
12 12
        },
13 13
        {
14 14
          "name": "NotAuthorized"
15 +
        },
16 +
        {
17 +
          "name": "NotKept"
18 +
        },
19 +
        {
20 +
          "name": "TooLarge"
21 +
        },
22 +
        {
23 +
          "name": "TooMany"
15 24
        }
16 25
      ],
17 26
      "output": {
18 27
        "encoding": "application/json",
19 28
        "schema": {
20 29
          "properties": {
30 +
            "cursor": {
31 +
              "description": "With `from: \"network\"`, when there are older records.",
32 +
              "type": "string"
33 +
            },
34 +
            "filling": {
35 +
              "description": "With `from: \"network\"`: the host is still gathering the collection, so older records may be missing.",
36 +
              "type": "boolean"
37 +
            },
21 38
            "records": {
22 39
              "items": {
23 40
                "ref": "#siteRecord",
24 41
                "type": "ref"
25 42
              },
26 43
              "type": "array"
27 44
            }
28 45
          },
29 46
          "required": [
30 47
            "records"
31 48
          ],
32 49
          "type": "object"
33 50
        }
34 51
      },
35 52
      "parameters": {
36 53
        "properties": {
37 54
          "collection": {
38 55
            "format": "nsid",
39 56
            "type": "string"
40 57
          },
58 +
          "cursor": {
59 +
            "description": "With `from: \"network\"`: from the last page, for older records.",
60 +
            "maxLength": 1024,
61 +
            "type": "string"
62 +
          },
41 63
          "equals": {
42 64
            "maxLength": 2048,
43 65
            "type": "string"
44 66
          },
45 67
          "field": {
46 68
            "description": "Only records whose field (a name or a dotted path) equals `equals`.",
47 69
            "maxLength": 128,
48 70
            "type": "string"
49 71
          },
50 72
          "from": {
51 -
            "description": "Without `repo`: the group's records, or its members'.",
73 +
            "description": "Without `repo`: the group's records, its members', or everyone's on the network.",
52 74
            "knownValues": [
53 75
              "group",
54 -
              "members"
76 +
              "members",
77 +
              "network"
55 78
            ],
56 79
            "type": "string"
57 80
          },
58 81
          "group": {
59 82
            "format": "did",
60 83
            "type": "string"
61 84
          },
62 85
          "limit": {
63 86
            "default": 50,
64 87
            "maximum": 100,
65 88
            "minimum": 1,
66 89
            "type": "integer"
67 90
          },
68 91
          "repo": {
69 92
            "description": "One account's records: the group's or a member's.",
70 93
            "format": "did",
71 94
            "type": "string"
95 +
          },
96 +
          "repos": {
97 +
            "description": "Many accounts, anyone's: each one's newest record of the collection.",
98 +
            "items": {
99 +
              "format": "did",
100 +
              "type": "string"
101 +
            },
102 +
            "maxLength": 100,
103 +
            "type": "array"
104 +
          },
105 +
          "search": {
106 +
            "description": "With `from: \"network\"`: records whose words have any of these words, \"quoted phrases\" kept together, a trailing * for a prefix, and AND, OR and NOT for more.",
107 +
            "maxLength": 512,
108 +
            "type": "string"
109 +
          },
110 +
          "sort": {
111 +
            "default": "newest",
112 +
            "description": "With `from: \"network\"` and a search: newest first, or the most relevant first.",
113 +
            "knownValues": [
114 +
              "newest",
115 +
              "relevance"
116 +
            ],
117 +
            "type": "string"
72 118
          }
73 119
        },
74 120
        "required": [
75 121
          "group",
76 122
          "collection"
77 123
        ],
78 124
        "type": "params"
79 125
      },
80 126
      "type": "query"
81 127
    },
82 128
    "siteRecord": {
83 129
      "properties": {
130 +
        "cid": {
131 +
          "format": "cid",
132 +
          "type": "string"
133 +
        },
84 134
        "createdAt": {
85 135
          "format": "datetime",
86 136
          "type": "string"
87 137
        },
138 +
        "handle": {
139 +
          "description": "With `from: \"network\"` or `repos`: the account's handle, when it's known.",
140 +
          "format": "handle",
141 +
          "type": "string"
142 +
        },
88 143
        "repo": {
89 144
          "format": "did",
90 145
          "type": "string"
91 146
        },
92 147
        "uri": {
93 148
          "format": "at-uri",
94 149
          "type": "string"
95 150
        },
96 151
        "value": {
97 152
          "type": "unknown"
98 153
        }
99 154
      },
100 155
      "required": [
101 156
        "uri",
102 157
        "repo",
103 158
        "value"
104 159
      ],
105 160
      "type": "object"
106 161
    }
107 162
  },
108 163
  "id": "fyi.opensocial.listSiteRecords",
109 164
  "lexicon": 1
110 165
}

Compare Other Versions

Lexicon Garden

@