@snokam/mcp-api 0.73.2 → 0.73.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/specs/production/recruitment.json +528 -528
- package/specs/test/recruitment.json +528 -528
|
@@ -261,14 +261,14 @@
|
|
|
261
261
|
]
|
|
262
262
|
}
|
|
263
263
|
},
|
|
264
|
-
"/v1.0/protected/candidates/{id}/
|
|
265
|
-
"
|
|
264
|
+
"/v1.0/protected/candidates/{id}/promote": {
|
|
265
|
+
"post": {
|
|
266
266
|
"tags": [
|
|
267
267
|
"Candidates"
|
|
268
268
|
],
|
|
269
|
-
"summary": "
|
|
270
|
-
"description": "
|
|
271
|
-
"operationId": "
|
|
269
|
+
"summary": "Promote a public job application to the pipeline",
|
|
270
|
+
"description": "Flips fromApplication=false and bumps status to INTRODUCTION so the candidate appears in the admin pipeline.",
|
|
271
|
+
"operationId": "PromoteApplication",
|
|
272
272
|
"parameters": [
|
|
273
273
|
{
|
|
274
274
|
"name": "id",
|
|
@@ -278,31 +278,22 @@
|
|
|
278
278
|
"type": "string"
|
|
279
279
|
},
|
|
280
280
|
"x-ms-summary": "Candidate Sanity id"
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
"name": "event",
|
|
284
|
-
"in": "query",
|
|
285
|
-
"required": true,
|
|
286
|
-
"schema": {
|
|
287
|
-
"type": "string"
|
|
288
|
-
},
|
|
289
|
-
"x-ms-summary": "Event name: Created, Introduction, Offer, Signed, Onboarding, UserCreationReview, Offboarding"
|
|
290
281
|
}
|
|
291
282
|
],
|
|
292
283
|
"responses": {
|
|
293
284
|
"200": {
|
|
294
|
-
"description": "
|
|
285
|
+
"description": "The promoted candidate",
|
|
295
286
|
"content": {
|
|
296
287
|
"application/json": {
|
|
297
288
|
"schema": {
|
|
298
|
-
"$ref": "#/components/schemas/
|
|
289
|
+
"$ref": "#/components/schemas/sanityCandidate"
|
|
299
290
|
}
|
|
300
291
|
}
|
|
301
292
|
},
|
|
302
293
|
"x-ms-summary": "Success"
|
|
303
294
|
},
|
|
304
295
|
"400": {
|
|
305
|
-
"description": "
|
|
296
|
+
"description": "Candidate is not a public job application",
|
|
306
297
|
"content": {
|
|
307
298
|
"application/json": {
|
|
308
299
|
"schema": {
|
|
@@ -330,20 +321,150 @@
|
|
|
330
321
|
]
|
|
331
322
|
}
|
|
332
323
|
},
|
|
333
|
-
"/v1.0/protected/candidates/
|
|
324
|
+
"/v1.0/protected/candidates/{id}/reject": {
|
|
334
325
|
"post": {
|
|
335
326
|
"tags": [
|
|
336
327
|
"Candidates"
|
|
337
328
|
],
|
|
338
|
-
"summary": "
|
|
339
|
-
"description": "
|
|
340
|
-
"operationId": "
|
|
329
|
+
"summary": "Reject a candidate",
|
|
330
|
+
"description": "Sets status=REJECTED. Optionally sends an admin-edited rejection email and/or SMS — both default to off so the status flip is the only guaranteed side-effect.",
|
|
331
|
+
"operationId": "RejectCandidate",
|
|
332
|
+
"parameters": [
|
|
333
|
+
{
|
|
334
|
+
"name": "id",
|
|
335
|
+
"in": "path",
|
|
336
|
+
"required": true,
|
|
337
|
+
"schema": {
|
|
338
|
+
"type": "string"
|
|
339
|
+
},
|
|
340
|
+
"x-ms-summary": "Candidate Sanity id"
|
|
341
|
+
}
|
|
342
|
+
],
|
|
341
343
|
"requestBody": {
|
|
342
|
-
"description": "
|
|
344
|
+
"description": "Optional admin-edited email/SMS draft + per-channel send flags. Omit to reject without notifying.",
|
|
343
345
|
"content": {
|
|
344
346
|
"application/json": {
|
|
345
347
|
"schema": {
|
|
346
|
-
"$ref": "#/components/schemas/
|
|
348
|
+
"$ref": "#/components/schemas/rejectCandidateMessage"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"responses": {
|
|
354
|
+
"200": {
|
|
355
|
+
"description": "Payload of SanityCandidate",
|
|
356
|
+
"content": {
|
|
357
|
+
"application/json": {
|
|
358
|
+
"schema": {
|
|
359
|
+
"$ref": "#/components/schemas/sanityCandidate"
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"x-ms-summary": "Success"
|
|
364
|
+
},
|
|
365
|
+
"401": {
|
|
366
|
+
"description": "No description",
|
|
367
|
+
"x-ms-summary": "Unauthorized"
|
|
368
|
+
},
|
|
369
|
+
"404": {
|
|
370
|
+
"description": "No description",
|
|
371
|
+
"x-ms-summary": "Not Found"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
"security": [
|
|
375
|
+
{
|
|
376
|
+
"Implicit": [
|
|
377
|
+
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
378
|
+
]
|
|
379
|
+
}
|
|
380
|
+
]
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"/v1.0/protected/job-positions": {
|
|
384
|
+
"get": {
|
|
385
|
+
"tags": [
|
|
386
|
+
"JobPositions"
|
|
387
|
+
],
|
|
388
|
+
"summary": "List published job positions",
|
|
389
|
+
"description": "Returns every job position document. Used by the admin stillinger page.",
|
|
390
|
+
"operationId": "ListJobPositions",
|
|
391
|
+
"responses": {
|
|
392
|
+
"200": {
|
|
393
|
+
"description": "Payload of Array of SanityJobPosition",
|
|
394
|
+
"content": {
|
|
395
|
+
"application/json": {
|
|
396
|
+
"schema": {
|
|
397
|
+
"type": "array",
|
|
398
|
+
"items": {
|
|
399
|
+
"$ref": "#/components/schemas/sanityJobPosition"
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
"x-ms-summary": "Success"
|
|
405
|
+
},
|
|
406
|
+
"401": {
|
|
407
|
+
"description": "No description",
|
|
408
|
+
"x-ms-summary": "Unauthorized"
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"security": [
|
|
412
|
+
{
|
|
413
|
+
"Implicit": [
|
|
414
|
+
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
415
|
+
]
|
|
416
|
+
}
|
|
417
|
+
]
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
"/v1.0/protected/systems": {
|
|
421
|
+
"get": {
|
|
422
|
+
"tags": [
|
|
423
|
+
"Systems"
|
|
424
|
+
],
|
|
425
|
+
"summary": "List systems used for onboarding checklists",
|
|
426
|
+
"description": "Returns every system document. Used by the candidate detail and systems library pages.",
|
|
427
|
+
"operationId": "ListSystems",
|
|
428
|
+
"responses": {
|
|
429
|
+
"200": {
|
|
430
|
+
"description": "Payload of Array of SanitySystemsInner",
|
|
431
|
+
"content": {
|
|
432
|
+
"application/json": {
|
|
433
|
+
"schema": {
|
|
434
|
+
"type": "array",
|
|
435
|
+
"items": {
|
|
436
|
+
"$ref": "#/components/schemas/sanitySystemsInner"
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
"x-ms-summary": "Success"
|
|
442
|
+
},
|
|
443
|
+
"401": {
|
|
444
|
+
"description": "No description",
|
|
445
|
+
"x-ms-summary": "Unauthorized"
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
"security": [
|
|
449
|
+
{
|
|
450
|
+
"Implicit": [
|
|
451
|
+
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
452
|
+
]
|
|
453
|
+
}
|
|
454
|
+
]
|
|
455
|
+
},
|
|
456
|
+
"post": {
|
|
457
|
+
"tags": [
|
|
458
|
+
"Systems"
|
|
459
|
+
],
|
|
460
|
+
"summary": "Create a system",
|
|
461
|
+
"description": "Adds a new system to the onboarding/offboarding system library.",
|
|
462
|
+
"operationId": "CreateSystem",
|
|
463
|
+
"requestBody": {
|
|
464
|
+
"content": {
|
|
465
|
+
"application/json": {
|
|
466
|
+
"schema": {
|
|
467
|
+
"$ref": "#/components/schemas/sanityCreateSystem"
|
|
347
468
|
}
|
|
348
469
|
}
|
|
349
470
|
},
|
|
@@ -351,11 +472,11 @@
|
|
|
351
472
|
},
|
|
352
473
|
"responses": {
|
|
353
474
|
"200": {
|
|
354
|
-
"description": "Payload of
|
|
475
|
+
"description": "Payload of SanitySystemsInner",
|
|
355
476
|
"content": {
|
|
356
477
|
"application/json": {
|
|
357
478
|
"schema": {
|
|
358
|
-
"$ref": "#/components/schemas/
|
|
479
|
+
"$ref": "#/components/schemas/sanitySystemsInner"
|
|
359
480
|
}
|
|
360
481
|
}
|
|
361
482
|
},
|
|
@@ -386,55 +507,143 @@
|
|
|
386
507
|
]
|
|
387
508
|
}
|
|
388
509
|
},
|
|
389
|
-
"/v1.0/protected/
|
|
390
|
-
"
|
|
510
|
+
"/v1.0/protected/onboarding-chain/automated-system-titles": {
|
|
511
|
+
"get": {
|
|
391
512
|
"tags": [
|
|
392
|
-
"
|
|
513
|
+
"Systems"
|
|
393
514
|
],
|
|
394
|
-
"summary": "
|
|
395
|
-
"description": "
|
|
396
|
-
"operationId": "
|
|
397
|
-
"
|
|
515
|
+
"summary": "List systems handled end-to-end by the onboarding chain",
|
|
516
|
+
"description": "Returns title + maturity status (stable / beta) so the admin UI can badge systems that need no per-row admin action and flag the experimental ones.",
|
|
517
|
+
"operationId": "GetChainAutomatedSystemTitles",
|
|
518
|
+
"responses": {
|
|
519
|
+
"200": {
|
|
520
|
+
"description": "Payload of Array of ChainAutomatedSystem",
|
|
521
|
+
"content": {
|
|
522
|
+
"application/json": {
|
|
523
|
+
"schema": {
|
|
524
|
+
"type": "array",
|
|
525
|
+
"items": {
|
|
526
|
+
"$ref": "#/components/schemas/chainAutomatedSystem"
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
},
|
|
531
|
+
"x-ms-summary": "Success"
|
|
532
|
+
},
|
|
533
|
+
"401": {
|
|
534
|
+
"description": "No description",
|
|
535
|
+
"x-ms-summary": "Unauthorized"
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"security": [
|
|
398
539
|
{
|
|
399
|
-
"
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
540
|
+
"Implicit": [
|
|
541
|
+
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
542
|
+
]
|
|
543
|
+
}
|
|
544
|
+
]
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
"/v1.0/protected/onboarding-tasks": {
|
|
548
|
+
"get": {
|
|
549
|
+
"tags": [
|
|
550
|
+
"Tasks"
|
|
551
|
+
],
|
|
552
|
+
"summary": "List every onboarding task",
|
|
553
|
+
"description": "Returns all onboarding tasks with their Portable Text description so the admin can render an editable checklist with contextual notes.",
|
|
554
|
+
"operationId": "ListOnboardingTasks",
|
|
555
|
+
"responses": {
|
|
556
|
+
"200": {
|
|
557
|
+
"description": "Payload of Array of SanityTask",
|
|
558
|
+
"content": {
|
|
559
|
+
"application/json": {
|
|
560
|
+
"schema": {
|
|
561
|
+
"type": "array",
|
|
562
|
+
"items": {
|
|
563
|
+
"$ref": "#/components/schemas/sanityTask"
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
404
567
|
},
|
|
405
|
-
"x-ms-summary": "
|
|
568
|
+
"x-ms-summary": "Success"
|
|
569
|
+
},
|
|
570
|
+
"401": {
|
|
571
|
+
"description": "No description",
|
|
572
|
+
"x-ms-summary": "Unauthorized"
|
|
406
573
|
}
|
|
574
|
+
},
|
|
575
|
+
"security": [
|
|
576
|
+
{
|
|
577
|
+
"Implicit": [
|
|
578
|
+
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
579
|
+
]
|
|
580
|
+
}
|
|
581
|
+
]
|
|
582
|
+
}
|
|
583
|
+
},
|
|
584
|
+
"/v1.0/protected/offboarding-tasks": {
|
|
585
|
+
"get": {
|
|
586
|
+
"tags": [
|
|
587
|
+
"Tasks"
|
|
407
588
|
],
|
|
589
|
+
"summary": "List every offboarding task",
|
|
590
|
+
"description": "Returns all offboarding tasks with their Portable Text description for the admin offboarding checklist.",
|
|
591
|
+
"operationId": "ListOffboardingTasks",
|
|
408
592
|
"responses": {
|
|
409
593
|
"200": {
|
|
410
|
-
"description": "
|
|
594
|
+
"description": "Payload of Array of SanityTask",
|
|
411
595
|
"content": {
|
|
412
596
|
"application/json": {
|
|
413
597
|
"schema": {
|
|
414
|
-
"
|
|
598
|
+
"type": "array",
|
|
599
|
+
"items": {
|
|
600
|
+
"$ref": "#/components/schemas/sanityTask"
|
|
601
|
+
}
|
|
415
602
|
}
|
|
416
603
|
}
|
|
417
604
|
},
|
|
418
605
|
"x-ms-summary": "Success"
|
|
419
606
|
},
|
|
420
|
-
"
|
|
421
|
-
"description": "
|
|
607
|
+
"401": {
|
|
608
|
+
"description": "No description",
|
|
609
|
+
"x-ms-summary": "Unauthorized"
|
|
610
|
+
}
|
|
611
|
+
},
|
|
612
|
+
"security": [
|
|
613
|
+
{
|
|
614
|
+
"Implicit": [
|
|
615
|
+
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
616
|
+
]
|
|
617
|
+
}
|
|
618
|
+
]
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
"/v1.0/protected/onboarding-tasks/with-reminder": {
|
|
622
|
+
"get": {
|
|
623
|
+
"tags": [
|
|
624
|
+
"Tasks"
|
|
625
|
+
],
|
|
626
|
+
"summary": "List onboarding tasks with a Slack reminder",
|
|
627
|
+
"description": "Returns onboarding tasks that have reminderWeeksBefore + reminderSlackChannel set. Used by the admin oppgaver page.",
|
|
628
|
+
"operationId": "ListOnboardingTasksWithReminder",
|
|
629
|
+
"responses": {
|
|
630
|
+
"200": {
|
|
631
|
+
"description": "Payload of Array of SanityOnboardingTask",
|
|
422
632
|
"content": {
|
|
423
633
|
"application/json": {
|
|
424
634
|
"schema": {
|
|
425
|
-
"type": "
|
|
635
|
+
"type": "array",
|
|
636
|
+
"items": {
|
|
637
|
+
"$ref": "#/components/schemas/sanityOnboardingTask"
|
|
638
|
+
}
|
|
426
639
|
}
|
|
427
640
|
}
|
|
428
641
|
},
|
|
429
|
-
"x-ms-summary": "
|
|
642
|
+
"x-ms-summary": "Success"
|
|
430
643
|
},
|
|
431
644
|
"401": {
|
|
432
645
|
"description": "No description",
|
|
433
646
|
"x-ms-summary": "Unauthorized"
|
|
434
|
-
},
|
|
435
|
-
"404": {
|
|
436
|
-
"description": "No description",
|
|
437
|
-
"x-ms-summary": "Not Found"
|
|
438
647
|
}
|
|
439
648
|
},
|
|
440
649
|
"security": [
|
|
@@ -446,41 +655,31 @@
|
|
|
446
655
|
]
|
|
447
656
|
}
|
|
448
657
|
},
|
|
449
|
-
"/v1.0/protected/
|
|
658
|
+
"/v1.0/protected/tasks": {
|
|
450
659
|
"post": {
|
|
451
660
|
"tags": [
|
|
452
|
-
"
|
|
661
|
+
"Tasks"
|
|
453
662
|
],
|
|
454
|
-
"summary": "
|
|
455
|
-
"description": "
|
|
456
|
-
"operationId": "
|
|
457
|
-
"
|
|
458
|
-
{
|
|
459
|
-
"
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
},
|
|
465
|
-
"x-ms-summary": "Candidate Sanity id"
|
|
663
|
+
"summary": "Create an onboarding or offboarding task",
|
|
664
|
+
"description": "Adds a new task document to the library with optional Portable Text description and Slack reminder settings.",
|
|
665
|
+
"operationId": "CreateTask",
|
|
666
|
+
"requestBody": {
|
|
667
|
+
"content": {
|
|
668
|
+
"application/json": {
|
|
669
|
+
"schema": {
|
|
670
|
+
"$ref": "#/components/schemas/sanityCreateTask"
|
|
671
|
+
}
|
|
672
|
+
}
|
|
466
673
|
},
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
"in": "path",
|
|
470
|
-
"required": true,
|
|
471
|
-
"schema": {
|
|
472
|
-
"type": "string"
|
|
473
|
-
},
|
|
474
|
-
"x-ms-summary": "System slug (e.g. 'microsoft-365')"
|
|
475
|
-
}
|
|
476
|
-
],
|
|
674
|
+
"required": true
|
|
675
|
+
},
|
|
477
676
|
"responses": {
|
|
478
677
|
"200": {
|
|
479
|
-
"description": "
|
|
678
|
+
"description": "Payload of SanityTask",
|
|
480
679
|
"content": {
|
|
481
680
|
"application/json": {
|
|
482
681
|
"schema": {
|
|
483
|
-
"$ref": "#/components/schemas/
|
|
682
|
+
"$ref": "#/components/schemas/sanityTask"
|
|
484
683
|
}
|
|
485
684
|
}
|
|
486
685
|
},
|
|
@@ -500,10 +699,6 @@
|
|
|
500
699
|
"401": {
|
|
501
700
|
"description": "No description",
|
|
502
701
|
"x-ms-summary": "Unauthorized"
|
|
503
|
-
},
|
|
504
|
-
"404": {
|
|
505
|
-
"description": "No description",
|
|
506
|
-
"x-ms-summary": "Not Found"
|
|
507
702
|
}
|
|
508
703
|
},
|
|
509
704
|
"security": [
|
|
@@ -515,14 +710,14 @@
|
|
|
515
710
|
]
|
|
516
711
|
}
|
|
517
712
|
},
|
|
518
|
-
"/v1.0/protected/
|
|
519
|
-
"
|
|
713
|
+
"/v1.0/protected/tasks/{id}": {
|
|
714
|
+
"patch": {
|
|
520
715
|
"tags": [
|
|
521
|
-
"
|
|
716
|
+
"Tasks"
|
|
522
717
|
],
|
|
523
|
-
"summary": "
|
|
524
|
-
"description": "
|
|
525
|
-
"operationId": "
|
|
718
|
+
"summary": "Update an onboarding or offboarding task",
|
|
719
|
+
"description": "Partially updates a task. Omitted fields are left unchanged; pass null to clear an optional field.",
|
|
720
|
+
"operationId": "PatchTask",
|
|
526
721
|
"parameters": [
|
|
527
722
|
{
|
|
528
723
|
"name": "id",
|
|
@@ -530,26 +725,26 @@
|
|
|
530
725
|
"required": true,
|
|
531
726
|
"schema": {
|
|
532
727
|
"type": "string"
|
|
533
|
-
}
|
|
534
|
-
"x-ms-summary": "Candidate Sanity id"
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
"name": "system",
|
|
538
|
-
"in": "path",
|
|
539
|
-
"required": true,
|
|
540
|
-
"schema": {
|
|
541
|
-
"type": "string"
|
|
542
|
-
},
|
|
543
|
-
"x-ms-summary": "Step slug (e.g. 'microsoft-365-disable')"
|
|
728
|
+
}
|
|
544
729
|
}
|
|
545
730
|
],
|
|
731
|
+
"requestBody": {
|
|
732
|
+
"content": {
|
|
733
|
+
"application/json": {
|
|
734
|
+
"schema": {
|
|
735
|
+
"$ref": "#/components/schemas/sanityPatchTask"
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
},
|
|
739
|
+
"required": true
|
|
740
|
+
},
|
|
546
741
|
"responses": {
|
|
547
742
|
"200": {
|
|
548
|
-
"description": "
|
|
743
|
+
"description": "Payload of SanityTask",
|
|
549
744
|
"content": {
|
|
550
745
|
"application/json": {
|
|
551
746
|
"schema": {
|
|
552
|
-
"$ref": "#/components/schemas/
|
|
747
|
+
"$ref": "#/components/schemas/sanityTask"
|
|
553
748
|
}
|
|
554
749
|
}
|
|
555
750
|
},
|
|
@@ -582,16 +777,14 @@
|
|
|
582
777
|
]
|
|
583
778
|
}
|
|
584
779
|
]
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
"/v1.0/protected/candidates/{id}/onboard-full/stream": {
|
|
588
|
-
"post": {
|
|
780
|
+
},
|
|
781
|
+
"delete": {
|
|
589
782
|
"tags": [
|
|
590
|
-
"
|
|
783
|
+
"Tasks"
|
|
591
784
|
],
|
|
592
|
-
"summary": "
|
|
593
|
-
"description": "
|
|
594
|
-
"operationId": "
|
|
785
|
+
"summary": "Delete a task",
|
|
786
|
+
"description": "Removes a task from the library. Does not touch candidate checklists that reference it.",
|
|
787
|
+
"operationId": "DeleteTask",
|
|
595
788
|
"parameters": [
|
|
596
789
|
{
|
|
597
790
|
"name": "id",
|
|
@@ -604,48 +797,11 @@
|
|
|
604
797
|
],
|
|
605
798
|
"responses": {
|
|
606
799
|
"200": {
|
|
607
|
-
"description": "
|
|
608
|
-
"x-ms-summary": "SSE stream of OnboardingResult frames"
|
|
609
|
-
}
|
|
610
|
-
},
|
|
611
|
-
"security": [
|
|
612
|
-
{
|
|
613
|
-
"Implicit": [
|
|
614
|
-
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
615
|
-
]
|
|
616
|
-
}
|
|
617
|
-
]
|
|
618
|
-
}
|
|
619
|
-
},
|
|
620
|
-
"/v1.0/protected/candidates/{id}/onboard-full": {
|
|
621
|
-
"post": {
|
|
622
|
-
"tags": [
|
|
623
|
-
"Candidates"
|
|
624
|
-
],
|
|
625
|
-
"summary": "Run the full automated onboarding chain",
|
|
626
|
-
"description": "Provisions the candidate's Microsoft 365 user, then triggers an Azure AD → Sanity sync to create the matching employee doc. Returns one OnboardingResult row per step so the admin UI can render a live timeline.",
|
|
627
|
-
"operationId": "OnboardCandidateFull",
|
|
628
|
-
"parameters": [
|
|
629
|
-
{
|
|
630
|
-
"name": "id",
|
|
631
|
-
"in": "path",
|
|
632
|
-
"required": true,
|
|
633
|
-
"schema": {
|
|
634
|
-
"type": "string"
|
|
635
|
-
},
|
|
636
|
-
"x-ms-summary": "Candidate Sanity id"
|
|
637
|
-
}
|
|
638
|
-
],
|
|
639
|
-
"responses": {
|
|
640
|
-
"200": {
|
|
641
|
-
"description": "Per-step results",
|
|
800
|
+
"description": "Payload of SanityTask",
|
|
642
801
|
"content": {
|
|
643
802
|
"application/json": {
|
|
644
803
|
"schema": {
|
|
645
|
-
"
|
|
646
|
-
"items": {
|
|
647
|
-
"$ref": "#/components/schemas/onboardingResult"
|
|
648
|
-
}
|
|
804
|
+
"$ref": "#/components/schemas/sanityTask"
|
|
649
805
|
}
|
|
650
806
|
}
|
|
651
807
|
},
|
|
@@ -669,14 +825,13 @@
|
|
|
669
825
|
]
|
|
670
826
|
}
|
|
671
827
|
},
|
|
672
|
-
"/v1.0/protected/
|
|
673
|
-
"
|
|
828
|
+
"/v1.0/protected/systems/{id}": {
|
|
829
|
+
"patch": {
|
|
674
830
|
"tags": [
|
|
675
|
-
"
|
|
831
|
+
"Systems"
|
|
676
832
|
],
|
|
677
|
-
"summary": "
|
|
678
|
-
"
|
|
679
|
-
"operationId": "OffboardCandidateFull",
|
|
833
|
+
"summary": "Update a system",
|
|
834
|
+
"operationId": "PatchSystem",
|
|
680
835
|
"parameters": [
|
|
681
836
|
{
|
|
682
837
|
"name": "id",
|
|
@@ -687,21 +842,39 @@
|
|
|
687
842
|
}
|
|
688
843
|
}
|
|
689
844
|
],
|
|
845
|
+
"requestBody": {
|
|
846
|
+
"content": {
|
|
847
|
+
"application/json": {
|
|
848
|
+
"schema": {
|
|
849
|
+
"$ref": "#/components/schemas/sanityPatchSystem"
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
},
|
|
853
|
+
"required": true
|
|
854
|
+
},
|
|
690
855
|
"responses": {
|
|
691
856
|
"200": {
|
|
692
|
-
"description": "
|
|
857
|
+
"description": "Payload of SanitySystemsInner",
|
|
693
858
|
"content": {
|
|
694
859
|
"application/json": {
|
|
695
860
|
"schema": {
|
|
696
|
-
"
|
|
697
|
-
"items": {
|
|
698
|
-
"$ref": "#/components/schemas/onboardingResult"
|
|
699
|
-
}
|
|
861
|
+
"$ref": "#/components/schemas/sanitySystemsInner"
|
|
700
862
|
}
|
|
701
863
|
}
|
|
702
864
|
},
|
|
703
865
|
"x-ms-summary": "Success"
|
|
704
866
|
},
|
|
867
|
+
"400": {
|
|
868
|
+
"description": "Payload of Object",
|
|
869
|
+
"content": {
|
|
870
|
+
"application/json": {
|
|
871
|
+
"schema": {
|
|
872
|
+
"type": "object"
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
},
|
|
876
|
+
"x-ms-summary": "Bad Request"
|
|
877
|
+
},
|
|
705
878
|
"401": {
|
|
706
879
|
"description": "No description",
|
|
707
880
|
"x-ms-summary": "Unauthorized"
|
|
@@ -718,16 +891,13 @@
|
|
|
718
891
|
]
|
|
719
892
|
}
|
|
720
893
|
]
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
"/v1.0/protected/candidates/{id}/offboard-full/stream": {
|
|
724
|
-
"post": {
|
|
894
|
+
},
|
|
895
|
+
"delete": {
|
|
725
896
|
"tags": [
|
|
726
|
-
"
|
|
897
|
+
"Systems"
|
|
727
898
|
],
|
|
728
|
-
"summary": "
|
|
729
|
-
"
|
|
730
|
-
"operationId": "OffboardCandidateFullStream",
|
|
899
|
+
"summary": "Delete a system",
|
|
900
|
+
"operationId": "DeleteSystem",
|
|
731
901
|
"parameters": [
|
|
732
902
|
{
|
|
733
903
|
"name": "id",
|
|
@@ -740,8 +910,23 @@
|
|
|
740
910
|
],
|
|
741
911
|
"responses": {
|
|
742
912
|
"200": {
|
|
913
|
+
"description": "Payload of SanitySystemsInner",
|
|
914
|
+
"content": {
|
|
915
|
+
"application/json": {
|
|
916
|
+
"schema": {
|
|
917
|
+
"$ref": "#/components/schemas/sanitySystemsInner"
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
},
|
|
921
|
+
"x-ms-summary": "Success"
|
|
922
|
+
},
|
|
923
|
+
"401": {
|
|
743
924
|
"description": "No description",
|
|
744
|
-
"x-ms-summary": "
|
|
925
|
+
"x-ms-summary": "Unauthorized"
|
|
926
|
+
},
|
|
927
|
+
"404": {
|
|
928
|
+
"description": "No description",
|
|
929
|
+
"x-ms-summary": "Not Found"
|
|
745
930
|
}
|
|
746
931
|
},
|
|
747
932
|
"security": [
|
|
@@ -753,42 +938,24 @@
|
|
|
753
938
|
]
|
|
754
939
|
}
|
|
755
940
|
},
|
|
756
|
-
"/v1.0/protected/
|
|
757
|
-
"
|
|
758
|
-
"tags": [
|
|
759
|
-
"
|
|
760
|
-
],
|
|
761
|
-
"summary": "
|
|
762
|
-
"description": "
|
|
763
|
-
"operationId": "
|
|
764
|
-
"parameters": [
|
|
765
|
-
{
|
|
766
|
-
"name": "id",
|
|
767
|
-
"in": "path",
|
|
768
|
-
"required": true,
|
|
769
|
-
"schema": {
|
|
770
|
-
"type": "string"
|
|
771
|
-
},
|
|
772
|
-
"x-ms-summary": "Candidate Sanity id"
|
|
773
|
-
}
|
|
774
|
-
],
|
|
775
|
-
"requestBody": {
|
|
776
|
-
"description": "Optional admin-edited email/SMS draft + per-channel send flags. Omit to reject without notifying.",
|
|
777
|
-
"content": {
|
|
778
|
-
"application/json": {
|
|
779
|
-
"schema": {
|
|
780
|
-
"$ref": "#/components/schemas/rejectCandidateMessage"
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
}
|
|
784
|
-
},
|
|
941
|
+
"/v1.0/protected/employees": {
|
|
942
|
+
"get": {
|
|
943
|
+
"tags": [
|
|
944
|
+
"Employees"
|
|
945
|
+
],
|
|
946
|
+
"summary": "List employees for buddy/recruiter assignment",
|
|
947
|
+
"description": "Lightweight employee list used by the candidate detail page's buddy and recruiter dropdowns.",
|
|
948
|
+
"operationId": "ListRecruitmentEmployees",
|
|
785
949
|
"responses": {
|
|
786
950
|
"200": {
|
|
787
|
-
"description": "Payload of
|
|
951
|
+
"description": "Payload of Array of SanityBasicEmployee",
|
|
788
952
|
"content": {
|
|
789
953
|
"application/json": {
|
|
790
954
|
"schema": {
|
|
791
|
-
"
|
|
955
|
+
"type": "array",
|
|
956
|
+
"items": {
|
|
957
|
+
"$ref": "#/components/schemas/sanityBasicEmployee"
|
|
958
|
+
}
|
|
792
959
|
}
|
|
793
960
|
}
|
|
794
961
|
},
|
|
@@ -797,10 +964,6 @@
|
|
|
797
964
|
"401": {
|
|
798
965
|
"description": "No description",
|
|
799
966
|
"x-ms-summary": "Unauthorized"
|
|
800
|
-
},
|
|
801
|
-
"404": {
|
|
802
|
-
"description": "No description",
|
|
803
|
-
"x-ms-summary": "Not Found"
|
|
804
967
|
}
|
|
805
968
|
},
|
|
806
969
|
"security": [
|
|
@@ -1029,245 +1192,7 @@
|
|
|
1029
1192
|
},
|
|
1030
1193
|
"404": {
|
|
1031
1194
|
"description": "No description",
|
|
1032
|
-
"x-ms-summary": "Not Found"
|
|
1033
|
-
}
|
|
1034
|
-
},
|
|
1035
|
-
"security": [
|
|
1036
|
-
{
|
|
1037
|
-
"Implicit": [
|
|
1038
|
-
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
1039
|
-
]
|
|
1040
|
-
}
|
|
1041
|
-
]
|
|
1042
|
-
}
|
|
1043
|
-
},
|
|
1044
|
-
"/v1.0/protected/job-positions": {
|
|
1045
|
-
"get": {
|
|
1046
|
-
"tags": [
|
|
1047
|
-
"JobPositions"
|
|
1048
|
-
],
|
|
1049
|
-
"summary": "List published job positions",
|
|
1050
|
-
"description": "Returns every job position document. Used by the admin stillinger page.",
|
|
1051
|
-
"operationId": "ListJobPositions",
|
|
1052
|
-
"responses": {
|
|
1053
|
-
"200": {
|
|
1054
|
-
"description": "Payload of Array of SanityJobPosition",
|
|
1055
|
-
"content": {
|
|
1056
|
-
"application/json": {
|
|
1057
|
-
"schema": {
|
|
1058
|
-
"type": "array",
|
|
1059
|
-
"items": {
|
|
1060
|
-
"$ref": "#/components/schemas/sanityJobPosition"
|
|
1061
|
-
}
|
|
1062
|
-
}
|
|
1063
|
-
}
|
|
1064
|
-
},
|
|
1065
|
-
"x-ms-summary": "Success"
|
|
1066
|
-
},
|
|
1067
|
-
"401": {
|
|
1068
|
-
"description": "No description",
|
|
1069
|
-
"x-ms-summary": "Unauthorized"
|
|
1070
|
-
}
|
|
1071
|
-
},
|
|
1072
|
-
"security": [
|
|
1073
|
-
{
|
|
1074
|
-
"Implicit": [
|
|
1075
|
-
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
1076
|
-
]
|
|
1077
|
-
}
|
|
1078
|
-
]
|
|
1079
|
-
}
|
|
1080
|
-
},
|
|
1081
|
-
"/v1.0/protected/systems": {
|
|
1082
|
-
"get": {
|
|
1083
|
-
"tags": [
|
|
1084
|
-
"Systems"
|
|
1085
|
-
],
|
|
1086
|
-
"summary": "List systems used for onboarding checklists",
|
|
1087
|
-
"description": "Returns every system document. Used by the candidate detail and systems library pages.",
|
|
1088
|
-
"operationId": "ListSystems",
|
|
1089
|
-
"responses": {
|
|
1090
|
-
"200": {
|
|
1091
|
-
"description": "Payload of Array of SanitySystemsInner",
|
|
1092
|
-
"content": {
|
|
1093
|
-
"application/json": {
|
|
1094
|
-
"schema": {
|
|
1095
|
-
"type": "array",
|
|
1096
|
-
"items": {
|
|
1097
|
-
"$ref": "#/components/schemas/sanitySystemsInner"
|
|
1098
|
-
}
|
|
1099
|
-
}
|
|
1100
|
-
}
|
|
1101
|
-
},
|
|
1102
|
-
"x-ms-summary": "Success"
|
|
1103
|
-
},
|
|
1104
|
-
"401": {
|
|
1105
|
-
"description": "No description",
|
|
1106
|
-
"x-ms-summary": "Unauthorized"
|
|
1107
|
-
}
|
|
1108
|
-
},
|
|
1109
|
-
"security": [
|
|
1110
|
-
{
|
|
1111
|
-
"Implicit": [
|
|
1112
|
-
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
1113
|
-
]
|
|
1114
|
-
}
|
|
1115
|
-
]
|
|
1116
|
-
},
|
|
1117
|
-
"post": {
|
|
1118
|
-
"tags": [
|
|
1119
|
-
"Systems"
|
|
1120
|
-
],
|
|
1121
|
-
"summary": "Create a system",
|
|
1122
|
-
"description": "Adds a new system to the onboarding/offboarding system library.",
|
|
1123
|
-
"operationId": "CreateSystem",
|
|
1124
|
-
"requestBody": {
|
|
1125
|
-
"content": {
|
|
1126
|
-
"application/json": {
|
|
1127
|
-
"schema": {
|
|
1128
|
-
"$ref": "#/components/schemas/sanityCreateSystem"
|
|
1129
|
-
}
|
|
1130
|
-
}
|
|
1131
|
-
},
|
|
1132
|
-
"required": true
|
|
1133
|
-
},
|
|
1134
|
-
"responses": {
|
|
1135
|
-
"200": {
|
|
1136
|
-
"description": "Payload of SanitySystemsInner",
|
|
1137
|
-
"content": {
|
|
1138
|
-
"application/json": {
|
|
1139
|
-
"schema": {
|
|
1140
|
-
"$ref": "#/components/schemas/sanitySystemsInner"
|
|
1141
|
-
}
|
|
1142
|
-
}
|
|
1143
|
-
},
|
|
1144
|
-
"x-ms-summary": "Success"
|
|
1145
|
-
},
|
|
1146
|
-
"400": {
|
|
1147
|
-
"description": "Payload of Object",
|
|
1148
|
-
"content": {
|
|
1149
|
-
"application/json": {
|
|
1150
|
-
"schema": {
|
|
1151
|
-
"type": "object"
|
|
1152
|
-
}
|
|
1153
|
-
}
|
|
1154
|
-
},
|
|
1155
|
-
"x-ms-summary": "Bad Request"
|
|
1156
|
-
},
|
|
1157
|
-
"401": {
|
|
1158
|
-
"description": "No description",
|
|
1159
|
-
"x-ms-summary": "Unauthorized"
|
|
1160
|
-
}
|
|
1161
|
-
},
|
|
1162
|
-
"security": [
|
|
1163
|
-
{
|
|
1164
|
-
"Implicit": [
|
|
1165
|
-
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
1166
|
-
]
|
|
1167
|
-
}
|
|
1168
|
-
]
|
|
1169
|
-
}
|
|
1170
|
-
},
|
|
1171
|
-
"/v1.0/protected/onboarding-chain/automated-system-titles": {
|
|
1172
|
-
"get": {
|
|
1173
|
-
"tags": [
|
|
1174
|
-
"Systems"
|
|
1175
|
-
],
|
|
1176
|
-
"summary": "List systems handled end-to-end by the onboarding chain",
|
|
1177
|
-
"description": "Returns title + maturity status (stable / beta) so the admin UI can badge systems that need no per-row admin action and flag the experimental ones.",
|
|
1178
|
-
"operationId": "GetChainAutomatedSystemTitles",
|
|
1179
|
-
"responses": {
|
|
1180
|
-
"200": {
|
|
1181
|
-
"description": "Payload of Array of ChainAutomatedSystem",
|
|
1182
|
-
"content": {
|
|
1183
|
-
"application/json": {
|
|
1184
|
-
"schema": {
|
|
1185
|
-
"type": "array",
|
|
1186
|
-
"items": {
|
|
1187
|
-
"$ref": "#/components/schemas/chainAutomatedSystem"
|
|
1188
|
-
}
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
|
-
},
|
|
1192
|
-
"x-ms-summary": "Success"
|
|
1193
|
-
},
|
|
1194
|
-
"401": {
|
|
1195
|
-
"description": "No description",
|
|
1196
|
-
"x-ms-summary": "Unauthorized"
|
|
1197
|
-
}
|
|
1198
|
-
},
|
|
1199
|
-
"security": [
|
|
1200
|
-
{
|
|
1201
|
-
"Implicit": [
|
|
1202
|
-
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
1203
|
-
]
|
|
1204
|
-
}
|
|
1205
|
-
]
|
|
1206
|
-
}
|
|
1207
|
-
},
|
|
1208
|
-
"/v1.0/protected/onboarding-tasks": {
|
|
1209
|
-
"get": {
|
|
1210
|
-
"tags": [
|
|
1211
|
-
"Tasks"
|
|
1212
|
-
],
|
|
1213
|
-
"summary": "List every onboarding task",
|
|
1214
|
-
"description": "Returns all onboarding tasks with their Portable Text description so the admin can render an editable checklist with contextual notes.",
|
|
1215
|
-
"operationId": "ListOnboardingTasks",
|
|
1216
|
-
"responses": {
|
|
1217
|
-
"200": {
|
|
1218
|
-
"description": "Payload of Array of SanityTask",
|
|
1219
|
-
"content": {
|
|
1220
|
-
"application/json": {
|
|
1221
|
-
"schema": {
|
|
1222
|
-
"type": "array",
|
|
1223
|
-
"items": {
|
|
1224
|
-
"$ref": "#/components/schemas/sanityTask"
|
|
1225
|
-
}
|
|
1226
|
-
}
|
|
1227
|
-
}
|
|
1228
|
-
},
|
|
1229
|
-
"x-ms-summary": "Success"
|
|
1230
|
-
},
|
|
1231
|
-
"401": {
|
|
1232
|
-
"description": "No description",
|
|
1233
|
-
"x-ms-summary": "Unauthorized"
|
|
1234
|
-
}
|
|
1235
|
-
},
|
|
1236
|
-
"security": [
|
|
1237
|
-
{
|
|
1238
|
-
"Implicit": [
|
|
1239
|
-
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
1240
|
-
]
|
|
1241
|
-
}
|
|
1242
|
-
]
|
|
1243
|
-
}
|
|
1244
|
-
},
|
|
1245
|
-
"/v1.0/protected/offboarding-tasks": {
|
|
1246
|
-
"get": {
|
|
1247
|
-
"tags": [
|
|
1248
|
-
"Tasks"
|
|
1249
|
-
],
|
|
1250
|
-
"summary": "List every offboarding task",
|
|
1251
|
-
"description": "Returns all offboarding tasks with their Portable Text description for the admin offboarding checklist.",
|
|
1252
|
-
"operationId": "ListOffboardingTasks",
|
|
1253
|
-
"responses": {
|
|
1254
|
-
"200": {
|
|
1255
|
-
"description": "Payload of Array of SanityTask",
|
|
1256
|
-
"content": {
|
|
1257
|
-
"application/json": {
|
|
1258
|
-
"schema": {
|
|
1259
|
-
"type": "array",
|
|
1260
|
-
"items": {
|
|
1261
|
-
"$ref": "#/components/schemas/sanityTask"
|
|
1262
|
-
}
|
|
1263
|
-
}
|
|
1264
|
-
}
|
|
1265
|
-
},
|
|
1266
|
-
"x-ms-summary": "Success"
|
|
1267
|
-
},
|
|
1268
|
-
"401": {
|
|
1269
|
-
"description": "No description",
|
|
1270
|
-
"x-ms-summary": "Unauthorized"
|
|
1195
|
+
"x-ms-summary": "Not Found"
|
|
1271
1196
|
}
|
|
1272
1197
|
},
|
|
1273
1198
|
"security": [
|
|
@@ -1279,32 +1204,64 @@
|
|
|
1279
1204
|
]
|
|
1280
1205
|
}
|
|
1281
1206
|
},
|
|
1282
|
-
"/v1.0/protected/
|
|
1207
|
+
"/v1.0/protected/candidates/{id}/notification-preview": {
|
|
1283
1208
|
"get": {
|
|
1284
1209
|
"tags": [
|
|
1285
|
-
"
|
|
1210
|
+
"Candidates"
|
|
1211
|
+
],
|
|
1212
|
+
"summary": "Preview the email/SMS that would be sent for a candidate event",
|
|
1213
|
+
"description": "Renders the email + SMS templates for the given event using the candidate's current data. Use to populate the confirm modal before a status change.",
|
|
1214
|
+
"operationId": "GetCandidateNotificationPreview",
|
|
1215
|
+
"parameters": [
|
|
1216
|
+
{
|
|
1217
|
+
"name": "id",
|
|
1218
|
+
"in": "path",
|
|
1219
|
+
"required": true,
|
|
1220
|
+
"schema": {
|
|
1221
|
+
"type": "string"
|
|
1222
|
+
},
|
|
1223
|
+
"x-ms-summary": "Candidate Sanity id"
|
|
1224
|
+
},
|
|
1225
|
+
{
|
|
1226
|
+
"name": "event",
|
|
1227
|
+
"in": "query",
|
|
1228
|
+
"required": true,
|
|
1229
|
+
"schema": {
|
|
1230
|
+
"type": "string"
|
|
1231
|
+
},
|
|
1232
|
+
"x-ms-summary": "Event name: Created, Introduction, Offer, Signed, Onboarding, UserCreationReview, Offboarding"
|
|
1233
|
+
}
|
|
1286
1234
|
],
|
|
1287
|
-
"summary": "List onboarding tasks with a Slack reminder",
|
|
1288
|
-
"description": "Returns onboarding tasks that have reminderWeeksBefore + reminderSlackChannel set. Used by the admin oppgaver page.",
|
|
1289
|
-
"operationId": "ListOnboardingTasksWithReminder",
|
|
1290
1235
|
"responses": {
|
|
1291
1236
|
"200": {
|
|
1292
|
-
"description": "Payload of
|
|
1237
|
+
"description": "Payload of CandidateNotificationPreview",
|
|
1293
1238
|
"content": {
|
|
1294
1239
|
"application/json": {
|
|
1295
1240
|
"schema": {
|
|
1296
|
-
"
|
|
1297
|
-
"items": {
|
|
1298
|
-
"$ref": "#/components/schemas/sanityOnboardingTask"
|
|
1299
|
-
}
|
|
1241
|
+
"$ref": "#/components/schemas/candidateNotificationPreview"
|
|
1300
1242
|
}
|
|
1301
1243
|
}
|
|
1302
1244
|
},
|
|
1303
1245
|
"x-ms-summary": "Success"
|
|
1304
1246
|
},
|
|
1247
|
+
"400": {
|
|
1248
|
+
"description": "Payload of Object",
|
|
1249
|
+
"content": {
|
|
1250
|
+
"application/json": {
|
|
1251
|
+
"schema": {
|
|
1252
|
+
"type": "object"
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
},
|
|
1256
|
+
"x-ms-summary": "Bad Request"
|
|
1257
|
+
},
|
|
1305
1258
|
"401": {
|
|
1306
1259
|
"description": "No description",
|
|
1307
1260
|
"x-ms-summary": "Unauthorized"
|
|
1261
|
+
},
|
|
1262
|
+
"404": {
|
|
1263
|
+
"description": "No description",
|
|
1264
|
+
"x-ms-summary": "Not Found"
|
|
1308
1265
|
}
|
|
1309
1266
|
},
|
|
1310
1267
|
"security": [
|
|
@@ -1316,19 +1273,20 @@
|
|
|
1316
1273
|
]
|
|
1317
1274
|
}
|
|
1318
1275
|
},
|
|
1319
|
-
"/v1.0/protected/
|
|
1276
|
+
"/v1.0/protected/candidates/notification-preview": {
|
|
1320
1277
|
"post": {
|
|
1321
1278
|
"tags": [
|
|
1322
|
-
"
|
|
1279
|
+
"Candidates"
|
|
1323
1280
|
],
|
|
1324
|
-
"summary": "
|
|
1325
|
-
"description": "
|
|
1326
|
-
"operationId": "
|
|
1281
|
+
"summary": "Preview a candidate notification before the candidate is created",
|
|
1282
|
+
"description": "Used by the create form to render the email/SMS that will be sent on submit, given the in-progress candidate fields. No recruiter resolution — uses the team-fallback signoff.",
|
|
1283
|
+
"operationId": "PreviewCandidateNotification",
|
|
1327
1284
|
"requestBody": {
|
|
1285
|
+
"description": "Event + candidate-shaped fields",
|
|
1328
1286
|
"content": {
|
|
1329
1287
|
"application/json": {
|
|
1330
1288
|
"schema": {
|
|
1331
|
-
"$ref": "#/components/schemas/
|
|
1289
|
+
"$ref": "#/components/schemas/candidateNotificationPreviewRequest"
|
|
1332
1290
|
}
|
|
1333
1291
|
}
|
|
1334
1292
|
},
|
|
@@ -1336,11 +1294,11 @@
|
|
|
1336
1294
|
},
|
|
1337
1295
|
"responses": {
|
|
1338
1296
|
"200": {
|
|
1339
|
-
"description": "Payload of
|
|
1297
|
+
"description": "Payload of CandidateNotificationPreview",
|
|
1340
1298
|
"content": {
|
|
1341
1299
|
"application/json": {
|
|
1342
1300
|
"schema": {
|
|
1343
|
-
"$ref": "#/components/schemas/
|
|
1301
|
+
"$ref": "#/components/schemas/candidateNotificationPreview"
|
|
1344
1302
|
}
|
|
1345
1303
|
}
|
|
1346
1304
|
},
|
|
@@ -1371,14 +1329,14 @@
|
|
|
1371
1329
|
]
|
|
1372
1330
|
}
|
|
1373
1331
|
},
|
|
1374
|
-
"/v1.0/protected/
|
|
1375
|
-
"
|
|
1332
|
+
"/v1.0/protected/candidates/{id}/offboard/{system}": {
|
|
1333
|
+
"post": {
|
|
1376
1334
|
"tags": [
|
|
1377
|
-
"
|
|
1335
|
+
"Candidates"
|
|
1378
1336
|
],
|
|
1379
|
-
"summary": "
|
|
1380
|
-
"description": "
|
|
1381
|
-
"operationId": "
|
|
1337
|
+
"summary": "Trigger automated offboarding for a single chain step",
|
|
1338
|
+
"description": "Mirror of OnboardCandidateSystem for the offboarding chain. Re-runs one named offboarding step (e.g. 'microsoft-365-disable', 'license-revoke', 'github-org-remove').",
|
|
1339
|
+
"operationId": "OffboardCandidateSystem",
|
|
1382
1340
|
"parameters": [
|
|
1383
1341
|
{
|
|
1384
1342
|
"name": "id",
|
|
@@ -1386,26 +1344,26 @@
|
|
|
1386
1344
|
"required": true,
|
|
1387
1345
|
"schema": {
|
|
1388
1346
|
"type": "string"
|
|
1389
|
-
}
|
|
1347
|
+
},
|
|
1348
|
+
"x-ms-summary": "Candidate Sanity id"
|
|
1349
|
+
},
|
|
1350
|
+
{
|
|
1351
|
+
"name": "system",
|
|
1352
|
+
"in": "path",
|
|
1353
|
+
"required": true,
|
|
1354
|
+
"schema": {
|
|
1355
|
+
"type": "string"
|
|
1356
|
+
},
|
|
1357
|
+
"x-ms-summary": "Step slug (e.g. 'microsoft-365-disable')"
|
|
1390
1358
|
}
|
|
1391
1359
|
],
|
|
1392
|
-
"requestBody": {
|
|
1393
|
-
"content": {
|
|
1394
|
-
"application/json": {
|
|
1395
|
-
"schema": {
|
|
1396
|
-
"$ref": "#/components/schemas/sanityPatchTask"
|
|
1397
|
-
}
|
|
1398
|
-
}
|
|
1399
|
-
},
|
|
1400
|
-
"required": true
|
|
1401
|
-
},
|
|
1402
1360
|
"responses": {
|
|
1403
1361
|
"200": {
|
|
1404
|
-
"description": "
|
|
1362
|
+
"description": "Uniform onboarding result with status + message",
|
|
1405
1363
|
"content": {
|
|
1406
1364
|
"application/json": {
|
|
1407
1365
|
"schema": {
|
|
1408
|
-
"$ref": "#/components/schemas/
|
|
1366
|
+
"$ref": "#/components/schemas/onboardingResult"
|
|
1409
1367
|
}
|
|
1410
1368
|
}
|
|
1411
1369
|
},
|
|
@@ -1438,14 +1396,16 @@
|
|
|
1438
1396
|
]
|
|
1439
1397
|
}
|
|
1440
1398
|
]
|
|
1441
|
-
}
|
|
1442
|
-
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
"/v1.0/protected/candidates/{id}/offboard-full": {
|
|
1402
|
+
"post": {
|
|
1443
1403
|
"tags": [
|
|
1444
|
-
"
|
|
1404
|
+
"Candidates"
|
|
1445
1405
|
],
|
|
1446
|
-
"summary": "
|
|
1447
|
-
"description": "
|
|
1448
|
-
"operationId": "
|
|
1406
|
+
"summary": "Run the full automated offboarding chain",
|
|
1407
|
+
"description": "Disables the candidate's Microsoft 365 user and triggers an Azure AD → Sanity sync so the employee doc reflects the disabled state.",
|
|
1408
|
+
"operationId": "OffboardCandidateFull",
|
|
1449
1409
|
"parameters": [
|
|
1450
1410
|
{
|
|
1451
1411
|
"name": "id",
|
|
@@ -1458,11 +1418,14 @@
|
|
|
1458
1418
|
],
|
|
1459
1419
|
"responses": {
|
|
1460
1420
|
"200": {
|
|
1461
|
-
"description": "
|
|
1421
|
+
"description": "Per-step results",
|
|
1462
1422
|
"content": {
|
|
1463
1423
|
"application/json": {
|
|
1464
1424
|
"schema": {
|
|
1465
|
-
"
|
|
1425
|
+
"type": "array",
|
|
1426
|
+
"items": {
|
|
1427
|
+
"$ref": "#/components/schemas/onboardingResult"
|
|
1428
|
+
}
|
|
1466
1429
|
}
|
|
1467
1430
|
}
|
|
1468
1431
|
},
|
|
@@ -1486,13 +1449,14 @@
|
|
|
1486
1449
|
]
|
|
1487
1450
|
}
|
|
1488
1451
|
},
|
|
1489
|
-
"/v1.0/protected/
|
|
1490
|
-
"
|
|
1452
|
+
"/v1.0/protected/candidates/{id}/offboard-full/stream": {
|
|
1453
|
+
"post": {
|
|
1491
1454
|
"tags": [
|
|
1492
|
-
"
|
|
1455
|
+
"Candidates"
|
|
1493
1456
|
],
|
|
1494
|
-
"summary": "
|
|
1495
|
-
"
|
|
1457
|
+
"summary": "Offboarding chain with a live SSE event feed",
|
|
1458
|
+
"description": "Streams the offboarding chain step-by-step as Server-Sent Events. Mirrors /onboard-full/stream.",
|
|
1459
|
+
"operationId": "OffboardCandidateFullStream",
|
|
1496
1460
|
"parameters": [
|
|
1497
1461
|
{
|
|
1498
1462
|
"name": "id",
|
|
@@ -1503,23 +1467,56 @@
|
|
|
1503
1467
|
}
|
|
1504
1468
|
}
|
|
1505
1469
|
],
|
|
1506
|
-
"
|
|
1507
|
-
"
|
|
1508
|
-
"
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
}
|
|
1512
|
-
}
|
|
1513
|
-
},
|
|
1514
|
-
"required": true
|
|
1470
|
+
"responses": {
|
|
1471
|
+
"200": {
|
|
1472
|
+
"description": "No description",
|
|
1473
|
+
"x-ms-summary": "SSE stream of OnboardingResult frames"
|
|
1474
|
+
}
|
|
1515
1475
|
},
|
|
1476
|
+
"security": [
|
|
1477
|
+
{
|
|
1478
|
+
"Implicit": [
|
|
1479
|
+
"api://050da74a-523f-48ba-a9de-e5c8d6805a93/.default"
|
|
1480
|
+
]
|
|
1481
|
+
}
|
|
1482
|
+
]
|
|
1483
|
+
}
|
|
1484
|
+
},
|
|
1485
|
+
"/v1.0/protected/candidates/{id}/onboard/{system}": {
|
|
1486
|
+
"post": {
|
|
1487
|
+
"tags": [
|
|
1488
|
+
"Candidates"
|
|
1489
|
+
],
|
|
1490
|
+
"summary": "Trigger automated onboarding for a single chain step",
|
|
1491
|
+
"description": "Re-runs one named onboarding step (slug matches the timeline step ids — e.g. 'microsoft-365', 'license-assignment', 'github-org-invite'). Used by the admin UI's per-step retry button when an earlier chain run partially failed.",
|
|
1492
|
+
"operationId": "OnboardCandidateSystem",
|
|
1493
|
+
"parameters": [
|
|
1494
|
+
{
|
|
1495
|
+
"name": "id",
|
|
1496
|
+
"in": "path",
|
|
1497
|
+
"required": true,
|
|
1498
|
+
"schema": {
|
|
1499
|
+
"type": "string"
|
|
1500
|
+
},
|
|
1501
|
+
"x-ms-summary": "Candidate Sanity id"
|
|
1502
|
+
},
|
|
1503
|
+
{
|
|
1504
|
+
"name": "system",
|
|
1505
|
+
"in": "path",
|
|
1506
|
+
"required": true,
|
|
1507
|
+
"schema": {
|
|
1508
|
+
"type": "string"
|
|
1509
|
+
},
|
|
1510
|
+
"x-ms-summary": "System slug (e.g. 'microsoft-365')"
|
|
1511
|
+
}
|
|
1512
|
+
],
|
|
1516
1513
|
"responses": {
|
|
1517
1514
|
"200": {
|
|
1518
|
-
"description": "
|
|
1515
|
+
"description": "Uniform onboarding result with status + message",
|
|
1519
1516
|
"content": {
|
|
1520
1517
|
"application/json": {
|
|
1521
1518
|
"schema": {
|
|
1522
|
-
"$ref": "#/components/schemas/
|
|
1519
|
+
"$ref": "#/components/schemas/onboardingResult"
|
|
1523
1520
|
}
|
|
1524
1521
|
}
|
|
1525
1522
|
},
|
|
@@ -1552,13 +1549,16 @@
|
|
|
1552
1549
|
]
|
|
1553
1550
|
}
|
|
1554
1551
|
]
|
|
1555
|
-
}
|
|
1556
|
-
|
|
1552
|
+
}
|
|
1553
|
+
},
|
|
1554
|
+
"/v1.0/protected/candidates/{id}/onboard-full": {
|
|
1555
|
+
"post": {
|
|
1557
1556
|
"tags": [
|
|
1558
|
-
"
|
|
1557
|
+
"Candidates"
|
|
1559
1558
|
],
|
|
1560
|
-
"summary": "
|
|
1561
|
-
"
|
|
1559
|
+
"summary": "Run the full automated onboarding chain",
|
|
1560
|
+
"description": "Provisions the candidate's Microsoft 365 user, then triggers an Azure AD → Sanity sync to create the matching employee doc. Returns one OnboardingResult row per step so the admin UI can render a live timeline.",
|
|
1561
|
+
"operationId": "OnboardCandidateFull",
|
|
1562
1562
|
"parameters": [
|
|
1563
1563
|
{
|
|
1564
1564
|
"name": "id",
|
|
@@ -1566,16 +1566,20 @@
|
|
|
1566
1566
|
"required": true,
|
|
1567
1567
|
"schema": {
|
|
1568
1568
|
"type": "string"
|
|
1569
|
-
}
|
|
1569
|
+
},
|
|
1570
|
+
"x-ms-summary": "Candidate Sanity id"
|
|
1570
1571
|
}
|
|
1571
1572
|
],
|
|
1572
1573
|
"responses": {
|
|
1573
1574
|
"200": {
|
|
1574
|
-
"description": "
|
|
1575
|
+
"description": "Per-step results",
|
|
1575
1576
|
"content": {
|
|
1576
1577
|
"application/json": {
|
|
1577
1578
|
"schema": {
|
|
1578
|
-
"
|
|
1579
|
+
"type": "array",
|
|
1580
|
+
"items": {
|
|
1581
|
+
"$ref": "#/components/schemas/onboardingResult"
|
|
1582
|
+
}
|
|
1579
1583
|
}
|
|
1580
1584
|
}
|
|
1581
1585
|
},
|
|
@@ -1599,32 +1603,28 @@
|
|
|
1599
1603
|
]
|
|
1600
1604
|
}
|
|
1601
1605
|
},
|
|
1602
|
-
"/v1.0/protected/
|
|
1603
|
-
"
|
|
1606
|
+
"/v1.0/protected/candidates/{id}/onboard-full/stream": {
|
|
1607
|
+
"post": {
|
|
1604
1608
|
"tags": [
|
|
1605
|
-
"
|
|
1609
|
+
"Candidates"
|
|
1610
|
+
],
|
|
1611
|
+
"summary": "Run the onboarding chain with a live SSE event feed",
|
|
1612
|
+
"description": "Same chain as /onboard-full but streams Server-Sent Events (`event: step`) as each step starts (`status:running`) and finishes (`succeeded`/`failed`). Closes with `event: done`. Frontend uses fetch streaming so we can pass a Bearer token; EventSource doesn't support custom headers.",
|
|
1613
|
+
"operationId": "OnboardCandidateFullStream",
|
|
1614
|
+
"parameters": [
|
|
1615
|
+
{
|
|
1616
|
+
"name": "id",
|
|
1617
|
+
"in": "path",
|
|
1618
|
+
"required": true,
|
|
1619
|
+
"schema": {
|
|
1620
|
+
"type": "string"
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1606
1623
|
],
|
|
1607
|
-
"summary": "List employees for buddy/recruiter assignment",
|
|
1608
|
-
"description": "Lightweight employee list used by the candidate detail page's buddy and recruiter dropdowns.",
|
|
1609
|
-
"operationId": "ListRecruitmentEmployees",
|
|
1610
1624
|
"responses": {
|
|
1611
1625
|
"200": {
|
|
1612
|
-
"description": "Payload of Array of SanityBasicEmployee",
|
|
1613
|
-
"content": {
|
|
1614
|
-
"application/json": {
|
|
1615
|
-
"schema": {
|
|
1616
|
-
"type": "array",
|
|
1617
|
-
"items": {
|
|
1618
|
-
"$ref": "#/components/schemas/sanityBasicEmployee"
|
|
1619
|
-
}
|
|
1620
|
-
}
|
|
1621
|
-
}
|
|
1622
|
-
},
|
|
1623
|
-
"x-ms-summary": "Success"
|
|
1624
|
-
},
|
|
1625
|
-
"401": {
|
|
1626
1626
|
"description": "No description",
|
|
1627
|
-
"x-ms-summary": "
|
|
1627
|
+
"x-ms-summary": "SSE stream of OnboardingResult frames"
|
|
1628
1628
|
}
|
|
1629
1629
|
},
|
|
1630
1630
|
"security": [
|