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

[8.x] [Security Solution] Extend rule upgrade integration tests for prebuilt rule customization feature (#209260) #212282

Merged
merged 1 commit into from
Feb 24, 2025

Conversation

maximpn
Copy link
Contributor

@maximpn maximpn commented Feb 24, 2025

Backport

This will backport the following commits from main to 8.x:

Questions ?

Please refer to the Backport tool documentation

…t rule customization feature (elastic#209260)

**Addresses:** elastic#202078
**Partially implements test plan:** elastic#205922

## Summary

This PR implements the Rule Upgrade test plan added in elastic#205922 and elastic#203331.

## Details

Tests cover only enabled customization and organized in a following way

- `diffable_rule_fields` folder contains per field tests. It focuses on `DiffableRule`* fields. Each field has rule preview and upgrade scenarios throughly covered. Assertion on stats are included in rule preview tests to make sure the maximum coverage with reasonable execution time. **Diffable rule fields` tests were moved to a separate execution group to avoid exceeding execution limits.**
- `preview_prebuilt_rules_upgrade.ts` integration tests on `/internal/prebuilt_rules/upgrade/_review` endpoint. It uses only `name` and `tags` fields to minimize tests complexity. Basically it should be considered as smoke tests.
- `upgrade_prebuilt_rules` integrations test on `/internal/prebuilt_rules/upgrade/_perform` endpoint.  It uses only `name` and `tags` fields to minimize tests complexity. Basically it should be considered as smoke tests.

This PR supersedes elastic#205217 and elastic#205339.

* `DiffableRule` was added in the scope of prebuilt rules customization epic to serve rule upgrades preview and performing upgrades. It represents slightly reorganized rule fields to simplify prebuilt rule upgrade workflow handling. There are utility functions transforming between `RuleResponse` and `DiffableRule`.

## Flaky test runner

Flaky test runs for 100 iterations were successful (elastic#209260 (comment) and elastic#209260 (comment)).

(cherry picked from commit 4909770)

# Conflicts:
#	x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/prebuilt_rule_customization/customization_enabled/upgrade_perform_prebuilt_rules.all_rules_mode.ts
#	x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/prebuilt_rule_customization/customization_enabled/upgrade_perform_prebuilt_rules.specific_rules_mode.ts
@maximpn maximpn merged commit ce7f4a5 into elastic:8.x Feb 24, 2025
12 checks passed
SoniaSanzV pushed a commit to SoniaSanzV/kibana that referenced this pull request Mar 4, 2025
…rebuilt rule customization feature (elastic#209260) (elastic#212282)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Security Solution] Extend rule upgrade integration tests for
prebuilt rule customization feature
(elastic#209260)](elastic#209260)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Maxim
Palenov","email":"maxim.palenov@elastic.co"},"sourceCommit":{"committedDate":"2025-02-21T11:11:44Z","message":"[Security
Solution] Extend rule upgrade integration tests for prebuilt rule
customization feature (elastic#209260)\n\n**Addresses:**
https://github.com/elastic/kibana/issues/202078\n**Partially implements
test plan:** https://github.com/elastic/kibana/pull/205922\n\n##
Summary\n\nThis PR implements the Rule Upgrade test plan added in
elastic#205922 and
https://github.com/elastic/kibana/pull/203331.\n\n## Details\n\nTests
cover only enabled customization and organized in a following way\n\n-
`diffable_rule_fields` folder contains per field tests. It focuses on
`DiffableRule`* fields. Each field has rule preview and upgrade
scenarios throughly covered. Assertion on stats are included in rule
preview tests to make sure the maximum coverage with reasonable
execution time. **Diffable rule fields` tests were moved to a separate
execution group to avoid exceeding execution limits.**\n-
`preview_prebuilt_rules_upgrade.ts` integration tests on
`/internal/prebuilt_rules/upgrade/_review` endpoint. It uses only `name`
and `tags` fields to minimize tests complexity. Basically it should be
considered as smoke tests.\n- `upgrade_prebuilt_rules` integrations test
on `/internal/prebuilt_rules/upgrade/_perform` endpoint. It uses only
`name` and `tags` fields to minimize tests complexity. Basically it
should be considered as smoke tests.\n\nThis PR supersedes
elastic#205217 and
https://github.com/elastic/kibana/pull/205339.\n\n* `DiffableRule` was
added in the scope of prebuilt rules customization epic to serve rule
upgrades preview and performing upgrades. It represents slightly
reorganized rule fields to simplify prebuilt rule upgrade workflow
handling. There are utility functions transforming between
`RuleResponse` and `DiffableRule`.\n\n## Flaky test runner\n\nFlaky test
runs for 100 iterations were successful
(elastic#209260 (comment)
and
https://github.com/elastic/kibana/pull/209260#issuecomment-2649627389).","sha":"4909770664a97f97bc38adc91dc852b5b1e6abf7","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["test","release_note:skip","v9.0.0","Team:Detections
and Resp","Team: SecuritySolution","Team:Detection Rule
Management","Feature:Prebuilt Detection
Rules","backport:version","v8.18.0","v9.1.0","v8.19.0"],"title":"[Security
Solution] Extend rule upgrade integration tests for prebuilt rule
customization
feature","number":209260,"url":"https://github.com/elastic/kibana/pull/209260","mergeCommit":{"message":"[Security
Solution] Extend rule upgrade integration tests for prebuilt rule
customization feature (elastic#209260)\n\n**Addresses:**
https://github.com/elastic/kibana/issues/202078\n**Partially implements
test plan:** https://github.com/elastic/kibana/pull/205922\n\n##
Summary\n\nThis PR implements the Rule Upgrade test plan added in
elastic#205922 and
https://github.com/elastic/kibana/pull/203331.\n\n## Details\n\nTests
cover only enabled customization and organized in a following way\n\n-
`diffable_rule_fields` folder contains per field tests. It focuses on
`DiffableRule`* fields. Each field has rule preview and upgrade
scenarios throughly covered. Assertion on stats are included in rule
preview tests to make sure the maximum coverage with reasonable
execution time. **Diffable rule fields` tests were moved to a separate
execution group to avoid exceeding execution limits.**\n-
`preview_prebuilt_rules_upgrade.ts` integration tests on
`/internal/prebuilt_rules/upgrade/_review` endpoint. It uses only `name`
and `tags` fields to minimize tests complexity. Basically it should be
considered as smoke tests.\n- `upgrade_prebuilt_rules` integrations test
on `/internal/prebuilt_rules/upgrade/_perform` endpoint. It uses only
`name` and `tags` fields to minimize tests complexity. Basically it
should be considered as smoke tests.\n\nThis PR supersedes
elastic#205217 and
https://github.com/elastic/kibana/pull/205339.\n\n* `DiffableRule` was
added in the scope of prebuilt rules customization epic to serve rule
upgrades preview and performing upgrades. It represents slightly
reorganized rule fields to simplify prebuilt rule upgrade workflow
handling. There are utility functions transforming between
`RuleResponse` and `DiffableRule`.\n\n## Flaky test runner\n\nFlaky test
runs for 100 iterations were successful
(elastic#209260 (comment)
and
https://github.com/elastic/kibana/pull/209260#issuecomment-2649627389).","sha":"4909770664a97f97bc38adc91dc852b5b1e6abf7"}},"sourceBranch":"main","suggestedTargetBranches":["8.18","8.x"],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/212045","number":212045,"state":"MERGED","mergeCommit":{"sha":"5e5989ab91c571225a3bba0fa8affd0321312aee","message":"[9.0]
[Security Solution] Extend rule upgrade integration tests for prebuilt
rule customization feature (elastic#209260) (elastic#212045)\n\n# Backport\n\nThis
will backport the following commits from `main` to `9.0`:\n- [[Security
Solution] Extend rule upgrade integration tests for\nprebuilt rule
customization
feature\n(elastic#209260)](https://github.com/elastic/kibana/pull/209260)\n\n\n\n###
Questions ?\nPlease refer to the [Backport
tool\ndocumentation](https://github.com/sorenlouv/backport)\n\n\n\nCo-authored-by:
Maxim Palenov
<maxim.palenov@elastic.co>"}},{"branch":"8.18","label":"v8.18.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/209260","number":209260,"mergeCommit":{"message":"[Security
Solution] Extend rule upgrade integration tests for prebuilt rule
customization feature (elastic#209260)\n\n**Addresses:**
https://github.com/elastic/kibana/issues/202078\n**Partially implements
test plan:** https://github.com/elastic/kibana/pull/205922\n\n##
Summary\n\nThis PR implements the Rule Upgrade test plan added in
elastic#205922 and
https://github.com/elastic/kibana/pull/203331.\n\n## Details\n\nTests
cover only enabled customization and organized in a following way\n\n-
`diffable_rule_fields` folder contains per field tests. It focuses on
`DiffableRule`* fields. Each field has rule preview and upgrade
scenarios throughly covered. Assertion on stats are included in rule
preview tests to make sure the maximum coverage with reasonable
execution time. **Diffable rule fields` tests were moved to a separate
execution group to avoid exceeding execution limits.**\n-
`preview_prebuilt_rules_upgrade.ts` integration tests on
`/internal/prebuilt_rules/upgrade/_review` endpoint. It uses only `name`
and `tags` fields to minimize tests complexity. Basically it should be
considered as smoke tests.\n- `upgrade_prebuilt_rules` integrations test
on `/internal/prebuilt_rules/upgrade/_perform` endpoint. It uses only
`name` and `tags` fields to minimize tests complexity. Basically it
should be considered as smoke tests.\n\nThis PR supersedes
elastic#205217 and
https://github.com/elastic/kibana/pull/205339.\n\n* `DiffableRule` was
added in the scope of prebuilt rules customization epic to serve rule
upgrades preview and performing upgrades. It represents slightly
reorganized rule fields to simplify prebuilt rule upgrade workflow
handling. There are utility functions transforming between
`RuleResponse` and `DiffableRule`.\n\n## Flaky test runner\n\nFlaky test
runs for 100 iterations were successful
(elastic#209260 (comment)
and
https://github.com/elastic/kibana/pull/209260#issuecomment-2649627389).","sha":"4909770664a97f97bc38adc91dc852b5b1e6abf7"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants