app.certified.badge.definition
Schema Diff
+14 -2
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 4 non-breaking changes.
Breaking Changes (2)
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.certified.badge.definition:body", src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.icon", kind: "prop", name: Some("icon") }
- ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.badgeType", sort: "knownValues", value: "[\"endorsement\",\"verification\",\"participation\",\"certification\",\"affiliation\",\"recognition\"]" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "app.certified.badge.definition:body.signatures" }
- AddedVertex AddedVertex { vertex_id: "app.certified.signature.defs#list" }
- AddedEdge AddedEdge { src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.signatures", kind: "prop", name: Some("signatures") }
- AddedEdge AddedEdge { src: "app.certified.badge.definition:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.certified.badge.definition:body.signatures" }AddedVertex { vertex_id: "app.certified.signature.defs#list" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "app.certified.badge.definition:body.badgeType", sort: "knownValues", value: "[\"endorsement\",\"verification\",\"participation\",\"certification\",\"affiliation\",\"recognition\"]" }
Additional Notes
- Breaking: RequiredEdgeRemoved { vertex_id: "app.certified.badge.definition:body", src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.icon", kind: "prop", name: Some("icon") }
- Non-breaking: AddedEdge { src: "app.certified.badge.definition:body", tgt: "app.certified.badge.definition:body.signatures", kind: "prop", name: Some("signatures") }
- Non-breaking: AddedEdge { src: "app.certified.badge.definition:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Defines a badge that can be awarded via badge award records to users, projects, or activity claims.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"allowedIssuers": {
10
10
"description": "Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.",
11
11
"items": {
12
12
"ref": "app.certified.defs#did",
13
13
"type": "ref"
14
14
},
15
15
"maxLength": 100,
16
16
"type": "array"
17
17
},
18
18
"badgeType": {
19
-
"description": "Category of the badge (e.g. endorsement, participation, affiliation).",
19
+
"description": "Category of the badge. Values beyond the known set are permitted.",
20
+
"knownValues": [
21
+
"endorsement",
22
+
"verification",
23
+
"participation",
24
+
"certification",
25
+
"affiliation",
26
+
"recognition"
27
+
],
20
28
"maxLength": 100,
21
29
"type": "string"
22
30
},
23
31
"createdAt": {
24
32
"description": "Client-declared timestamp when this record was originally created",
25
33
"format": "datetime",
26
34
"type": "string"
27
35
},
28
36
"description": {
29
37
"description": "Optional short statement describing what the badge represents.",
30
38
"maxGraphemes": 500,
31
39
"maxLength": 5000,
32
40
"type": "string"
33
41
},
34
42
"icon": {
35
43
"accept": [
36
44
"image/png",
37
45
"image/jpeg",
38
46
"image/webp",
39
47
"image/svg+xml"
40
48
],
41
49
"description": "Icon representing the badge, stored as a blob for compact visual display.",
42
50
"maxSize": 1048576,
43
51
"type": "blob"
44
52
},
53
+
"signatures": {
54
+
"description": "Optional cryptographic signatures attesting to this record's content.",
55
+
"ref": "app.certified.signature.defs#list",
56
+
"type": "ref"
57
+
},
45
58
"title": {
46
59
"description": "Human-readable title of the badge.",
47
60
"maxLength": 256,
48
61
"type": "string"
49
62
}
50
63
},
51
64
"required": [
52
65
"title",
53
66
"badgeType",
54
-
"icon",
55
67
"createdAt"
56
68
],
57
69
"type": "object"
58
70
},
59
71
"type": "record"
60
72
}
61
73
},
62
74
"id": "app.certified.badge.definition",
63
75
"lexicon": 1
64
76
}