site.standard.document
Schema Diff
+41 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 19 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.standard.document#contributor", src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.did", kind: "prop", name: Some("did") }
Non-Breaking Changes (19)
- AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor.did" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor.displayName" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document#contributor.role" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document:body.contributors" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document:body.contributors:items" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document:body.labels" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document:body.labels:variant0" }
- AddedVertex AddedVertex { vertex_id: "site.standard.document:body.links" }
- AddedEdge AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.displayName", kind: "prop", name: Some("displayName") }
- AddedEdge AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.role", kind: "prop", name: Some("role") }
- AddedEdge AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.contributors", kind: "prop", name: Some("contributors") }
- AddedEdge AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.labels", kind: "prop", name: Some("labels") }
- AddedEdge AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.links", kind: "prop", name: Some("links") }
- AddedEdge AddedEdge { src: "site.standard.document:body.contributors", tgt: "site.standard.document:body.contributors:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "site.standard.document:body.contributors:items", tgt: "site.standard.document#contributor", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "site.standard.document:body.labels", tgt: "site.standard.document:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- AddedEdge AddedEdge { src: "site.standard.document:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }AddedVertex { vertex_id: "site.standard.document#contributor" }AddedVertex { vertex_id: "site.standard.document#contributor.did" }AddedVertex { vertex_id: "site.standard.document#contributor.displayName" }AddedVertex { vertex_id: "site.standard.document#contributor.role" }AddedVertex { vertex_id: "site.standard.document:body.contributors" }AddedVertex { vertex_id: "site.standard.document:body.contributors:items" }AddedVertex { vertex_id: "site.standard.document:body.labels" }AddedVertex { vertex_id: "site.standard.document:body.labels:variant0" }AddedVertex { vertex_id: "site.standard.document:body.links" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "site.standard.document#contributor", src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.did", kind: "prop", name: Some("did") }
- Non-breaking: AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.displayName", kind: "prop", name: Some("displayName") }
- Non-breaking: AddedEdge { src: "site.standard.document#contributor", tgt: "site.standard.document#contributor.role", kind: "prop", name: Some("role") }
- Non-breaking: AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.contributors", kind: "prop", name: Some("contributors") }
- Non-breaking: AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.labels", kind: "prop", name: Some("labels") }
- Non-breaking: AddedEdge { src: "site.standard.document:body", tgt: "site.standard.document:body.links", kind: "prop", name: Some("links") }
- Non-breaking: AddedEdge { src: "site.standard.document:body.contributors", tgt: "site.standard.document:body.contributors:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "site.standard.document:body.contributors:items", tgt: "site.standard.document#contributor", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "site.standard.document:body.labels", tgt: "site.standard.document:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- Non-breaking: AddedEdge { src: "site.standard.document:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"contributor": {
5
+
"properties": {
6
+
"did": {
7
+
"format": "did",
8
+
"type": "string"
9
+
},
10
+
"displayName": {
11
+
"maxGraphemes": 100,
12
+
"maxLength": 1000,
13
+
"type": "string"
14
+
},
15
+
"role": {
16
+
"maxGraphemes": 100,
17
+
"maxLength": 1000,
18
+
"type": "string"
19
+
}
20
+
},
21
+
"required": [
22
+
"did"
23
+
],
24
+
"type": "object"
25
+
},
4
26
"main": {
5
27
"description": "A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently.",
6
28
"key": "tid",
7
29
"record": {
8
30
"properties": {
9
31
"bskyPostRef": {
10
32
"description": "Strong reference to a Bluesky post. Useful to keep track of comments off-platform.",
11
33
"ref": "com.atproto.repo.strongRef",
12
34
"type": "ref"
13
35
},
14
36
"content": {
15
37
"closed": false,
16
38
"description": "Open union used to define the record's content. Each entry must specify a $type and may be extended with other lexicons to support additional content formats.",
17
39
"refs": [],
18
40
"type": "union"
19
41
},
42
+
"contributors": {
43
+
"items": {
44
+
"ref": "#contributor",
45
+
"type": "ref"
46
+
},
47
+
"type": "array"
48
+
},
20
49
"coverImage": {
21
50
"accept": [
22
51
"image/*"
23
52
],
24
53
"description": "Image to used for thumbnail or cover image. Less than 1MB is size.",
25
54
"maxSize": 1000000,
26
55
"type": "blob"
27
56
},
28
57
"description": {
29
58
"description": "A brief description or excerpt from the document.",
30
59
"maxGraphemes": 3000,
31
60
"maxLength": 30000,
32
61
"type": "string"
33
62
},
63
+
"labels": {
64
+
"description": "Self-label values for this post. Effectively content warnings.",
65
+
"refs": [
66
+
"com.atproto.label.defs#selfLabels"
67
+
],
68
+
"type": "union"
69
+
},
70
+
"links": {
71
+
"description": "Array of values describing relationships between this document and external resources",
72
+
"refs": [],
73
+
"type": "union"
74
+
},
34
75
"path": {
35
76
"description": "Combine with site or publication url to construct a canonical URL to the document. Prepend with a leading slash.",
36
77
"type": "string"
37
78
},
38
79
"publishedAt": {
39
80
"description": "Timestamp of the documents publish time.",
40
81
"format": "datetime",
41
82
"type": "string"
42
83
},
43
84
"site": {
44
85
"description": "Points to a publication record (at://) or a publication url (https://) for loose documents. Avoid trailing slashes.",
45
86
"format": "uri",
46
87
"type": "string"
47
88
},
48
89
"tags": {
49
90
"description": "Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags.",
50
91
"items": {
51
92
"maxGraphemes": 128,
52
93
"maxLength": 1280,
53
94
"type": "string"
54
95
},
55
96
"type": "array"
56
97
},
57
98
"textContent": {
58
99
"description": "Plaintext representation of the documents contents. Should not contain markdown or other formatting.",
59
100
"type": "string"
60
101
},
61
102
"title": {
62
103
"description": "Title of the document.",
63
104
"maxGraphemes": 500,
64
105
"maxLength": 5000,
65
106
"type": "string"
66
107
},
67
108
"updatedAt": {
68
109
"description": "Timestamp of the documents last edit.",
69
110
"format": "datetime",
70
111
"type": "string"
71
112
}
72
113
},
73
114
"required": [
74
115
"site",
75
116
"title",
76
117
"publishedAt"
77
118
],
78
119
"type": "object"
79
120
},
80
121
"type": "record"
81
122
}
82
123
},
83
124
"id": "site.standard.document",
84
125
"lexicon": 1
85
126
}