id.sifa.profile.education
Schema Diff
+9 -11
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.fieldOfStudy", sort: "maxLength", old_value: "1000", new_value: "2560" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.fieldOfStudy", sort: "maxGraphemes", old_value: "100", new_value: "256" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.institution", sort: "maxLength", old_value: "1000", new_value: "2560" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.institution", sort: "maxGraphemes", old_value: "100", new_value: "256" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.degree", sort: "maxLength", old_value: "1000", new_value: "2560" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.degree", sort: "maxGraphemes", old_value: "100", new_value: "256" }
Migration Guidance
Constraint Changes
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.degree", sort: "maxGraphemes", old_value: "100", new_value: "256" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.degree", sort: "maxLength", old_value: "1000", new_value: "2560" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.fieldOfStudy", sort: "maxLength", old_value: "1000", new_value: "2560" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.fieldOfStudy", sort: "maxGraphemes", old_value: "100", new_value: "256" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.institution", sort: "maxGraphemes", old_value: "100", new_value: "256" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.education:body.institution", sort: "maxLength", old_value: "1000", new_value: "2560" }
1
1
{
2
2
"id": "id.sifa.profile.education",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"institution",
11
11
"createdAt"
12
12
],
13
13
"properties": {
14
14
"grade": {
15
15
"type": "string",
16
16
"maxLength": 500,
17
17
"description": "Grade, GPA, or classification achieved.",
18
18
"maxGraphemes": 50
19
19
},
20
20
"degree": {
21
21
"type": "string",
22
-
"maxLength": 1000,
22
+
"maxLength": 2560,
23
23
"description": "Degree name (e.g., 'Bachelor of Science', 'Master of Arts').",
24
-
"maxGraphemes": 100
24
+
"maxGraphemes": 256
25
25
},
26
26
"labels": {
27
27
"refs": [
28
28
"com.atproto.label.defs#selfLabels"
29
29
],
30
30
"type": "union",
31
31
"description": "Self-label values for this education record."
32
32
},
33
33
"endedAt": {
34
34
"type": "string",
35
-
"format": "datetime",
36
-
"description": "End date (graduation or expected graduation). Omit if currently enrolled."
35
+
"description": "End date (graduation or expected graduation) in YYYY-MM or YYYY-MM-DD format. Omit if currently enrolled."
37
36
},
38
37
"location": {
39
38
"ref": "community.lexicon.location.address",
40
39
"type": "ref",
41
-
"description": "Institution location."
40
+
"description": "Institution location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer."
42
41
},
43
42
"createdAt": {
44
43
"type": "string",
45
44
"format": "datetime",
46
45
"description": "Client-declared timestamp when this record was originally created."
47
46
},
48
47
"startedAt": {
49
48
"type": "string",
50
-
"format": "datetime",
51
-
"description": "Start date. For month-precision imports, use first day of month at midnight UTC."
49
+
"description": "Start date in YYYY-MM or YYYY-MM-DD format."
52
50
},
53
51
"activities": {
54
52
"type": "string",
55
53
"maxLength": 10000,
56
54
"description": "Activities, societies, and extracurriculars.",
57
55
"maxGraphemes": 1000
58
56
},
59
57
"description": {
60
58
"type": "string",
61
59
"maxLength": 50000,
62
60
"description": "Additional description or notes about the education.",
63
61
"maxGraphemes": 5000
64
62
},
65
63
"institution": {
66
64
"type": "string",
67
-
"maxLength": 1000,
65
+
"maxLength": 2560,
68
66
"minLength": 1,
69
67
"description": "Name of the educational institution.",
70
-
"maxGraphemes": 100
68
+
"maxGraphemes": 256
71
69
},
72
70
"fieldOfStudy": {
73
71
"type": "string",
74
-
"maxLength": 1000,
72
+
"maxLength": 2560,
75
73
"description": "Field of study or major.",
76
-
"maxGraphemes": 100
74
+
"maxGraphemes": 256
77
75
},
78
76
"institutionDid": {
79
77
"type": "string",
80
78
"format": "did",
81
79
"description": "DID of the institution's ATproto account, if one exists."
82
80
}
83
81
}
84
82
},
85
83
"description": "Record representing a single education credential."
86
84
}
87
85
},
88
86
"$type": "com.atproto.lexicon.schema",
89
87
"lexicon": 1,
90
88
"description": "An education entry in the user's professional profile."
91
89
}