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

[Request] Prebuilt rule customization, upgrade, and export/import workflows - UI copy review #6238

Closed
Tracked by #174168
ARWNightingale opened this issue Nov 25, 2024 · 14 comments · Fixed by elastic/kibana#210817
Assignees
Labels
Docset: ESS Issues that apply to docs in the Stack release Docset: Serverless Issues for Serverless Security Feature: Prebuilt rules Feature: Rules Team: Detections/Response Detections and Response ui-copy v8.18.0 v9.0.0

Comments

@ARWNightingale
Copy link

ARWNightingale commented Nov 25, 2024

Epic: elastic/kibana#174168
Related to: #5061
PR: elastic/kibana#210817

Summary

Description

We are introducing the ability for users to customize prebuilt Elastic rules and adjusting the rule upgrade workflow to adapt to that change. This includes ability to:

  • edit and customize prebuilt rules (modify almost all rule parameters, besides rule actions);
  • export and import prebuilt rules, including customized ones;
  • upgrade prebuilt rules while keeping the user customizations whenever possible.

More information in the main docs ticket: #5061.

Related links / assets

Collaborators

Please reach out via the team channel.

UI copies

Prebuilt rule customization workflow

  • Tooltips for the Author and License fields. Displayed on the Rule Editing page.
Image Image
  • "Modified Elastic rule" badge. Displayed on the Rule Details page, Rule Management page - Installed Rules table, and Rule Management page - Rule Updates table.
Image Image Image Image
  • "Modifications" filter. Displayed on the Rule Management page - Rule Updates table.
Image

Prebuilt rule upgrade workflow - Rule Updates table

  • Tooltips about rules having conflicts.
Image Image
  • Modal about rules having conflicts.
Image Image

Prebuilt rule upgrade workflow - Rule Upgrade flyout

Image
  • Flyout header and footer.
Image Image
  • Updates tab: title and status bar.
Image
  • Updates tab: overall update status callouts.
Image Image Image
  • Rule field view: update status indicators.

Field has an update from Elastic, but it hasn't been customized by the user:

Image

Field has been customized by the user, but there's no update from Elastic:

Image

Field has been customized by the user AND it has an update from Elastic. The app was able to auto-merge these changes and suggest a final field value to upgrade to. This represents a potential conflict. The user has to review the conflict between their changes and the update from Elastic, review the "final update" value and either accept the suggested value or edit it before accepting:

Image

Field has been customized by the user AND it has an update from Elastic. The app was NOT able to auto-merge these changes and suggest a final field value to upgrade to. This represents a conflict. The user has to review the conflict between their changes and the update from Elastic, edit the field value and resolve the conflict manually:

Image

Conflict has been resolved by the user:

Image

"Modified" badge and its tooltips:

Image
  • Rule field view: diff view and diff selector.
Image Image Image Image

@pborgonovi had a concern about explanation wording for "My changes" in this tooltip. Please take a look and feel free to suggest an improvement.

  • Rule field view: final update view, readonly mode.
Image Image Image
  • Rule field view: final update view, editing mode.
Image Image Image
  • Edge case: rule type change.

If it's a stock, non-customized prebuilt rule:

Image

If it's a customized prebuilt rule:

Image

Licensing restrictions

TBD. Details will be added by @xcrzx.

@nastasha-solomon
Copy link
Contributor

nastasha-solomon commented Dec 3, 2024

Hey @ARWNightingale - some suggestions and a couple of questions about the field statuses and requested user actions:

The information in the card title is for a field that is ready for the update as it has been reviewed or edited and accepted.

  • You can remove the period at the end since this is not a complete sentence.
  • Is there a reason why “Reviewed and accepted” isn’t followed by additional information like the other statuses? For example, I would expect to see something like:
  • Reviewed and accepted - The changes have been reviewed and accepted.

The information in the card title for a field that is ready for the update as there were no conflicts as the final update and all looks good.

  • What actions would a user have taken to get to this point? I’m a little confused with the sentence “The update has no conflicts and has been applied to the final update” because I don’t understand how a field can be ready for an update if the update has already been applied to the final update (which seems to be the final version of the field).

The information in the card title for a field that needs to be reviewed as we have tried to solved a conflict in the merging of the current and elastic update.

  • In this case, resolved is slightly more correct than solved. When you resolve something, you fix an issue or settle a dispute. When you solve something, you find the correct answer to a problem. (If you make this change, I also recommend applying it wherever "unsolved" is used in the UI copy for this feature.)
  • The explanation can be shortened and I recommend removing "please” as we usually avoid it in copy Here’s a potential revision:
    Resolved conflict - Before accepting this change, review the suggested update.

The information in the card title for a field that needs a user to input the final update as the conflict is unsolvable by Elastic then its needs to be accepted.

  • If you change solved to resolved, I recommend changing unsolved to unresolved here and anywhere else where unsolved is used for this feature.
  • What’s a "merge version" and how is it related to the update that the user needs to, or chooses to, accept?
  • In the second sentence, what is the "current version"?

@ARWNightingale
Copy link
Author

Hey @nastasha-solomon, I think we need to change the naming of the "Overview" tab in the update flyout. I think this can be confusing to what overview we are showing(update or existing rule). I would suggest something like "Update overview".

@nastasha-solomon
Copy link
Contributor

@banderror
Copy link
Contributor

@nastasha-solomon Reviewed the google doc and left a few minor suggestions and nit comments. Those are some awesome corrections! Thank you.

@banderror
Copy link
Contributor

@approksiu I think we don't need a separate ticket for implementing the corrections, we could use this one and assign an engineer from the team. We would just need to make it clear in the google doc what needs to be done (it's already 99% clear).

@ARWNightingale
Copy link
Author

Hey @banderror we also wondered if we could make some adjustments to the:

  1. Filter for modified/Unmodified updates in the update table, see image.
  2. Change the colour of the modified filed (no update) section from green to default.
Image Image

@banderror
Copy link
Contributor

@ARWNightingale

Filter for modified/Unmodified updates in the update table, see image.

Yes, but I don't think it should be a blocker for the first release. Please find my comment in the doc: "Can we start with renaming it to "Modified/Unmodified" and then rewrite to the two buttons after the first release?".

Change the colour of the modified filed (no update) section from green to default.

Yep, sounds good 👍

@banderror
Copy link
Contributor

@nastasha-solomon @xcrzx

Have UI copies for licensing been reviewed in elastic/kibana#206079?

@nastasha-solomon
Copy link
Contributor

@banderror if the licensing copy is ready, I can take a look today.

@xcrzx
Copy link
Contributor

xcrzx commented Jan 30, 2025

@nastasha-solomon, could you please check these new UI elements?

  • On the rule editing page, added a hover tooltip explaining why the tabs are disabled:

    • For ECH: "Upgrade to Enterprise to enable prebuilt rule customization."
    • For Serverless: "Upgrade to Security Complete to enable prebuilt rule customization."
      image
  • Added a bulk action confirmation dialog with the following message when rule editing is disabled due to an insufficient license:
    image

  • For previously customized rules, where customization is now disabled due to an insufficient license, a notification will appear on the upgrade flyout, clarifying that only an upgrade to Elastic's version is available.
    image

Let me know if anything needs adjustment!

@nastasha-solomon
Copy link
Contributor

@xcrzx I left some suggestions for you here. Feel free to ping me if you'd like to discuss anything further. : )

@banderror
Copy link
Contributor

@nastasha-solomon @ARWNightingale @approksiu @xcrzx

If there are no other comments, we can take this into work and implement the copy improvements next week.

@nastasha-solomon
Copy link
Contributor

nastasha-solomon commented Feb 5, 2025

@banderror one more thing - I was reviewing the doc issue again and noticed an ask to check the wording for disabling the building block property. As I mentioned in my reply, the text looks good but the quotes aren't needed.

@nastasha-solomon
Copy link
Contributor

Copy changes were added in elastic/kibana#210817

nikitaindik added a commit to elastic/kibana that referenced this issue Feb 20, 2025
**Resolves: elastic/security-docs#6238
**Deployed here:
[link](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co/app/security/rules/updates?rulesTable=(field:name,order:asc,searchTerm:'Shared%20Object%20Created%20or%20Changed%20by%20Previously%20Unknown%20Process')&sourcerer=(default:(id:security-solution-default,selectedPatterns:!()))&timerange=(global:(linkTo:!(timeline),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)),timeline:(linkTo:!(global),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)))&timeline=(activeTab:query,graphEventId:'',isOpen:!f))**

> ⚠️ CI fails are caused by an issue unrelated to this PR

## Summary

Changes in this PR:
- UI copy is updated in accordance with
[recommendations](https://docs.google.com/document/d/1Yl6DyN9pertqgB-iIKIEN3xdvlDM50oscJ00G-WwtyA/edit?tab=t.0)
(internal link) from Security Documentation team
- Text color for "No update" fields in upgrade flyout changed from green
to default.
- Fixed a minor bug with placeholder not displaying for "Setup guide"
and "Investigation guide" fields on Rule Creation/Editing page


<details>
<summary><strong>A few screenshots taken in Serverless</strong> (click
to expand)</summary>

<img width="523" alt="serverless_rep_tooltip"
src="https://github.com/user-attachments/assets/825e1514-a191-45c2-90ca-0f15a8c9da7b"
/>
  
<img width="836" alt="serverless_bulk_action_error"
src="https://github.com/user-attachments/assets/8aa38c77-5aaa-49cf-9b4e-8c992382a1d2"
/>
  
<img width="1102" alt="serverless_upgrade_callout"
src="https://github.com/user-attachments/assets/cf947c73-d52d-4c85-abd6-369f616b8421"
/>
  
<img width="1004" alt="no_update_white"
src="https://github.com/user-attachments/assets/f720f24c-0c97-432f-b2d5-7ff7e5919ba0"
/>



</details>

## Testing
You can use [this
deployment](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co)
(default credentials) test to changes on ESS Enterprise license.
Here's a couple rules that has field updates of different kinds:
 - Unusual User Privilege Enumeration via id
 - Shared Object Created or Changed by Previously Unknown Process

To test on Serverless or with other licenses, you'll need to run it
locally. Reach out to me if you need help with this.

Work started: 11-Feb-2025
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Feb 20, 2025
…ic#210817)

**Resolves: elastic/security-docs#6238
**Deployed here:
[link](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co/app/security/rules/updates?rulesTable=(field:name,order:asc,searchTerm:'Shared%20Object%20Created%20or%20Changed%20by%20Previously%20Unknown%20Process')&sourcerer=(default:(id:security-solution-default,selectedPatterns:!()))&timerange=(global:(linkTo:!(timeline),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)),timeline:(linkTo:!(global),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)))&timeline=(activeTab:query,graphEventId:'',isOpen:!f))**

> ⚠️ CI fails are caused by an issue unrelated to this PR

## Summary

Changes in this PR:
- UI copy is updated in accordance with
[recommendations](https://docs.google.com/document/d/1Yl6DyN9pertqgB-iIKIEN3xdvlDM50oscJ00G-WwtyA/edit?tab=t.0)
(internal link) from Security Documentation team
- Text color for "No update" fields in upgrade flyout changed from green
to default.
- Fixed a minor bug with placeholder not displaying for "Setup guide"
and "Investigation guide" fields on Rule Creation/Editing page

<details>
<summary><strong>A few screenshots taken in Serverless</strong> (click
to expand)</summary>

<img width="523" alt="serverless_rep_tooltip"
src="https://github.com/user-attachments/assets/825e1514-a191-45c2-90ca-0f15a8c9da7b"
/>

<img width="836" alt="serverless_bulk_action_error"
src="https://github.com/user-attachments/assets/8aa38c77-5aaa-49cf-9b4e-8c992382a1d2"
/>

<img width="1102" alt="serverless_upgrade_callout"
src="https://github.com/user-attachments/assets/cf947c73-d52d-4c85-abd6-369f616b8421"
/>

<img width="1004" alt="no_update_white"
src="https://github.com/user-attachments/assets/f720f24c-0c97-432f-b2d5-7ff7e5919ba0"
/>

</details>

## Testing
You can use [this
deployment](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co)
(default credentials) test to changes on ESS Enterprise license.
Here's a couple rules that has field updates of different kinds:
 - Unusual User Privilege Enumeration via id
 - Shared Object Created or Changed by Previously Unknown Process

To test on Serverless or with other licenses, you'll need to run it
locally. Reach out to me if you need help with this.

Work started: 11-Feb-2025

(cherry picked from commit 994201c)
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Feb 20, 2025
…ic#210817)

**Resolves: elastic/security-docs#6238
**Deployed here:
[link](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co/app/security/rules/updates?rulesTable=(field:name,order:asc,searchTerm:'Shared%20Object%20Created%20or%20Changed%20by%20Previously%20Unknown%20Process')&sourcerer=(default:(id:security-solution-default,selectedPatterns:!()))&timerange=(global:(linkTo:!(timeline),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)),timeline:(linkTo:!(global),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)))&timeline=(activeTab:query,graphEventId:'',isOpen:!f))**

> ⚠️ CI fails are caused by an issue unrelated to this PR

## Summary

Changes in this PR:
- UI copy is updated in accordance with
[recommendations](https://docs.google.com/document/d/1Yl6DyN9pertqgB-iIKIEN3xdvlDM50oscJ00G-WwtyA/edit?tab=t.0)
(internal link) from Security Documentation team
- Text color for "No update" fields in upgrade flyout changed from green
to default.
- Fixed a minor bug with placeholder not displaying for "Setup guide"
and "Investigation guide" fields on Rule Creation/Editing page

<details>
<summary><strong>A few screenshots taken in Serverless</strong> (click
to expand)</summary>

<img width="523" alt="serverless_rep_tooltip"
src="https://github.com/user-attachments/assets/825e1514-a191-45c2-90ca-0f15a8c9da7b"
/>

<img width="836" alt="serverless_bulk_action_error"
src="https://github.com/user-attachments/assets/8aa38c77-5aaa-49cf-9b4e-8c992382a1d2"
/>

<img width="1102" alt="serverless_upgrade_callout"
src="https://github.com/user-attachments/assets/cf947c73-d52d-4c85-abd6-369f616b8421"
/>

<img width="1004" alt="no_update_white"
src="https://github.com/user-attachments/assets/f720f24c-0c97-432f-b2d5-7ff7e5919ba0"
/>

</details>

## Testing
You can use [this
deployment](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co)
(default credentials) test to changes on ESS Enterprise license.
Here's a couple rules that has field updates of different kinds:
 - Unusual User Privilege Enumeration via id
 - Shared Object Created or Changed by Previously Unknown Process

To test on Serverless or with other licenses, you'll need to run it
locally. Reach out to me if you need help with this.

Work started: 11-Feb-2025

(cherry picked from commit 994201c)
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Feb 20, 2025
…ic#210817)

**Resolves: elastic/security-docs#6238
**Deployed here:
[link](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co/app/security/rules/updates?rulesTable=(field:name,order:asc,searchTerm:'Shared%20Object%20Created%20or%20Changed%20by%20Previously%20Unknown%20Process')&sourcerer=(default:(id:security-solution-default,selectedPatterns:!()))&timerange=(global:(linkTo:!(timeline),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)),timeline:(linkTo:!(global),timerange:(from:'2025-02-11T23:00:00.000Z',fromStr:now/d,kind:absolute,to:'2025-02-12T22:59:59.999Z',toStr:now/d)))&timeline=(activeTab:query,graphEventId:'',isOpen:!f))**

> ⚠️ CI fails are caused by an issue unrelated to this PR

## Summary

Changes in this PR:
- UI copy is updated in accordance with
[recommendations](https://docs.google.com/document/d/1Yl6DyN9pertqgB-iIKIEN3xdvlDM50oscJ00G-WwtyA/edit?tab=t.0)
(internal link) from Security Documentation team
- Text color for "No update" fields in upgrade flyout changed from green
to default.
- Fixed a minor bug with placeholder not displaying for "Setup guide"
and "Investigation guide" fields on Rule Creation/Editing page

<details>
<summary><strong>A few screenshots taken in Serverless</strong> (click
to expand)</summary>

<img width="523" alt="serverless_rep_tooltip"
src="https://github.com/user-attachments/assets/825e1514-a191-45c2-90ca-0f15a8c9da7b"
/>

<img width="836" alt="serverless_bulk_action_error"
src="https://github.com/user-attachments/assets/8aa38c77-5aaa-49cf-9b4e-8c992382a1d2"
/>

<img width="1102" alt="serverless_upgrade_callout"
src="https://github.com/user-attachments/assets/cf947c73-d52d-4c85-abd6-369f616b8421"
/>

<img width="1004" alt="no_update_white"
src="https://github.com/user-attachments/assets/f720f24c-0c97-432f-b2d5-7ff7e5919ba0"
/>

</details>

## Testing
You can use [this
deployment](https://nikitaindik-pr-210817-prebuilt-rule-customization-update-ui.kbndev.co)
(default credentials) test to changes on ESS Enterprise license.
Here's a couple rules that has field updates of different kinds:
 - Unusual User Privilege Enumeration via id
 - Shared Object Created or Changed by Previously Unknown Process

To test on Serverless or with other licenses, you'll need to run it
locally. Reach out to me if you need help with this.

Work started: 11-Feb-2025

(cherry picked from commit 994201c)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Docset: ESS Issues that apply to docs in the Stack release Docset: Serverless Issues for Serverless Security Feature: Prebuilt rules Feature: Rules Team: Detections/Response Detections and Response ui-copy v8.18.0 v9.0.0
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants