[SecuritySolution][siem migrations] Onboarding UI flyout macros input (#203483)

## Summary

From: https://github.com/elastic/security-team/issues/10667

This is the part 2 of the issue - The macros input

Implementation of the Onboarding card to create migrations using the
flyout.

> [!NOTE]  
> This feature needs `siemMigrationsEnabled` experimental flag enabled
to work. Otherwise only the default topic will be available and the
topic selector won't be displayed.


### Screenshots
<img width="1457" alt="Macros step"
src="https://github.com/user-attachments/assets/48ec806e-1fcf-4dbb-998e-cb6a06d9ebaa">
<img width="1457" alt="loading"
src="https://github.com/user-attachments/assets/a643de40-3d62-4dbf-a7aa-4f30839bc1b8">
<img width="1457" alt="done"
src="https://github.com/user-attachments/assets/b384af03-6bdb-4b10-bd26-18d3b4715677">

#### To do in part 3:
- Implement missing steps in the flyout: Lookups

### Test 
Enable experimental flag
Rule file:
[rules_test.json](https://github.com/user-attachments/files/18082165/rules_test.json)
Macros file:
[macros_test.json](https://github.com/user-attachments/files/18082169/macros_test.json)

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Sergi Massaneda 2024-12-12 17:12:18 +01:00 committed by GitHub
parent 7218d01aa4
commit 8c7883fd98
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
61 changed files with 2105 additions and 769 deletions

View file

@ -104,6 +104,7 @@ import {
GetRuleMigrationResourcesRequestQueryInput,
GetRuleMigrationResourcesRequestParamsInput,
} from '@kbn/security-solution-plugin/common/siem_migrations/model/api/rules/rule_migration.gen';
import { GetRuleMigrationResourcesMissingRequestParamsInput } from '@kbn/security-solution-plugin/common/siem_migrations/model/api/rules/rule_migration.gen';
import { GetRuleMigrationStatsRequestParamsInput } from '@kbn/security-solution-plugin/common/siem_migrations/model/api/rules/rule_migration.gen';
import { GetRuleMigrationTranslationStatsRequestParamsInput } from '@kbn/security-solution-plugin/common/siem_migrations/model/api/rules/rule_migration.gen';
import { GetTimelineRequestQueryInput } from '@kbn/security-solution-plugin/common/api/timeline/get_timeline/get_timeline_route.gen';
@ -998,6 +999,27 @@ finalize it.
.set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana')
.query(props.query);
},
/**
* Identifies missing resources from all the rules of an existing SIEM rules migration
*/
getRuleMigrationResourcesMissing(
props: GetRuleMigrationResourcesMissingProps,
kibanaSpace: string = 'default'
) {
return supertest
.get(
routeWithNamespace(
replaceParams(
'/internal/siem_migrations/rules/{migration_id}/resources/missing',
props.params
),
kibanaSpace
)
)
.set('kbn-xsrf', 'true')
.set(ELASTIC_HTTP_VERSION_HEADER, '1')
.set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana');
},
/**
* Retrieves the stats of a SIEM rules migration using the migration id provided
*/
@ -1760,6 +1782,9 @@ export interface GetRuleMigrationResourcesProps {
query: GetRuleMigrationResourcesRequestQueryInput;
params: GetRuleMigrationResourcesRequestParamsInput;
}
export interface GetRuleMigrationResourcesMissingProps {
params: GetRuleMigrationResourcesMissingRequestParamsInput;
}
export interface GetRuleMigrationStatsProps {
params: GetRuleMigrationStatsRequestParamsInput;
}