Skip to content

Commit

Permalink
Pass explicit arguments instead of full config
Browse files Browse the repository at this point in the history
  • Loading branch information
rw-access committed Jul 20, 2021
1 parent c0e4e03 commit 8f9eb82
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,8 @@ kibana_vars=(
xpack.securitySolution.maxTimelineImportExportSize
xpack.securitySolution.maxTimelineImportPayloadBytes
xpack.securitySolution.packagerTaskInterval
xpack.securitySolution.prebuiltRulesFromFileSystem
xpack.securitySolution.prebuiltRulesFromSavedObjects
xpack.spaces.enabled
xpack.spaces.maxSpaces
xpack.task_manager.enabled
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,14 +297,16 @@ describe('add_prepackaged_rules_route', () => {
getExceptionListClient: jest.fn(),
getListClient: jest.fn(),
};
const config = createMockConfig();

await createPrepackagedRules(
context,
siemMockClient,
clients.alertsClient,
{} as FrameworkRequest,
1200,
createMockConfig(),
config.prebuiltRulesFromFileSystem,
config.prebuiltRulesFromSavedObjects,
mockExceptionsClient
);

Expand All @@ -314,14 +316,16 @@ describe('add_prepackaged_rules_route', () => {

test('uses passed in exceptions list client when lists client not available in context', async () => {
const { lists, ...myContext } = context;
const config = createMockConfig();

await createPrepackagedRules(
myContext,
siemMockClient,
clients.alertsClient,
{} as FrameworkRequest,
1200,
createMockConfig(),
config.prebuiltRulesFromFileSystem,
config.prebuiltRulesFromSavedObjects,
mockExceptionsClient
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ export const addPrepackedRulesRoute = (
alertsClient,
frameworkRequest,
config.maxTimelineImportExportSize,
config
config.prebuiltRulesFromFileSystem,
config.prebuiltRulesFromSavedObjects
);
return response.ok({ body: validated ?? {} });
} catch (err) {
Expand All @@ -105,8 +106,9 @@ export const createPrepackagedRules = async (
siemClient: AppClient,
alertsClient: AlertsClient,
frameworkRequest: FrameworkRequest,
maxTimelineImportExportSize: number,
config: ConfigType,
maxTimelineImportExportSize: ConfigType['maxTimelineImportExportSize'],
prebuiltRulesFromFileSystem: ConfigType['prebuiltRulesFromFileSystem'],
prebuiltRulesFromSavedObjects: ConfigType['prebuiltRulesFromSavedObjects'],
exceptionsClient?: ExceptionListClient
): Promise<PrePackagedRulesAndTimelinesSchema | null> => {
const esClient = context.core.elasticsearch.client;
Expand All @@ -123,7 +125,11 @@ export const createPrepackagedRules = async (
await exceptionsListClient.createEndpointList();
}

const latestPrepackagedRules = await getLatestPrepackagedRules(ruleAssetsClient, config);
const latestPrepackagedRules = await getLatestPrepackagedRules(
ruleAssetsClient,
prebuiltRulesFromFileSystem,
prebuiltRulesFromSavedObjects
);
const prepackagedRules = await getExistingPrepackagedRules({ alertsClient });
const rulesToInstall = getRulesToInstall(latestPrepackagedRules, prepackagedRules);
const rulesToUpdate = getRulesToUpdate(latestPrepackagedRules, prepackagedRules);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,11 @@ export const getPrepackagedRulesStatusRoute = (
}

try {
const latestPrepackagedRules = await getLatestPrepackagedRules(ruleAssetsClient, config);
const latestPrepackagedRules = await getLatestPrepackagedRules(
ruleAssetsClient,
config.prebuiltRulesFromFileSystem,
config.prebuiltRulesFromSavedObjects
);
const customRules = await findRules({
alertsClient,
perPage: 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,17 +105,15 @@ export const getPrepackagedRules = (

export const getLatestPrepackagedRules = async (
client: RuleAssetSavedObjectsClient,
config: ConfigType
prebuiltRulesFromFileSystem: ConfigType['prebuiltRulesFromFileSystem'],
prebuiltRulesFromSavedObjects: ConfigType['prebuiltRulesFromSavedObjects']
): Promise<AddPrepackagedRulesSchemaDecoded[]> => {
// build a map of the most recent version of each rule
const fromFS = config.prebuiltRulesFromFileSystem;
const fromFleet = config.prebuiltRulesFromSavedObjects;

const prepackaged = fromFS ? getPrepackagedRules() : [];
const prepackaged = prebuiltRulesFromFileSystem ? getPrepackagedRules() : [];
const ruleMap = new Map(prepackaged.map((r) => [r.rule_id, r]));

// check the rules installed via fleet and create/update if the version is newer
if (fromFleet) {
if (prebuiltRulesFromSavedObjects) {
const fleetRules = await getFleetInstalledRules(client);
const fleetUpdates = fleetRules.filter((r) => {
const rule = ruleMap.get(r.rule_id);
Expand Down

0 comments on commit 8f9eb82

Please sign in to comment.