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] Implement multi-line string diff algorithm #180159

Closed
10 tasks done
Tracked by #174168
jpdjere opened this issue Apr 5, 2024 · 5 comments
Closed
10 tasks done
Tracked by #174168

[Security Solution] Implement multi-line string diff algorithm #180159

jpdjere opened this issue Apr 5, 2024 · 5 comments
Assignees
Labels
8.16 candidate enhancement New value added to drive a business result Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules 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.16.0

Comments

@jpdjere
Copy link
Contributor

jpdjere commented Apr 5, 2024

Epics: https://github.com/elastic/security-team/issues/1974 (internal), #174168

Summary

Implement an algorithm for diffing and merging changes in multi-line string type of fields of detection rules.

Context from the Rule Customization RFC:

To do

@jpdjere jpdjere added triage_needed 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:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules labels Apr 5, 2024
@elasticmachine
Copy link
Contributor

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

@elasticmachine
Copy link
Contributor

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

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detection-rule-management (Team:Detection Rule Management)

@banderror banderror changed the title [Security Solution] Implement multi-line string fields diff algorithm [Security Solution] Implement multi-line string fields diff algorithm (DRAFT) Apr 17, 2024
@banderror banderror changed the title [Security Solution] Implement multi-line string fields diff algorithm (DRAFT) [Security Solution] Implement multi-line string diff algorithm May 24, 2024
@banderror banderror added 8.16 candidate v8.16.0 enhancement New value added to drive a business result and removed 8.15 candidate labels Jul 1, 2024
@dplumlee
Copy link
Contributor

dplumlee commented Jul 9, 2024

Here are the proposed fields that would utilize this diff algorithm:

Common fields

  • description
  • note
  • setup

dplumlee added a commit that referenced this issue Jul 17, 2024
… string fields (#188022)

## Summary

Related ticket: #180159

Adds diff algorithm for multi-line string fields and unit tests to cover
all use cases. Also adds the
[`node-diff3`](https://www.npmjs.com/package/node-diff3#3-way-diff-and-merging)
package to utilize in the diffing logic to both determine if conflicts
exist and merge the 3 rule versions together to create the returned
merged version.


### Checklist

Delete any items that are not applicable to this PR.

- [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



### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
dplumlee added a commit that referenced this issue Jul 23, 2024
…#188323)

## Summary

Related ticket: #180159

Adds test plan for diff algorithm for arrays of scalar values
implemented in #188022

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Georgii Gorbachev <[email protected]>
Co-authored-by: Juan Pablo Djeredjian <[email protected]>
dplumlee added a commit that referenced this issue Jul 26, 2024
…f algorithm (#188688)

## Summary

Completes #180159

Switches fields to use the multi line string diff algorithm assigned to
them in the [overarching
ticket](#180159 (comment))

Adds integration tests in accordance to
#188323 for the `upgrade/_review`
API endpoint for the multi line string field diff algorithm.


### Checklist

Delete any items that are not applicable to this PR.

- [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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.16 candidate enhancement New value added to drive a business result Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules 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.16.0
Projects
None yet
Development

No branches or pull requests

4 participants