Skip to content

Commit

Permalink
Merge pull request #2000 from deepfence/ui-fix-scan-status-k8-filter
Browse files Browse the repository at this point in the history
Corrected queries for scan pages
  • Loading branch information
milan-deepfence authored Mar 1, 2024
2 parents e02093e + 5005142 commit 78c45d8
Show file tree
Hide file tree
Showing 3 changed files with 297 additions and 85 deletions.
127 changes: 99 additions & 28 deletions deepfence_frontend/apps/dashboard/src/queries/malware.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,18 +71,14 @@ export const malwareQueries = createQueryKeys('malware', {
totalRows: 0,
};

const scanFilters = {} as {
status?: string[];
};

const nodeFilters = {
node_type: nodeTypes,
} as {
node_type?: string[];
host_name?: string[];
node_id?: string[];
docker_image_id?: string[];
kubernetes_cluster_id?: string[];
malware_scan_status?: string[];
};
if (hosts && hosts?.length > 0) {
nodeFilters.host_name = nodeFilters.host_name
Expand All @@ -99,11 +95,19 @@ export const malwareQueries = createQueryKeys('malware', {
? nodeFilters.docker_image_id.concat(images)
: images;
}

if (clusters && clusters?.length > 0) {
nodeFilters.kubernetes_cluster_id = clusters;
if (malwareScanStatus) {
if (malwareScanStatus === MalwareScanGroupedStatus.neverScanned) {
nodeFilters.malware_scan_status = [
...MALWARE_SCAN_STATUS_GROUPS.complete,
...MALWARE_SCAN_STATUS_GROUPS.error,
...MALWARE_SCAN_STATUS_GROUPS.inProgress,
...MALWARE_SCAN_STATUS_GROUPS.starting,
];
} else {
nodeFilters.malware_scan_status =
MALWARE_SCAN_STATUS_GROUPS[malwareScanStatus];
}
}

const scanRequestParams: SearchSearchScanReq = {
node_filters: {
filters: {
Expand All @@ -125,7 +129,7 @@ export const malwareQueries = createQueryKeys('malware', {
filters: {
match_filter: { filter_in: {} },
order_filter: { order_fields: [] },
contains_filter: { filter_in: { ...scanFilters } },
contains_filter: { filter_in: {} },
compare_filter: null,
not_contains_filter: {
filter_in: {},
Expand Down Expand Up @@ -154,24 +158,6 @@ export const malwareQueries = createQueryKeys('malware', {
},
];
}
if (malwareScanStatus) {
if (malwareScanStatus === MalwareScanGroupedStatus.neverScanned) {
scanRequestParams.scan_filters.filters.not_contains_filter!.filter_in = {
...scanRequestParams.scan_filters.filters.not_contains_filter!.filter_in,
status: [
...MALWARE_SCAN_STATUS_GROUPS.complete,
...MALWARE_SCAN_STATUS_GROUPS.error,
...MALWARE_SCAN_STATUS_GROUPS.inProgress,
...MALWARE_SCAN_STATUS_GROUPS.starting,
],
};
} else {
scanRequestParams.scan_filters.filters.contains_filter.filter_in = {
...scanRequestParams.scan_filters.filters.contains_filter.filter_in,
status: MALWARE_SCAN_STATUS_GROUPS[malwareScanStatus],
};
}
}

if (registryAccounts?.length) {
scanRequestParams.related_node_filter = {
Expand Down Expand Up @@ -203,6 +189,91 @@ export const malwareQueries = createQueryKeys('malware', {
};
}

if (clusters && clusters?.length > 0) {
if (scanRequestParams.related_node_filter) {
scanRequestParams.related_node_filter.next_filter = {
relation_ship: 'INSTANCIATE',
node_filter: {
filters: {
compare_filter: null,
contains_filter: {
filter_in: {
node_id: clusters,
},
},
match_filter: {
filter_in: {},
},
not_contains_filter: {
filter_in: {},
},
order_filter: {
order_fields: [],
},
},
in_field_filter: null,
window: {
offset: 0,
size: 0,
},
},
};
} else {
scanRequestParams.related_node_filter = {
relation_ship: 'HOSTS',
node_filter: {
filters: {
compare_filter: null,
contains_filter: {
filter_in: {},
},
match_filter: {
filter_in: {},
},
not_contains_filter: {
filter_in: {},
},
order_filter: {
order_fields: [],
},
},
in_field_filter: null,
window: {
offset: 0,
size: 0,
},
},
next_filter: {
relation_ship: 'INSTANCIATE',
node_filter: {
filters: {
compare_filter: null,
contains_filter: {
filter_in: {
node_id: clusters,
},
},
match_filter: {
filter_in: {},
},
not_contains_filter: {
filter_in: {},
},
order_filter: {
order_fields: [],
},
},
in_field_filter: null,
window: {
offset: 0,
size: 0,
},
},
},
};
}
}

const searchMalwaresScanApi = apiWrapper({
fn: getSearchApiClient().searchMalwaresScan,
});
Expand Down
124 changes: 97 additions & 27 deletions deepfence_frontend/apps/dashboard/src/queries/secret.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,18 +71,14 @@ export const secretQueries = createQueryKeys('secret', {
totalRows: 0,
};

const scanFilters = {} as {
status?: string[];
};

const nodeFilters = {
node_type: nodeTypes,
} as {
node_type?: string[];
host_name?: string[];
node_id?: string[];
docker_image_id?: string[];
kubernetes_cluster_id?: string[];
secret_scan_status?: string[];
};
if (hosts && hosts?.length > 0) {
nodeFilters.host_name = nodeFilters.host_name
Expand All @@ -99,9 +95,17 @@ export const secretQueries = createQueryKeys('secret', {
? nodeFilters.docker_image_id.concat(images)
: images;
}

if (clusters && clusters?.length > 0) {
nodeFilters.kubernetes_cluster_id = clusters;
if (secretScanStatus) {
if (secretScanStatus === SecretScanGroupedStatus.neverScanned) {
nodeFilters.secret_scan_status = [
...SECRET_SCAN_STATUS_GROUPS.complete,
...SECRET_SCAN_STATUS_GROUPS.error,
...SECRET_SCAN_STATUS_GROUPS.inProgress,
...SECRET_SCAN_STATUS_GROUPS.starting,
];
} else {
nodeFilters.secret_scan_status = SECRET_SCAN_STATUS_GROUPS[secretScanStatus];
}
}

const scanRequestParams: SearchSearchScanReq = {
Expand All @@ -125,7 +129,7 @@ export const secretQueries = createQueryKeys('secret', {
filters: {
match_filter: { filter_in: {} },
order_filter: { order_fields: [] },
contains_filter: { filter_in: { ...scanFilters } },
contains_filter: { filter_in: {} },
compare_filter: null,
not_contains_filter: {
filter_in: {},
Expand Down Expand Up @@ -154,24 +158,6 @@ export const secretQueries = createQueryKeys('secret', {
},
];
}
if (secretScanStatus) {
if (secretScanStatus === SecretScanGroupedStatus.neverScanned) {
scanRequestParams.scan_filters.filters.not_contains_filter!.filter_in = {
...scanRequestParams.scan_filters.filters.not_contains_filter!.filter_in,
status: [
...SECRET_SCAN_STATUS_GROUPS.complete,
...SECRET_SCAN_STATUS_GROUPS.error,
...SECRET_SCAN_STATUS_GROUPS.inProgress,
...SECRET_SCAN_STATUS_GROUPS.starting,
],
};
} else {
scanRequestParams.scan_filters.filters.contains_filter.filter_in = {
...scanRequestParams.scan_filters.filters.contains_filter.filter_in,
status: SECRET_SCAN_STATUS_GROUPS[secretScanStatus],
};
}
}

if (registryAccounts?.length) {
scanRequestParams.related_node_filter = {
Expand Down Expand Up @@ -202,6 +188,90 @@ export const secretQueries = createQueryKeys('secret', {
},
};
}
if (clusters && clusters?.length > 0) {
if (scanRequestParams.related_node_filter) {
scanRequestParams.related_node_filter.next_filter = {
relation_ship: 'INSTANCIATE',
node_filter: {
filters: {
compare_filter: null,
contains_filter: {
filter_in: {
node_id: clusters,
},
},
match_filter: {
filter_in: {},
},
not_contains_filter: {
filter_in: {},
},
order_filter: {
order_fields: [],
},
},
in_field_filter: null,
window: {
offset: 0,
size: 0,
},
},
};
} else {
scanRequestParams.related_node_filter = {
relation_ship: 'HOSTS',
node_filter: {
filters: {
compare_filter: null,
contains_filter: {
filter_in: {},
},
match_filter: {
filter_in: {},
},
not_contains_filter: {
filter_in: {},
},
order_filter: {
order_fields: [],
},
},
in_field_filter: null,
window: {
offset: 0,
size: 0,
},
},
next_filter: {
relation_ship: 'INSTANCIATE',
node_filter: {
filters: {
compare_filter: null,
contains_filter: {
filter_in: {
node_id: clusters,
},
},
match_filter: {
filter_in: {},
},
not_contains_filter: {
filter_in: {},
},
order_filter: {
order_fields: [],
},
},
in_field_filter: null,
window: {
offset: 0,
size: 0,
},
},
},
};
}
}

const searchSecretsScanApi = apiWrapper({
fn: getSearchApiClient().searchSecretsScan,
Expand Down
Loading

0 comments on commit 78c45d8

Please sign in to comment.