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