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][Unified IA] New sections with landing page #163102

Merged
merged 33 commits into from
Aug 15, 2023

Conversation

semd
Copy link
Contributor

@semd semd commented Aug 3, 2023

Summary

closes: #157847

The new links and pages in Security Solution for Serverless:

  • Investigations

    • Timelines
    • Osquery
  • Assets

    • Fleet (and all its sub-links)
    • Endpoints (and all its sub-links)
    • Cloud defend (and all its sub-links)
    • Callout with button linking Integrations in Project Setting
  • Project settings

    • Users & roles (Cloud UI)
    • Billing & consumption (Cloud UI)
    • Integrations (link to integrations with /browse/security path parameter)
    • Entity risk score (link currently under the riskScoringRoutesEnabled experimental flag)
    • Management accordion with a set of (stack) management categories and pages links

Sections updated:

(ESS & Serverless) Rules links have been updated according to new specs.
(ESS) The Settings page was renamed back to Manage.
(Serverless) The Dev tools link was moved to the bottom of the side navigation.

Cypress tests for serverless:

They will be implemented in a follow-up PR when the infrastructure is ready #162698

Screenshots

Serverless

Investigations:

investigations
investigations_panel

Assets:

assets
assets_panel

Rules:

rules
rules_panel

Project Settings:

project_settings
project_settings_panel

ESS

Side Navigation:
ess_side_nav

@semd semd changed the title [Security Solution][Unified IA] New Assets section with landing page [Security Solution][Unified IA] New sections with landing page Aug 4, 2023
@semd semd self-assigned this Aug 8, 2023
@semd
Copy link
Contributor Author

semd commented Aug 8, 2023

@elasticmachine merge upstream

@semd semd added release_note:enhancement Team:Threat Hunting Security Solution Threat Hunting Team Team:Threat Hunting:Explore ci:cloud-deploy Create or update a Cloud deployment v8.10.0 labels Aug 8, 2023
@semd semd marked this pull request as ready for review August 9, 2023 17:05
@semd
Copy link
Contributor Author

semd commented Aug 10, 2023

@jpdjere

Fleet pages seem to lack a minimum padding against the navigation, when the viewport is sufficiently narrow

Good catch, Fleet folks will take care of the issue here. Thanks for the thorough review.

@machadoum
Copy link
Member

Very nit UI issues. Definitely not a blocker:

Some pages have a grey background and it looks a bit off, is it intentional?

Screenshot 2023-08-10 at 16 53 05 Screenshot 2023-08-10 at 16 37 12

When this page loads it flicks a little bit.
Aug-10-2023 16-38-48

@semd
Copy link
Contributor Author

semd commented Aug 10, 2023

@machadoum

Some pages have a grey background and it looks a bit off, is it intentional?

This is caused by having a different layout on serverless, probably those pages miss the KibanaPageTemplate.Section wrapper. But this is unrelated to the navigation changes, it will need to be addressed by the different teams owning those pages.

@semd semd requested a review from a team as a code owner August 10, 2023 22:37
@machadoum
Copy link
Member

I noticed that the new pages don't render TrackApplicationView. Are we tracking these pages differently?

@@ -40,6 +41,8 @@ export class SecuritySolutionServerlessPlugin
setupDeps: SecuritySolutionServerlessPluginSetupDeps
): SecuritySolutionServerlessPluginSetup {
registerUpsellings(setupDeps.securitySolution.upselling, this.config.productTypes);
setupDeps.securitySolution.setAppLinksSwitcher(projectAppLinksSwitcher);
Copy link
Contributor

@angorayc angorayc Aug 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like how it adjusts the links for serverless and has permission checked. I also like that we've moved all the serverless relevent flags to plugin contract, very well organised. 👍


export const isCloudLink = (linkId: string): boolean => linkId.startsWith('cloud:');
export const getCloudLinkKey = (linkId: string): string => linkId.replace('cloud:', '');
export const getCloudUrl = (cloudUrlKey: string, cloud: CloudStart): string | undefined => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@semd semd enabled auto-merge (squash) August 11, 2023 14:59
@semd
Copy link
Contributor Author

semd commented Aug 11, 2023

@machadoum

I noticed that the new pages don't render TrackApplicationView. Are we tracking these pages differently?

Since I am not sure how telemetry is going to work in serverless I've just omited tracking for now, I added a task here to do it later #162072

Copy link
Member

@ashokaditya ashokaditya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the large set of changes. 🔥 I have got a few suggestions and notes.

I also tested it out. I think that the menu panel floating over the sub-header in serverless mode looks funky. It should be attached to the bottom of the subheader. It's not how it behaves in the ESS mode. Not sure if this is by design?

serverless
Screenshot 2023-08-14 at 13 09 44

vs ESS
Screenshot 2023-08-14 at 13 15 53

Comment on lines +20 to +24
<KibanaPageTemplate restrictWidth={false} contentBorder={false} grow={true}>
<KibanaPageTemplate.Section>
<EuiPageHeader pageTitle={title} />
<EuiSpacer size="l" />
<EuiSpacer size="xl" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the template props, title and spacer values are same for all the pages. Consider extracting it into a common page/wrapper component that can be used for all the pages. Something like,

<PageWrapper>
  <LandingLinksIcons items={links} />
</PageWrapper>
<PageWrapper>
  <LandingLinksIconsCategories links={links} categories={categories} />
</PageWrapper>

and so on

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good suggestion! But I am on PTO for the next two weeks, would you mind if we do this on a follow-up PR? So we can merge the main changes.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good @semd

@semd
Copy link
Contributor Author

semd commented Aug 14, 2023

@ashokaditya

I think that the menu panel floating over the sub-header in serverless mode looks funky

This is a known issue on the serverless top header bar, it is fixed here #162002. merging main should fix it.

@semd
Copy link
Contributor Author

semd commented Aug 14, 2023

@elasticmachine merge upstream

@kibana-ci
Copy link
Collaborator

kibana-ci commented Aug 14, 2023

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] Defend Workflows Cypress Tests #1 / Endpoint Policy Response from Fleet Agent Details page should display policy response with errors should display policy response with errors

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
fleet 860 861 +1
securitySolution 4406 4410 +4
securitySolutionServerless 251 409 +158
total +163

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
@kbn/security-solution-navigation 41 47 +6
@kbn/security-solution-side-nav 21 23 +2
total +8

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
fleet 1022.7KB 1022.7KB +20.0B
securitySolution 15.6MB 15.6MB +11.6KB
securitySolutionServerless 134.1KB 255.3KB +121.2KB
total +132.9KB

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
securitySolution 33 34 +1

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
cloudSecurityPosture 13.0KB 13.0KB -9.0B
fleet 138.8KB 140.1KB +1.3KB
securitySolution 61.3KB 61.0KB -293.0B
securitySolutionServerless 25.4KB 38.0KB +12.5KB
total +13.5KB
Unknown metric groups

API count

id before after diff
@kbn/security-solution-navigation 44 50 +6
@kbn/security-solution-side-nav 27 29 +2
total +8

async chunk count

id before after diff
securitySolution 47 49 +2
securitySolutionServerless 22 35 +13
total +15

ESLint disabled line counts

id before after diff
@kbn/security-solution-navigation 5 6 +1
securitySolutionServerless 24 35 +11
total +12

Total ESLint disabled count

id before after diff
@kbn/security-solution-navigation 5 6 +1
securitySolutionServerless 24 35 +11
total +12

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @semd

Copy link
Member

@ashokaditya ashokaditya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@semd semd merged commit 560c871 into elastic:main Aug 15, 2023
@kibanamachine kibanamachine added the backport:skip This commit does not require backporting label Aug 15, 2023
bryce-b pushed a commit that referenced this pull request Aug 22, 2023
## Summary

closes: #157847

The new links and pages in Security Solution for Serverless:

- `Investigations`
   - `Timelines`
   - `Osquery`

- `Assets`
   - `Fleet` (and all its sub-links)
   - `Endpoints` (and all its sub-links)
   - `Cloud defend` (and all its sub-links)
   - Callout with button linking `Integrations` in Project Setting

-  `Project settings`
   - `Users & roles` (Cloud UI)   
   - `Billing & consumption` (Cloud UI)
- `Integrations` (link to integrations with _/browse/security_ path
parameter)
- `Entity risk score` (link currently under the
`riskScoringRoutesEnabled` experimental flag)
- `Management` accordion with a set of (stack) management categories and
pages links

Sections updated:

(ESS & Serverless) `Rules` links have been updated according to new
specs.
(ESS) The `Settings` page was renamed back to `Manage`.
(Serverless) The `Dev tools` link was moved to the bottom of the side
navigation.

#### Cypress tests for serverless:

They will be implemented in a follow-up PR when the infrastructure is
ready #162698

## Screenshots

### Serverless

Investigations:


![investigations](https://github.com/elastic/kibana/assets/17747913/19b602ab-53bb-4280-b0c3-dc69255ea3ab)

![investigations_panel](https://github.com/elastic/kibana/assets/17747913/8be036fc-6095-4234-8b07-1a7149c8a92b)

Assets:


![assets](https://github.com/elastic/kibana/assets/17747913/963723d5-16da-45dd-955c-a7d7b61099e6)

![assets_panel](https://github.com/elastic/kibana/assets/17747913/977c0716-7cc3-4369-acdf-0787e264a912)

Rules:


![rules](https://github.com/elastic/kibana/assets/17747913/5bafbd08-508c-4b50-bd28-dc052371e76a)

![rules_panel](https://github.com/elastic/kibana/assets/17747913/ea47f8d9-4b68-44f3-8a42-6f795d05b982)

Project Settings:


![project_settings](https://github.com/elastic/kibana/assets/17747913/36dbb446-3354-4519-b59c-e8b5005fbb71)

![project_settings_panel](https://github.com/elastic/kibana/assets/17747913/1315b54b-4423-41a2-b0ed-997ee77c1f6d)

## ESS

Side Navigation:

![ess_side_nav](https://github.com/elastic/kibana/assets/17747913/a3687a47-3ccb-4ce8-aa53-9e962a6ef1cf)

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Tomasz Ciecierski <[email protected]>
Co-authored-by: Tomasz Ciecierski <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting ci:cloud-deploy Create or update a Cloud deployment release_note:enhancement Team:Fleet Team label for Observability Data Collection Fleet team Team:Threat Hunting:Explore Team:Threat Hunting Security Solution Threat Hunting Team v8.10.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Security Solution][Serverless] Adapt the new IA to the left navigation