club.userstyles.alpha.userstyle
Schema Diff
+13 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 6 non-breaking changes.
Breaking Changes (1)
- ConstraintAdded ConstraintAdded { vertex_id: "club.userstyles.alpha.userstyle:body.license", sort: "maxLength", value: "100" }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.homepageUrl" }
- AddedVertex AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.license" }
- AddedVertex AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.upstreamUrl" }
- AddedEdge AddedEdge { src: "club.userstyles.alpha.userstyle:body", tgt: "club.userstyles.alpha.userstyle:body.homepageUrl", kind: "prop", name: Some("homepageUrl") }
- AddedEdge AddedEdge { src: "club.userstyles.alpha.userstyle:body", tgt: "club.userstyles.alpha.userstyle:body.license", kind: "prop", name: Some("license") }
- AddedEdge AddedEdge { src: "club.userstyles.alpha.userstyle:body", tgt: "club.userstyles.alpha.userstyle:body.upstreamUrl", kind: "prop", name: Some("upstreamUrl") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.homepageUrl" }AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.license" }AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.upstreamUrl" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "club.userstyles.alpha.userstyle:body.license", sort: "maxLength", value: "100" }
Additional Notes
- Non-breaking: AddedEdge { src: "club.userstyles.alpha.userstyle:body", tgt: "club.userstyles.alpha.userstyle:body.homepageUrl", kind: "prop", name: Some("homepageUrl") }
- Non-breaking: AddedEdge { src: "club.userstyles.alpha.userstyle:body", tgt: "club.userstyles.alpha.userstyle:body.license", kind: "prop", name: Some("license") }
- Non-breaking: AddedEdge { src: "club.userstyles.alpha.userstyle:body", tgt: "club.userstyles.alpha.userstyle:body.upstreamUrl", kind: "prop", name: Some("upstreamUrl") }
1
1
{
2
2
"id": "club.userstyles.alpha.userstyle",
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
"title",
11
11
"sourceCode",
12
12
"createdAt"
13
13
],
14
14
"properties": {
15
15
"title": {
16
16
"type": "string",
17
17
"maxGraphemes": 140,
18
18
"minGraphemes": 1
19
19
},
20
+
"license": {
21
+
"type": "string",
22
+
"maxLength": 100
23
+
},
20
24
"createdAt": {
21
25
"type": "string",
22
26
"format": "datetime"
23
27
},
24
28
"updatedAt": {
25
29
"type": "string",
26
30
"format": "datetime"
27
31
},
28
32
"sourceCode": {
29
33
"type": "string"
30
34
},
31
35
"description": {
32
36
"type": "string",
33
37
"maxGraphemes": 300
34
38
},
39
+
"homepageUrl": {
40
+
"type": "string",
41
+
"format": "uri"
42
+
},
43
+
"upstreamUrl": {
44
+
"type": "string",
45
+
"format": "uri"
46
+
},
35
47
"previewImage": {
36
48
"type": "blob",
37
49
"accept": [
38
50
"image/*"
39
51
],
40
52
"maxSize": 1000000
41
53
}
42
54
}
43
55
},
44
-
"description": "Record declaring a userstyle's contents and metadata."
56
+
"description": "A UserCSS userstyle."
45
57
}
46
58
},
47
59
"$type": "com.atproto.lexicon.schema",
48
60
"lexicon": 1
49
61
}