community.gifthood.actor.profile
Schema Diff
+7 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
- AddedVertex AddedVertex { vertex_id: "community.gifthood.actor.profile:body.labels" }
- AddedVertex AddedVertex { vertex_id: "community.gifthood.actor.profile:body.labels:variant0" }
- AddedEdge AddedEdge { src: "community.gifthood.actor.profile:body", tgt: "community.gifthood.actor.profile:body.labels", kind: "prop", name: Some("labels") }
- AddedEdge AddedEdge { src: "community.gifthood.actor.profile:body.labels", tgt: "community.gifthood.actor.profile:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- AddedEdge AddedEdge { src: "community.gifthood.actor.profile: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: "community.gifthood.actor.profile:body.labels" }AddedVertex { vertex_id: "community.gifthood.actor.profile:body.labels:variant0" }
Additional Notes
- Non-breaking: AddedEdge { src: "community.gifthood.actor.profile:body", tgt: "community.gifthood.actor.profile:body.labels", kind: "prop", name: Some("labels") }
- Non-breaking: AddedEdge { src: "community.gifthood.actor.profile:body.labels", tgt: "community.gifthood.actor.profile:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
- Non-breaking: AddedEdge { src: "community.gifthood.actor.profile:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
1
1
{
2
2
"id": "community.gifthood.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
"required": [
10
10
"createdAt"
11
11
],
12
12
"properties": {
13
13
"avatar": {
14
14
"type": "blob",
15
15
"accept": [
16
16
"image/png",
17
17
"image/jpeg"
18
18
],
19
19
"maxSize": 1000000,
20
20
"description": "Avatar image blob in the member's repo. Overrides the Bluesky avatar when set."
21
21
},
22
22
"banner": {
23
23
"type": "blob",
24
24
"accept": [
25
25
"image/png",
26
26
"image/jpeg"
27
27
],
28
28
"maxSize": 1000000,
29
29
"description": "Banner image blob in the member's repo."
30
30
},
31
+
"labels": {
32
+
"refs": [
33
+
"com.atproto.label.defs#selfLabels"
34
+
],
35
+
"type": "union",
36
+
"description": "Self-label values on this profile. The only value gifthood enforces is !no-unauthenticated (hide from logged-out viewers)."
37
+
},
31
38
"website": {
32
39
"type": "string",
33
40
"format": "uri",
34
41
"description": "A personal link. Overrides the Bluesky website when set."
35
42
},
36
43
"pronouns": {
37
44
"type": "string",
38
45
"maxLength": 200,
39
46
"description": "Free-form pronouns. Overrides the Bluesky pronouns when set.",
40
47
"maxGraphemes": 20
41
48
},
42
49
"createdAt": {
43
50
"type": "string",
44
51
"format": "datetime",
45
52
"description": "The gifthood join date. Write-once: edits MUST preserve it."
46
53
},
47
54
"description": {
48
55
"type": "string",
49
56
"maxLength": 2560,
50
57
"description": "Gifthood bio. Overrides the Bluesky description when set.",
51
58
"maxGraphemes": 256
52
59
},
53
60
"displayName": {
54
61
"type": "string",
55
62
"maxLength": 640,
56
63
"description": "Gifthood display name. Overrides the Bluesky display name when set.",
57
64
"maxGraphemes": 64
58
65
}
59
66
}
60
67
},
61
68
"description": "A member's gifthood-native profile. The member owns it; the AppView indexes it and layers it over their Bluesky profile field-by-field (a set field overrides Bluesky; an absent field inherits). One record per member, keyed `self`. createdAt is the write-once gifthood join date."
62
69
}
63
70
},
64
71
"$type": "com.atproto.lexicon.schema",
65
72
"lexicon": 1
66
73
}