This PR completes the end-to-end flow of input transforms on the ingest side, by way of adding JSONPath parsing support within the ML inference input map configs. More specifically:
adds MIT-licensed JSONPath (base JS and TS) packages to the plugin
finishes base functionality of InputTransformModal - adds the map form field within the modal, completes generation logic of the output JSON after applying JSONPath and/or dot notation to the specified inputs in the map. Note the logic used here is the same as the ML inference processor logic, when parsing the map config. If no $. JSONPath base object selector is specified, it defaults to using dot notation. We do the same logic to produce consistent results when actually used in the ML inference processor
removes cancel/save of InputTransformModal to just be close, since the autosave will handle it
adds simple/advanced toggle in the ML processor form inputs component, refactors some of the buttons and map field inputs based on simple vs. advanced being selected
adds keyPlaceholder/valuePlaceholder props to MapField to be able to reuse in the output maps and for other contexts (ingest / search req / search resp) later on
Testing
confirmed consistent parsing for dot notation / JSONPath / invalid inputs and combinations of all of them, when input in the transform modal, and when actually executed in the processor with an ingest command
Demo video, showing end-to-end flow of configuring an ML inference processor's input_map using both dot notation and JSONPath, getting sample results in the advanced transform modal, and finally running a concrete ingest command against the configured processor:
[x] Commits are signed per the DCO using --signoff
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.
Description
This PR completes the end-to-end flow of input transforms on the ingest side, by way of adding JSONPath parsing support within the ML inference input map configs. More specifically:
InputTransformModal
- adds the map form field within the modal, completes generation logic of the output JSON after applying JSONPath and/or dot notation to the specified inputs in the map. Note the logic used here is the same as the ML inference processor logic, when parsing the map config. If no$.
JSONPath base object selector is specified, it defaults to using dot notation. We do the same logic to produce consistent results when actually used in the ML inference processorInputTransformModal
to just beclose
, since the autosave will handle itkeyPlaceholder
/valuePlaceholder
props toMapField
to be able to reuse in the output maps and for other contexts (ingest / search req / search resp) later onTesting
Demo video, showing end-to-end flow of configuring an ML inference processor's input_map using both dot notation and JSONPath, getting sample results in the advanced transform modal, and finally running a concrete ingest command against the configured processor:
screen-capture (8).webm
Issues Resolved
Makes progress on #23
Check List
--signoff
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. For more information on following Developer Certificate of Origin and signing off your commits, please check here.