diff --git a/deepfence_server/handler/cloud_node.go b/deepfence_server/handler/cloud_node.go index c56b40d00e..90a3ec658b 100644 --- a/deepfence_server/handler/cloud_node.go +++ b/deepfence_server/handler/cloud_node.go @@ -162,7 +162,7 @@ func (h *Handler) RegisterCloudNodeAccountHandler(w http.ResponseWriter, r *http } logrus.Debugf("Pending scans for node: %+v", scanList) } - logrus.Debugf("Returning response: Scan List %+v cloudtrailTrails %+v Refresh %s", scanList, cloudtrailTrails, doRefresh) + log.Debug().Msgf("Returning response: Scan List %+v cloudtrailTrails %+v Refresh %s", scanList, cloudtrailTrails, doRefresh) err = httpext.JSON(w, http.StatusOK, model.CloudNodeAccountRegisterResp{Data: model.CloudNodeAccountRegisterRespData{Scans: scanList, diff --git a/deepfence_server/model/cloud_node.go b/deepfence_server/model/cloud_node.go index 417b955735..738d5b651f 100644 --- a/deepfence_server/model/cloud_node.go +++ b/deepfence_server/model/cloud_node.go @@ -492,7 +492,7 @@ func GetActiveCloudControls(ctx context.Context, complianceTypes []string, cloud var res neo4j.Result res, err = tx.Run(` - MATCH (n:CloudComplianceBenchmark) -[:INCLUDES]-> (m:CloudComplianceControl) + MATCH (n:CloudComplianceBenchmark) -[:PARENT]-> (m:CloudComplianceControl) WHERE m.active = true AND m.disabled = false AND m.compliance_type IN $compliance_types diff --git a/deepfence_worker/cronjobs/cloud_compliance.go b/deepfence_worker/cronjobs/cloud_compliance.go index 914625d821..22323c65b2 100644 --- a/deepfence_worker/cronjobs/cloud_compliance.go +++ b/deepfence_worker/cronjobs/cloud_compliance.go @@ -22,7 +22,8 @@ var BenchmarksAvailableMap = map[string][]string{ "gcp": {"cis"}, "azure": {"cis", "nist", "pci", "hipaa"}, "kubernetes": {"nsa-cisa"}, - "linux": {"hipaa", "nist", "pci", "gdpr"}} + "linux": {"hipaa", "nist", "pci", "gdpr"}, +} type Benchmark struct { BenchmarkId string `json:"benchmark_id"` @@ -146,7 +147,7 @@ func AddCloudControls(ctx context.Context, task *asynq.Task) error { MERGE (n:CloudComplianceExecutable:CloudComplianceBenchmark{ node_id: row.benchmark_id }) - ON CREATE + ON CREATE SET n.benchmark_id = row.benchmark_id, n.description = row.description, n.title = row.title, @@ -179,6 +180,14 @@ func AddCloudControls(ctx context.Context, task *asynq.Task) error { } } } + // connect controls to parent root benchmarks + if _, err = tx.Run(` + MATCH (n:CloudComplianceControl) + MATCH (b:CloudComplianceBenchmark{benchmark_id:n.parent_control_hierarchy[0]}) + MERGE (b)-[:PARENT]->(n)`, map[string]interface{}{}); err != nil { + log.Error().Msgf(err.Error()) + return nil + } log.Info().Msgf("Updated Cloud Compliance Controls") return tx.Commit() }