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