art.cllctv.actor.profile
Schema Diff
+74 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 31 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "art.cllctv.actor.profile#theme", src: "art.cllctv.actor.profile#theme", tgt: "art.cllctv.actor.profile#theme.signature", kind: "prop", name: Some("signature") }
Non-Breaking Changes (31)
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile#theme" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature:variant0" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatar" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatarHash" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.banner" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.bannerHash" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.description" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.displayName" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels:variant0" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.pronouns" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.theme" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.website" }
- AddedVertex AddedVertex { vertex_id: "art.cllctv.theme.color#hsl" }
- AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile#theme.signature", tgt: "art.cllctv.actor.profile#theme.signature:variant0", kind: "variant", name: Some("art.cllctv.theme.color#hsl") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile#theme.signature:variant0", tgt: "art.cllctv.theme.color#hsl", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatar", kind: "prop", name: Some("avatar") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatarHash", kind: "prop", name: Some("avatarHash") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.banner", kind: "prop", name: Some("banner") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.bannerHash", kind: "prop", name: Some("bannerHash") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.description", kind: "prop", name: Some("description") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.displayName", kind: "prop", name: Some("displayName") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.labels", kind: "prop", name: Some("labels") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.pronouns", kind: "prop", name: Some("pronouns") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.theme", kind: "prop", name: Some("theme") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.website", kind: "prop", name: Some("website") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body.labels", tgt: "art.cllctv.actor.profile:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body.theme", tgt: "art.cllctv.actor.profile#theme", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "art.cllctv.actor.profile#theme" }AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature" }AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature:variant0" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatar" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatarHash" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.banner" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.bannerHash" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.description" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.displayName" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels:variant0" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.pronouns" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.theme" }AddedVertex { vertex_id: "art.cllctv.actor.profile:body.website" }AddedVertex { vertex_id: "art.cllctv.theme.color#hsl" }AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "art.cllctv.actor.profile#theme", src: "art.cllctv.actor.profile#theme", tgt: "art.cllctv.actor.profile#theme.signature", kind: "prop", name: Some("signature") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile#theme.signature", tgt: "art.cllctv.actor.profile#theme.signature:variant0", kind: "variant", name: Some("art.cllctv.theme.color#hsl") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile#theme.signature:variant0", tgt: "art.cllctv.theme.color#hsl", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatar", kind: "prop", name: Some("avatar") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatarHash", kind: "prop", name: Some("avatarHash") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.banner", kind: "prop", name: Some("banner") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.bannerHash", kind: "prop", name: Some("bannerHash") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.description", kind: "prop", name: Some("description") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.displayName", kind: "prop", name: Some("displayName") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.labels", kind: "prop", name: Some("labels") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.pronouns", kind: "prop", name: Some("pronouns") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.theme", kind: "prop", name: Some("theme") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.website", kind: "prop", name: Some("website") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body.labels", tgt: "art.cllctv.actor.profile:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body.theme", tgt: "art.cllctv.actor.profile#theme", kind: "ref", name: None }
1
1
{
2
2
"id": "art.cllctv.actor.profile",
3
3
"defs": {
4
4
"main": {
5
5
"key": "literal:self",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"properties": {
10
+
"theme": {
11
+
"ref": "#theme",
12
+
"type": "ref"
13
+
},
14
+
"avatar": {
15
+
"type": "blob",
16
+
"accept": [
17
+
"image/png",
18
+
"image/jpeg"
19
+
],
20
+
"maxSize": 1000000,
21
+
"description": "Small image to be displayed next to posts from account. AKA, 'profile picture'"
22
+
},
23
+
"banner": {
24
+
"type": "blob",
25
+
"accept": [
26
+
"image/png",
27
+
"image/jpeg"
28
+
],
29
+
"maxSize": 1000000,
30
+
"description": "Larger horizontal image to display behind profile view."
31
+
},
32
+
"labels": {
33
+
"refs": [
34
+
"com.atproto.label.defs#selfLabels"
35
+
],
36
+
"type": "union",
37
+
"description": "Self-label values, specific to the cllctv.ART application, on the overall account."
38
+
},
39
+
"website": {
40
+
"type": "string",
41
+
"format": "uri"
42
+
},
43
+
"pronouns": {
44
+
"type": "string",
45
+
"maxLength": 200,
46
+
"description": "Free-form pronouns text.",
47
+
"maxGraphemes": 20
48
+
},
10
49
"createdAt": {
11
50
"type": "string",
12
51
"format": "datetime"
52
+
},
53
+
"avatarHash": {
54
+
"type": "string",
55
+
"maxLength": 640,
56
+
"maxGraphemes": 64
57
+
},
58
+
"bannerHash": {
59
+
"type": "string",
60
+
"maxLength": 640,
61
+
"maxGraphemes": 64
62
+
},
63
+
"description": {
64
+
"type": "string",
65
+
"maxLength": 2560,
66
+
"description": "Free-form profile description text.",
67
+
"maxGraphemes": 256
68
+
},
69
+
"displayName": {
70
+
"type": "string",
71
+
"maxLength": 640,
72
+
"maxGraphemes": 64
13
73
}
14
74
}
15
75
},
16
76
"description": "A declaration of a cllctv.ART account profile."
77
+
},
78
+
"theme": {
79
+
"type": "object",
80
+
"required": [
81
+
"signature"
82
+
],
83
+
"properties": {
84
+
"signature": {
85
+
"refs": [
86
+
"art.cllctv.theme.color#hsl"
87
+
],
88
+
"type": "union"
89
+
}
90
+
}
17
91
}
18
92
},
19
93
"$type": "com.atproto.lexicon.schema",
20
94
"lexicon": 1
21
95
}