-
Notifications
You must be signed in to change notification settings - Fork 8.5k
[Ingest Pipelines] Add structure tree to details flyout #228792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Ingest Pipelines] Add structure tree to details flyout #228792
Conversation
|
Pinging @elastic/kibana-management (Team:Kibana Management) |
|
Converting to a draft as there were some additional changes in the design mocks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @ElenaStoeva! Thank you for this, I did a first local review and in general looks great! But I found a problem in the Streams page. I ran the script and added to the logs@custom a pipeline processor pointing to the level-1 so I have more pipelines to test in the Streams page. It works well for the first levels, but when I click more pipelines the flyout closes and the UI goes back to the Streams list.
Screen.Recording.2025-07-31.at.10.35.52.mov
|
Thanks for reviewing @SoniaSanzV and nice catch! I fixed this issue with the last commit. Please let me know if you see any other issues. |
SoniaSanzV
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tested locally, LGTM! I really appreciate the work for making the panel responsive!
…ub.com/ElenaStoeva/kibana into ingest-pipelines/structure-tree-flyout
💛 Build succeeded, but was flaky
Failed CI StepsMetrics [docs]Module Count
Public APIs missing comments
Async chunks
Page load bundle
History
cc @ElenaStoeva |
Addresses elastic#227405 https://github.com/user-attachments/assets/1473ade0-19cb-4892-a64a-2ed4374e3879 ## Summary This PR adds the Ingest pipeline structure tree to the ingest pipelines details flyout. **How to test:** 1. Run the following requests in Console (you can run them all at once) to create a sample ingest pipeline tree: <details> <summary>Console requests:</summary> ``` PUT _ingest/pipeline/level-8-1 { "processors": [] } PUT _ingest/pipeline/level-8-2 { "processors": [] } PUT _ingest/pipeline/level-7-1 { "processors": [ { "pipeline": { "name": "level-8-1" } }, { "pipeline": { "name": "level-8-2" } } ] } PUT _ingest/pipeline/level-7-2 { "processors": [ { "pipeline": { "name": "level-8-1" } }, { "pipeline": { "name": "level-8-2" } } ] } PUT _ingest/pipeline/level-6-1 { "processors": [ { "pipeline": { "name": "level-7-1" } }, { "pipeline": { "name": "level-7-2" } } ] } PUT _ingest/pipeline/level-6-2 { "processors": [ { "pipeline": { "name": "level-7-1" } }, { "pipeline": { "name": "level-7-2" } } ] } PUT _ingest/pipeline/level-5-1 { "processors": [ { "pipeline": { "name": "level-6-1" } }, { "pipeline": { "name": "level-6-2" } } ] } PUT _ingest/pipeline/level-5-2 { "processors": [ { "pipeline": { "name": "level-6-1" } }, { "pipeline": { "name": "level-6-2" } } ] } PUT _ingest/pipeline/level-4-1 { "processors": [ { "pipeline": { "name": "level-5-1" } }, { "pipeline": { "name": "level-5-2" } } ] } PUT _ingest/pipeline/level-4-2 { "processors": [ { "pipeline": { "name": "level-5-1" } }, { "pipeline": { "name": "level-5-2" } } ] } PUT _ingest/pipeline/level-3-1 { "processors": [ { "pipeline": { "name": "level-4-1" } }, { "pipeline": { "name": "level-4-2" } } ] } PUT _ingest/pipeline/level-3-2 { "processors": [ { "pipeline": { "name": "level-4-1" } }, { "pipeline": { "name": "level-4-2" } } ] } PUT _ingest/pipeline/level-2-1 { "processors": [ { "pipeline": { "name": "level-3-1" } }, { "pipeline": { "name": "level-3-2" } } ] } PUT _ingest/pipeline/level-2-2 { "processors": [ { "pipeline": { "name": "level-3-1" } }, { "pipeline": { "name": "level-3-2" } } ] } PUT _ingest/pipeline/level-1 { "processors": [ { "pipeline": { "name": "level-2-1" } }, { "pipeline": { "name": "level-2-2" } }, { "pipeline": { "name": "non-existing" } } ] } ``` </details> 2. Go to Ingest pipelines and click on any of the created pipelines. Verify that the tree is working as expected. Verify that the footer action buttons also work as expected (edit/clone/delete) 3. Verify that tree view is only displayed if the root has children. 4. Verify that navigating to a non-existing pipeline through the URL opens the flyout with an error banner and without the tree. 5. Verify that when you open a non-exisisting pipeline by clicking on a tree node, a warning banner is displayed. 6. Verify that in smaller screens only one panel is displayed at a time. 7. To test in Streams, enable streams with `POST kbn:/api/streams/_enable` and create sample date with `node scripts/synthtrace.js sample_logs --live --kibana=http://elastic:changeme@localhost:5601 --target=http://elastic:changeme@localhost:9200 --liveBucketSize=1000` --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Addresses elastic#227405 https://github.com/user-attachments/assets/1473ade0-19cb-4892-a64a-2ed4374e3879 ## Summary This PR adds the Ingest pipeline structure tree to the ingest pipelines details flyout. **How to test:** 1. Run the following requests in Console (you can run them all at once) to create a sample ingest pipeline tree: <details> <summary>Console requests:</summary> ``` PUT _ingest/pipeline/level-8-1 { "processors": [] } PUT _ingest/pipeline/level-8-2 { "processors": [] } PUT _ingest/pipeline/level-7-1 { "processors": [ { "pipeline": { "name": "level-8-1" } }, { "pipeline": { "name": "level-8-2" } } ] } PUT _ingest/pipeline/level-7-2 { "processors": [ { "pipeline": { "name": "level-8-1" } }, { "pipeline": { "name": "level-8-2" } } ] } PUT _ingest/pipeline/level-6-1 { "processors": [ { "pipeline": { "name": "level-7-1" } }, { "pipeline": { "name": "level-7-2" } } ] } PUT _ingest/pipeline/level-6-2 { "processors": [ { "pipeline": { "name": "level-7-1" } }, { "pipeline": { "name": "level-7-2" } } ] } PUT _ingest/pipeline/level-5-1 { "processors": [ { "pipeline": { "name": "level-6-1" } }, { "pipeline": { "name": "level-6-2" } } ] } PUT _ingest/pipeline/level-5-2 { "processors": [ { "pipeline": { "name": "level-6-1" } }, { "pipeline": { "name": "level-6-2" } } ] } PUT _ingest/pipeline/level-4-1 { "processors": [ { "pipeline": { "name": "level-5-1" } }, { "pipeline": { "name": "level-5-2" } } ] } PUT _ingest/pipeline/level-4-2 { "processors": [ { "pipeline": { "name": "level-5-1" } }, { "pipeline": { "name": "level-5-2" } } ] } PUT _ingest/pipeline/level-3-1 { "processors": [ { "pipeline": { "name": "level-4-1" } }, { "pipeline": { "name": "level-4-2" } } ] } PUT _ingest/pipeline/level-3-2 { "processors": [ { "pipeline": { "name": "level-4-1" } }, { "pipeline": { "name": "level-4-2" } } ] } PUT _ingest/pipeline/level-2-1 { "processors": [ { "pipeline": { "name": "level-3-1" } }, { "pipeline": { "name": "level-3-2" } } ] } PUT _ingest/pipeline/level-2-2 { "processors": [ { "pipeline": { "name": "level-3-1" } }, { "pipeline": { "name": "level-3-2" } } ] } PUT _ingest/pipeline/level-1 { "processors": [ { "pipeline": { "name": "level-2-1" } }, { "pipeline": { "name": "level-2-2" } }, { "pipeline": { "name": "non-existing" } } ] } ``` </details> 2. Go to Ingest pipelines and click on any of the created pipelines. Verify that the tree is working as expected. Verify that the footer action buttons also work as expected (edit/clone/delete) 3. Verify that tree view is only displayed if the root has children. 4. Verify that navigating to a non-existing pipeline through the URL opens the flyout with an error banner and without the tree. 5. Verify that when you open a non-exisisting pipeline by clicking on a tree node, a warning banner is displayed. 6. Verify that in smaller screens only one panel is displayed at a time. 7. To test in Streams, enable streams with `POST kbn:/api/streams/_enable` and create sample date with `node scripts/synthtrace.js sample_logs --live --kibana=http://elastic:changeme@localhost:5601 --target=http://elastic:changeme@localhost:9200 --liveBucketSize=1000` --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Addresses elastic#227405 https://github.com/user-attachments/assets/1473ade0-19cb-4892-a64a-2ed4374e3879 ## Summary This PR adds the Ingest pipeline structure tree to the ingest pipelines details flyout. **How to test:** 1. Run the following requests in Console (you can run them all at once) to create a sample ingest pipeline tree: <details> <summary>Console requests:</summary> ``` PUT _ingest/pipeline/level-8-1 { "processors": [] } PUT _ingest/pipeline/level-8-2 { "processors": [] } PUT _ingest/pipeline/level-7-1 { "processors": [ { "pipeline": { "name": "level-8-1" } }, { "pipeline": { "name": "level-8-2" } } ] } PUT _ingest/pipeline/level-7-2 { "processors": [ { "pipeline": { "name": "level-8-1" } }, { "pipeline": { "name": "level-8-2" } } ] } PUT _ingest/pipeline/level-6-1 { "processors": [ { "pipeline": { "name": "level-7-1" } }, { "pipeline": { "name": "level-7-2" } } ] } PUT _ingest/pipeline/level-6-2 { "processors": [ { "pipeline": { "name": "level-7-1" } }, { "pipeline": { "name": "level-7-2" } } ] } PUT _ingest/pipeline/level-5-1 { "processors": [ { "pipeline": { "name": "level-6-1" } }, { "pipeline": { "name": "level-6-2" } } ] } PUT _ingest/pipeline/level-5-2 { "processors": [ { "pipeline": { "name": "level-6-1" } }, { "pipeline": { "name": "level-6-2" } } ] } PUT _ingest/pipeline/level-4-1 { "processors": [ { "pipeline": { "name": "level-5-1" } }, { "pipeline": { "name": "level-5-2" } } ] } PUT _ingest/pipeline/level-4-2 { "processors": [ { "pipeline": { "name": "level-5-1" } }, { "pipeline": { "name": "level-5-2" } } ] } PUT _ingest/pipeline/level-3-1 { "processors": [ { "pipeline": { "name": "level-4-1" } }, { "pipeline": { "name": "level-4-2" } } ] } PUT _ingest/pipeline/level-3-2 { "processors": [ { "pipeline": { "name": "level-4-1" } }, { "pipeline": { "name": "level-4-2" } } ] } PUT _ingest/pipeline/level-2-1 { "processors": [ { "pipeline": { "name": "level-3-1" } }, { "pipeline": { "name": "level-3-2" } } ] } PUT _ingest/pipeline/level-2-2 { "processors": [ { "pipeline": { "name": "level-3-1" } }, { "pipeline": { "name": "level-3-2" } } ] } PUT _ingest/pipeline/level-1 { "processors": [ { "pipeline": { "name": "level-2-1" } }, { "pipeline": { "name": "level-2-2" } }, { "pipeline": { "name": "non-existing" } } ] } ``` </details> 2. Go to Ingest pipelines and click on any of the created pipelines. Verify that the tree is working as expected. Verify that the footer action buttons also work as expected (edit/clone/delete) 3. Verify that tree view is only displayed if the root has children. 4. Verify that navigating to a non-existing pipeline through the URL opens the flyout with an error banner and without the tree. 5. Verify that when you open a non-exisisting pipeline by clicking on a tree node, a warning banner is displayed. 6. Verify that in smaller screens only one panel is displayed at a time. 7. To test in Streams, enable streams with `POST kbn:/api/streams/_enable` and create sample date with `node scripts/synthtrace.js sample_logs --live --kibana=http://elastic:changeme@localhost:5601 --target=http://elastic:changeme@localhost:9200 --liveBucketSize=1000` --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Addresses #227405
Screen.Recording.2025-07-29.at.18.13.39.mov
Summary
This PR adds the Ingest pipeline structure tree to the ingest pipelines details flyout.
How to test:
Console requests:
POST kbn:/api/streams/_enableand create sample date withnode scripts/synthtrace.js sample_logs --live --kibana=http://elastic:changeme@localhost:5601 --target=http://elastic:changeme@localhost:9200 --liveBucketSize=1000