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