id.sifa.profile.certification
Schema Diff
+7 -4
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.certification:body.entityRef" }
- AddedEdge AddedEdge { src: "id.sifa.profile.certification:body", tgt: "id.sifa.profile.certification:body.entityRef", kind: "prop", name: Some("entityRef") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.certification:body.issuedAt", sort: "format" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.certification:body.expiresAt", sort: "format" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.profile.certification:body.entityRef" }
Constraint Changes
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.certification:body.issuedAt", sort: "format" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.certification:body.expiresAt", sort: "format" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.certification:body", tgt: "id.sifa.profile.certification:body.entityRef", kind: "prop", name: Some("entityRef") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Record representing a single certification or license.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"authority": {
10
10
"description": "Issuing organization or authority.",
11
11
"maxGraphemes": 256,
12
12
"maxLength": 2560,
13
13
"type": "string"
14
14
},
15
15
"authorityDid": {
16
16
"description": "DID of the issuing authority's ATproto account, if one exists.",
17
17
"format": "did",
18
18
"type": "string"
19
19
},
20
20
"createdAt": {
21
21
"description": "Client-declared timestamp when this record was originally created.",
22
22
"format": "datetime",
23
23
"type": "string"
24
24
},
25
25
"credentialId": {
26
26
"description": "Credential ID or license number.",
27
27
"maxGraphemes": 256,
28
28
"maxLength": 2560,
29
29
"type": "string"
30
30
},
31
31
"credentialUrl": {
32
32
"description": "URL to verify the credential.",
33
33
"format": "uri",
34
34
"type": "string"
35
35
},
36
+
"entityRef": {
37
+
"description": "Portable, app-neutral identifier for the issuing organization the user selected from a resolver dropdown: a Wikidata Q-ID URI (http://www.wikidata.org/entity/Q...), a ROR URI, or an LEI URI. Enables deterministic resolution to a canonical entity even before the organization claims an ATproto account. Absent for free-text entries.",
38
+
"format": "uri",
39
+
"type": "string"
40
+
},
36
41
"expiresAt": {
37
-
"description": "Expiry date. Omit if the certification does not expire.",
38
-
"format": "datetime",
42
+
"description": "Expiry date in YYYY-MM or YYYY-MM-DD format. Omit if the certification does not expire.",
39
43
"type": "string"
40
44
},
41
45
"issuedAt": {
42
-
"description": "Date the certification was issued.",
43
-
"format": "datetime",
46
+
"description": "Date the certification was issued, in YYYY-MM or YYYY-MM-DD format.",
44
47
"type": "string"
45
48
},
46
49
"labels": {
47
50
"description": "Self-label values for this certification record.",
48
51
"refs": [
49
52
"com.atproto.label.defs#selfLabels"
50
53
],
51
54
"type": "union"
52
55
},
53
56
"name": {
54
57
"description": "Certification or license name.",
55
58
"maxGraphemes": 256,
56
59
"maxLength": 2560,
57
60
"minLength": 1,
58
61
"type": "string"
59
62
}
60
63
},
61
64
"required": [
62
65
"name",
63
66
"createdAt"
64
67
],
65
68
"type": "object"
66
69
},
67
70
"type": "record"
68
71
}
69
72
},
70
73
"description": "A professional certification or license held by the user.",
71
74
"id": "id.sifa.profile.certification",
72
75
"lexicon": 1
73
76
}