fyi.opensocial.listSiteRecords
Schema Diff
+58 -3
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
}