Commit 28dce33
[One Workflow] Step registry completion context enhancement (elastic#260054)
## Summary
issue: elastic/security-team#15982. (Resolves
requirement #2)
Enriches `SelectionContext` with step `values` so that
`PropertySelectionHandler` implementations (`search`, `resolve`,
`getDetails`) can access sibling property values from the current step
definition.
There are no existing steps using `context.values` yet — this is a
prerequisite for upcoming steps from the Cases team that need to read
sibling properties (e.g. `owner`) to scope their search/resolve logic.
### What changed
**`SelectionContext.values`** — A new `values` field (`{ config, input
}`) is populated from the step's YAML properties at the time
`search`/`resolve`/`getDetails` are called. Handlers can now read
sibling values like `context.values.input.owner` instead of having no
visibility into the rest of the step.
**YAML value extraction fix** — `getValueFromValueNode` now handles
non-scalar YAML nodes (arrays/sequences) via `.toJSON()`, fixing a bug
where array properties like `owner: [securitySolution]` appeared as
`undefined` in `context.values`.
**Example** — An example has been implemented in the
`examples.externalStep` from the _workflows_examples_ plugin (test with
`node scripts/kibana --dev --run-examples`)
### Demo
https://github.com/user-attachments/assets/b0cf18ae-5906-4561-bf5e-31b228b08a30
### Files changed
| Area | Files | Change |
|------|-------|--------|
| Shared types | `kbn-workflows/types/v1.ts`, `latest.ts` | Added
`StepSelectionValues` interface, `values` field on `SelectionContext`,
generic type parameters on 4 interfaces |
| Step registry | `workflows_extensions/.../step_registry/types.ts` |
Thread `Config`/`Input` schema types into `StepPropertyHandler` for
automatic inference |
| Value builder | `build_workflow_lookup.ts` | Added
`buildStepSelectionValues()` helper + fixed `getValueFromValueNode` for
non-scalar nodes |
| Context wiring | `collect_all_custom_property_items.ts`,
`get_custom_property_suggestions.ts` | Pass `values` when constructing
`SelectionContext` |
| Docs | `STEPS.md` | Updated `SelectionContext` type definition and
documented `context.values` |
| Tests | `build_workflow_lookup.test.ts`,
`validate_custom_properties.test.ts`,
`get_custom_property_suggestions.test.ts` | New tests for value building
(including arrays), updated assertions for new context shape |
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>1 parent 72d6553 commit 28dce33
14 files changed
Lines changed: 264 additions & 34 deletions
File tree
- examples/workflows_extensions_example
- common/step_types
- public
- step_types
- src/platform
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| 72 | + | |
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| |||
Lines changed: 21 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | | - | |
30 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
34 | | - | |
| 36 | + | |
| 37 | + | |
35 | 38 | | |
36 | 39 | | |
37 | 40 | | |
38 | 41 | | |
39 | 42 | | |
40 | 43 | | |
41 | | - | |
| 44 | + | |
42 | 45 | | |
43 | 46 | | |
44 | 47 | | |
45 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
46 | 53 | | |
47 | 54 | | |
48 | 55 | | |
49 | 56 | | |
50 | 57 | | |
51 | 58 | | |
52 | | - | |
| 59 | + | |
53 | 60 | | |
54 | 61 | | |
55 | 62 | | |
56 | 63 | | |
57 | 64 | | |
58 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
59 | 74 | | |
60 | 75 | | |
61 | 76 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
503 | 503 | | |
504 | 504 | | |
505 | 505 | | |
506 | | - | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
507 | 511 | | |
508 | 512 | | |
509 | 513 | | |
510 | 514 | | |
511 | | - | |
| 515 | + | |
512 | 516 | | |
513 | 517 | | |
514 | 518 | | |
| |||
518 | 522 | | |
519 | 523 | | |
520 | 524 | | |
521 | | - | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
522 | 530 | | |
523 | 531 | | |
524 | 532 | | |
525 | 533 | | |
526 | | - | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
527 | 538 | | |
528 | 539 | | |
529 | 540 | | |
530 | 541 | | |
531 | 542 | | |
532 | 543 | | |
533 | | - | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
534 | 548 | | |
535 | 549 | | |
536 | 550 | | |
| |||
539 | 553 | | |
540 | 554 | | |
541 | 555 | | |
542 | | - | |
| 556 | + | |
543 | 557 | | |
544 | 558 | | |
545 | 559 | | |
| |||
567 | 581 | | |
568 | 582 | | |
569 | 583 | | |
570 | | - | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
571 | 605 | | |
572 | 606 | | |
573 | 607 | | |
574 | 608 | | |
575 | 609 | | |
576 | 610 | | |
| 611 | + | |
| 612 | + | |
577 | 613 | | |
578 | 614 | | |
579 | 615 | | |
| |||
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
427 | 427 | | |
428 | 428 | | |
429 | 429 | | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
430 | 437 | | |
431 | 438 | | |
432 | 439 | | |
433 | 440 | | |
434 | 441 | | |
435 | 442 | | |
436 | 443 | | |
| 444 | + | |
| 445 | + | |
437 | 446 | | |
438 | 447 | | |
439 | 448 | | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
440 | 453 | | |
441 | 454 | | |
442 | 455 | | |
| |||
Lines changed: 20 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
63 | | - | |
| 62 | + | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
68 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
69 | 76 | | |
70 | 77 | | |
71 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
72 | 82 | | |
73 | | - | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
74 | 88 | | |
75 | 89 | | |
76 | 90 | | |
| |||
Lines changed: 71 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
12 | 17 | | |
13 | 18 | | |
14 | 19 | | |
| |||
589 | 594 | | |
590 | 595 | | |
591 | 596 | | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
0 commit comments