Skip to content
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

[Security Solution] Create Dashboard view page #152955

Closed
5 tasks done
semd opened this issue Mar 8, 2023 · 3 comments
Closed
5 tasks done

[Security Solution] Create Dashboard view page #152955

semd opened this issue Mar 8, 2023 · 3 comments
Assignees
Labels
8.8 candidate Feature:Security Dashboards Security solution custom dashboards feature Team:Threat Hunting:Explore Team:Threat Hunting Security Solution Threat Hunting Team v8.9.0

Comments

@semd
Copy link
Contributor

semd commented Mar 8, 2023

Description

Create a new page in the Security dashboards section to view Kibana dashboards inside security.

path: /app/security/dashboards/:dashboardId

The :dashaboardId parameter will be the savedObject ID needed by the portable dashboards to render.

Implementation

We can replicate the examples at:
https://github.com/elastic/kibana/blob/main/examples/portable_dashboards_example/public/plugin.tsx

Stages

We can separate the implementation into incremental stages (each one can be converted to a sub-issue)

1. Create the new page (POC):

We will probably need a new Security sub-plugin at /x-pack/plugins/security_solution/public/dashboards that will have its own router. We will need the route to the new page. We won't need to add an appLink for this page since it is dynamic, it will be considered part of the /security/dashboards path by the appLinks (global search, breadcrumbs...)

Create a new component (DashboardView?) that will render the portable dashboard using the dashboardId parameter. The page will exist but will still be inaccessible in the UX. It can take the full page and it should have a fallback screen for "dashboard not exists" situation. An "Edit dashboard" button to the Dashboards app will also be needed. Tests.

Things to consider:

  • Does it make sense to move the dashboards landing page to this new sub-plugin as well?
  • Does the user need some permission to load the dashboard?
  • Should we allow any dashboard to render there? or only tagged?
  • Will we be able to show the dashboard name in the breadcrumbs using SpyRoute? (We may need to load it by ourselves, or get it from the portable dashboard component api somehow)

2. Product & Design feedback:

Confirm the page is okay from the Product & Design standpoint and do the changes if needed. This step can be considered the Go - No Go for 8.8.

3. Link the dashboards list:

Change the link in the dashboards list to go to the new internal page instead of the external Kibana dashboards.
This will make the page public and accessible.

Relevant issue: Reuse dashboards list from Dashboards app - #153869

4. Add Edition/Creation - 8.9

Implement the creation and edition controls on the Security dashboard page. This part will probably need design in advance.

5. Link the creation button to the new page - 8.9

Change the "create" button in the dashboard landing page to go to the new creation page instead of the external Kibana dashboards.
It has to pre-set the Security Solution tag the same way it works now.

Completion

  • Stage 1
  • Stage 2
  • Stage 3
  • Stage 4
  • Stage 5
@botelastic botelastic bot added the needs-team Issues missing a team label label Mar 8, 2023
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-threat-hunting (Team:Threat Hunting)

@botelastic botelastic bot removed the needs-team Issues missing a team label label Mar 8, 2023
@semd semd assigned semd and angorayc and unassigned semd Mar 14, 2023
@angorayc angorayc added the Feature:Security Dashboards Security solution custom dashboards feature label Apr 4, 2023
angorayc added a commit that referenced this issue Apr 11, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
## Summary

#152955

Demo link:
https://kibana-pr-153040.kb.us-west2.gcp.elastic-cloud.com:9243/app/security/dashboards/6294c960-ce35-11ed-b8ca-51636b04063c?sourcerer=(default:(id:security-solution-default,selectedPatterns:!(%27auditbeat-*%27,%27logs-*%27)))


https://p.elstc.co/paste/pOFVo-fV#Zgp3hnsnijsDHbki4y9Cy5F+apet-hYEcedpDzsc+f7

This create a single dashboard view under Security Solution:

- Add dashboard view path: `/app/security/dashboards/:dashboardId`
- Move the dashboards landing page to this new sub-plugin.
- Check users' read permission to render a dashboard.
- Render a dashboard with the given saved object id.
- Show the dashboard name in the breadcrumbs.

Dashboard not found:

<img width="2363" alt="Screenshot 2023-03-23 at 13 44 01"
src="https://user-images.githubusercontent.com/6295984/227477728-8d4984f2-3d8f-4f92-88ae-3337e6b3e5be.png">

Dashboard rendered:

<img width="2539" alt="Screenshot 2023-03-23 at 13 44 28"
src="https://user-images.githubusercontent.com/6295984/227477761-b1301b5c-1c4f-4970-bf8f-e077342c317f.png">


Interact with filters and query:


https://user-images.githubusercontent.com/6295984/227477735-dc53bb85-31fb-4043-8355-22866296ebf9.mov




Interact with `Open in Lens` and `Investigate in timeline`



https://user-images.githubusercontent.com/6295984/228217900-5055a5d1-46f2-4d2f-98a8-289eb0f1939a.mov




**Steps to verify**:
1. Create a dashboard from `/app/dashboards#/list`, save it and copy the
dashboard saved object id from url.
2. Visit `/app/security/dashboards/:dashboardId`



### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: Stratoula Kalafateli <stratoula1@gmail.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
@angorayc
Copy link
Contributor

angorayc commented Apr 13, 2023

Todos:

semd added a commit that referenced this issue Apr 21, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
## Summary

issue: #152955
follow up of #153040

These changes make the dashboard name to be displayed in the page title,
as requested by @paulewing

## Screenshots


![example](https://user-images.githubusercontent.com/17747913/233359294-a3055aa5-5e2e-4412-93a6-bffd54d93840.png)


![not_found](https://user-images.githubusercontent.com/17747913/233359333-b0175225-99d1-41f3-b3e4-aed630531786.png)
@angorayc angorayc added the v8.9.0 label May 3, 2023
@stephmilovic
Copy link
Contributor

Let's check with Paul about the priority for this, it might need to get bumped to 8.10

angorayc added a commit that referenced this issue Oct 2, 2023

Partially verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
## Summary

issue: #152955

Test environment:
https://p.elstc.co/paste/9-b8FqRA#EkVP6KV1UAFOu1cWFwX1laj63P9wc5eQtnT7bCPyEuX

Known issues:
#159486 (comment)



https://github.com/elastic/kibana/assets/6295984/23d30613-2dc3-423c-ada1-b52cd2f409ee



1. Reuse Kibana Dashboard's tool bar



<img width="2543" alt="Screenshot 2023-09-26 at 15 51 30"
src="https://github.com/elastic/kibana/assets/6295984/b0279665-578a-45f9-b416-675e152b7dbd">




2. Dashboard with a `Managed` tag does `not` have the edit tool bar
under the title.

<img width="2558" alt="Screenshot 2023-09-29 at 10 11 34"
src="https://github.com/elastic/kibana/assets/6295984/7c0774c1-2bf2-478b-a30e-59ff8609b584">


### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Sergi Massaneda <sergi.massaneda@gmail.com>
Co-authored-by: Devon Thomson <devon.thomson@elastic.co>
@angorayc angorayc closed this as completed Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.8 candidate Feature:Security Dashboards Security solution custom dashboards feature Team:Threat Hunting:Explore Team:Threat Hunting Security Solution Threat Hunting Team v8.9.0
Projects
None yet
Development

No branches or pull requests

4 participants