club.userstyles.alpha.userstyle
Schema Diff
+21 -2
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 8 non-breaking changes.
Breaking Changes (1)
- KindChanged KindChanged { vertex_id: "club.userstyles.alpha.userstyle:body.sourceCode", old_kind: "string", new_kind: "blob" }
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.homepageUrl" }
- AddedVertex AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.ignoreUpdateUrl" }
- 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.ignoreUpdateUrl", kind: "prop", name: Some("ignoreUpdateUrl") }
- 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.ignoreUpdateUrl" }AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.license" }AddedVertex { vertex_id: "club.userstyles.alpha.userstyle:body.upstreamUrl" }
Additional Notes
- Breaking: KindChanged { vertex_id: "club.userstyles.alpha.userstyle:body.sourceCode", old_kind: "string", new_kind: "blob" }
- 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.ignoreUpdateUrl", kind: "prop", name: Some("ignoreUpdateUrl") }
- 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
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "Record declaring a userstyle's contents and metadata.",
5
+
"description": "A UserCSS userstyle.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"createdAt": {
10
10
"format": "datetime",
11
11
"type": "string"
12
12
},
13
13
"description": {
14
14
"maxGraphemes": 300,
15
15
"type": "string"
16
16
},
17
+
"homepageUrl": {
18
+
"format": "uri",
19
+
"type": "string"
20
+
},
21
+
"ignoreUpdateUrl": {
22
+
"type": "boolean"
23
+
},
24
+
"license": {
25
+
"maxLength": 100,
26
+
"type": "string"
27
+
},
17
28
"previewImage": {
18
29
"accept": [
19
30
"image/*"
20
31
],
21
32
"maxSize": 1000000,
22
33
"type": "blob"
23
34
},
24
35
"sourceCode": {
25
-
"type": "string"
36
+
"accept": [
37
+
"text/plain"
38
+
],
39
+
"maxSize": 5000000,
40
+
"type": "blob"
26
41
},
27
42
"title": {
28
43
"maxGraphemes": 140,
29
44
"minGraphemes": 1,
30
45
"type": "string"
31
46
},
32
47
"updatedAt": {
33
48
"format": "datetime",
34
49
"type": "string"
50
+
},
51
+
"upstreamUrl": {
52
+
"format": "uri",
53
+
"type": "string"
35
54
}
36
55
},
37
56
"required": [
38
57
"title",
39
58
"sourceCode",
40
59
"createdAt"
41
60
],
42
61
"type": "object"
43
62
},
44
63
"type": "record"
45
64
}
46
65
},
47
66
"id": "club.userstyles.alpha.userstyle",
48
67
"lexicon": 1
49
68
}