id.sifa.getProfileView
Schema Diff
+141 -5
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 60 non-breaking changes.
Breaking Changes (4)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#projectEventView", src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.uri", kind: "prop", name: Some("uri") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.methods", kind: "prop", name: Some("methods") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.status", kind: "prop", name: Some("status") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.verifiedAt", kind: "prop", name: Some("verifiedAt") }
Non-Breaking Changes (60)
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#employmentStatus" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#relatedIdentifier" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#verificationMethod" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.completedAt" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.educationRkey" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.endedAt" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.positionRkey" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.role" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.startedAt" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.eqfLevel" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.expiresAt" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods:items" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.status" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.uri" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.verifiedAt" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.verification" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.country" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.locality" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.mode" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.name" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.role" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.startsAt" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.uri" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.url" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events:items" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.role" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items" }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.completedAt", kind: "prop", name: Some("completedAt") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.educationRkey", kind: "prop", name: Some("educationRkey") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.endedAt", kind: "prop", name: Some("endedAt") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.positionRkey", kind: "prop", name: Some("positionRkey") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.role", kind: "prop", name: Some("role") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.startedAt", kind: "prop", name: Some("startedAt") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#educationView", tgt: "id.sifa.getProfileView#educationView.eqfLevel", kind: "prop", name: Some("eqfLevel") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.expiresAt", kind: "prop", name: Some("expiresAt") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.uri", kind: "prop", name: Some("uri") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification.methods", tgt: "id.sifa.getProfileView#positionVerification.methods:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification.methods:items", tgt: "id.sifa.defs#verificationMethod", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification.status", tgt: "id.sifa.defs#employmentStatus", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.verification", kind: "prop", name: Some("verification") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView.verification", tgt: "id.sifa.getProfileView#positionVerification", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.country", kind: "prop", name: Some("country") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.locality", kind: "prop", name: Some("locality") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.mode", kind: "prop", name: Some("mode") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.name", kind: "prop", name: Some("name") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.role", kind: "prop", name: Some("role") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.startsAt", kind: "prop", name: Some("startsAt") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.url", kind: "prop", name: Some("url") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView", tgt: "id.sifa.getProfileView#projectView.events", kind: "prop", name: Some("events") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView", tgt: "id.sifa.getProfileView#projectView.role", kind: "prop", name: Some("role") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView.events", tgt: "id.sifa.getProfileView#projectView.events:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView.events:items", tgt: "id.sifa.getProfileView#projectEventView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#publicationView", tgt: "id.sifa.getProfileView#publicationView.relatedIdentifiers", kind: "prop", name: Some("relatedIdentifiers") }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#publicationView.relatedIdentifiers", tgt: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items", tgt: "id.sifa.defs#relatedIdentifier", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.defs#employmentStatus" }AddedVertex { vertex_id: "id.sifa.defs#relatedIdentifier" }AddedVertex { vertex_id: "id.sifa.defs#verificationMethod" }AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.completedAt" }AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.educationRkey" }AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.endedAt" }AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.positionRkey" }AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.role" }AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.startedAt" }AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.eqfLevel" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.expiresAt" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods:items" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.status" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.uri" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.verifiedAt" }AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.verification" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.country" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.locality" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.mode" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.name" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.role" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.startsAt" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.uri" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.url" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events:items" }AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.role" }AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers" }AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.methods", kind: "prop", name: Some("methods") }
- Breaking: RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.status", kind: "prop", name: Some("status") }
- Breaking: RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.verifiedAt", kind: "prop", name: Some("verifiedAt") }
- Breaking: RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#projectEventView", src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.uri", kind: "prop", name: Some("uri") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.completedAt", kind: "prop", name: Some("completedAt") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.educationRkey", kind: "prop", name: Some("educationRkey") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.endedAt", kind: "prop", name: Some("endedAt") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.positionRkey", kind: "prop", name: Some("positionRkey") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.role", kind: "prop", name: Some("role") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.startedAt", kind: "prop", name: Some("startedAt") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#educationView", tgt: "id.sifa.getProfileView#educationView.eqfLevel", kind: "prop", name: Some("eqfLevel") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.expiresAt", kind: "prop", name: Some("expiresAt") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.uri", kind: "prop", name: Some("uri") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#positionVerification.methods", tgt: "id.sifa.getProfileView#positionVerification.methods:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#positionVerification.methods:items", tgt: "id.sifa.defs#verificationMethod", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#positionVerification.status", tgt: "id.sifa.defs#employmentStatus", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.verification", kind: "prop", name: Some("verification") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#positionView.verification", tgt: "id.sifa.getProfileView#positionVerification", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.country", kind: "prop", name: Some("country") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.locality", kind: "prop", name: Some("locality") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.mode", kind: "prop", name: Some("mode") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.name", kind: "prop", name: Some("name") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.role", kind: "prop", name: Some("role") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.startsAt", kind: "prop", name: Some("startsAt") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.url", kind: "prop", name: Some("url") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectView", tgt: "id.sifa.getProfileView#projectView.events", kind: "prop", name: Some("events") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectView", tgt: "id.sifa.getProfileView#projectView.role", kind: "prop", name: Some("role") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectView.events", tgt: "id.sifa.getProfileView#projectView.events:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#projectView.events:items", tgt: "id.sifa.getProfileView#projectEventView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#publicationView", tgt: "id.sifa.getProfileView#publicationView.relatedIdentifiers", kind: "prop", name: Some("relatedIdentifiers") }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#publicationView.relatedIdentifiers", tgt: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items", tgt: "id.sifa.defs#relatedIdentifier", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"activeAppView": {
5
5
"description": "An AT Protocol app the account has recently created records in.",
6
6
"properties": {
7
7
"category": {
8
8
"description": "App category.",
9
9
"type": "string"
10
10
},
11
11
"id": {
12
12
"description": "App identifier.",
13
13
"type": "string"
14
14
},
15
15
"latestRecordAt": {
16
16
"description": "Timestamp of the latest record.",
17
17
"format": "datetime",
18
18
"type": "string"
19
19
},
20
20
"name": {
21
21
"description": "App display name.",
22
22
"type": "string"
23
23
},
24
24
"recentCount": {
25
25
"description": "Recent record count.",
26
26
"type": "integer"
27
27
}
28
28
},
29
29
"required": [
30
30
"id",
31
31
"name"
32
32
],
33
33
"type": "object"
34
34
},
35
35
"atfundLink": {
36
36
"description": "A contribution or funding link.",
37
37
"properties": {
38
38
"label": {
39
39
"description": "Optional display label.",
40
40
"type": "string"
41
41
},
42
42
"url": {
43
43
"description": "Contribution URL.",
44
44
"format": "uri",
45
45
"type": "string"
46
46
}
47
47
},
48
48
"required": [
49
49
"url"
50
50
],
51
51
"type": "object"
52
52
},
53
53
"certificationView": {
54
54
"description": "A certification or license.",
55
55
"properties": {
56
56
"agentRef": {
57
57
"description": "Canonical issuing-authority reference (name plus optional did/entityRef). Mirrors the flat authority/entityRef fields during the migration; the two always agree.",
58
58
"ref": "id.sifa.defs#agentRef",
59
59
"type": "ref"
60
60
},
61
61
"credentialUrl": {
62
62
"description": "URL of the credential.",
63
63
"format": "uri",
64
64
"type": "string"
65
65
},
66
66
"currentCompanyName": {
67
67
"description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
68
68
"type": "string"
69
69
},
70
70
"entityRef": {
71
71
"description": "Pointer URI to the resolved issuer entity.",
72
72
"format": "uri",
73
73
"type": "string"
74
74
},
75
75
"expiryDate": {
76
76
"description": "Expiry date. Partial date.",
77
77
"type": "string"
78
78
},
79
79
"issueDate": {
80
80
"description": "Issue date. Partial date.",
81
81
"type": "string"
82
82
},
83
83
"issuingOrg": {
84
84
"description": "Issuing organization.",
85
85
"type": "string"
86
86
},
87
87
"name": {
88
88
"description": "Certification name.",
89
89
"type": "string"
90
90
},
91
91
"rkey": {
92
92
"description": "Record key of the certification record.",
93
93
"type": "string"
94
94
}
95
95
},
96
96
"required": [
97
97
"rkey",
98
98
"name"
99
99
],
100
100
"type": "object"
101
101
},
102
102
"coSpeakerView": {
103
103
"description": "A co-speaker on a presentation delivery.",
104
104
"properties": {
105
105
"avatar": {
106
106
"description": "Avatar URL, when linked.",
107
107
"format": "uri",
108
108
"type": "string"
109
109
},
110
110
"did": {
111
111
"description": "DID of the co-speaker, when linked to a Sifa profile.",
112
112
"format": "did",
113
113
"type": "string"
114
114
},
115
115
"displayName": {
116
116
"description": "Display name, when linked.",
117
117
"type": "string"
118
118
},
119
119
"handle": {
120
120
"description": "Handle, when linked.",
121
121
"format": "handle",
122
122
"type": "string"
123
123
},
124
124
"name": {
125
125
"description": "Free-text co-speaker name, when not linked.",
126
126
"type": "string"
127
127
}
128
128
},
129
129
"type": "object"
130
130
},
131
131
"contributorView": {
132
132
"description": "A linked publication contributor.",
133
133
"properties": {
134
134
"did": {
135
135
"description": "Sifa/AT Protocol DID, when linked.",
136
136
"format": "did",
137
137
"type": "string"
138
138
},
139
139
"handle": {
140
140
"description": "Handle, when linked.",
141
141
"format": "handle",
142
142
"type": "string"
143
143
},
144
144
"name": {
145
145
"description": "Contributor name.",
146
146
"type": "string"
147
147
},
148
148
"orcidId": {
149
149
"description": "ORCID identifier.",
150
150
"type": "string"
151
151
}
152
152
},
153
153
"required": [
154
154
"name"
155
155
],
156
156
"type": "object"
157
157
},
158
158
"courseView": {
159
159
"description": "A course entry.",
160
160
"properties": {
161
161
"agentRef": {
162
162
"description": "Canonical institution reference (name plus optional did/entityRef). Mirrors the flat institution/entityRef fields during the migration; the two always agree.",
163
163
"ref": "id.sifa.defs#agentRef",
164
164
"type": "ref"
165
165
},
166
+
"completedAt": {
167
+
"description": "Completion date of a taken course (YYYY-MM or YYYY-MM-DD).",
168
+
"type": "string"
169
+
},
166
170
"credentialRkey": {
167
171
"description": "Record key of a linked certification, when present.",
168
172
"type": "string"
169
173
},
170
174
"currentCompanyName": {
171
175
"description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
172
176
"type": "string"
173
177
},
178
+
"educationRkey": {
179
+
"description": "Record key of the linked education record the course was part of, when present.",
180
+
"type": "string"
181
+
},
182
+
"endedAt": {
183
+
"description": "When the user last taught the course; absent if ongoing.",
184
+
"type": "string"
185
+
},
174
186
"entityRef": {
175
187
"description": "Pointer URI to the resolved institution entity.",
176
188
"format": "uri",
177
189
"type": "string"
178
190
},
179
191
"institution": {
180
192
"description": "Institution name.",
181
193
"type": "string"
182
194
},
183
195
"name": {
184
196
"description": "Course name.",
185
197
"type": "string"
186
198
},
187
199
"number": {
188
200
"description": "Course number or code.",
189
201
"type": "string"
190
202
},
203
+
"positionRkey": {
204
+
"description": "Record key of the linked position the course was part of, when present.",
205
+
"type": "string"
206
+
},
191
207
"rkey": {
192
208
"description": "Record key of the course record.",
193
209
"type": "string"
210
+
},
211
+
"role": {
212
+
"description": "The user's role in the course (id.sifa.defs#courseRole). Absent means taken.",
213
+
"type": "string"
214
+
},
215
+
"startedAt": {
216
+
"description": "When the user started teaching the course (YYYY, YYYY-MM or YYYY-MM-DD).",
217
+
"type": "string"
194
218
}
195
219
},
196
220
"required": [
197
221
"rkey",
198
222
"name"
199
223
],
200
224
"type": "object"
201
225
},
202
226
"durationView": {
203
227
"description": "A duration range in minutes.",
204
228
"properties": {
205
229
"maxMinutes": {
206
230
"description": "Maximum duration in minutes.",
207
231
"type": "integer"
208
232
},
209
233
"minMinutes": {
210
234
"description": "Minimum duration in minutes.",
211
235
"type": "integer"
212
236
}
213
237
},
214
238
"required": [
215
239
"minMinutes"
216
240
],
217
241
"type": "object"
218
242
},
219
243
"educationView": {
220
244
"description": "An education-history entry.",
221
245
"properties": {
222
246
"activities": {
223
247
"description": "Activities and societies.",
224
248
"type": "string"
225
249
},
226
250
"agentRef": {
227
251
"description": "Canonical institution reference (name plus optional did/entityRef). Mirrors the flat institution/institutionDid/entityRef fields during the migration; the two always agree.",
228
252
"ref": "id.sifa.defs#agentRef",
229
253
"type": "ref"
230
254
},
231
255
"currentCompanyName": {
232
256
"description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
233
257
"type": "string"
234
258
},
235
259
"degree": {
236
260
"description": "Degree earned.",
237
261
"type": "string"
238
262
},
239
263
"description": {
240
264
"description": "Additional description.",
241
265
"type": "string"
242
266
},
243
267
"endedAt": {
244
268
"description": "End date. Partial date.",
245
269
"type": "string"
246
270
},
247
271
"entityRef": {
248
272
"description": "Pointer URI to the resolved institution entity.",
249
273
"format": "uri",
250
274
"type": "string"
251
275
},
276
+
"eqfLevel": {
277
+
"description": "European Qualifications Framework level of the degree (1 to 8, 8 is doctoral), when set.",
278
+
"maximum": 8,
279
+
"minimum": 1,
280
+
"type": "integer"
281
+
},
252
282
"fieldOfStudy": {
253
283
"description": "Field of study.",
254
284
"type": "string"
255
285
},
256
286
"institution": {
257
287
"description": "Institution name.",
258
288
"type": "string"
259
289
},
260
290
"institutionDid": {
261
291
"description": "DID of the institution, when known.",
262
292
"format": "did",
263
293
"type": "string"
264
294
},
265
295
"primary": {
266
296
"description": "Whether this is the user's primary education entry.",
267
297
"type": "boolean"
268
298
},
269
299
"rkey": {
270
300
"description": "Record key of the education record.",
271
301
"type": "string"
272
302
},
273
303
"startedAt": {
274
304
"description": "Start date. Partial date.",
275
305
"type": "string"
276
306
}
277
307
},
278
308
"required": [
279
309
"rkey"
280
310
],
281
311
"type": "object"
282
312
},
283
313
"externalAccountView": {
284
314
"description": "A linked external account with verification state.",
285
315
"properties": {
286
316
"feedUrl": {
287
317
"description": "Feed URL (RSS/Atom), when applicable.",
288
318
"format": "uri",
289
319
"type": "string"
290
320
},
291
321
"label": {
292
322
"description": "Optional custom label.",
293
323
"type": "string"
294
324
},
295
325
"platform": {
296
326
"description": "Platform type.",
297
327
"ref": "id.sifa.defs#externalPlatform",
298
328
"type": "ref"
299
329
},
300
330
"primary": {
301
331
"description": "Whether this is the primary external account.",
302
332
"type": "boolean"
303
333
},
304
334
"rkey": {
305
335
"description": "Record key of the external account record.",
306
336
"type": "string"
307
337
},
308
338
"url": {
309
339
"description": "Account URL.",
310
340
"format": "uri",
311
341
"type": "string"
312
342
},
313
343
"verifiable": {
314
344
"description": "Whether the account can be verified.",
315
345
"type": "boolean"
316
346
},
317
347
"verified": {
318
348
"description": "Whether the account is verified.",
319
349
"type": "boolean"
320
350
},
321
351
"verifiedVia": {
322
352
"description": "Verification method, when verified.",
323
353
"type": "string"
324
354
}
325
355
},
326
356
"required": [
327
357
"rkey",
328
358
"url"
329
359
],
330
360
"type": "object"
331
361
},
332
362
"honorView": {
333
363
"description": "An honor or award.",
334
364
"properties": {
335
365
"agentRef": {
336
366
"description": "Canonical issuer reference (name plus optional did/entityRef). Mirrors the flat issuer/entityRef fields during the migration; the two always agree.",
337
367
"ref": "id.sifa.defs#agentRef",
338
368
"type": "ref"
339
369
},
340
370
"currentCompanyName": {
341
371
"description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
342
372
"type": "string"
343
373
},
344
374
"date": {
345
375
"description": "Date received. Partial date.",
346
376
"type": "string"
347
377
},
348
378
"description": {
349
379
"description": "Description.",
350
380
"type": "string"
351
381
},
352
382
"entityRef": {
353
383
"description": "Pointer URI to the resolved issuer entity.",
354
384
"format": "uri",
355
385
"type": "string"
356
386
},
357
387
"issuer": {
358
388
"description": "Issuing organization.",
359
389
"type": "string"
360
390
},
361
391
"rkey": {
362
392
"description": "Record key of the honor record.",
363
393
"type": "string"
364
394
},
365
395
"title": {
366
396
"description": "Honor or award title.",
367
397
"type": "string"
368
398
}
369
399
},
370
400
"required": [
371
401
"rkey",
372
402
"title"
373
403
],
374
404
"type": "object"
375
405
},
376
406
"involvementLinkView": {
377
407
"description": "A proof link on an involvement.",
378
408
"properties": {
379
409
"kind": {
380
410
"description": "What the link points to (e.g. pull-request, talk, article).",
381
411
"type": "string"
382
412
},
383
413
"label": {
384
414
"description": "Optional human-readable label.",
385
415
"type": "string"
386
416
},
387
417
"url": {
388
418
"description": "Artifact URL.",
389
419
"format": "uri",
390
420
"type": "string"
391
421
},
392
422
"verified": {
393
423
"description": "True if the link host matches a verified external account.",
394
424
"type": "boolean"
395
425
},
396
426
"verifiedPlatform": {
397
427
"description": "Platform token of the verified host, when verified.",
398
428
"type": "string"
399
429
}
400
430
},
401
431
"required": [
402
432
"url"
403
433
],
404
434
"type": "object"
405
435
},
406
436
"involvementView": {
407
437
"description": "A community, open-source, charity, or civic involvement.",
408
438
"properties": {
409
439
"agentRef": {
410
440
"description": "Canonical upstream reference (name plus optional did/entityRef). Mirrors the flat upstream/upstreamDid/entityRef fields during the migration; the two always agree.",
411
441
"ref": "id.sifa.defs#agentRef",
412
442
"type": "ref"
413
443
},
414
444
"currentCompanyName": {
415
445
"description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
416
446
"type": "string"
417
447
},
418
448
"description": {
419
449
"description": "Description.",
420
450
"type": "string"
421
451
},
422
452
"endedAt": {
423
453
"description": "End date. Partial date.",
424
454
"type": "string"
425
455
},
426
456
"kind": {
427
457
"description": "The nature of the involvement.",
428
458
"ref": "id.sifa.defs#involvementKind",
429
459
"type": "ref"
430
460
},
431
461
"legacy": {
432
462
"description": "True if mapped from a legacy volunteering record.",
433
463
"type": "boolean"
434
464
},
435
465
"links": {
436
466
"description": "Public artifact links proving the work.",
437
467
"items": {
438
468
"ref": "#involvementLinkView",
439
469
"type": "ref"
440
470
},
441
471
"type": "array"
442
472
},
443
473
"primary": {
444
474
"description": "Whether this is the user's primary current involvement.",
445
475
"type": "boolean"
446
476
},
447
477
"rkey": {
448
478
"description": "Record key of the involvement (or legacy volunteering) record.",
449
479
"type": "string"
450
480
},
451
481
"role": {
452
482
"description": "Role in the involvement.",
453
483
"type": "string"
454
484
},
455
485
"startedAt": {
456
486
"description": "Start date. Partial date.",
457
487
"type": "string"
458
488
},
459
489
"upstream": {
460
490
"description": "Name of the community, org, or person the involvement is with.",
461
491
"type": "string"
462
492
},
463
493
"upstreamDid": {
464
494
"description": "DID of the upstream, when known.",
465
495
"format": "did",
466
496
"type": "string"
467
497
},
468
498
"upstreamUrl": {
469
499
"description": "URL of the upstream, when provided.",
470
500
"format": "uri",
471
501
"type": "string"
472
502
}
473
503
},
474
504
"required": [
475
505
"rkey",
476
506
"kind",
477
507
"links",
478
508
"legacy"
479
509
],
480
510
"type": "object"
481
511
},
482
512
"languageView": {
483
513
"description": "A language with proficiency.",
484
514
"properties": {
485
515
"language": {
486
516
"description": "Language name or BCP-47 tag.",
487
517
"type": "string"
488
518
},
489
519
"proficiency": {
490
520
"description": "Proficiency level.",
491
521
"ref": "id.sifa.defs#proficiency",
492
522
"type": "ref"
493
523
},
494
524
"rkey": {
495
525
"description": "Record key of the language record.",
496
526
"type": "string"
497
527
}
498
528
},
499
529
"required": [
500
530
"rkey",
501
531
"language"
502
532
],
503
533
"type": "object"
504
534
},
505
535
"locationView": {
506
536
"description": "A professional location on the profile.",
507
537
"properties": {
508
538
"countryCode": {
509
539
"description": "ISO 3166-1 alpha-2 country code.",
510
540
"type": "string"
511
541
},
512
542
"isPrimary": {
513
543
"description": "Whether this is the primary location.",
514
544
"type": "boolean"
515
545
},
516
546
"label": {
517
547
"description": "Optional custom label.",
518
548
"type": "string"
519
549
},
520
550
"location": {
521
551
"description": "Assembled human-readable location string.",
522
552
"type": "string"
523
553
},
524
554
"locationCountry": {
525
555
"description": "Country name.",
526
556
"type": "string"
527
557
},
528
558
"locationLocality": {
529
559
"description": "City or locality.",
530
560
"type": "string"
531
561
},
532
562
"locationRegion": {
533
563
"description": "Region, state, or province.",
534
564
"type": "string"
535
565
},
536
566
"rkey": {
537
567
"description": "Record key of the location record.",
538
568
"type": "string"
539
569
},
540
570
"type": {
541
571
"description": "The role this location plays.",
542
572
"ref": "id.sifa.defs#locationType",
543
573
"type": "ref"
544
574
}
545
575
},
546
576
"required": [
547
577
"rkey"
548
578
],
549
579
"type": "object"
550
580
},
551
581
"main": {
552
582
"description": "Get the aggregated public profile view for an actor.",
553
583
"errors": [
554
584
{
555
585
"description": "No profile exists for the given actor, or the actor could not be resolved.",
556
586
"name": "ProfileNotFound"
557
587
}
558
588
],
559
589
"output": {
560
590
"encoding": "application/json",
561
591
"schema": {
562
592
"ref": "#profileView",
563
593
"type": "ref"
564
594
}
565
595
},
566
596
"parameters": {
567
597
"properties": {
568
598
"actor": {
569
599
"description": "The handle or DID of the profile to fetch.",
570
600
"format": "at-identifier",
571
601
"type": "string"
572
602
}
573
603
},
574
604
"required": [
575
605
"actor"
576
606
],
577
607
"type": "params"
578
608
},
579
609
"type": "query"
580
610
},
581
611
"pdsProviderView": {
582
612
"description": "A PDS provider descriptor.",
583
613
"properties": {
584
614
"host": {
585
615
"description": "PDS hostname.",
586
616
"type": "string"
587
617
},
588
618
"name": {
589
619
"description": "Human-readable provider name.",
590
620
"type": "string"
591
621
}
592
622
},
593
623
"required": [
594
624
"name"
595
625
],
596
626
"type": "object"
597
627
},
628
+
"positionVerification": {
629
+
"description": "Summary of the id.sifa.verification.employment record Sifa issued for a position.",
630
+
"properties": {
631
+
"expiresAt": {
632
+
"description": "Present only while the verification rests on email alone.",
633
+
"format": "datetime",
634
+
"type": "string"
635
+
},
636
+
"methods": {
637
+
"description": "Every method that currently backs the verification.",
638
+
"items": {
639
+
"ref": "id.sifa.defs#verificationMethod",
640
+
"type": "ref"
641
+
},
642
+
"type": "array"
643
+
},
644
+
"status": {
645
+
"ref": "id.sifa.defs#employmentStatus",
646
+
"type": "ref"
647
+
},
648
+
"uri": {
649
+
"description": "AT-URI of the issued id.sifa.verification.employment record in Sifa's issuer repository.",
650
+
"format": "at-uri",
651
+
"type": "string"
652
+
},
653
+
"verifiedAt": {
654
+
"format": "datetime",
655
+
"type": "string"
656
+
}
657
+
},
658
+
"required": [
659
+
"methods",
660
+
"status",
661
+
"verifiedAt"
662
+
],
663
+
"type": "object"
664
+
},
598
665
"positionView": {
599
666
"description": "A work-history entry.",
600
667
"properties": {
601
668
"agentRef": {
602
-
"description": "Canonical company reference (name plus optional did/entityRef). Mirrors the flat company/companyDid/entityRef fields during the migration; the two always agree.",
669
+
"description": "Canonical organization reference (name plus optional did/entityRef). Mirrors the flat company/companyDid/entityRef fields during the migration; the two always agree.",
603
670
"ref": "id.sifa.defs#agentRef",
604
671
"type": "ref"
605
672
},
606
673
"company": {
607
-
"description": "Company or organization name.",
674
+
"description": "Organization name.",
608
675
"type": "string"
609
676
},
610
677
"companyDid": {
611
-
"description": "DID of the company, when known.",
678
+
"description": "DID of the organization, when known.",
612
679
"format": "did",
613
680
"type": "string"
614
681
},
615
682
"countryCode": {
616
683
"description": "ISO 3166-1 alpha-2 country code.",
617
684
"type": "string"
618
685
},
619
686
"currentCompanyName": {
620
687
"description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
621
688
"type": "string"
622
689
},
623
690
"description": {
624
691
"description": "Role description.",
625
692
"type": "string"
626
693
},
627
694
"employmentType": {
628
695
"description": "Employment arrangement.",
629
696
"ref": "id.sifa.defs#employmentType",
630
697
"type": "ref"
631
698
},
632
699
"endedAt": {
633
700
"description": "End date. Partial date, absent if current.",
634
701
"type": "string"
635
702
},
636
703
"entityName": {
637
-
"description": "Resolved canonical company name.",
704
+
"description": "Resolved canonical organization name.",
638
705
"type": "string"
639
706
},
640
707
"entityRef": {
641
-
"description": "Pointer URI to the resolved company entity.",
708
+
"description": "Pointer URI to the resolved organization entity.",
642
709
"format": "uri",
643
710
"type": "string"
644
711
},
645
712
"location": {
646
713
"description": "Assembled human-readable location string.",
647
714
"type": "string"
648
715
},
649
716
"locationCountry": {
650
717
"description": "Country name.",
651
718
"type": "string"
652
719
},
653
720
"locationLocality": {
654
721
"description": "City or locality.",
655
722
"type": "string"
656
723
},
657
724
"locationRegion": {
658
725
"description": "Region, state, or province.",
659
726
"type": "string"
660
727
},
661
728
"onBehalfOf": {
662
729
"description": "Party this role is held on behalf of, when the person represents someone else — most often a fund whose board seat this is. A disclosure, not a role type. Absent for independent roles.",
663
730
"type": "string"
664
731
},
665
732
"onBehalfOfDid": {
666
733
"description": "DID of the represented party, when known. May be an organization or a person.",
667
734
"format": "did",
668
735
"type": "string"
669
736
},
670
737
"onBehalfOfEntityName": {
671
738
"description": "Resolved canonical name for the represented party. Present only when the reference resolves; clients render onBehalfOf otherwise, never the raw URI.",
672
739
"type": "string"
673
740
},
674
741
"onBehalfOfEntityRef": {
675
742
"description": "Pointer URI to the resolved entity for the represented party.",
676
743
"format": "uri",
677
744
"type": "string"
678
745
},
679
746
"primary": {
680
747
"description": "Whether this is the user's primary current position.",
681
748
"type": "boolean"
682
749
},
683
750
"rkey": {
684
751
"description": "Record key of the position record.",
685
752
"type": "string"
686
753
},
687
754
"skillRkeys": {
688
755
"description": "Record keys of skills linked to this position.",
689
756
"items": {
690
757
"type": "string"
691
758
},
692
759
"type": "array"
693
760
},
694
761
"startedAt": {
695
762
"description": "Start date. Partial date (YYYY, YYYY-MM, or YYYY-MM-DD).",
696
763
"type": "string"
697
764
},
698
765
"title": {
699
766
"description": "Job title or role.",
700
767
"type": "string"
701
768
},
769
+
"verification": {
770
+
"description": "Sifa's verification of this position, when one is issued. Absent when the position is not verified; absence is not a negative signal.",
771
+
"ref": "#positionVerification",
772
+
"type": "ref"
773
+
},
702
774
"workplaceType": {
703
775
"description": "Workplace arrangement.",
704
776
"ref": "id.sifa.defs#workplaceType",
705
777
"type": "ref"
706
778
}
707
779
},
708
780
"required": [
709
781
"rkey",
710
782
"title"
711
783
],
712
784
"type": "object"
713
785
},
714
786
"presentationDeliveryView": {
715
787
"description": "A single delivery of a presentation at an occasion.",
716
788
"properties": {
717
789
"coSpeakers": {
718
790
"description": "Co-speakers on this delivery.",
719
791
"items": {
720
792
"ref": "#coSpeakerView",
721
793
"type": "ref"
722
794
},
723
795
"type": "array"
724
796
},
725
797
"date": {
726
798
"description": "Delivery date. Partial date.",
727
799
"type": "string"
728
800
},
729
801
"eventName": {
730
802
"description": "Name of the event or occasion.",
731
803
"type": "string"
732
804
},
733
805
"eventUri": {
734
806
"description": "AT-URI of a linked event record.",
735
807
"format": "at-uri",
736
808
"type": "string"
737
809
},
738
810
"links": {
739
811
"description": "Related links for this delivery.",
740
812
"items": {
741
813
"ref": "id.sifa.defs#presentationLink",
742
814
"type": "ref"
743
815
},
744
816
"type": "array"
745
817
},
746
818
"location": {
747
819
"description": "Event location.",
748
820
"type": "string"
749
821
},
750
822
"mode": {
751
823
"description": "Delivery mode (e.g. in-person, remote, hybrid).",
752
824
"type": "string"
753
825
},
754
826
"presentationRkey": {
755
827
"description": "Record key of the parent presentation, when grouped.",
756
828
"type": "string"
757
829
},
758
830
"rkey": {
759
831
"description": "Record key of the delivery record.",
760
832
"type": "string"
761
833
},
762
834
"role": {
763
835
"description": "The user's role in the delivery.",
764
836
"ref": "id.sifa.defs#presentationRole",
765
837
"type": "ref"
766
838
},
767
839
"status": {
768
840
"description": "Delivery status.",
769
841
"type": "string"
770
842
},
771
843
"title": {
772
844
"description": "Delivery title (may differ from the presentation title).",
773
845
"type": "string"
774
846
}
775
847
},
776
848
"required": [
777
849
"rkey"
778
850
],
779
851
"type": "object"
780
852
},
781
853
"presentationView": {
782
854
"description": "A talk or session (content), with its deliveries grouped underneath.",
783
855
"properties": {
784
856
"deliveries": {
785
857
"description": "Deliveries of this presentation.",
786
858
"items": {
787
859
"ref": "#presentationDeliveryView",
788
860
"type": "ref"
789
861
},
790
862
"type": "array"
791
863
},
792
864
"description": {
793
865
"description": "Presentation description.",
794
866
"type": "string"
795
867
},
796
868
"duration": {
797
869
"description": "Duration range in minutes.",
798
870
"ref": "#durationView",
799
871
"type": "ref"
800
872
},
801
873
"intendedAudiences": {
802
874
"description": "Intended audiences.",
803
875
"items": {
804
876
"type": "string"
805
877
},
806
878
"type": "array"
807
879
},
808
880
"links": {
809
881
"description": "Related links (slides, recording, etc.).",
810
882
"items": {
811
883
"ref": "id.sifa.defs#presentationLink",
812
884
"type": "ref"
813
885
},
814
886
"type": "array"
815
887
},
816
888
"primary": {
817
889
"description": "Whether this is the user's primary talk.",
818
890
"type": "boolean"
819
891
},
820
892
"rkey": {
821
893
"description": "Record key of the presentation record.",
822
894
"type": "string"
823
895
},
824
896
"title": {
825
897
"description": "Presentation title.",
826
898
"type": "string"
827
899
},
828
900
"writeupUri": {
829
901
"description": "AT-URI of a linked write-up record.",
830
902
"format": "at-uri",
831
903
"type": "string"
832
904
}
833
905
},
834
906
"required": [
835
907
"rkey",
836
908
"title",
837
909
"deliveries"
838
910
],
839
911
"type": "object"
840
912
},
841
913
"profileView": {
842
914
"description": "The aggregated public professional profile view.",
843
915
"properties": {
844
916
"about": {
845
917
"description": "Longer professional summary or bio.",
846
918
"maxGraphemes": 5000,
847
919
"maxLength": 50000,
848
920
"type": "string"
849
921
},
850
922
"activeApps": {
851
923
"description": "AT Protocol apps this account has recently created records in.",
852
924
"items": {
853
925
"ref": "#activeAppView",
854
926
"type": "ref"
855
927
},
856
928
"type": "array"
857
929
},
858
930
"atfundContribute": {
859
931
"description": "Optional contribution/funding link.",
860
932
"ref": "#atfundLink",
861
933
"type": "ref"
862
934
},
863
935
"atprotoFollowersCount": {
864
936
"description": "Number of app.bsky.graph followers.",
865
937
"type": "integer"
866
938
},
867
939
"availableFromUtc": {
868
940
"description": "Start of an availability window, as a UTC offset, if set.",
869
941
"type": "integer"
870
942
},
871
943
"availableToUtc": {
872
944
"description": "End of an availability window, as a UTC offset, if set.",
873
945
"type": "integer"
874
946
},
875
947
"avatar": {
876
948
"description": "URL of the profile avatar image.",
877
949
"format": "uri",
878
950
"type": "string"
879
951
},
880
952
"blueskyVerified": {
881
953
"description": "Whether the account holds a Bluesky verification.",
882
954
"type": "boolean"
883
955
},
884
956
"blueskyVerifiedAt": {
885
957
"description": "When the Bluesky verification was issued.",
886
958
"format": "datetime",
887
959
"type": "string"
888
960
},
889
961
"certifications": {
890
962
"description": "Certifications and licenses.",
891
963
"items": {
892
964
"ref": "#certificationView",
893
965
"type": "ref"
894
966
},
895
967
"type": "array"
896
968
},
897
969
"claimed": {
898
970
"description": "Whether the profile has been claimed by its owner on Sifa.",
899
971
"type": "boolean"
900
972
},
901
973
"connectionsCount": {
902
974
"description": "Number of confirmed professional connections.",
903
975
"type": "integer"
904
976
},
905
977
"countryCode": {
906
978
"description": "ISO 3166-1 alpha-2 country code for the primary location.",
907
979
"type": "string"
908
980
},
909
981
"courses": {
910
982
"description": "Courses, optionally linked to a credential.",
911
983
"items": {
912
984
"ref": "#courseView",
913
985
"type": "ref"
914
986
},
915
987
"type": "array"
916
988
},
917
989
"createdAt": {
918
990
"description": "When the profile record was created.",
919
991
"format": "datetime",
920
992
"type": "string"
921
993
},
922
994
"did": {
923
995
"description": "The account DID. Stable identifier for the profile.",
924
996
"format": "did",
925
997
"type": "string"
926
998
},
927
999
"displayName": {
928
1000
"description": "Display name shown on the profile.",
929
1001
"maxGraphemes": 128,
930
1002
"maxLength": 1280,
931
1003
"type": "string"
932
1004
},
933
1005
"education": {
934
1006
"description": "Education history entries.",
935
1007
"items": {
936
1008
"ref": "#educationView",
937
1009
"type": "ref"
938
1010
},
939
1011
"type": "array"
940
1012
},
941
1013
"externalAccounts": {
942
1014
"description": "Linked external accounts, with verification state.",
943
1015
"items": {
944
1016
"ref": "#externalAccountView",
945
1017
"type": "ref"
946
1018
},
947
1019
"type": "array"
948
1020
},
949
1021
"familyName": {
950
1022
"description": "Family (last) name, when provided.",
951
1023
"maxGraphemes": 128,
952
1024
"maxLength": 1280,
953
1025
"type": "string"
954
1026
},
955
1027
"followersCount": {
956
1028
"description": "Number of Sifa graph followers.",
957
1029
"type": "integer"
958
1030
},
959
1031
"followingCount": {
960
1032
"description": "Number of accounts this profile follows on the Sifa graph.",
961
1033
"type": "integer"
962
1034
},
963
1035
"givenName": {
964
1036
"description": "Given (first) name, when provided.",
965
1037
"maxGraphemes": 128,
966
1038
"maxLength": 1280,
967
1039
"type": "string"
968
1040
},
969
1041
"handle": {
970
1042
"description": "The current handle for the account.",
971
1043
"format": "handle",
972
1044
"type": "string"
973
1045
},
974
1046
"headline": {
975
1047
"description": "Short professional headline.",
976
1048
"maxGraphemes": 300,
977
1049
"maxLength": 3000,
978
1050
"type": "string"
979
1051
},
980
1052
"honors": {
981
1053
"description": "Honors and awards.",
982
1054
"items": {
983
1055
"ref": "#honorView",
984
1056
"type": "ref"
985
1057
},
986
1058
"type": "array"
987
1059
},
988
1060
"industries": {
989
1061
"description": "Industry/domain pairs the user works in.",
990
1062
"items": {
991
1063
"ref": "id.sifa.defs#industryDomain",
992
1064
"type": "ref"
993
1065
},
994
1066
"type": "array"
995
1067
},
996
1068
"involvement": {
997
1069
"description": "Community, open-source, charity, and civic involvement.",
998
1070
"items": {
999
1071
"ref": "#involvementView",
1000
1072
"type": "ref"
1001
1073
},
1002
1074
"type": "array"
1003
1075
},
1004
1076
"langs": {
1005
1077
"description": "BCP-47 language tags the user has indicated.",
1006
1078
"items": {
1007
1079
"type": "string"
1008
1080
},
1009
1081
"type": "array"
1010
1082
},
1011
1083
"languages": {
1012
1084
"description": "Spoken/written languages with proficiency.",
1013
1085
"items": {
1014
1086
"ref": "#languageView",
1015
1087
"type": "ref"
1016
1088
},
1017
1089
"type": "array"
1018
1090
},
1019
1091
"location": {
1020
1092
"description": "Assembled human-readable primary location string.",
1021
1093
"type": "string"
1022
1094
},
1023
1095
"locationCountry": {
1024
1096
"description": "Primary location country name.",
1025
1097
"type": "string"
1026
1098
},
1027
1099
"locationLocality": {
1028
1100
"description": "Primary location city or locality.",
1029
1101
"type": "string"
1030
1102
},
1031
1103
"locationRegion": {
1032
1104
"description": "Primary location region, state, or province.",
1033
1105
"type": "string"
1034
1106
},
1035
1107
"locations": {
1036
1108
"description": "All professional locations on the profile.",
1037
1109
"items": {
1038
1110
"ref": "#locationView",
1039
1111
"type": "ref"
1040
1112
},
1041
1113
"type": "array"
1042
1114
},
1043
1115
"metInPersonCount": {
1044
1116
"description": "Number of confirmed in-person meetings.",
1045
1117
"type": "integer"
1046
1118
},
1047
1119
"openTo": {
1048
1120
"description": "The kinds of opportunities the user is open to.",
1049
1121
"items": {
1050
1122
"ref": "id.sifa.defs#openToWorkStatus",
1051
1123
"type": "ref"
1052
1124
},
1053
1125
"type": "array"
1054
1126
},
1055
1127
"pdsProvider": {
1056
1128
"description": "The account PDS provider.",
1057
1129
"ref": "#pdsProviderView",
1058
1130
"type": "ref"
1059
1131
},
1060
1132
"positions": {
1061
1133
"description": "Work history entries.",
1062
1134
"items": {
1063
1135
"ref": "#positionView",
1064
1136
"type": "ref"
1065
1137
},
1066
1138
"type": "array"
1067
1139
},
1068
1140
"preferredWorkplace": {
1069
1141
"description": "Preferred workplace arrangements.",
1070
1142
"items": {
1071
1143
"ref": "id.sifa.defs#workplaceType",
1072
1144
"type": "ref"
1073
1145
},
1074
1146
"type": "array"
1075
1147
},
1076
1148
"presentationDeliveries": {
1077
1149
"description": "Standalone deliveries that reference no owned presentation.",
1078
1150
"items": {
1079
1151
"ref": "#presentationDeliveryView",
1080
1152
"type": "ref"
1081
1153
},
1082
1154
"type": "array"
1083
1155
},
1084
1156
"presentations": {
1085
1157
"description": "Talks and sessions (content), each with its deliveries grouped underneath.",
1086
1158
"items": {
1087
1159
"ref": "#presentationView",
1088
1160
"type": "ref"
1089
1161
},
1090
1162
"type": "array"
1091
1163
},
1092
1164
"projects": {
1093
1165
"description": "Personal or professional projects.",
1094
1166
"items": {
1095
1167
"ref": "#projectView",
1096
1168
"type": "ref"
1097
1169
},
1098
1170
"type": "array"
1099
1171
},
1100
1172
"pronouns": {
1101
1173
"description": "Self-described pronouns.",
1102
1174
"maxGraphemes": 64,
1103
1175
"maxLength": 640,
1104
1176
"type": "string"
1105
1177
},
1106
1178
"publications": {
1107
1179
"description": "Publications, merged from Sifa records and linked ORCID works.",
1108
1180
"items": {
1109
1181
"ref": "#publicationView",
1110
1182
"type": "ref"
1111
1183
},
1112
1184
"type": "array"
1113
1185
},
1114
1186
"skills": {
1115
1187
"description": "Skills, optionally linked to positions.",
1116
1188
"items": {
1117
1189
"ref": "#skillView",
1118
1190
"type": "ref"
1119
1191
},
1120
1192
"type": "array"
1121
1193
},
1122
1194
"volunteering": {
1123
1195
"description": "Legacy volunteering entries. New entries are surfaced under involvement.",
1124
1196
"items": {
1125
1197
"ref": "#volunteeringView",
1126
1198
"type": "ref"
1127
1199
},
1128
1200
"type": "array"
1129
1201
},
1130
1202
"website": {
1131
1203
"description": "Primary personal or professional website.",
1132
1204
"format": "uri",
1133
1205
"type": "string"
1134
1206
}
1135
1207
},
1136
1208
"required": [
1137
1209
"did",
1138
1210
"handle"
1139
1211
],
1140
1212
"type": "object"
1141
1213
},
1214
+
"projectEventView": {
1215
+
"properties": {
1216
+
"country": {
1217
+
"description": "ISO 3166-1 alpha-2 country code, from the event's first address.",
1218
+
"type": "string"
1219
+
},
1220
+
"locality": {
1221
+
"description": "City, from the event's first address.",
1222
+
"type": "string"
1223
+
},
1224
+
"mode": {
1225
+
"description": "Event mode token, from the event record.",
1226
+
"type": "string"
1227
+
},
1228
+
"name": {
1229
+
"description": "Event name, from the event record.",
1230
+
"type": "string"
1231
+
},
1232
+
"role": {
1233
+
"description": "The user's role at this occurrence, if it differs from the project's role.",
1234
+
"type": "string"
1235
+
},
1236
+
"startsAt": {
1237
+
"description": "Event start, from the event record.",
1238
+
"format": "datetime",
1239
+
"type": "string"
1240
+
},
1241
+
"uri": {
1242
+
"description": "AT-URI of the linked community.lexicon.calendar.event.",
1243
+
"format": "at-uri",
1244
+
"type": "string"
1245
+
},
1246
+
"url": {
1247
+
"description": "Event website, from the event's first uri.",
1248
+
"format": "uri",
1249
+
"type": "string"
1250
+
}
1251
+
},
1252
+
"required": [
1253
+
"uri"
1254
+
],
1255
+
"type": "object"
1256
+
},
1142
1257
"projectView": {
1143
1258
"description": "A project entry.",
1144
1259
"properties": {
1145
1260
"description": {
1146
1261
"description": "Project description.",
1147
1262
"type": "string"
1148
1263
},
1149
1264
"endDate": {
1150
1265
"description": "End date. Partial date.",
1151
1266
"type": "string"
1152
1267
},
1268
+
"events": {
1269
+
"description": "Events this project organized or hosted (from the record's events field), with display fields resolved from the referenced event records.",
1270
+
"items": {
1271
+
"ref": "#projectEventView",
1272
+
"type": "ref"
1273
+
},
1274
+
"maxLength": 200,
1275
+
"type": "array"
1276
+
},
1153
1277
"name": {
1154
1278
"description": "Project name.",
1155
1279
"type": "string"
1156
1280
},
1157
1281
"primary": {
1158
1282
"description": "Whether this is the user's primary ongoing project.",
1159
1283
"type": "boolean"
1160
1284
},
1161
1285
"rkey": {
1162
1286
"description": "Record key of the project record.",
1163
1287
"type": "string"
1164
1288
},
1289
+
"role": {
1290
+
"description": "The user's own role on the project.",
1291
+
"type": "string"
1292
+
},
1165
1293
"startDate": {
1166
1294
"description": "Start date. Partial date.",
1167
1295
"type": "string"
1168
1296
},
1169
1297
"url": {
1170
1298
"description": "Project URL.",
1171
1299
"format": "uri",
1172
1300
"type": "string"
1173
1301
}
1174
1302
},
1175
1303
"required": [
1176
1304
"rkey",
1177
1305
"name"
1178
1306
],
1179
1307
"type": "object"
1180
1308
},
1181
1309
"publicationView": {
1182
1310
"description": "A publication, merged from Sifa and linked ORCID works.",
1183
1311
"properties": {
1184
1312
"contributors": {
1185
1313
"description": "Linked contributors (co-authors).",
1186
1314
"items": {
1187
1315
"ref": "#contributorView",
1188
1316
"type": "ref"
1189
1317
},
1190
1318
"type": "array"
1191
1319
},
1192
1320
"date": {
1193
1321
"description": "Publication date. Partial date.",
1194
1322
"type": "string"
1195
1323
},
1196
1324
"description": {
1197
1325
"description": "Description or abstract.",
1198
1326
"type": "string"
1199
1327
},
1200
1328
"doi": {
1201
1329
"description": "Digital Object Identifier.",
1202
1330
"type": "string"
1203
1331
},
1204
1332
"image": {
1205
1333
"description": "Cover or preview image URL.",
1206
1334
"format": "uri",
1207
1335
"type": "string"
1208
1336
},
1209
1337
"orcidCorroborated": {
1210
1338
"description": "Whether an ORCID work corroborates a Sifa record.",
1211
1339
"type": "boolean"
1212
1340
},
1213
1341
"primary": {
1214
1342
"description": "Whether this is the user's primary publication.",
1215
1343
"type": "boolean"
1216
1344
},
1217
1345
"publicationName": {
1218
1346
"description": "Name of the source publication venue, when present.",
1219
1347
"type": "string"
1220
1348
},
1221
1349
"publicationUri": {
1222
1350
"description": "AT-URI of the source publication record, when present.",
1223
1351
"format": "at-uri",
1224
1352
"type": "string"
1225
1353
},
1226
1354
"publicationUrl": {
1227
1355
"description": "Canonical publication URL, when present.",
1228
1356
"format": "uri",
1229
1357
"type": "string"
1230
1358
},
1231
1359
"publisher": {
1232
1360
"description": "Publisher or journal.",
1233
1361
"type": "string"
1234
1362
},
1363
+
"relatedIdentifiers": {
1364
+
"description": "Other versions or forms of this work: the relations declared on the record plus, for a DOI, those registered with DataCite or Crossref. Clients can fold a preprint under its published version.",
1365
+
"items": {
1366
+
"ref": "id.sifa.defs#relatedIdentifier",
1367
+
"type": "ref"
1368
+
},
1369
+
"type": "array"
1370
+
},
1235
1371
"rkey": {
1236
1372
"description": "Record key, or a synthetic key for ORCID-only works.",
1237
1373
"type": "string"
1238
1374
},
1239
1375
"subtitle": {
1240
1376
"description": "Subtitle.",
1241
1377
"type": "string"
1242
1378
},
1243
1379
"title": {
1244
1380
"description": "Publication title.",
1245
1381
"type": "string"
1246
1382
},
1247
1383
"type": {
1248
1384
"description": "Publication type token.",
1249
1385
"type": "string"
1250
1386
},
1251
1387
"typeLabel": {
1252
1388
"description": "Human-readable publication type.",
1253
1389
"type": "string"
1254
1390
},
1255
1391
"url": {
1256
1392
"description": "Publication URL.",
1257
1393
"format": "uri",
1258
1394
"type": "string"
1259
1395
},
1260
1396
"verified": {
1261
1397
"description": "Whether the publication is verified (e.g. via ORCID).",
1262
1398
"type": "boolean"
1263
1399
},
1264
1400
"verifiedVia": {
1265
1401
"description": "Verification source, when verified.",
1266
1402
"type": "string"
1267
1403
}
1268
1404
},
1269
1405
"required": [
1270
1406
"rkey",
1271
1407
"title",
1272
1408
"verified"
1273
1409
],
1274
1410
"type": "object"
1275
1411
},
1276
1412
"skillView": {
1277
1413
"description": "A skill entry.",
1278
1414
"properties": {
1279
1415
"category": {
1280
1416
"description": "Broad category.",
1281
1417
"ref": "id.sifa.defs#skillCategory",
1282
1418
"type": "ref"
1283
1419
},
1284
1420
"name": {
1285
1421
"description": "Skill name.",
1286
1422
"type": "string"
1287
1423
},
1288
1424
"positionRkeys": {
1289
1425
"description": "Record keys of positions this skill is linked to.",
1290
1426
"items": {
1291
1427
"type": "string"
1292
1428
},
1293
1429
"type": "array"
1294
1430
},
1295
1431
"rkey": {
1296
1432
"description": "Record key of the skill record.",
1297
1433
"type": "string"
1298
1434
}
1299
1435
},
1300
1436
"required": [
1301
1437
"rkey",
1302
1438
"name"
1303
1439
],
1304
1440
"type": "object"
1305
1441
},
1306
1442
"volunteeringView": {
1307
1443
"description": "A legacy volunteering entry.",
1308
1444
"properties": {
1309
1445
"agentRef": {
1310
1446
"description": "Canonical organization reference (name plus optional did/entityRef). Mirrors the flat organization/entityRef fields during the migration; the two always agree.",
1311
1447
"ref": "id.sifa.defs#agentRef",
1312
1448
"type": "ref"
1313
1449
},
1314
1450
"cause": {
1315
1451
"description": "Cause supported.",
1316
1452
"type": "string"
1317
1453
},
1318
1454
"currentCompanyName": {
1319
1455
"description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
1320
1456
"type": "string"
1321
1457
},
1322
1458
"description": {
1323
1459
"description": "Description.",
1324
1460
"type": "string"
1325
1461
},
1326
1462
"endDate": {
1327
1463
"description": "End date. Partial date.",
1328
1464
"type": "string"
1329
1465
},
1330
1466
"entityRef": {
1331
1467
"description": "Pointer URI to the resolved organization entity.",
1332
1468
"format": "uri",
1333
1469
"type": "string"
1334
1470
},
1335
1471
"organization": {
1336
1472
"description": "Organization name.",
1337
1473
"type": "string"
1338
1474
},
1339
1475
"rkey": {
1340
1476
"description": "Record key of the volunteering record.",
1341
1477
"type": "string"
1342
1478
},
1343
1479
"role": {
1344
1480
"description": "Role held.",
1345
1481
"type": "string"
1346
1482
},
1347
1483
"startDate": {
1348
1484
"description": "Start date. Partial date.",
1349
1485
"type": "string"
1350
1486
}
1351
1487
},
1352
1488
"required": [
1353
1489
"rkey",
1354
1490
"organization"
1355
1491
],
1356
1492
"type": "object"
1357
1493
}
1358
1494
},
1359
1495
"description": "Get the aggregated public professional profile for an actor, as computed by a Sifa AppView. This view joins a user's id.sifa.* records across all sections (positions, education, skills, endorsements received, and more) plus AppView-computed aggregates (follower/connection counts, active apps, verification state). Raw records remain readable directly from the user's PDS; this method exposes the enriched, joined view that only exists in the AppView. Public projection: viewer-specific and internal fields are not included.",
1360
1496
"id": "id.sifa.getProfileView",
1361
1497
"lexicon": 1
1362
1498
}