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] Expand rule upgrade review functionality test plan and coverage to include all rule fields #205217

Closed

Conversation

jpdjere
Copy link
Contributor

@jpdjere jpdjere commented Dec 27, 2024

Partially resolves: #202078

Summary

  • This PR expands the rule upgrade review functionality (performed by the /upgrade/_review endpoint) test plan and coverage to include all diffable fields:
    • Extends: upgrade.md test plan to list all diffable fields that should be tested
    • Refactors and extends existing upgrade_review_prebuilt_rules.[ALGORITHM]_fields.ts integration test suites to actually test reviewing upgrades for all possible diffable fields.
    • Adds new upgrade_review_prebuilt_rules.simple_fields.ts for testing fields which still have the simple diff algorithm, which was missing.

Flaky test run

🕐 https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7636

Checklist

Check the PR satisfies following conditions.

Reviewers should verify this PR satisfies this list as well.

  • Flaky Test Runner was used on any tests changed
  • The PR description includes the appropriate Release Notes section, and the correct release_note:* label is applied per the guidelines

@jpdjere jpdjere self-assigned this Dec 27, 2024
@jpdjere jpdjere added test release_note:skip Skip the PR/issue when compiling release notes test-plan v9.0.0 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 area backport:version Backport to applied version labels v8.18.0 labels Dec 27, 2024
@jpdjere jpdjere marked this pull request as ready for review December 27, 2024 19:00
@jpdjere jpdjere requested review from a team as code owners December 27, 2024 19:00
@jpdjere jpdjere requested a review from maximpn December 27, 2024 19:00
@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)

@jpdjere jpdjere changed the title Expand rule upgrade review functionality test plan and coverage to include all rule fields [Security Solution] Expand rule upgrade review functionality test plan and coverage to include all rule fields Dec 27, 2024
@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🟠 Some tests failed. - kibana-flaky-test-suite-runner#7636

[❌] x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/configs/ess.config.ts: 74/100 tests passed.
[✅] x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/management/trial_license_complete_tier/configs/serverless.config.ts: 100/100 tests passed.

see run history

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

✅ unchanged

History

cc @jpdjere

@maximpn maximpn marked this pull request as draft January 8, 2025 11:48
@elasticmachine
Copy link
Contributor

🤖 Jobs for this PR can be triggered through checkboxes. 🚧

ℹ️ To trigger the CI, please tick the checkbox below 👇

  • Click to trigger kibana-pull-request for this PR!
  • Click to trigger kibana-deploy-project-from-pr for this PR!

@maximpn
Copy link
Contributor

maximpn commented Feb 3, 2025

Closing in favor of #209260.

@maximpn maximpn closed this Feb 3, 2025
maximpn added a commit that referenced this pull request Feb 21, 2025
…t rule customization feature (#209260)

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

## Summary

This PR implements the Rule Upgrade test plan added in #205922 and #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 #205217 and #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 (#209260 (comment) and #209260 (comment)).
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Feb 21, 2025
…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)
kibanamachine added a commit that referenced this pull request Feb 21, 2025
…rebuilt rule customization feature (#209260) (#212045)

# Backport

This will backport the following commits from `main` to `9.0`:
- [[Security Solution] Extend rule upgrade integration tests for
prebuilt rule customization feature
(#209260)](#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 (#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
#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
#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
(#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 (#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
#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
#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
(#209260 (comment)
and
https://github.com/elastic/kibana/pull/209260#issuecomment-2649627389).","sha":"4909770664a97f97bc38adc91dc852b5b1e6abf7"}},"sourceBranch":"main","suggestedTargetBranches":["9.0","8.18","8.x"],"targetPullRequestStates":[{"branch":"9.0","label":"v9.0.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"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 (#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
#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
#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
(#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-->

Co-authored-by: Maxim Palenov <maxim.palenov@elastic.co>
maximpn added a commit to maximpn/kibana that referenced this pull request Feb 24, 2025
…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 added a commit that referenced this pull request Feb 24, 2025
…rebuilt rule customization feature (#209260) (#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
(#209260)](#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 (#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
#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
#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
(#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 (#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
#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
#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
(#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 (#209260) (#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(#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 (#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
#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
#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
(#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-->
maximpn added a commit that referenced this pull request Feb 24, 2025
…prebuilt rule customization feature (#209260) (#212283)

# Backport

This will backport the following commits from `main` to `8.18`:
- [[Security Solution] Extend rule upgrade integration tests for
prebuilt rule customization feature
(#209260)](#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 (#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
#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
#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
(#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 (#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
#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
#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
(#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 (#209260) (#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(#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 (#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
#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
#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
(#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-->
JoseLuisGJ pushed a commit to JoseLuisGJ/kibana that referenced this pull request Feb 27, 2025
…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)).
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
backport:version Backport to applied version labels Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules area release_note:skip Skip the PR/issue when compiling release notes 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. test test-plan v8.18.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Security Solution] Tests for prebuilt rule upgrade workflow
4 participants