diff --git a/cautils/getter/armoapi.go b/cautils/getter/armoapi.go index cc6a1fd8..0534f12b 100644 --- a/cautils/getter/armoapi.go +++ b/cautils/getter/armoapi.go @@ -11,6 +11,7 @@ import ( "github.com/armosec/armoapi-go/armotypes" "github.com/armosec/kubescape/cautils/logger" + "github.com/armosec/kubescape/cautils/logger/helpers" "github.com/armosec/opa-utils/reporthandling" ) @@ -50,6 +51,7 @@ type ArmoAPI struct { var globalArmoAPIConnector *ArmoAPI func SetARMOAPIConnector(armoAPI *ArmoAPI) { + logger.L().Debug("Armo URLs", helpers.String("api", armoAPI.apiURL), helpers.String("auth", armoAPI.authURL), helpers.String("report", armoAPI.erURL), helpers.String("UI", armoAPI.feURL)) globalArmoAPIConnector = armoAPI } diff --git a/clihandler/initcliutils.go b/clihandler/initcliutils.go index a03a5d62..1a364ea1 100644 --- a/clihandler/initcliutils.go +++ b/clihandler/initcliutils.go @@ -216,8 +216,8 @@ func getDefaultFrameworksPaths() []string { func listFrameworksNames(policyGetter getter.IPolicyGetter) []string { fw, err := policyGetter.ListFrameworks() - if err != nil { - fw = getDefaultFrameworksPaths() + if err == nil { + return fw } - return fw + return getter.NativeFrameworks } diff --git a/resourcehandler/k8sresources.go b/resourcehandler/k8sresources.go index 2e41daea..0a1fbba2 100644 --- a/resourcehandler/k8sresources.go +++ b/resourcehandler/k8sresources.go @@ -168,6 +168,18 @@ func ConvertMapListToMeta(resourceMap []map[string]interface{}) []workloadinterf return workloads } +// func (k8sHandler *K8sResourceHandler) collectHostResourcesAPI(allResources map[string]workloadinterface.IMetadata, resourcesMap *cautils.K8SResources) error { + +// HostSensorAPI := map[string]string{ +// "bla/v1": "", +// } +// for apiVersion := range allResources { +// if HostSensorAPI == apiVersion { +// k8sHandler.collectHostResources() +// } +// } +// return nil +// } func (k8sHandler *K8sResourceHandler) collectHostResources(allResources map[string]workloadinterface.IMetadata, resourcesMap *cautils.K8SResources) error { logger.L().Debug("Collecting host sensor resources") @@ -175,6 +187,7 @@ func (k8sHandler *K8sResourceHandler) collectHostResources(allResources map[stri if err != nil { return err } + for rscIdx := range hostResources { group, version := getGroupNVersion(hostResources[rscIdx].GetApiVersion()) groupResource := k8sinterface.JoinResourceTriplets(group, version, hostResources[rscIdx].GetKind()) @@ -220,9 +233,10 @@ func getCloudProviderDescription(allResources map[string]workloadinterface.IMeta if err != nil { return err } - logger.L().Debug("cloud", helpers.String("cluster", cluster), helpers.String("clusterName", clusterName), helpers.String("provider", provider), helpers.String("region", region), helpers.String("project", project)) if provider != "" { + logger.L().Debug("cloud", helpers.String("cluster", cluster), helpers.String("clusterName", clusterName), helpers.String("provider", provider), helpers.String("region", region), helpers.String("project", project)) + wl, err := cloudsupport.GetDescriptiveInfoFromCloudProvider(clusterName, provider, region, project) if err != nil { // Return error with useful info on how to configure credentials for getting cloud provider info diff --git a/resultshandling/reporter/v1/mockreporter.go b/resultshandling/reporter/v1/mockreporter.go index 451a59f4..8ffc01fe 100644 --- a/resultshandling/reporter/v1/mockreporter.go +++ b/resultshandling/reporter/v1/mockreporter.go @@ -25,6 +25,6 @@ func (reportMock *ReportMock) SetClusterName(clusterName string) { } func (reportMock *ReportMock) DisplayReportURL() { - message := fmt.Sprintf("\nYou can see the results in a user-friendly UI, choose your preferred compliance framework, check risk results history and trends, manage exceptions, get remediation recommendations and much more by registering here: https://%s/cli-signup \n", getter.GetArmoAPIConnector().GetFrontendURL()) + message := fmt.Sprintf("\nScan results have not been submitted.\nYou can see the results in a user-friendly UI, choose your preferred compliance framework, check risk results history and trends, manage exceptions, get remediation recommendations and much more by registering here: https://%s/cli-signup \n", getter.GetArmoAPIConnector().GetFrontendURL()) cautils.InfoTextDisplay(os.Stderr, fmt.Sprintf("\n%s\n", message)) } diff --git a/resultshandling/reporter/v1/reporteventreceiver.go b/resultshandling/reporter/v1/reporteventreceiver.go index 4b815b65..cc2cd34a 100644 --- a/resultshandling/reporter/v1/reporteventreceiver.go +++ b/resultshandling/reporter/v1/reporteventreceiver.go @@ -144,7 +144,7 @@ func (report *ReportEventReceiver) generateMessage() { if report.customerAdminEMail != "" { logger.L().Debug("", helpers.String("account ID", report.customerGUID)) - report.message = fmt.Sprintf("%s %s/risk/%s", message, u.String(), report.clusterName) + report.message = fmt.Sprintf("%s %s/configuration-scanning/%s", message, u.String(), report.clusterName) return } u.Path = "account/sign-up" diff --git a/resultshandling/reporter/v2/reporteventreceiver.go b/resultshandling/reporter/v2/reporteventreceiver.go index db29b77f..77ba546e 100644 --- a/resultshandling/reporter/v2/reporteventreceiver.go +++ b/resultshandling/reporter/v2/reporteventreceiver.go @@ -60,6 +60,8 @@ func (report *ReportEventReceiver) ActionSendReport(opaSessionObj *cautils.OPASe } else { report.generateMessage() } + logger.L().Debug("", helpers.String("account ID", report.customerGUID)) + return nil } @@ -202,24 +204,28 @@ func (report *ReportEventReceiver) sendReport(host string, postureReport *report } func (report *ReportEventReceiver) generateMessage() { - message := "You can see the results in a user-friendly UI, choose your preferred compliance framework, check risk results history and trends, manage exceptions, get remediation recommendations and much more by registering here:" u := url.URL{} u.Scheme = "https" u.Host = getter.GetArmoAPIConnector().GetFrontendURL() - if report.customerAdminEMail != "" { - logger.L().Debug("", helpers.String("account ID", report.customerGUID)) - report.message = fmt.Sprintf("%s %s/risk/%s", message, u.String(), report.clusterName) - return + if report.customerAdminEMail != "" { // data has been submitted + u.Path = fmt.Sprintf("configuration-scanning/%s", report.clusterName) + } else { + u.Path = "account/sign-up" + q := u.Query() + q.Add("invitationToken", report.token) + q.Add("customerGUID", report.customerGUID) + + u.RawQuery = q.Encode() } - u.Path = "account/sign-up" - q := u.Query() - q.Add("invitationToken", report.token) - q.Add("customerGUID", report.customerGUID) + + sep := "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + report.message = sep + report.message += " << WOW! Now you can see the scan results on the web >>\n\n" + report.message += fmt.Sprintf(" %s\n", u.String()) + report.message += sep - u.RawQuery = q.Encode() - report.message = fmt.Sprintf("%s %s", message, u.String()) } func (report *ReportEventReceiver) DisplayReportURL() {