id.sifa.profile.education

sifa.id

Schema Diff

+5 -0

From

CID
bafyreice4m577pm...
Indexed At
2026-09-05 16:00 UTC
View this version

To

CID
bafyreiasz65vijf...
Indexed At
2026-09-05 18:31 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 4 non-breaking changes.

Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "id.sifa.defs#agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.profile.education:body.agentRef" }
  • AddedEdge AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.agentRef", kind: "prop", name: Some("agentRef") }
  • AddedEdge AddedEdge { src: "id.sifa.profile.education:body.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "id.sifa.defs#agentRef" }
  • AddedVertex { vertex_id: "id.sifa.profile.education:body.agentRef" }

Additional Notes

  • Non-breaking: AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.agentRef", kind: "prop", name: Some("agentRef") }
  • Non-breaking: AddedEdge { src: "id.sifa.profile.education:body.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
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 +
          "agentRef": {
16 +
            "description": "The educational institution, as a single nested reference mirroring the flat institution / institutionDid / entityRef fields. Additive dual-write: the flat fields remain the source of truth for existing consumers.",
17 +
            "ref": "id.sifa.defs#agentRef",
18 +
            "type": "ref"
19 +
          },
15 20
          "createdAt": {
16 21
            "description": "Client-declared timestamp when this record was originally created.",
17 22
            "format": "datetime",
18 23
            "type": "string"
19 24
          },
20 25
          "degree": {
21 26
            "description": "Degree name (e.g., 'Bachelor of Science', 'Master of Arts').",
22 27
            "maxGraphemes": 256,
23 28
            "maxLength": 2560,
24 29
            "type": "string",
25 30
            "x-skos:closeMatch": [
26 31
              "schema:hasCredential",
27 32
              "bibo:degree"
28 33
            ]
29 34
          },
30 35
          "description": {
31 36
            "description": "Additional description or notes about the education.",
32 37
            "maxGraphemes": 5000,
33 38
            "maxLength": 50000,
34 39
            "type": "string"
35 40
          },
36 41
          "endedAt": {
37 42
            "description": "End date (graduation or expected graduation) in YYYY-MM or YYYY-MM-DD format. Omit if currently enrolled.",
38 43
            "type": "string"
39 44
          },
40 45
          "entityRef": {
41 46
            "description": "Portable, app-neutral identifier for the educational institution 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 institution claims an ATproto account. Absent for free-text entries.",
42 47
            "format": "uri",
43 48
            "type": "string"
44 49
          },
45 50
          "fieldOfStudy": {
46 51
            "description": "Field of study or major.",
47 52
            "maxGraphemes": 256,
48 53
            "maxLength": 2560,
49 54
            "type": "string",
50 55
            "x-skos:closeMatch": [
51 56
              "schema:educationalCredentialAwarded"
52 57
            ],
53 58
            "x-skos:note": "ISCED-F is the value anchor."
54 59
          },
55 60
          "grade": {
56 61
            "description": "Grade, GPA, or classification achieved.",
57 62
            "maxGraphemes": 50,
58 63
            "maxLength": 500,
59 64
            "type": "string"
60 65
          },
61 66
          "institution": {
62 67
            "description": "Name of the educational institution.",
63 68
            "maxGraphemes": 256,
64 69
            "maxLength": 2560,
65 70
            "minLength": 1,
66 71
            "type": "string",
67 72
            "x-skos:exactMatch": [
68 73
              "schema:alumniOf"
69 74
            ]
70 75
          },
71 76
          "institutionDid": {
72 77
            "description": "DID of the institution's ATproto account, if one exists.",
73 78
            "format": "did",
74 79
            "type": "string"
75 80
          },
76 81
          "isPrimary": {
77 82
            "description": "Whether this is the user's primary education entry, surfaced in profile Highlights. Any entry may be primary.",
78 83
            "type": "boolean"
79 84
          },
80 85
          "labels": {
81 86
            "description": "Self-label values for this education record.",
82 87
            "refs": [
83 88
              "com.atproto.label.defs#selfLabels"
84 89
            ],
85 90
            "type": "union"
86 91
          },
87 92
          "location": {
88 93
            "description": "Institution location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer.",
89 94
            "ref": "community.lexicon.location.address",
90 95
            "type": "ref"
91 96
          },
92 97
          "startedAt": {
93 98
            "description": "Start date in YYYY-MM or YYYY-MM-DD format.",
94 99
            "type": "string"
95 100
          }
96 101
        },
97 102
        "required": [
98 103
          "institution",
99 104
          "createdAt"
100 105
        ],
101 106
        "type": "object"
102 107
      },
103 108
      "type": "record",
104 109
      "x-skos:closeMatch": [
105 110
        "schema:EducationalOccupationalCredential"
106 111
      ],
107 112
      "x-skos:note": "One record maps to two schema.org assertions: alumniOf for the institution and hasCredential for the degree."
108 113
    }
109 114
  },
110 115
  "description": "An education entry in the user's professional profile.",
111 116
  "id": "id.sifa.profile.education",
112 117
  "lexicon": 1
113 118
}

Compare Other Versions

Lexicon Garden

@