app.standard-reader.defs
Schema Diff
+56 -0
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 18 non-breaking changes.
Breaking Changes (4)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.uri", kind: "prop", name: Some("uri") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.name", kind: "prop", name: Some("name") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.publications", kind: "prop", name: Some("publications") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#cursorPageProfiles", src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.items", kind: "prop", name: Some("items") }
Non-Breaking Changes (18)
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.cursor" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items:items" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.createdAt" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.description" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.name" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications:items" }
- AddedVertex AddedVertex { vertex_id: "app.standard-reader.defs#listView.uri" }
- AddedEdge AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.cursor", kind: "prop", name: Some("cursor") }
- AddedEdge AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items", tgt: "app.standard-reader.defs#cursorPageProfiles.items:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items:items", tgt: "app.standard-reader.defs#profileView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.createdAt", kind: "prop", name: Some("createdAt") }
- AddedEdge AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.description", kind: "prop", name: Some("description") }
- AddedEdge AddedEdge { src: "app.standard-reader.defs#listView.publications", tgt: "app.standard-reader.defs#listView.publications:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.standard-reader.defs#listView.publications:items", tgt: "app.standard-reader.defs#publicationView", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles" }AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.cursor" }AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items" }AddedVertex { vertex_id: "app.standard-reader.defs#cursorPageProfiles.items:items" }AddedVertex { vertex_id: "app.standard-reader.defs#listView" }AddedVertex { vertex_id: "app.standard-reader.defs#listView.createdAt" }AddedVertex { vertex_id: "app.standard-reader.defs#listView.description" }AddedVertex { vertex_id: "app.standard-reader.defs#listView.name" }AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications" }AddedVertex { vertex_id: "app.standard-reader.defs#listView.publications:items" }AddedVertex { vertex_id: "app.standard-reader.defs#listView.uri" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#cursorPageProfiles", src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.items", kind: "prop", name: Some("items") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.uri", kind: "prop", name: Some("uri") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.name", kind: "prop", name: Some("name") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.standard-reader.defs#listView", src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.publications", kind: "prop", name: Some("publications") }
- Non-breaking: AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles", tgt: "app.standard-reader.defs#cursorPageProfiles.cursor", kind: "prop", name: Some("cursor") }
- Non-breaking: AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items", tgt: "app.standard-reader.defs#cursorPageProfiles.items:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.standard-reader.defs#cursorPageProfiles.items:items", tgt: "app.standard-reader.defs#profileView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.createdAt", kind: "prop", name: Some("createdAt") }
- Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView", tgt: "app.standard-reader.defs#listView.description", kind: "prop", name: Some("description") }
- Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView.publications", tgt: "app.standard-reader.defs#listView.publications:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.standard-reader.defs#listView.publications:items", tgt: "app.standard-reader.defs#publicationView", kind: "ref", name: None }
1
1
{
2
2
"id": "app.standard-reader.defs",
3
3
"defs": {
4
+
"listView": {
5
+
"type": "object",
6
+
"required": [
7
+
"uri",
8
+
"name",
9
+
"publications"
10
+
],
11
+
"properties": {
12
+
"uri": {
13
+
"type": "string",
14
+
"format": "at-uri"
15
+
},
16
+
"name": {
17
+
"type": "string",
18
+
"maxLength": 128
19
+
},
20
+
"createdAt": {
21
+
"type": "string",
22
+
"format": "datetime",
23
+
"nullable": true
24
+
},
25
+
"description": {
26
+
"type": "string",
27
+
"nullable": true,
28
+
"maxLength": 4096
29
+
},
30
+
"publications": {
31
+
"type": "array",
32
+
"items": {
33
+
"ref": "app.standard-reader.defs#publicationView",
34
+
"type": "ref"
35
+
}
36
+
}
37
+
},
38
+
"description": "A reader-authored publication list (app.standard-reader.list) with its member publications resolved."
39
+
},
4
40
"profileView": {
5
41
"type": "object",
6
42
"required": [
7
43
"did"
8
44
],
9
45
"properties": {
10
46
"did": {
11
47
"type": "string",
12
48
"format": "did"
13
49
},
14
50
"handle": {
15
51
"type": "string",
16
52
"nullable": true,
17
53
"maxLength": 128
18
54
},
19
55
"avatarUrl": {
20
56
"type": "string",
21
57
"format": "uri",
22
58
"nullable": true
23
59
},
24
60
"bannerUrl": {
25
61
"type": "string",
26
62
"format": "uri",
27
63
"nullable": true
28
64
},
29
65
"description": {
30
66
"type": "string",
31
67
"nullable": true,
32
68
"maxLength": 4096
33
69
},
34
70
"displayName": {
35
71
"type": "string",
36
72
"nullable": true,
37
73
"maxLength": 128
38
74
}
39
75
}
40
76
},
41
77
"documentView": {
42
78
"type": "object",
43
79
"required": [
44
80
"uri",
45
81
"did",
46
82
"title",
47
83
"publishedAt",
48
84
"recommendCount",
49
85
"commentCount",
50
86
"hasRenderableBody",
51
87
"isRead"
52
88
],
53
89
"properties": {
54
90
"did": {
55
91
"type": "string",
56
92
"format": "did"
57
93
},
58
94
"uri": {
59
95
"type": "string",
60
96
"format": "at-uri"
61
97
},
62
98
"path": {
63
99
"type": "string",
64
100
"nullable": true,
65
101
"maxLength": 2048
66
102
},
67
103
"tags": {
68
104
"type": "array",
69
105
"items": {
70
106
"type": "string",
71
107
"maxLength": 128
72
108
},
73
109
"nullable": true
74
110
},
75
111
"title": {
76
112
"type": "string",
77
113
"maxLength": 512
78
114
},
79
115
"isRead": {
80
116
"type": "boolean"
81
117
},
82
118
"content": {
83
119
"type": "unknown",
84
120
"description": "Renderable body payload (the content-union of the site.standard.document record). Only populated by getDocument; omitted from feed and search views."
85
121
},
86
122
"featured": {
87
123
"type": "boolean"
88
124
},
89
125
"description": {
90
126
"type": "string",
91
127
"nullable": true,
92
128
"maxLength": 4096
93
129
},
94
130
"publishedAt": {
95
131
"type": "string",
96
132
"format": "datetime"
97
133
},
98
134
"canonicalUrl": {
99
135
"type": "string",
100
136
"format": "uri",
101
137
"nullable": true
102
138
},
103
139
"commentCount": {
104
140
"type": "integer"
105
141
},
106
142
"contentFormat": {
107
143
"type": "string",
108
144
"maxLength": 256,
109
145
"description": "Explicit content-union $type, used when the body payload lacks one. Only populated by getDocument."
110
146
},
111
147
"coverImageUrl": {
112
148
"type": "string",
113
149
"format": "uri",
114
150
"nullable": true
115
151
},
116
152
"publicationUri": {
117
153
"type": "string",
118
154
"format": "at-uri",
119
155
"nullable": true
120
156
},
121
157
"recommendCount": {
122
158
"type": "integer"
123
159
},
124
160
"publicationName": {
125
161
"type": "string",
126
162
"nullable": true,
127
163
"maxLength": 128
128
164
},
129
165
"searchTitleHtml": {
130
166
"type": "string",
131
167
"nullable": true,
132
168
"maxLength": 1024
133
169
},
134
170
"publicationTopic": {
135
171
"type": "string",
136
172
"nullable": true,
137
173
"maxLength": 128
138
174
},
139
175
"hasRenderableBody": {
140
176
"type": "boolean"
141
177
},
142
178
"searchSnippetHtml": {
143
179
"type": "string",
144
180
"nullable": true,
145
181
"maxLength": 8192
146
182
},
147
183
"publicationIconUrl": {
148
184
"type": "string",
149
185
"format": "uri",
150
186
"nullable": true
151
187
},
152
188
"publicationBannerUrl": {
153
189
"type": "string",
154
190
"format": "uri",
155
191
"nullable": true
156
192
},
157
193
"publicationOwnerHandle": {
158
194
"type": "string",
159
195
"nullable": true,
160
196
"maxLength": 128
161
197
},
162
198
"publicationOwnerAvatarUrl": {
163
199
"type": "string",
164
200
"format": "uri",
165
201
"nullable": true
166
202
}
167
203
},
168
204
"description": "An article as shown in feed rows and search results (metadata only)."
169
205
},
170
206
"publicationView": {
171
207
"type": "object",
172
208
"required": [
173
209
"uri",
174
210
"did",
175
211
"name",
176
212
"url",
177
213
"subscriberCount",
178
214
"documentCount"
179
215
],
180
216
"properties": {
181
217
"did": {
182
218
"type": "string",
183
219
"format": "did"
184
220
},
185
221
"uri": {
186
222
"type": "string",
187
223
"format": "at-uri"
188
224
},
189
225
"url": {
190
226
"type": "string",
191
227
"format": "uri"
192
228
},
193
229
"name": {
194
230
"type": "string",
195
231
"maxLength": 128
196
232
},
197
233
"topic": {
198
234
"type": "string",
199
235
"nullable": true,
200
236
"maxLength": 128
201
237
},
202
238
"iconUrl": {
203
239
"type": "string",
204
240
"format": "uri",
205
241
"nullable": true
206
242
},
207
243
"verified": {
208
244
"type": "boolean"
209
245
},
210
246
"description": {
211
247
"type": "string",
212
248
"nullable": true,
213
249
"maxLength": 4096
214
250
},
215
251
"ownerHandle": {
216
252
"type": "string",
217
253
"nullable": true,
218
254
"maxLength": 128
219
255
},
220
256
"documentCount": {
221
257
"type": "integer"
222
258
},
223
259
"lastDocumentAt": {
224
260
"type": "string",
225
261
"format": "datetime",
226
262
"nullable": true
227
263
},
228
264
"ownerAvatarUrl": {
229
265
"type": "string",
230
266
"format": "uri",
231
267
"nullable": true
232
268
},
233
269
"searchNameHtml": {
234
270
"type": "string",
235
271
"nullable": true,
236
272
"maxLength": 512
237
273
},
238
274
"subscriberCount": {
239
275
"type": "integer"
240
276
},
241
277
"searchSnippetHtml": {
242
278
"type": "string",
243
279
"nullable": true,
244
280
"maxLength": 8192
245
281
}
246
282
},
247
283
"description": "A publication as shown in directory cards and profile headers."
248
284
},
285
+
"cursorPageProfiles": {
286
+
"type": "object",
287
+
"required": [
288
+
"items"
289
+
],
290
+
"properties": {
291
+
"items": {
292
+
"type": "array",
293
+
"items": {
294
+
"ref": "app.standard-reader.defs#profileView",
295
+
"type": "ref"
296
+
}
297
+
},
298
+
"cursor": {
299
+
"type": "string",
300
+
"nullable": true,
301
+
"maxLength": 8192
302
+
}
303
+
}
304
+
},
249
305
"resolveViewArticle": {
250
306
"type": "object",
251
307
"required": [
252
308
"kind",
253
309
"documentUri",
254
310
"title",
255
311
"readerUrl",
256
312
"recommendCount",
257
313
"commentCount"
258
314
],
259
315
"properties": {
260
316
"kind": {
261
317
"type": "string",
262
318
"const": "article",
263
319
"maxLength": 64
264
320
},
265
321
"title": {
266
322
"type": "string",
267
323
"maxLength": 512
268
324
},
269
325
"isRead": {
270
326
"type": "boolean"
271
327
},
272
328
"readerUrl": {
273
329
"type": "string",
274
330
"format": "uri"
275
331
},
276
332
"authorName": {
277
333
"type": "string",
278
334
"nullable": true,
279
335
"maxLength": 128
280
336
},
281
337
"documentUri": {
282
338
"type": "string",
283
339
"format": "at-uri"
284
340
},
285
341
"isFollowing": {
286
342
"type": "boolean"
287
343
},
288
344
"publishedAt": {
289
345
"type": "string",
290
346
"format": "datetime",
291
347
"nullable": true
292
348
},
293
349
"authorHandle": {
294
350
"type": "string",
295
351
"nullable": true,
296
352
"maxLength": 128
297
353
},
298
354
"canonicalUrl": {
299
355
"type": "string",
300
356
"format": "uri",
301
357
"nullable": true
302
358
},
303
359
"commentCount": {
304
360
"type": "integer"
305
361
},
306
362
"isBookmarked": {
307
363
"type": "boolean"
308
364
},
309
365
"publicationUri": {
310
366
"type": "string",
311
367
"format": "at-uri",
312
368
"nullable": true
313
369
},
314
370
"readingMinutes": {
315
371
"type": "integer",
316
372
"nullable": true
317
373
},
318
374
"recommendCount": {
319
375
"type": "integer"
320
376
},
321
377
"authorAvatarUrl": {
322
378
"type": "string",
323
379
"format": "uri",
324
380
"nullable": true
325
381
},
326
382
"publicationName": {
327
383
"type": "string",
328
384
"nullable": true,
329
385
"maxLength": 128
330
386
},
331
387
"publicationHandle": {
332
388
"type": "string",
333
389
"nullable": true,
334
390
"maxLength": 128
335
391
},
336
392
"publicationIconUrl": {
337
393
"type": "string",
338
394
"format": "uri",
339
395
"nullable": true
340
396
},
341
397
"publicationReaderUrl": {
342
398
"type": "string",
343
399
"format": "uri",
344
400
"nullable": true
345
401
},
346
402
"publicationOwnerAvatarUrl": {
347
403
"type": "string",
348
404
"format": "uri",
349
405
"nullable": true
350
406
},
351
407
"publicationSubscriberCount": {
352
408
"type": "integer",
353
409
"nullable": true
354
410
}
355
411
}
356
412
},
357
413
"resolveViewUnknown": {
358
414
"type": "object",
359
415
"required": [
360
416
"kind"
361
417
],
362
418
"properties": {
363
419
"kind": {
364
420
"type": "string",
365
421
"const": "unknown",
366
422
"maxLength": 64
367
423
}
368
424
}
369
425
},
370
426
"cursorPageDocuments": {
371
427
"type": "object",
372
428
"required": [
373
429
"items"
374
430
],
375
431
"properties": {
376
432
"items": {
377
433
"type": "array",
378
434
"items": {
379
435
"ref": "app.standard-reader.defs#documentView",
380
436
"type": "ref"
381
437
}
382
438
},
383
439
"cursor": {
384
440
"type": "string",
385
441
"nullable": true,
386
442
"maxLength": 8192
387
443
}
388
444
}
389
445
},
390
446
"resolveViewReaderLink": {
391
447
"type": "object",
392
448
"required": [
393
449
"kind",
394
450
"readerUrl"
395
451
],
396
452
"properties": {
397
453
"kind": {
398
454
"type": "string",
399
455
"const": "reader-link",
400
456
"maxLength": 64
401
457
},
402
458
"readerUrl": {
403
459
"type": "string",
404
460
"format": "uri",
405
461
"maxLength": 2048
406
462
}
407
463
}
408
464
},
409
465
"cursorPagePublications": {
410
466
"type": "object",
411
467
"required": [
412
468
"items"
413
469
],
414
470
"properties": {
415
471
"items": {
416
472
"type": "array",
417
473
"items": {
418
474
"ref": "app.standard-reader.defs#publicationView",
419
475
"type": "ref"
420
476
}
421
477
},
422
478
"cursor": {
423
479
"type": "string",
424
480
"nullable": true,
425
481
"maxLength": 8192
426
482
}
427
483
}
428
484
},
429
485
"resolveViewPublication": {
430
486
"type": "object",
431
487
"required": [
432
488
"kind",
433
489
"publicationUri",
434
490
"name",
435
491
"readerUrl"
436
492
],
437
493
"properties": {
438
494
"kind": {
439
495
"type": "string",
440
496
"const": "publication",
441
497
"maxLength": 64
442
498
},
443
499
"name": {
444
500
"type": "string",
445
501
"maxLength": 128
446
502
},
447
503
"handle": {
448
504
"type": "string",
449
505
"nullable": true,
450
506
"maxLength": 128
451
507
},
452
508
"iconUrl": {
453
509
"type": "string",
454
510
"format": "uri",
455
511
"nullable": true
456
512
},
457
513
"siteUrl": {
458
514
"type": "string",
459
515
"format": "uri",
460
516
"nullable": true
461
517
},
462
518
"readerUrl": {
463
519
"type": "string",
464
520
"format": "uri"
465
521
},
466
522
"description": {
467
523
"type": "string",
468
524
"nullable": true,
469
525
"maxLength": 4096
470
526
},
471
527
"isFollowing": {
472
528
"type": "boolean"
473
529
},
474
530
"ownerAvatarUrl": {
475
531
"type": "string",
476
532
"format": "uri",
477
533
"nullable": true
478
534
},
479
535
"publicationUri": {
480
536
"type": "string",
481
537
"format": "at-uri"
482
538
},
483
539
"subscriberCount": {
484
540
"type": "integer",
485
541
"nullable": true
486
542
}
487
543
}
488
544
}
489
545
},
490
546
"$type": "com.atproto.lexicon.schema",
491
547
"lexicon": 1
492
548
}