diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/install_prebuilt_rules_and_timelines/install_prebuilt_rules_and_timelines_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/install_prebuilt_rules_and_timelines/install_prebuilt_rules_and_timelines_route.ts index 8140f78e285abf..11e841ed504316 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/install_prebuilt_rules_and_timelines/install_prebuilt_rules_and_timelines_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/install_prebuilt_rules_and_timelines/install_prebuilt_rules_and_timelines_route.ts @@ -85,7 +85,7 @@ export const createPrepackagedRules = async ( const savedObjectsClient = context.core.savedObjects.client; const siemClient = context.getAppClient(); const exceptionsListClient = context.getExceptionListClient() ?? exceptionsClient; - const rulesManagementClient = context.getRulesManagementClient(); + const detectionRulesClient = context.getDetectionRulesClient(); const ruleAssetsClient = createPrebuiltRuleAssetsClient(savedObjectsClient); if (!siemClient || !rulesClient) { @@ -107,14 +107,14 @@ export const createPrepackagedRules = async ( const rulesToInstall = getRulesToInstall(latestPrebuiltRules, installedPrebuiltRules); const rulesToUpdate = getRulesToUpdate(latestPrebuiltRules, installedPrebuiltRules); - const result = await createPrebuiltRules(rulesManagementClient, rulesToInstall); + const result = await createPrebuiltRules(detectionRulesClient, rulesToInstall); if (result.errors.length > 0) { throw new AggregateError(result.errors, 'Error installing new prebuilt rules'); } const { result: timelinesResult } = await performTimelinesInstallation(context); - await upgradePrebuiltRules(rulesManagementClient, rulesToUpdate); + await upgradePrebuiltRules(detectionRulesClient, rulesToUpdate); const prebuiltRulesOutput: InstallPrebuiltRulesAndTimelinesResponse = { rules_installed: rulesToInstall.length, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_installation/perform_rule_installation_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_installation/perform_rule_installation_route.ts index 61e928a92a39dd..0399d3312de2f3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_installation/perform_rule_installation_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_installation/perform_rule_installation_route.ts @@ -59,7 +59,7 @@ export const performRuleInstallationRoute = (router: SecuritySolutionPluginRoute const config = ctx.securitySolution.getConfig(); const soClient = ctx.core.savedObjects.client; const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const ruleAssetsClient = createPrebuiltRuleAssetsClient(soClient); const ruleObjectsClient = createPrebuiltRuleObjectsClient(rulesClient); const exceptionsListClient = ctx.securitySolution.getExceptionListClient(); @@ -110,7 +110,7 @@ export const performRuleInstallationRoute = (router: SecuritySolutionPluginRoute } const { results: installedRules, errors: installationErrors } = await createPrebuiltRules( - rulesManagementClient, + detectionRulesClient, installableRules ); const ruleErrors = [...fetchErrors, ...installationErrors]; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_upgrade/perform_rule_upgrade_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_upgrade/perform_rule_upgrade_route.ts index 22951de09689ca..33968f6e56fc9e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_upgrade/perform_rule_upgrade_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/perform_rule_upgrade/perform_rule_upgrade_route.ts @@ -60,7 +60,7 @@ export const performRuleUpgradeRoute = (router: SecuritySolutionPluginRouter) => const ctx = await context.resolve(['core', 'alerting', 'securitySolution']); const soClient = ctx.core.savedObjects.client; const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const ruleAssetsClient = createPrebuiltRuleAssetsClient(soClient); const ruleObjectsClient = createPrebuiltRuleObjectsClient(rulesClient); @@ -157,7 +157,7 @@ export const performRuleUpgradeRoute = (router: SecuritySolutionPluginRouter) => // Perform the upgrade const { results: updatedRules, errors: installationErrors } = await upgradePrebuiltRules( - rulesManagementClient, + detectionRulesClient, targetRules ); const ruleErrors = [...fetchErrors, ...installationErrors]; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/create_prebuilt_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/create_prebuilt_rules.ts index 9f65149e7c46e5..ef3d34b6575052 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/create_prebuilt_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/create_prebuilt_rules.ts @@ -9,10 +9,10 @@ import { MAX_RULES_TO_UPDATE_IN_PARALLEL } from '../../../../../../common/consta import { initPromisePool } from '../../../../../utils/promise_pool'; import { withSecuritySpan } from '../../../../../utils/with_security_span'; import type { PrebuiltRuleAsset } from '../../model/rule_assets/prebuilt_rule_asset'; -import type { IRulesManagementClient } from '../../../rule_management/logic/rule_management/rules_management_client'; +import type { IDetectionRulesClient } from '../../../rule_management/logic/rule_management/detection_rules_client'; export const createPrebuiltRules = ( - rulesManagementClient: IRulesManagementClient, + detectionRulesClient: IDetectionRulesClient, rules: PrebuiltRuleAsset[] ) => { return withSecuritySpan('createPrebuiltRules', async () => { @@ -20,7 +20,7 @@ export const createPrebuiltRules = ( concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, items: rules, executor: async (rule) => { - return rulesManagementClient.createPrebuiltRule({ + return detectionRulesClient.createPrebuiltRule({ ruleAsset: rule, }); }, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/upgrade_prebuilt_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/upgrade_prebuilt_rules.ts index a6ff9b0dea9c3b..4ae595cca16b0b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/upgrade_prebuilt_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/rule_objects/upgrade_prebuilt_rules.ts @@ -9,17 +9,17 @@ import { MAX_RULES_TO_UPDATE_IN_PARALLEL } from '../../../../../../common/consta import { initPromisePool } from '../../../../../utils/promise_pool'; import { withSecuritySpan } from '../../../../../utils/with_security_span'; import type { PrebuiltRuleAsset } from '../../model/rule_assets/prebuilt_rule_asset'; -import type { IRulesManagementClient } from '../../../rule_management/logic/rule_management/rules_management_client'; +import type { IDetectionRulesClient } from '../../../rule_management/logic/rule_management/detection_rules_client'; /** * Upgrades existing prebuilt rules given a set of rules and output index. * This implements a chunked approach to not saturate network connections and * avoid being a "noisy neighbor". - * @param rulesManagementClient RulesManagementClient + * @param detectionRulesClient IDetectionRulesClient * @param rules The rules to apply the update for */ export const upgradePrebuiltRules = async ( - rulesManagementClient: IRulesManagementClient, + detectionRulesClient: IDetectionRulesClient, rules: PrebuiltRuleAsset[] ) => withSecuritySpan('upgradePrebuiltRules', async () => { @@ -27,7 +27,7 @@ export const upgradePrebuiltRules = async ( concurrency: MAX_RULES_TO_UPDATE_IN_PARALLEL, items: rules, executor: async (rule) => { - return rulesManagementClient.upgradePrebuiltRule({ ruleAsset: rule }); + return detectionRulesClient.upgradePrebuiltRule({ ruleAsset: rule }); }, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts index ebc18daba1c9f9..a2e6f2f0385463 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts @@ -38,7 +38,7 @@ import { riskEngineDataClientMock } from '../../../entity_analytics/risk_engine/ import { riskScoreDataClientMock } from '../../../entity_analytics/risk_score/risk_score_data_client.mock'; import { assetCriticalityDataClientMock } from '../../../entity_analytics/asset_criticality/asset_criticality_data_client.mock'; import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; -import { rulesManagementClientMock } from '../../rule_management/logic/rule_management/__mocks__/rules_management_client'; +import { detectionRulesClientMock } from '../../rule_management/logic/rule_management/__mocks__/detection_rules_client'; export const createMockClients = () => { const core = coreMock.createRequestHandlerContext(); @@ -58,7 +58,7 @@ export const createMockClients = () => { exceptionListClient: listMock.getExceptionListClient(core.savedObjects.client), }, rulesClient: rulesClientMock.create(), - rulesManagementClient: rulesManagementClientMock.create(), + detectionRulesClient: detectionRulesClientMock.create(), actionsClient: actionsClientMock.create(), ruleDataService: ruleRegistryMocks.createRuleDataService(), @@ -142,7 +142,7 @@ const createSecuritySolutionRequestContextMock = ( }), getSpaceId: jest.fn(() => 'default'), getRuleDataService: jest.fn(() => clients.ruleDataService), - getRulesManagementClient: jest.fn(() => clients.rulesManagementClient), + getDetectionRulesClient: jest.fn(() => clients.detectionRulesClient), getDetectionEngineHealthClient: jest.fn(() => clients.detectionEngineHealthClient), getRuleExecutionLog: jest.fn(() => clients.ruleExecutionLog), getExceptionListClient: jest.fn(() => clients.lists.exceptionListClient), diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_exceptions/api/create_rule_exceptions/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_exceptions/api/create_rule_exceptions/route.ts index 0334ded224f437..c5dfc3a0d847ee 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_exceptions/api/create_rule_exceptions/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_exceptions/api/create_rule_exceptions/route.ts @@ -43,7 +43,7 @@ import type { RuleParams } from '../../../rule_schema'; import type { SecuritySolutionPluginRouter } from '../../../../../types'; import { buildSiemResponse } from '../../../routes/utils'; import { buildRouteValidation } from '../../../../../utils/build_validation/route_validation'; -import type { IRulesManagementClient } from '../../../rule_management/logic/rule_management/rules_management_client'; +import type { IDetectionRulesClient } from '../../../rule_management/logic/rule_management/detection_rules_client'; export const createRuleExceptionsRoute = (router: SecuritySolutionPluginRouter) => { router.versioned @@ -83,7 +83,7 @@ export const createRuleExceptionsRoute = (router: SecuritySolutionPluginRouter) ]); const rulesClient = ctx.alerting.getRulesClient(); const listsClient = ctx.securitySolution.getExceptionListClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const { items } = request.body; const { id: ruleId } = request.params; @@ -106,7 +106,7 @@ export const createRuleExceptionsRoute = (router: SecuritySolutionPluginRouter) items, rule, listsClient, - rulesManagementClient, + detectionRulesClient, }); const [validated, errors] = validate(createdItems, t.array(exceptionListItemSchema)); @@ -130,11 +130,11 @@ export const createRuleExceptions = async ({ items, rule, listsClient, - rulesManagementClient, + detectionRulesClient, }: { items: CreateRuleExceptionListItemSchemaDecoded[]; listsClient: ExceptionListClient | null; - rulesManagementClient: IRulesManagementClient; + detectionRulesClient: IDetectionRulesClient; rule: SanitizedRule; }) => { const ruleDefaultLists = rule.params.exceptionsList.filter( @@ -169,7 +169,7 @@ export const createRuleExceptions = async ({ const defaultList = await createAndAssociateDefaultExceptionList({ rule, listsClient, - rulesManagementClient, + detectionRulesClient, removeOldAssociation: true, }); @@ -179,7 +179,7 @@ export const createRuleExceptions = async ({ const defaultList = await createAndAssociateDefaultExceptionList({ rule, listsClient, - rulesManagementClient, + detectionRulesClient, removeOldAssociation: false, }); @@ -272,12 +272,12 @@ export const createExceptionList = async ({ export const createAndAssociateDefaultExceptionList = async ({ rule, listsClient, - rulesManagementClient, + detectionRulesClient, removeOldAssociation, }: { rule: SanitizedRule; listsClient: ExceptionListClient | null; - rulesManagementClient: IRulesManagementClient; + detectionRulesClient: IDetectionRulesClient; removeOldAssociation: boolean; }): Promise => { const exceptionListToAssociate = await createExceptionList({ rule, listsClient }); @@ -294,7 +294,7 @@ export const createAndAssociateDefaultExceptionList = async ({ ? existingRuleExceptionLists.filter((list) => list.type !== ExceptionListTypeEnum.RULE_DEFAULT) : existingRuleExceptionLists; - await rulesManagementClient.patchRule({ + await detectionRulesClient.patchRule({ nextParams: { rule_id: rule.params.ruleId, ...rule.params, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts index f5932285a8e330..ff608a63440576 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_actions/route.ts @@ -120,7 +120,7 @@ export const performBulkActionRoute = ( const exceptionsClient = ctx.lists?.getExceptionListClient(); const savedObjectsClient = ctx.core.savedObjects.client; const actionsClient = ctx.actions.getActionsClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const { getExporter, getClient } = ctx.core.savedObjects; const client = getClient({ includedHiddenTypes: ['action'] }); @@ -203,7 +203,7 @@ export const performBulkActionRoute = ( return null; } - await rulesManagementClient.deleteRule({ + await detectionRulesClient.deleteRule({ ruleId: rule.id, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.test.ts index 8c73c4334dde6c..21ee4116edc2c7 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.test.ts @@ -34,7 +34,7 @@ describe('Bulk create rules route', () => { clients.rulesClient.find.mockResolvedValue(getEmptyFindResult()); // no existing rules clients.rulesClient.create.mockResolvedValue(getRuleMock(getQueryRuleParams())); // successful creation - clients.rulesManagementClient.createCustomRule.mockResolvedValue( + clients.detectionRulesClient.createCustomRule.mockResolvedValue( getRuleMock(getQueryRuleParams()) ); context.core.elasticsearch.client.asCurrentUser.search.mockResolvedValue( @@ -55,7 +55,7 @@ describe('Bulk create rules route', () => { describe('unhappy paths', () => { test('returns a 403 error object if ML Authz fails', async () => { - clients.rulesManagementClient.createCustomRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.createCustomRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); @@ -108,7 +108,7 @@ describe('Bulk create rules route', () => { }); test('catches error if creation throws', async () => { - clients.rulesManagementClient.createCustomRule.mockImplementation(async () => { + clients.detectionRulesClient.createCustomRule.mockImplementation(async () => { throw new Error('Test error'); }); const response = await server.inject( diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.ts index ee9be34e14e987..e4373e1563532f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_create_rules/route.ts @@ -62,7 +62,7 @@ export const bulkCreateRulesRoute = (router: SecuritySolutionPluginRouter, logge try { const ctx = await context.resolve(['core', 'securitySolution', 'licensing', 'alerting']); const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const ruleDefinitions = request.body; const dupes = getDuplicates(ruleDefinitions, 'rule_id'); @@ -109,7 +109,7 @@ export const bulkCreateRulesRoute = (router: SecuritySolutionPluginRouter, logge }); } - const createdRule = await rulesManagementClient.createCustomRule({ + const createdRule = await detectionRulesClient.createCustomRule({ params: payloadRule, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_delete_rules/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_delete_rules/route.ts index a8c3b3d96060e4..2ac6fb3340bab2 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_delete_rules/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_delete_rules/route.ts @@ -55,7 +55,7 @@ export const bulkDeleteRulesRoute = (router: SecuritySolutionPluginRouter, logge const ctx = await context.resolve(['core', 'securitySolution', 'alerting']); const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const rules = await Promise.all( request.body.map(async (payloadRule) => { @@ -76,7 +76,7 @@ export const bulkDeleteRulesRoute = (router: SecuritySolutionPluginRouter, logge return getIdBulkError({ id, ruleId }); } - await rulesManagementClient.deleteRule({ + await detectionRulesClient.deleteRule({ ruleId: rule.id, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.test.ts index b5644237d8f261..7bda64e6a30d8a 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.test.ts @@ -34,7 +34,7 @@ describe('Bulk patch rules route', () => { clients.rulesClient.find.mockResolvedValue(getFindResultWithSingleHit()); // rule exists clients.rulesClient.update.mockResolvedValue(getRuleMock(getQueryRuleParams())); // update succeeds - clients.rulesManagementClient.patchRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); + clients.detectionRulesClient.patchRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); bulkPatchRulesRoute(server.router, logger); }); @@ -72,7 +72,7 @@ describe('Bulk patch rules route', () => { ...getFindResultWithSingleHit(), data: [getRuleMock(getMlRuleParams())], }); - clients.rulesManagementClient.patchRule.mockResolvedValueOnce( + clients.detectionRulesClient.patchRule.mockResolvedValueOnce( getRuleMock( getMlRuleParams({ anomalyThreshold, @@ -101,7 +101,7 @@ describe('Bulk patch rules route', () => { }); it('rejects patching a rule to ML if mlAuthz fails', async () => { - clients.rulesManagementClient.patchRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.patchRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); @@ -125,7 +125,7 @@ describe('Bulk patch rules route', () => { }); it('rejects patching an existing ML rule if mlAuthz fails', async () => { - clients.rulesManagementClient.patchRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.patchRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); const { type, ...payloadWithoutType } = typicalMlRulePayload(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.ts index 06840ed328ee50..1ed5f529b20143 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_patch_rules/route.ts @@ -57,7 +57,7 @@ export const bulkPatchRulesRoute = (router: SecuritySolutionPluginRouter, logger try { const ctx = await context.resolve(['core', 'securitySolution', 'alerting', 'licensing']); const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const rules = await Promise.all( request.body.map(async (payloadRule) => { @@ -87,7 +87,7 @@ export const bulkPatchRulesRoute = (router: SecuritySolutionPluginRouter, logger ruleId: payloadRule.id, }); - const rule = await rulesManagementClient.patchRule({ + const rule = await detectionRulesClient.patchRule({ nextParams: payloadRule, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.test.ts index 8f1b066c8b4ba5..5f2a89df6b7dd7 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.test.ts @@ -32,7 +32,7 @@ describe('Bulk update rules route', () => { clients.rulesClient.find.mockResolvedValue(getFindResultWithSingleHit()); clients.rulesClient.update.mockResolvedValue(getRuleMock(getQueryRuleParams())); - clients.rulesManagementClient.updateRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); + clients.detectionRulesClient.updateRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); clients.appClient.getSignalsIndex.mockReturnValue('.siem-signals-test-index'); bulkUpdateRulesRoute(server.router, logger); @@ -66,7 +66,7 @@ describe('Bulk update rules route', () => { }); test('returns an error if update throws', async () => { - clients.rulesManagementClient.updateRule.mockImplementation(() => { + clients.detectionRulesClient.updateRule.mockImplementation(() => { throw new Error('Test error'); }); @@ -85,7 +85,7 @@ describe('Bulk update rules route', () => { }); it('returns a 403 error object if mlAuthz fails', async () => { - clients.rulesManagementClient.updateRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.updateRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.ts index b7bef15b5f6b1b..2b3ee7c2f751a5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/bulk_update_rules/route.ts @@ -62,7 +62,7 @@ export const bulkUpdateRulesRoute = (router: SecuritySolutionPluginRouter, logge try { const ctx = await context.resolve(['core', 'securitySolution', 'alerting', 'licensing']); const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const rules = await Promise.all( request.body.map(async (payloadRule) => { @@ -99,7 +99,7 @@ export const bulkUpdateRulesRoute = (router: SecuritySolutionPluginRouter, logge ruleId: payloadRule.id, }); - const rule = await rulesManagementClient.updateRule({ + const rule = await detectionRulesClient.updateRule({ ruleUpdate: payloadRule, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts index 4b23757112bdd9..08a9f4e6c47694 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts @@ -31,7 +31,7 @@ describe('Create rule route', () => { clients.rulesClient.find.mockResolvedValue(getEmptyFindResult()); // no current rules clients.rulesClient.create.mockResolvedValue(getRuleMock(getQueryRuleParams())); // creation succeeds - clients.rulesManagementClient.createCustomRule.mockResolvedValue( + clients.detectionRulesClient.createCustomRule.mockResolvedValue( getRuleMock(getQueryRuleParams()) ); @@ -71,7 +71,7 @@ describe('Create rule route', () => { }); test('returns a 403 if ML Authz fails', async () => { - clients.rulesManagementClient.createCustomRule.mockImplementation(async () => { + clients.detectionRulesClient.createCustomRule.mockImplementation(async () => { throw new HttpAuthzError('mocked validation message'); }); @@ -103,7 +103,7 @@ describe('Create rule route', () => { }); test('catches error if creation throws', async () => { - clients.rulesManagementClient.createCustomRule.mockImplementation(async () => { + clients.detectionRulesClient.createCustomRule.mockImplementation(async () => { throw new Error('Test error'); }); const response = await server.inject( diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.ts index 8ab0af5cda7428..db01f1f7838928 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.ts @@ -57,7 +57,7 @@ export const createRuleRoute = (router: SecuritySolutionPluginRouter): void => { ]); const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const exceptionsClient = ctx.lists?.getExceptionListClient(); if (request.body.rule_id != null) { @@ -89,7 +89,7 @@ export const createRuleRoute = (router: SecuritySolutionPluginRouter): void => { await validateResponseActionsPermissions(ctx.securitySolution, request.body); - const createdRule = await rulesManagementClient.createCustomRule({ + const createdRule = await detectionRulesClient.createCustomRule({ params: request.body, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.test.ts index 74d6ed952cf157..c3e11b54021ede 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.test.ts @@ -27,7 +27,7 @@ describe('Delete rule route', () => { ({ clients, context } = requestContextMock.createTools()); clients.rulesClient.find.mockResolvedValue(getFindResultWithSingleHit()); - clients.rulesManagementClient.deleteRule.mockResolvedValue(); + clients.detectionRulesClient.deleteRule.mockResolvedValue(); clients.savedObjectsClient.find.mockResolvedValue(getEmptySavedObjectsResponse()); deleteRuleRoute(server.router); @@ -69,7 +69,7 @@ describe('Delete rule route', () => { }); test('catches error if deletion throws error', async () => { - clients.rulesManagementClient.deleteRule.mockImplementation(async () => { + clients.detectionRulesClient.deleteRule.mockImplementation(async () => { throw new Error('Test error'); }); const response = await server.inject( diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.ts index 7db52619ff0b58..31b72c76daaa62 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/delete_rule/route.ts @@ -49,7 +49,7 @@ export const deleteRuleRoute = (router: SecuritySolutionPluginRouter) => { const ctx = await context.resolve(['core', 'securitySolution', 'alerting']); const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const rule = await readRules({ rulesClient, id, ruleId }); @@ -61,7 +61,7 @@ export const deleteRuleRoute = (router: SecuritySolutionPluginRouter) => { }); } - await rulesManagementClient.deleteRule({ + await detectionRulesClient.deleteRule({ ruleId: rule.id, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.test.ts index 1320c8d5a32969..182e9bb8d92b73 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.test.ts @@ -47,7 +47,7 @@ describe('Import rules route', () => { clients.rulesClient.find.mockResolvedValue(getEmptyFindResult()); // no extant rules clients.rulesClient.update.mockResolvedValue(getRuleMock(getQueryRuleParams())); - clients.rulesManagementClient.importRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); + clients.detectionRulesClient.importRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); clients.actionsClient.getAll.mockResolvedValue([]); context.core.elasticsearch.client.asCurrentUser.search.mockResolvedValue( elasticsearchClientMock.createSuccessTransportRequestPromise(getBasicEmptySearchResponse()) @@ -80,7 +80,7 @@ describe('Import rules route', () => { describe('unhappy paths', () => { test('returns a 403 error object if ML Authz fails', async () => { - clients.rulesManagementClient.importRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.importRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); @@ -185,7 +185,7 @@ describe('Import rules route', () => { describe('rule with existing rule_id', () => { test('returns with reported conflict if `overwrite` is set to `false`', async () => { clients.rulesClient.find.mockResolvedValue(getFindResultWithSingleHit()); // extant rule - clients.rulesManagementClient.importRule.mockRejectedValue({ + clients.detectionRulesClient.importRule.mockRejectedValue({ message: 'rule_id: "rule-1" already exists', statusCode: 409, }); @@ -403,7 +403,7 @@ describe('Import rules route', () => { }); test('returns with reported conflict if `overwrite` is set to `false`', async () => { - clients.rulesManagementClient.importRule.mockRejectedValueOnce({ + clients.detectionRulesClient.importRule.mockRejectedValueOnce({ message: 'rule_id: "rule-1" already exists', statusCode: 409, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.ts index a085aced46ab4d..45379d3d175551 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/import_rules/route.ts @@ -74,7 +74,7 @@ export const importRulesRoute = (router: SecuritySolutionPluginRouter, config: C 'licensing', ]); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); const actionsClient = ctx.actions.getActionsClient(); const actionSOClient = ctx.core.savedObjects.getClient({ includedHiddenTypes: ['action'], @@ -154,7 +154,7 @@ export const importRulesRoute = (router: SecuritySolutionPluginRouter, config: C ruleChunks: chunkParseObjects, rulesResponseAcc: [...actionConnectorErrors, ...duplicateIdErrors], overwriteRules: request.query.overwrite, - rulesManagementClient, + detectionRulesClient, existingLists: foundReferencedExceptionLists, allowMissingConnectorSecrets: !!actionConnectors.length, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.test.ts index 22a2c9c058895a..c09eebec7689d9 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.test.ts @@ -34,7 +34,7 @@ describe('Patch rule route', () => { clients.rulesClient.get.mockResolvedValue(getRuleMock(getQueryRuleParams())); // existing rule clients.rulesClient.find.mockResolvedValue(getFindResultWithSingleHit()); // existing rule clients.rulesClient.update.mockResolvedValue(getRuleMock(getQueryRuleParams())); // successful update - clients.rulesManagementClient.patchRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); + clients.detectionRulesClient.patchRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); patchRuleRoute(server.router); }); @@ -76,7 +76,7 @@ describe('Patch rule route', () => { }); test('catches error if update throws error', async () => { - clients.rulesManagementClient.patchRule.mockImplementation(async () => { + clients.detectionRulesClient.patchRule.mockImplementation(async () => { throw new Error('Test error'); }); const response = await server.inject( @@ -99,7 +99,7 @@ describe('Patch rule route', () => { const anomalyThreshold = 4; const machineLearningJobId = 'some_job_id'; - clients.rulesManagementClient.patchRule.mockResolvedValueOnce( + clients.detectionRulesClient.patchRule.mockResolvedValueOnce( getRuleMock( getMlRuleParams({ anomalyThreshold, @@ -125,7 +125,7 @@ describe('Patch rule route', () => { }); it('rejects patching a rule to ML if mlAuthz fails', async () => { - clients.rulesManagementClient.patchRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.patchRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); @@ -144,7 +144,7 @@ describe('Patch rule route', () => { }); it('rejects patching an ML rule if mlAuthz fails', async () => { - clients.rulesManagementClient.patchRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.patchRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.ts index 6cbba8ce65759e..78c5a15ef05812 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/patch_rule/route.ts @@ -52,7 +52,7 @@ export const patchRuleRoute = (router: SecuritySolutionPluginRouter) => { try { const params = request.body; const rulesClient = (await context.alerting).getRulesClient(); - const rulesManagementClient = (await context.securitySolution).getRulesManagementClient(); + const detectionRulesClient = (await context.securitySolution).getDetectionRulesClient(); const existingRule = await readRules({ rulesClient, @@ -76,7 +76,7 @@ export const patchRuleRoute = (router: SecuritySolutionPluginRouter) => { ruleId: params.id, }); - const rule = await rulesManagementClient.patchRule({ + const rule = await detectionRulesClient.patchRule({ nextParams: params, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts index 624eaf882b0fa8..ff34f1a4c3e565 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts @@ -34,7 +34,7 @@ describe('Update rule route', () => { clients.rulesClient.get.mockResolvedValue(getRuleMock(getQueryRuleParams())); // existing rule clients.rulesClient.find.mockResolvedValue(getFindResultWithSingleHit()); // rule exists clients.rulesClient.update.mockResolvedValue(getRuleMock(getQueryRuleParams())); // successful update - clients.rulesManagementClient.updateRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); + clients.detectionRulesClient.updateRule.mockResolvedValue(getRuleMock(getQueryRuleParams())); clients.appClient.getSignalsIndex.mockReturnValue('.siem-signals-test-index'); updateRuleRoute(server.router); @@ -94,7 +94,7 @@ describe('Update rule route', () => { }); it('returns a 403 if mlAuthz fails', async () => { - clients.rulesManagementClient.updateRule.mockImplementationOnce(async () => { + clients.detectionRulesClient.updateRule.mockImplementationOnce(async () => { throw new HttpAuthzError('mocked validation message'); }); const request = requestMock.create({ diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.ts index 55bd63f1e09656..8c46e1979a43d7 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.ts @@ -49,7 +49,7 @@ export const updateRuleRoute = (router: SecuritySolutionPluginRouter) => { try { const ctx = await context.resolve(['core', 'securitySolution', 'alerting', 'licensing']); const rulesClient = ctx.alerting.getRulesClient(); - const rulesManagementClient = ctx.securitySolution.getRulesManagementClient(); + const detectionRulesClient = ctx.securitySolution.getDetectionRulesClient(); checkDefaultRuleExceptionListReferences({ exceptionLists: request.body.exceptions_list }); @@ -80,7 +80,7 @@ export const updateRuleRoute = (router: SecuritySolutionPluginRouter) => { existingRule ); - const rule = await rulesManagementClient.updateRule({ + const rule = await detectionRulesClient.updateRule({ ruleUpdate: request.body, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.test.ts index 4ac14268a762be..5fef4d40a22e58 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.test.ts @@ -21,7 +21,7 @@ describe('importRules', () => { beforeEach(() => { clients.rulesClient.find.mockResolvedValue(getEmptyFindResult()); clients.rulesClient.update.mockResolvedValue(importedRule); - clients.rulesManagementClient.importRule.mockResolvedValue(importedRule); + clients.detectionRulesClient.importRule.mockResolvedValue(importedRule); clients.actionsClient.getAll.mockResolvedValue([]); jest.clearAllMocks(); @@ -32,7 +32,7 @@ describe('importRules', () => { ruleChunks: [], rulesResponseAcc: [], overwriteRules: false, - rulesManagementClient: context.securitySolution.getRulesManagementClient(), + detectionRulesClient: context.securitySolution.getDetectionRulesClient(), existingLists: {}, }); @@ -44,7 +44,7 @@ describe('importRules', () => { ruleChunks: [[new Error('error importing')]], rulesResponseAcc: [], overwriteRules: false, - rulesManagementClient: context.securitySolution.getRulesManagementClient(), + detectionRulesClient: context.securitySolution.getDetectionRulesClient(), existingLists: {}, }); @@ -59,8 +59,8 @@ describe('importRules', () => { ]); }); - it('returns 409 error if ruleManagementClient throws with 409 - existing rule', async () => { - clients.rulesManagementClient.importRule.mockImplementationOnce(async () => { + it('returns 409 error if DetectionRulesClient throws with 409 - existing rule', async () => { + clients.detectionRulesClient.importRule.mockImplementationOnce(async () => { throw createBulkErrorObject({ ruleId: importedRule.params.ruleId, statusCode: 409, @@ -72,7 +72,7 @@ describe('importRules', () => { ruleChunks: [ruleChunk], rulesResponseAcc: [], overwriteRules: false, - rulesManagementClient: context.securitySolution.getRulesManagementClient(), + detectionRulesClient: context.securitySolution.getDetectionRulesClient(), existingLists: {}, }); @@ -92,7 +92,7 @@ describe('importRules', () => { ruleChunks: [ruleChunk], rulesResponseAcc: [], overwriteRules: false, - rulesManagementClient: context.securitySolution.getRulesManagementClient(), + detectionRulesClient: context.securitySolution.getDetectionRulesClient(), existingLists: {}, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.ts index 5c1ac63ec8a70d..8c8f32181c2306 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/import/import_rules_utils.ts @@ -16,7 +16,7 @@ import type { RuleToImport } from '../../../../../../common/api/detection_engine import type { ImportRuleResponse } from '../../../routes/utils'; import { createBulkErrorObject } from '../../../routes/utils'; import { checkRuleExceptionReferences } from './check_rule_exception_references'; -import type { IRulesManagementClient } from '../rule_management/rules_management_client'; +import type { IDetectionRulesClient } from '../rule_management/detection_rules_client'; export type PromiseFromStreams = RuleToImport | Error; export interface RuleExceptionsPromiseFromStreams { @@ -34,7 +34,7 @@ export interface RuleExceptionsPromiseFromStreams { * @param mlAuthz {object} * @param overwriteRules {boolean} - whether to overwrite existing rules * with imported rules if their rule_id matches - * @param rulesManagementClient {object} + * @param detectionRulesClient {object} * @param existingLists {object} - all exception lists referenced by * rules that were found to exist * @returns {Promise} an array of error and success messages from import @@ -43,14 +43,14 @@ export const importRules = async ({ ruleChunks, rulesResponseAcc, overwriteRules, - rulesManagementClient, + detectionRulesClient, existingLists, allowMissingConnectorSecrets, }: { ruleChunks: PromiseFromStreams[][]; rulesResponseAcc: ImportRuleResponse[]; overwriteRules: boolean; - rulesManagementClient: IRulesManagementClient; + detectionRulesClient: IDetectionRulesClient; existingLists: Record; allowMissingConnectorSecrets?: boolean; }) => { @@ -88,7 +88,7 @@ export const importRules = async ({ importRuleResponse = [...importRuleResponse, ...exceptionErrors]; - const importedRule = await rulesManagementClient.importRule({ + const importedRule = await detectionRulesClient.importRule({ ruleToImport: { ...parsedRule, exceptions_list: [...exceptions], diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/__mocks__/rules_management_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/__mocks__/detection_rules_client.ts similarity index 83% rename from x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/__mocks__/rules_management_client.ts rename to x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/__mocks__/detection_rules_client.ts index 629bd43f84c2e9..d320cfbe5315a5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/__mocks__/rules_management_client.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/__mocks__/detection_rules_client.ts @@ -6,11 +6,11 @@ */ import type { - IRulesManagementClient, + IDetectionRulesClient, CreateRuleOptions, _UpdateRuleProps, _PatchRuleProps, -} from '../rules_management_client'; +} from '../detection_rules_client'; import type { RulesClient } from '@kbn/alerting-plugin/server'; import type { RuleCreateProps, @@ -19,10 +19,10 @@ import type { import type { PrebuiltRuleAsset } from '../../../../prebuilt_rules'; import type { RuleAlertType } from '../../../../rule_schema'; -export type RulesManagementClientMock = jest.Mocked; +export type DetectionRulesClientMock = jest.Mocked; -const createRulesManagementClientMock = () => { - const mocked: RulesManagementClientMock = { +const createDetectionRulesClientMock = () => { + const mocked: DetectionRulesClientMock = { createCustomRule: jest.fn(), createPrebuiltRule: jest.fn(), updateRule: jest.fn(), @@ -34,10 +34,10 @@ const createRulesManagementClientMock = () => { return mocked; }; -export const rulesManagementClientMock: { - create: () => RulesManagementClientMock; +export const detectionRulesClientMock: { + create: () => DetectionRulesClientMock; } = { - create: createRulesManagementClientMock, + create: createDetectionRulesClientMock, }; /* Mocks for internal methods */ diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_custom_rule.rule_management_client.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_custom_rule.rule_management_client.test.ts index 450c767f7b3ce6..7cf68102d6a835 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_custom_rule.rule_management_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_custom_rule.rule_management_client.test.ts @@ -7,7 +7,7 @@ import { rulesClientMock } from '@kbn/alerting-plugin/server/mocks'; -import { createCustomRule } from './rules_management_client'; +import { createCustomRule } from './detection_rules_client'; import { getCreateRulesSchemaMock, @@ -21,7 +21,7 @@ import { throwAuthzError } from '../../../../machine_learning/validation'; jest.mock('../../../../machine_learning/authz'); jest.mock('../../../../machine_learning/validation'); -describe('RuleManagementClient.createCustomRule', () => { +describe('DetectionRulesClient.createCustomRule', () => { let rulesClient: ReturnType; const mlAuthz = (buildMlAuthz as jest.Mock)(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_prebuilt_rule.rule_management_client.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_prebuilt_rule.rule_management_client.test.ts index ca9ecc6a0814d2..b99f94344332fc 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_prebuilt_rule.rule_management_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/create_prebuilt_rule.rule_management_client.test.ts @@ -7,7 +7,7 @@ import { rulesClientMock } from '@kbn/alerting-plugin/server/mocks'; -import { createPrebuiltRule } from './rules_management_client'; +import { createPrebuiltRule } from './detection_rules_client'; import { getCreateRulesSchemaMock, @@ -21,7 +21,7 @@ import { throwAuthzError } from '../../../../machine_learning/validation'; jest.mock('../../../../machine_learning/authz'); jest.mock('../../../../machine_learning/validation'); -describe('RuleManagementClient.createPrebuiltRule', () => { +describe('DetectionRulesClient.createPrebuiltRule', () => { let rulesClient: ReturnType; const mlAuthz = (buildMlAuthz as jest.Mock)(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/delete_rule.rule_management_client.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/delete_rule.rule_management_client.test.ts index e675d5e01590d2..d811e5fa21ce06 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/delete_rule.rule_management_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/delete_rule.rule_management_client.test.ts @@ -6,9 +6,9 @@ */ import { rulesClientMock } from '@kbn/alerting-plugin/server/mocks'; -import { deleteRule } from './rules_management_client'; +import { deleteRule } from './detection_rules_client'; -describe('RuleManagementClient.deleteRule', () => { +describe('DetectionRulesClient.deleteRule', () => { let rulesClient: ReturnType; beforeEach(() => { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/rules_management_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/detection_rules_client.ts similarity index 99% rename from x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/rules_management_client.ts rename to x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/detection_rules_client.ts index c88e6883f14300..b756943b7de84b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/rules_management_client.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/detection_rules_client.ts @@ -98,7 +98,7 @@ interface ImportRuleProps { options: ImportRuleOptions; } -export interface IRulesManagementClient { +export interface IDetectionRulesClient { createCustomRule: (createCustomRulePayload: CreateCustomRuleProps) => Promise; createPrebuiltRule: ( createPrebuiltRulePayload: CreatePrebuiltRuleProps @@ -112,13 +112,13 @@ export interface IRulesManagementClient { importRule: (importRulePayload: ImportRuleProps) => Promise; } -export const createRulesManagementClient = ( +export const createDetectionRulesClient = ( rulesClient: RulesClient, request: KibanaRequest, savedObjectsClient: SavedObjectsClientContract, licensing: LicensingApiRequestHandlerContext, ml?: SharedServices -): IRulesManagementClient => { +): IDetectionRulesClient => { const mlAuthz = buildMlAuthz({ license: licensing.license, ml, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/import_rule.rule_management_client.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/import_rule.rule_management_client.test.ts index 891c4f613b3c80..cc7ae2bf28038c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/import_rule.rule_management_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/import_rule.rule_management_client.test.ts @@ -6,7 +6,7 @@ */ import { rulesClientMock } from '@kbn/alerting-plugin/server/mocks'; -import { importRule } from './rules_management_client'; +import { importRule } from './detection_rules_client'; import { readRules } from './read_rules'; import { getCreateRulesSchemaMock } from '../../../../../../common/api/detection_engine/model/rule_schema/mocks'; import { getRuleMock } from '../../../routes/__mocks__/request_responses'; @@ -19,7 +19,7 @@ jest.mock('../../../../machine_learning/validation'); jest.mock('./read_rules'); -describe('RuleManagementClient.importRule', () => { +describe('DetectionRulesClient.importRule', () => { let rulesClient: ReturnType; const mlAuthz = (buildMlAuthz as jest.Mock)(); const immutable = false as const; // Can only take value of false diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/patch_rule.rule_management_client.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/patch_rule.rule_management_client.test.ts index a27d83bed85ca4..29bc4c678ac2d9 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/patch_rule.rule_management_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/patch_rule.rule_management_client.test.ts @@ -13,7 +13,7 @@ import { getCreateMachineLearningRulesSchemaMock, getCreateRulesSchemaMock, } from '../../../../../../common/api/detection_engine/model/rule_schema/mocks'; -import { patchRule } from './rules_management_client'; +import { patchRule } from './detection_rules_client'; import { readRules } from './read_rules'; import { buildMlAuthz } from '../../../../machine_learning/authz'; import { throwAuthzError } from '../../../../machine_learning/validation'; @@ -23,7 +23,7 @@ jest.mock('../../../../machine_learning/validation'); jest.mock('./read_rules'); -describe('RuleManagementClient.patchRule', () => { +describe('DetectionRulesClient.patchRule', () => { let rulesClient: ReturnType; const mlAuthz = (buildMlAuthz as jest.Mock)(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/update_rule.rule_management_client.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/update_rule.rule_management_client.test.ts index 2d7bf7bc310e7a..b0ee5a64267758 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/update_rule.rule_management_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/update_rule.rule_management_client.test.ts @@ -13,7 +13,7 @@ import { getCreateMachineLearningRulesSchemaMock, getCreateRulesSchemaMock, } from '../../../../../../common/api/detection_engine/model/rule_schema/mocks'; -import { updateRule } from './rules_management_client'; +import { updateRule } from './detection_rules_client'; import { readRules } from './read_rules'; import { buildMlAuthz } from '../../../../machine_learning/authz'; import { throwAuthzError } from '../../../../machine_learning/validation'; @@ -23,7 +23,7 @@ jest.mock('../../../../machine_learning/validation'); jest.mock('./read_rules'); -describe('RuleManagementClient.updateRule', () => { +describe('DetectionRulesClient.updateRule', () => { let rulesClient: ReturnType; const mlAuthz = (buildMlAuthz as jest.Mock)(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/upgrade_prebuilt_rule.rule_management_client.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/upgrade_prebuilt_rule.rule_management_client.test.ts index eac57c1a6d368b..1997df6f3fff16 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/upgrade_prebuilt_rule.rule_management_client.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/logic/rule_management/upgrade_prebuilt_rule.rule_management_client.test.ts @@ -7,7 +7,7 @@ import { rulesClientMock } from '@kbn/alerting-plugin/server/mocks'; -import { upgradePrebuiltRule } from './rules_management_client'; +import { upgradePrebuiltRule } from './detection_rules_client'; import { getCreateEqlRuleSchemaMock, @@ -26,7 +26,7 @@ jest.mock('../../../../machine_learning/authz'); jest.mock('../../../../machine_learning/validation'); jest.mock('./read_rules'); -describe('RuleManagementClient.upgradePrebuiltRule', () => { +describe('DetectionRulesClient.upgradePrebuiltRule', () => { let rulesClient: ReturnType; const mlAuthz = (buildMlAuthz as jest.Mock)(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/fetch_rule_by_id.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/fetch_rule_by_id.ts index 9975669d7e4a4e..520363eb67e5cd 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/fetch_rule_by_id.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_monitoring/logic/detection_engine_health/rule_objects/fetch_rule_by_id.ts @@ -14,7 +14,7 @@ import type { import { readRules } from '../../../../rule_management/logic/rule_management/read_rules'; import { transform } from '../../../../rule_management/utils/utils'; -// TODO: https://github.com/elastic/kibana/issues/125642 Move to rule_management into a RuleManagementClient +// TODO: https://github.com/elastic/kibana/issues/125642 Move to rule_management into a DetectionRulesClient export const fetchRuleById = async ( rulesClient: RulesClient, diff --git a/x-pack/plugins/security_solution/server/request_context_factory.ts b/x-pack/plugins/security_solution/server/request_context_factory.ts index 28096984e0584e..f2e090b389ff6a 100644 --- a/x-pack/plugins/security_solution/server/request_context_factory.ts +++ b/x-pack/plugins/security_solution/server/request_context_factory.ts @@ -28,7 +28,7 @@ import type { EndpointAppContextService } from './endpoint/endpoint_app_context_ import { RiskEngineDataClient } from './lib/entity_analytics/risk_engine/risk_engine_data_client'; import { RiskScoreDataClient } from './lib/entity_analytics/risk_score/risk_score_data_client'; import { AssetCriticalityDataClient } from './lib/entity_analytics/asset_criticality'; -import { createRulesManagementClient } from './lib/detection_engine/rule_management/logic/rule_management/rules_management_client'; +import { createDetectionRulesClient } from './lib/detection_engine/rule_management/logic/rule_management/detection_rules_client'; export interface IRequestContextFactory { create( @@ -113,8 +113,8 @@ export class RequestContextFactory implements IRequestContextFactory { getAuditLogger, - getRulesManagementClient: () => - createRulesManagementClient( + getDetectionRulesClient: () => + createDetectionRulesClient( startPlugins.alerting.getRulesClientWithRequest(request), request, coreContext.savedObjects.client, diff --git a/x-pack/plugins/security_solution/server/types.ts b/x-pack/plugins/security_solution/server/types.ts index d8536c00ca4d02..563d61bfae3070 100644 --- a/x-pack/plugins/security_solution/server/types.ts +++ b/x-pack/plugins/security_solution/server/types.ts @@ -33,7 +33,7 @@ import type { EndpointInternalFleetServicesInterface } from './endpoint/services import type { RiskEngineDataClient } from './lib/entity_analytics/risk_engine/risk_engine_data_client'; import type { RiskScoreDataClient } from './lib/entity_analytics/risk_score/risk_score_data_client'; import type { AssetCriticalityDataClient } from './lib/entity_analytics/asset_criticality'; -import type { IRulesManagementClient } from './lib/detection_engine/rule_management/logic/rule_management/rules_management_client'; +import type { IDetectionRulesClient } from './lib/detection_engine/rule_management/logic/rule_management/detection_rules_client'; export { AppClient }; export interface SecuritySolutionApiRequestHandlerContext { @@ -45,7 +45,7 @@ export interface SecuritySolutionApiRequestHandlerContext { getAppClient: () => AppClient; getSpaceId: () => string; getRuleDataService: () => IRuleDataService; - getRulesManagementClient: () => IRulesManagementClient; + getDetectionRulesClient: () => IDetectionRulesClient; getDetectionEngineHealthClient: () => IDetectionEngineHealthClient; getRuleExecutionLog: () => IRuleExecutionLogForRoutes; getRacClient: (req: KibanaRequest) => Promise;