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