From
bafyreie4ua3ndwvxqirch2uvybr7jyhabltc6nbqroxt6exsi7nsc4dpey
indexed 2026-10-30 13:43 UTC
View this version
To
bafyreifnbymwjhiavnglzlihigtvayvrn4atgfsc2t7z64ihk2wlnc2boq
indexed 2026-11-05 10:04 UTC
View this version
Compatibility
backward compatible Backward compatible. 12 non-breaking changes.
Non-breaking changes (12)
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#skillRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#toolRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.education:body.skills" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.education:body.skills:items" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.education:body.tools" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.education:body.tools:items" }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.skills", kind: "prop", name: Some("skills") }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.tools", kind: "prop", name: Some("tools") }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body.skills", tgt: "id.sifa.profile.education:body.skills:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body.skills:items", tgt: "id.sifa.defs#skillRef", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body.tools", tgt: "id.sifa.profile.education:body.tools:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body.tools:items", tgt: "id.sifa.defs#toolRef", kind: "ref", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "id.sifa.defs#skillRef" }AddedVertex { vertex_id: "id.sifa.defs#toolRef" }AddedVertex { vertex_id: "id.sifa.profile.education:body.skills" }AddedVertex { vertex_id: "id.sifa.profile.education:body.skills:items" }AddedVertex { vertex_id: "id.sifa.profile.education:body.tools" }AddedVertex { vertex_id: "id.sifa.profile.education:body.tools:items" }
Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.skills", kind: "prop", name: Some("skills") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.tools", kind: "prop", name: Some("tools") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body.skills", tgt: "id.sifa.profile.education:body.skills:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body.skills:items", tgt: "id.sifa.defs#skillRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body.tools", tgt: "id.sifa.profile.education:body.tools:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body.tools:items", tgt: "id.sifa.defs#toolRef", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "Record representing a single education credential.",66
"key": "tid",77
"record": {88
"properties": {99
"activities": {1010
"description": "Activities, societies, and extracurriculars.",1111
"maxGraphemes": 1000,1212
"maxLength": 10000,1313
"type": "string"1414
},1515
"agentRef": {1616
"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.",1717
"ref": "id.sifa.defs#agentRef",1818
"type": "ref"1919
},2020
"createdAt": {2121
"description": "Client-declared timestamp when this record was originally created.",2222
"format": "datetime",2323
"type": "string"2424
},2525
"degree": {2626
"description": "Degree name (e.g., 'Bachelor of Science', 'Master of Arts').",2727
"maxGraphemes": 256,2828
"maxLength": 2560,2929
"type": "string",3030
"x-skos:closeMatch": [3131
"schema:hasCredential",3232
"bibo:degree"3333
]3434
},3535
"description": {3636
"description": "Additional description or notes about the education.",3737
"maxGraphemes": 5000,3838
"maxLength": 50000,3939
"type": "string"4040
},4141
"endedAt": {4242
"description": "End date (graduation or expected graduation) in YYYY, YYYY-MM or YYYY-MM-DD format. Omit if currently enrolled.",4343
"type": "string"4444
},4545
"entityRef": {4646
"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.",4747
"format": "uri",4848
"type": "string"4949
},5050
"eqfLevel": {5151
"description": "Level of the qualification on the European Qualifications Framework (EQF), 1 to 8. 6 is bachelor level, 7 is master level, 8 is doctoral level. Omit when unknown. The free-text degree stays the display name.",5252
"maximum": 8,5353
"minimum": 1,5454
"type": "integer",5555
"x-skos:closeMatch": [5656
"schema:educationalLevel"5757
],5858
"x-skos:note": "EQF is the value anchor."5959
},6060
"fieldOfStudy": {6161
"description": "Field of study or major.",6262
"maxGraphemes": 256,6363
"maxLength": 2560,6464
"type": "string",6565
"x-skos:closeMatch": [6666
"schema:educationalCredentialAwarded"6767
],6868
"x-skos:note": "ISCED-F is the value anchor."6969
},7070
"grade": {7171
"description": "Grade, GPA, or classification achieved.",7272
"maxGraphemes": 50,7373
"maxLength": 500,7474
"type": "string"7575
},7676
"institution": {7777
"description": "Name of the educational institution.",7878
"maxGraphemes": 256,7979
"maxLength": 2560,8080
"minLength": 1,8181
"type": "string",8282
"x-skos:exactMatch": [8383
"schema:alumniOf"8484
]8585
},8686
"institutionDid": {8787
"description": "DID of the institution's ATproto account, if one exists.",8888
"format": "did",8989
"type": "string"9090
},9191
"isPrimary": {9292
"description": "Whether this is the user's primary education entry, surfaced in profile Highlights. Any entry may be primary.",9393
"type": "boolean"9494
},9595
"labels": {9696
"description": "Self-label values for this education record.",9797
"refs": [9898
"com.atproto.label.defs#selfLabels"9999
],100100
"type": "union"101101
},102102
"location": {103103
"description": "Institution location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer.",104104
"ref": "community.lexicon.location.address",105105
"type": "ref"106106
},107
"skills": {108
"description": "Skills gained or used in this education. Each entry is a URI reference to an id.sifa.profile.skill record owned by the same DID.",109
"items": {110
"ref": "id.sifa.defs#skillRef",111
"type": "ref"112
},113
"maxLength": 50,114
"type": "array"115
},107116
"startedAt": {108117
"description": "Start date in YYYY, YYYY-MM or YYYY-MM-DD format.",109118
"type": "string"119
},120
"tools": {121
"description": "Tools used in this education. Each entry is a URI reference to a tool item record owned by the same DID. Consumers ignore entries that do not resolve.",122
"items": {123
"ref": "id.sifa.defs#toolRef",124
"type": "ref"125
},126
"maxLength": 50,127
"type": "array"110128
}111129
},112130
"required": [113131
"institution",114132
"createdAt"115133
],116134
"type": "object"117135
},118136
"type": "record",119137
"x-skos:closeMatch": [120138
"schema:EducationalOccupationalCredential"121139
],122140
"x-skos:note": "One record maps to two schema.org assertions: alumniOf for the institution and hasCredential for the degree."123141
}124142
},125143
"description": "An education entry in the user's professional profile.",126144
"id": "id.sifa.profile.education",127145
"lexicon": 1128146
}