id.sifa.profile.education

sifa.id

Schema Diff

+9 -11

From

CID
bafyreiezueps3hj...
Indexed At
2026-03-27 23:46 UTC
View this version

To

CID
bafyreie2kgzeqtw...
Indexed At
2026-05-27 12:05 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 8 non-breaking changes.

Non-Breaking Changes (8)
  • 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" }
  • 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" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.education:body.endedAt", sort: "format" }
  • 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.fieldOfStudy", sort: "maxLength", old_value: "1000", new_value: "2560" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.education:body.startedAt", sort: "format" }

Migration Guidance

Constraint Changes

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

Compare Other Versions

Lexicon Garden

@