diff --git a/deepfence_server/apiDocs/operation.go b/deepfence_server/apiDocs/operation.go index 734427d776..c347ac6216 100644 --- a/deepfence_server/apiDocs/operation.go +++ b/deepfence_server/apiDocs/operation.go @@ -263,6 +263,10 @@ func (d *OpenAPIDocs) AddSearchOperations() { "Search Cloud Nodes", "Search across all the data associated with cloud nodes", http.StatusOK, []string{tagSearch}, bearerToken, new(SearchNodeReq), new([]CloudNodeAccountInfo)) + d.AddOperation("searchRegistryAccounts", http.MethodPost, "/deepfence/search/registry-accounts", + "Search Registry Accounts", "Search across all the data associated with registry account", + http.StatusOK, []string{tagSearch}, bearerToken, new(SearchNodeReq), new([]RegistryAccount)) + d.AddOperation("getCloudComplianceFilters", http.MethodPost, "/deepfence/filters/cloud-compliance", "Get Cloud Compliance Filters", "Get all applicable filter values for cloud compliance", http.StatusOK, []string{tagSearch}, bearerToken, new(FiltersReq), new(FiltersResult)) @@ -359,6 +363,10 @@ func (d *OpenAPIDocs) AddSearchOperations() { d.AddOperation("countCloudAccounts", http.MethodPost, "/deepfence/search/count/cloud-accounts", "Count Cloud Nodes", "Search across all the data associated with cloud nodes", http.StatusOK, []string{tagSearch}, bearerToken, new(SearchNodeReq), new(SearchCountResp)) + + d.AddOperation("countRegistryAccounts", http.MethodPost, "/deepfence/search/count/registry-accounts", + "Count Registry Accounts", "Search across all the data associated with registry account", + http.StatusOK, []string{tagSearch}, bearerToken, new(SearchNodeReq), new(SearchCountResp)) } func (d *OpenAPIDocs) AddControlsOperations() { diff --git a/deepfence_server/handler/search_reports.go b/deepfence_server/handler/search_reports.go index 9c03318ab4..eeb206968e 100644 --- a/deepfence_server/handler/search_reports.go +++ b/deepfence_server/handler/search_reports.go @@ -224,6 +224,10 @@ func (h *Handler) SearchCloudNodes(w http.ResponseWriter, r *http.Request) { SearchCloudNodeHandler[model.CloudNodeAccountInfo](w, r, h) } +func (h *Handler) SearchRegistryAccounts(w http.ResponseWriter, r *http.Request) { + SearchHandler[model.RegistryAccount](w, r, h) +} + func (h *Handler) NodeCount(w http.ResponseWriter, r *http.Request) { h.NodeCountHandler(w, r) } @@ -312,6 +316,10 @@ func (h *Handler) SearchCloudComplianceScansCount(w http.ResponseWriter, r *http h.SearchScansCount(w, r, utils.NEO4JCloudComplianceScan) } +func (h *Handler) SearchRegistryAccountsCount(w http.ResponseWriter, r *http.Request) { + SearchCountHandler[model.RegistryAccount](w, r, h) +} + func (h *Handler) SearchScans(w http.ResponseWriter, r *http.Request, scanType utils.Neo4jScanType) { defer r.Body.Close() var req reporters_search.SearchScanReq diff --git a/deepfence_server/model/lookup.go b/deepfence_server/model/lookup.go index c44c99c33f..773b5f10e4 100644 --- a/deepfence_server/model/lookup.go +++ b/deepfence_server/model/lookup.go @@ -131,6 +131,8 @@ type RegistryAccount struct { ID string `json:"node_id" required:"true"` Name string `json:"host_name" required:"true"` ContainerImages []ContainerImage `json:"container_images" required:"true"` + RegistryType string `json:"registry_type" required:"true"` + Syncing bool `json:"syncing" required:"true"` } func (RegistryAccount) NodeType() string { diff --git a/deepfence_server/router/router.go b/deepfence_server/router/router.go index ccb19f0675..cbc4ca28c4 100644 --- a/deepfence_server/router/router.go +++ b/deepfence_server/router/router.go @@ -282,6 +282,7 @@ func SetupRoutes(r *chi.Mux, serverPort string, serveOpenapiDocs bool, ingestC c r.Post("/cloud-compliance/scans", dfHandler.SearchCloudComplianceScans) r.Post("/cloud-accounts", dfHandler.SearchCloudNodes) + r.Post("/registry-accounts", dfHandler.SearchRegistryAccounts) r.Route("/count", func(r chi.Router) { r.Get("/nodes", dfHandler.NodeCount) @@ -301,6 +302,7 @@ func SetupRoutes(r *chi.Mux, serverPort string, serveOpenapiDocs bool, ingestC c r.Post("/kubernetes-clusters", dfHandler.SearchKubernetesClustersCount) r.Post("/pods", dfHandler.SearchPodsCount) r.Post("/cloud-accounts", dfHandler.SearchCloudAccountCount) + r.Post("/registry-accounts", dfHandler.SearchRegistryAccountsCount) r.Post("/vulnerability/scans", dfHandler.SearchVulnerabilityScansCount) r.Post("/secret/scans", dfHandler.SearchSecretScansCount)