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