Skip to content

[Security Solution] Disable ML rule's edit button link under basic license#143260

Merged
maximpn merged 20 commits intoelastic:mainfrom
maximpn:disable-ml-rule-edit-button-for-basic-license
Oct 21, 2022
Merged

[Security Solution] Disable ML rule's edit button link under basic license#143260
maximpn merged 20 commits intoelastic:mainfrom
maximpn:disable-ml-rule-edit-button-for-basic-license

Conversation

@maximpn
Copy link
Contributor

@maximpn maximpn commented Oct 13, 2022

Resolves: #139796

Summary

It disables ML rule's edit button link under the basic license.

Details

ML rules aren't available under the basic license but installable from the prebuilt rules. Having an active edit button makes the UX inconsistent. Disabling such a button under the basic license for ML rules improves UX though doesn't block a user from opening the rule editing page from the address bar.

Before:

Screen.Recording.2022-10-13.at.11.59.02.mov

After:

Screen.Recording.2022-10-13.at.11.56.25.mov

Checklist

@maximpn maximpn self-assigned this Oct 13, 2022
@maximpn maximpn added bug Fixes for quality problems that affect the customer experience Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Detection Rule Management Security Detection Rule Management Team Feature:Rule Details Security Solution Detection Rule Details page release_note:fix backport:prev-minor v8.6.0 labels Oct 13, 2022
@maximpn maximpn marked this pull request as ready for review October 13, 2022 12:05
@maximpn maximpn requested a review from a team as a code owner October 13, 2022 12:05
@maximpn maximpn requested a review from xcrzx October 13, 2022 12:05
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detections-response (Team:Detections and Resp)

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-solution (Team: SecuritySolution)

Copy link
Contributor

@xcrzx xcrzx left a comment

Choose a reason for hiding this comment

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

Overall, the changes look good to me. Thanks for fixing this bug, @maximpn 👍
Added some minor suggestions to consider.

@maximpn maximpn force-pushed the disable-ml-rule-edit-button-for-basic-license branch from 8564c29 to d42c47c Compare October 19, 2022 12:48
@maximpn maximpn requested a review from a team as a code owner October 19, 2022 13:25
@maximpn maximpn force-pushed the disable-ml-rule-edit-button-for-basic-license branch from 9ba2931 to 83b355e Compare October 19, 2022 13:29
@maximpn maximpn force-pushed the disable-ml-rule-edit-button-for-basic-license branch from 0f94dcc to 7230f9f Compare October 19, 2022 19:37
@maximpn
Copy link
Contributor Author

maximpn commented Oct 19, 2022

@elasticmachine merge upstream

@maximpn maximpn force-pushed the disable-ml-rule-edit-button-for-basic-license branch from 598af98 to 70c3a51 Compare October 19, 2022 20:24
@maximpn
Copy link
Contributor Author

maximpn commented Oct 19, 2022

@elasticmachine merge upstream

Copy link
Contributor

@xcrzx xcrzx left a comment

Choose a reason for hiding this comment

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

Sorry, I had to add a couple more comments 🙂
Thanks for addressing my previous ones, BTW!

Copy link
Contributor

Choose a reason for hiding this comment

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

Could we pass an actual canUserCRUD value here instead of the hardcoded true?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sure

Copy link
Contributor

Choose a reason for hiding this comment

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

Could we pass an actual canUserCRUD value here instead of the hardcoded true?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

getToolTipContent() is used as a utility function here. It can be simplified though full privileges refactoring will be much better.

Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: ruleId is not nullable.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thanks

Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: ruleId is not nullable.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thanks

Copy link
Contributor

Choose a reason for hiding this comment

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

Let's use the userHasPermissions(canUserCRUD) helper here.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for renaming this constant! For more clarity, I'd propose to name it more specific, like LACK_OF_KIBANA_ACTIONS_FEATURE_PRIVILEGES, as Kibana privileges is a broader term that includes many different features, including actions, security, etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sounds good, thanks

Copy link
Contributor

Choose a reason for hiding this comment

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

LACK_OF_KIBANA_SECURITY_FEATURE_PRIVILEGES

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thanks

Copy link
Contributor

Choose a reason for hiding this comment

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

It would be better to rephrase this line like "You do not have Kibana Security privileges" for consistency with the documentation and the Kibana feature privileges UI.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sounds good, thanks

@maximpn maximpn force-pushed the disable-ml-rule-edit-button-for-basic-license branch from 1746361 to 60db907 Compare October 20, 2022 15:14
Copy link
Contributor

@xcrzx xcrzx left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for addressing my comments 👍

@maximpn maximpn force-pushed the disable-ml-rule-edit-button-for-basic-license branch from 527c76f to 41403c4 Compare October 20, 2022 17:13
@maximpn
Copy link
Contributor Author

maximpn commented Oct 21, 2022

@elasticmachine merge upstream

@kibana-ci
Copy link

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
securitySolution 3201 3202 +1

Async chunks

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

id before after diff
securitySolution 10.0MB 10.0MB +855.0B

History

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

cc @maximpn

@maximpn
Copy link
Contributor Author

maximpn commented Oct 21, 2022

@banderror I've created an issue #143812 to address your comment.

@maximpn maximpn merged commit a670c7f into elastic:main Oct 21, 2022
@kibanamachine
Copy link
Contributor

💔 All backports failed

Status Branch Result
8.5 Backport failed because of merge conflicts

Manual backport

To create the backport manually run:

node scripts/backport --pr 143260

Questions ?

Please refer to the Backport tool documentation

@kibanamachine kibanamachine added the backport:skip This PR does not require backporting label Oct 21, 2022
@banderror
Copy link
Contributor

@maximpn you shouldn't backport it to 8.5, it's too late.

@maximpn maximpn deleted the disable-ml-rule-edit-button-for-basic-license branch October 24, 2022 05:35
jloleysens added a commit to jloleysens/kibana that referenced this pull request Oct 24, 2022
* main: (57 commits)
  [Files] Filepicker (elastic#143111)
  [Infrastructure UI] Replace Lens table with EUI table and own api (elastic#142871)
  [api-docs] Daily api_docs build (elastic#143829)
  [api-docs] Daily api_docs build (elastic#143825)
  [api-docs] Daily api_docs build (elastic#143823)
  [Security Solution] Restructuring folders of Detection Engine + refactoring Rule Management (elastic#142950)
  [Dev tools] Fix performance issue with autocomplete suggestions (elastic#143428)
  [Security Solution] Disable ML rule's edit button link under basic license (elastic#143260)
  [Lens]  Use the language-documentation package for formula (elastic#143649)
  [api-docs] Daily api_docs build (elastic#143811)
  [Security Solution] Fix missing title on inspect pop-up (elastic#143601)
  fix incorrect filters being passed to events table causing duplicate entries in our inpsect tool request tab (elastic#143239)
  [Security Solution][Endpoint] `get-file` response action kibana download file API (elastic#143708)
  Rely on refresh context to update stats independently of overview cards. (elastic#143308)
  [RAM] Rule event log - Fix incorrect results when filtering by message and outcome simultaneously (elastic#143119)
  [ML] Display link to create data view from error cases in data frame analytics results pages (elastic#143596)
  Update links in README :) (elastic#143675)
  Add more tests for ml_inference_logic (elastic#143764)
  skip failing test suite (elastic#143717)
  [DOCS] Add assignees to case APIs (elastic#143610)
  ...
@maximpn
Copy link
Contributor Author

maximpn commented Nov 7, 2022

💚 All backports created successfully

Status Branch Result
8.5

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

maximpn added a commit to maximpn/kibana that referenced this pull request Nov 7, 2022
…cense (elastic#143260)

**Resolves:** [elastic#139796](elastic#139796)

## Summary

It disables ML rule's edit button link under the basic license.

## Details

ML rules aren't available under the basic license but installable from the prebuilt rules. Having an active edit button makes the UX inconsistent. Disabling such a button under the basic license for ML rules improves UX though doesn't block a user from opening the rule editing page from the address bar.

Before:

https://user-images.githubusercontent.com/3775283/195552179-525f0423-3a62-4ab5-b1ef-0f5cafe2286e.mov

After:

https://user-images.githubusercontent.com/3775283/195551540-b95fabeb-4e50-4a26-ae42-1a72f53573dc.mov

### Checklist

- [ ] 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] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

(cherry picked from commit a670c7f)

# Conflicts:
#	x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/details/index.tsx
maximpn added a commit that referenced this pull request Nov 7, 2022
…cense (#143260) (#144723)

**Resolves:** [#139796](#139796)

## Summary

It disables ML rule's edit button link under the basic license.

## Details

ML rules aren't available under the basic license but installable from the prebuilt rules. Having an active edit button makes the UX inconsistent. Disabling such a button under the basic license for ML rules improves UX though doesn't block a user from opening the rule editing page from the address bar.

Before:

https://user-images.githubusercontent.com/3775283/195552179-525f0423-3a62-4ab5-b1ef-0f5cafe2286e.mov

After:

https://user-images.githubusercontent.com/3775283/195551540-b95fabeb-4e50-4a26-ae42-1a72f53573dc.mov

### Checklist

- [ ] 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] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

(cherry picked from commit a670c7f)

# Conflicts:
#	x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/details/index.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting bug Fixes for quality problems that affect the customer experience Feature:Rule Details Security Solution Detection Rule Details page release_note:fix Team:Detection Rule Management Security Detection Rule Management Team Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. v8.5.1 v8.6.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants