From 5222e1e9cfb3d2a8d0c48cbba2b4d1f106a91181 Mon Sep 17 00:00:00 2001 From: Ivan Milchev Date: Mon, 19 Feb 2024 12:03:41 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20cleanup=20scanner=20logic=20(#11?= =?UTF-8?q?14)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🧹 cleanup scanner logic Signed-off-by: Ivan Milchev * use latest cnquery Signed-off-by: Ivan Milchev * fix tests build Signed-off-by: Ivan Milchev * shutdown coordinator for each benchmark Signed-off-by: Ivan Milchev * use latest cnquery from main Signed-off-by: Ivan Milchev --------- Signed-off-by: Ivan Milchev --- cli/reporter/cli_reporter.go | 4 ++-- go.mod | 12 ++++++------ go.sum | 22 ++++++++++++---------- internal/bundle/lint.go | 4 ++-- internal/bundle/lint_test.go | 4 ++-- policy/bundle.go | 3 ++- policy/executor/executor.go | 3 ++- policy/scan/benchmark/benchmark_test.go | 3 +++ policy/scan/local_scanner.go | 23 ----------------------- policy/services.go | 3 ++- 10 files changed, 33 insertions(+), 48 deletions(-) diff --git a/cli/reporter/cli_reporter.go b/cli/reporter/cli_reporter.go index 83f17efb..2ab0891c 100644 --- a/cli/reporter/cli_reporter.go +++ b/cli/reporter/cli_reporter.go @@ -14,9 +14,9 @@ import ( "go.mondoo.com/cnquery/v10" "go.mondoo.com/cnquery/v10/cli/printer" "go.mondoo.com/cnquery/v10/cli/theme/colors" - "go.mondoo.com/cnquery/v10/llx" "go.mondoo.com/cnquery/v10/mqlc" "go.mondoo.com/cnquery/v10/providers" + "go.mondoo.com/cnquery/v10/providers-sdk/v1/resources" "go.mondoo.com/cnquery/v10/providers-sdk/v1/upstream/mvd" "go.mondoo.com/cnquery/v10/shared" "go.mondoo.com/cnspec/v10/policy" @@ -58,7 +58,7 @@ func getVulnReport[T any](results map[string]*T) (*T, error) { // ^^ } -func defaultChecksum(code mqlCode, schema llx.Schema) (string, error) { +func defaultChecksum(code mqlCode, schema resources.ResourcesSchema) (string, error) { res, ok := _defaultChecksums[code] if ok { return res.sum, res.err diff --git a/go.mod b/go.mod index 955785c3..57d66707 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/spf13/pflag v1.0.6-0.20201009195203-85dd5c8bc61c github.com/spf13/viper v1.18.2 github.com/stretchr/testify v1.8.4 - go.mondoo.com/cnquery/v10 v10.3.4 + go.mondoo.com/cnquery/v10 v10.3.5-0.20240219105228-7d1f8a509be4 go.mondoo.com/mondoo-go v0.0.0-20240213081402-ca514f6fe731 go.mondoo.com/ranger-rpc v0.5.3 go.opentelemetry.io/otel v1.23.1 @@ -89,7 +89,7 @@ require ( github.com/ashanbrown/forbidigo v1.6.0 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.50.19 // indirect + github.com/aws/aws-sdk-go v1.50.20 // indirect github.com/aws/aws-sdk-go-v2 v1.25.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.0 // indirect @@ -98,9 +98,9 @@ require ( github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.0 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.147.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.148.0 // indirect github.com/aws/aws-sdk-go-v2/service/ec2instanceconnect v1.21.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ecr v1.25.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.26.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.22.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.10 // indirect @@ -109,7 +109,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.27.1 // indirect github.com/aws/aws-sdk-go-v2/service/sns v1.26.5 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.29.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssm v1.46.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssm v1.47.0 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.19.0 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.22.0 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.27.0 // indirect @@ -192,7 +192,6 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect @@ -373,6 +372,7 @@ require ( go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 // indirect go.opentelemetry.io/otel/metric v1.23.1 // indirect go.opentelemetry.io/otel/trace v1.23.1 // indirect + go.uber.org/mock v0.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect golang.org/x/crypto v0.19.0 // indirect diff --git a/go.sum b/go.sum index 0f0915b4..4826c96c 100644 --- a/go.sum +++ b/go.sum @@ -170,8 +170,8 @@ github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5Fc github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go v1.50.19 h1:YSIDKRSkh/TW0RPWoocdLqtC/T5W6IGBVhFs6P7Qcac= -github.com/aws/aws-sdk-go v1.50.19/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.50.20 h1:xfAnSDVf/azIWTVQXQODp89bubvCS85r70O3nuQ4dnE= +github.com/aws/aws-sdk-go v1.50.20/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.25.0 h1:sv7+1JVJxOu/dD/sz/csHX7jFqmP001TIY7aytBWDSQ= github.com/aws/aws-sdk-go-v2 v1.25.0/go.mod h1:G104G1Aho5WqF+SR3mDIobTABQzpYV0WxMsKxlMggOA= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 h1:OCs21ST2LrepDfD3lwlQiOqIGp6JiEUqG84GzTDoyJs= @@ -190,12 +190,12 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10 h1:5oE2WzJE56/mVveuDZPJESKlg/00AaS2pY2QZcnxg4M= github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10/go.mod h1:FHbKWQtRBYUz4vO5WBWjzMD2by126ny5y/1EoaWoLfI= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.147.0 h1:m9+QgPg/qzlxL0Oxb/dD12jzeWfuQGn9XqCWyDAipi8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.147.0/go.mod h1:ntWksNNQcXImRQMdxab74tp+H94neF/TwQJ9Ndxb04k= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.148.0 h1:7imiXQvuqyUEu6wdcn6xRjR3zIJjDuAnS2e1S3ND+C0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.148.0/go.mod h1:ntWksNNQcXImRQMdxab74tp+H94neF/TwQJ9Ndxb04k= github.com/aws/aws-sdk-go-v2/service/ec2instanceconnect v1.21.1 h1:OLuzvvgHfHESi1Pi8FaT6nwtcWSm8QChOlJIhf0K8Ls= github.com/aws/aws-sdk-go-v2/service/ec2instanceconnect v1.21.1/go.mod h1:DnBn3ocyCjtUa9Sg0ZDbUnFi+9d02qR4uzzn9EQHnfE= -github.com/aws/aws-sdk-go-v2/service/ecr v1.25.1 h1:hL63D+RiWAm4VqBfBEtFPFVED5DJ0JFwcm1EGtnLs8I= -github.com/aws/aws-sdk-go-v2/service/ecr v1.25.1/go.mod h1:cHCqPNl9Vjw+N5oa24YgncDRA31goF+lgahmkdxUA0o= +github.com/aws/aws-sdk-go-v2/service/ecr v1.26.0 h1:7gB8QlMFMSoVc1SDL61QJBeM9oweT26EyYPEBg4n/cQ= +github.com/aws/aws-sdk-go-v2/service/ecr v1.26.0/go.mod h1:cHCqPNl9Vjw+N5oa24YgncDRA31goF+lgahmkdxUA0o= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.22.1 h1:pskM00D6pbGB6u3CKqG6BRFBMOBI2t2cfh6sMUnTu5c= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.22.1/go.mod h1:Dkh2AQrzuP5osgFevpzT8fEgWEE38Q1yrrgxxclm958= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.0 h1:a33HuFlO0KsveiP90IUJh8Xr/cx9US2PqkSroaLc+o8= @@ -214,8 +214,8 @@ github.com/aws/aws-sdk-go-v2/service/sns v1.26.5 h1:umyC9zH/A1w8AXrrG7iMxT4Rfgj8 github.com/aws/aws-sdk-go-v2/service/sns v1.26.5/go.mod h1:IrcbquqMupzndZ20BXxDxjM7XenTRhbwBOetk4+Z5oc= github.com/aws/aws-sdk-go-v2/service/sqs v1.29.5 h1:cJb4I498c1mrOVrRqYTcnLD65AFqUuseHfzHdNZHL9U= github.com/aws/aws-sdk-go-v2/service/sqs v1.29.5/go.mod h1:mCUv04gd/7g+/HNzDB4X6dzJuygji0ckvB3Lg/TdG5Y= -github.com/aws/aws-sdk-go-v2/service/ssm v1.46.1 h1:5eD9dLCSlVGNo6c0qNAbnA2qEjfLrB8X0twBvTxX+ec= -github.com/aws/aws-sdk-go-v2/service/ssm v1.46.1/go.mod h1:N98r+kK5y1r34XI36tVFQ/HXQ4yMOMqAjIJbO0LmYPg= +github.com/aws/aws-sdk-go-v2/service/ssm v1.47.0 h1:DRL3jVnkI2AamNpasygP9uSUWLXuEQxABPKsYbarjvQ= +github.com/aws/aws-sdk-go-v2/service/ssm v1.47.0/go.mod h1:N98r+kK5y1r34XI36tVFQ/HXQ4yMOMqAjIJbO0LmYPg= github.com/aws/aws-sdk-go-v2/service/sso v1.19.0 h1:u6OkVDxtBPnxPkZ9/63ynEe+8kHbtS5IfaC4PzVxzWM= github.com/aws/aws-sdk-go-v2/service/sso v1.19.0/go.mod h1:YqbU3RS/pkDVu+v+Nwxvn0i1WB0HkNWEePWbmODEbbs= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.22.0 h1:6DL0qu5+315wbsAEEmzK+P9leRwNbkp+lGjPC+CEvb8= @@ -1193,8 +1193,8 @@ go-simpler.org/sloglint v0.4.0/go.mod h1:v6zJ++j/thFPhefs2wEXoCKwT10yo5nkBDYRCXy go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= -go.mondoo.com/cnquery/v10 v10.3.4 h1:VJGFdHh7ZxTKpE348ow/kXKj6BT9KMLbLN0gnBB3oWc= -go.mondoo.com/cnquery/v10 v10.3.4/go.mod h1:lJBIYW3nGozstqRIG3qtlX3TMhqCF7e9FzCTI7hGmlE= +go.mondoo.com/cnquery/v10 v10.3.5-0.20240219105228-7d1f8a509be4 h1:dvcK0efEN5wotCpi9qbQLQrywzETuziXRW6820gWxz0= +go.mondoo.com/cnquery/v10 v10.3.5-0.20240219105228-7d1f8a509be4/go.mod h1:uMqfIGuuKfgjKC2ihydVCqC69kT9Mmivb1lYKmpSYr8= go.mondoo.com/mondoo-go v0.0.0-20240213081402-ca514f6fe731 h1:OclKwT0TJTnwKcNIMi8taxN46jtjq/lKqUDpTrfBMCU= go.mondoo.com/mondoo-go v0.0.0-20240213081402-ca514f6fe731/go.mod h1:WsPuH91Uq/BbFOH9eU0PBdqEcc3CK5iueaZrldsEvQA= go.mondoo.com/ranger-rpc v0.5.3 h1:914JOFTrxWFtBu1qrvuTyTyMibuT7g1GAX3HaUcbFqI= @@ -1230,6 +1230,8 @@ go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= +go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= +go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= diff --git a/internal/bundle/lint.go b/internal/bundle/lint.go index 13aa4889..da1bb08f 100644 --- a/internal/bundle/lint.go +++ b/internal/bundle/lint.go @@ -12,7 +12,7 @@ import ( "strconv" "github.com/Masterminds/semver" - "go.mondoo.com/cnquery/v10/llx" + "go.mondoo.com/cnquery/v10/providers-sdk/v1/resources" "go.mondoo.com/cnspec/v10/policy" ) @@ -148,7 +148,7 @@ type Location struct { } // Lint validates a policy bundle for consistency -func Lint(schema llx.Schema, files ...string) (*Results, error) { +func Lint(schema resources.ResourcesSchema, files ...string) (*Results, error) { aggregatedResults := &Results{ BundleLocations: []string{}, } diff --git a/internal/bundle/lint_test.go b/internal/bundle/lint_test.go index 0b69630e..7f9bb04f 100644 --- a/internal/bundle/lint_test.go +++ b/internal/bundle/lint_test.go @@ -8,12 +8,12 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.mondoo.com/cnquery/v10/llx" + "go.mondoo.com/cnquery/v10/providers-sdk/v1/resources" "go.mondoo.com/cnquery/v10/providers-sdk/v1/testutils" "go.mondoo.com/cnspec/v10/internal/bundle" ) -var schema llx.Schema +var schema resources.ResourcesSchema func init() { runtime := testutils.Local() diff --git a/policy/bundle.go b/policy/bundle.go index cef3c86d..4fd538b7 100644 --- a/policy/bundle.go +++ b/policy/bundle.go @@ -20,6 +20,7 @@ import ( "go.mondoo.com/cnquery/v10/logger" "go.mondoo.com/cnquery/v10/mqlc" "go.mondoo.com/cnquery/v10/mrn" + "go.mondoo.com/cnquery/v10/providers-sdk/v1/resources" "go.mondoo.com/cnquery/v10/utils/multierr" "sigs.k8s.io/yaml" ) @@ -712,7 +713,7 @@ func topologicalSortQueriesDFS(queryMrn string, queriesMap map[string]*explorer. } // Compile a bundle. See CompileExt for a full description. -func (p *Bundle) Compile(ctx context.Context, schema llx.Schema, library Library) (*PolicyBundleMap, error) { +func (p *Bundle) Compile(ctx context.Context, schema resources.ResourcesSchema, library Library) (*PolicyBundleMap, error) { return p.CompileExt(ctx, BundleCompileConf{ CompilerConfig: mqlc.NewConfig(schema, cnquery.DefaultFeatures), Library: library, diff --git a/policy/executor/executor.go b/policy/executor/executor.go index 094df0a4..4739f2e6 100644 --- a/policy/executor/executor.go +++ b/policy/executor/executor.go @@ -15,6 +15,7 @@ import ( "go.mondoo.com/cnquery/v10/llx" "go.mondoo.com/cnquery/v10/logger" "go.mondoo.com/cnquery/v10/mqlc" + "go.mondoo.com/cnquery/v10/providers-sdk/v1/resources" "go.mondoo.com/cnquery/v10/types" "go.mondoo.com/cnspec/v10" "go.mondoo.com/cnspec/v10/policy/executor/internal" @@ -648,6 +649,6 @@ func (e *Executor) MissingQueries() []*MissingQuery { } // Schema is used for testing. Check carefully if you have other intentions -func (e *Executor) Schema() llx.Schema { +func (e *Executor) Schema() resources.ResourcesSchema { return e.runtime.Schema() } diff --git a/policy/scan/benchmark/benchmark_test.go b/policy/scan/benchmark/benchmark_test.go index 3a7ab5bc..787caa4c 100644 --- a/policy/scan/benchmark/benchmark_test.go +++ b/policy/scan/benchmark/benchmark_test.go @@ -13,6 +13,7 @@ import ( "github.com/stretchr/testify/require" "go.mondoo.com/cnquery/v10" "go.mondoo.com/cnquery/v10/mqlc" + "go.mondoo.com/cnquery/v10/providers" "go.mondoo.com/cnquery/v10/providers-sdk/v1/inventory" "go.mondoo.com/cnquery/v10/providers-sdk/v1/testutils" "go.mondoo.com/cnspec/v10/policy" @@ -25,6 +26,7 @@ func init() { } func BenchmarkScan_SingleAsset(b *testing.B) { + defer providers.Coordinator.Shutdown() ctx := context.Background() runtime := testutils.Local() conf := mqlc.NewConfig(runtime.Schema(), cnquery.DefaultFeatures) @@ -73,6 +75,7 @@ func BenchmarkScan_SingleAsset(b *testing.B) { } func BenchmarkScan_MultipleAssets(b *testing.B) { + defer providers.Coordinator.Shutdown() ctx := context.Background() runtime := testutils.Local() conf := mqlc.NewConfig(runtime.Schema(), cnquery.DefaultFeatures) diff --git a/policy/scan/local_scanner.go b/policy/scan/local_scanner.go index 129af25a..666c36f1 100644 --- a/policy/scan/local_scanner.go +++ b/policy/scan/local_scanner.go @@ -53,7 +53,6 @@ type LocalScanner struct { allowJobCredentials bool disableProgressBar bool reportType ReportType - scanMutex sync.Mutex } type ScannerOption func(*LocalScanner) @@ -136,13 +135,6 @@ func (s *LocalScanner) Schedule(ctx context.Context, job *Job) (*Empty, error) { } func (s *LocalScanner) Run(ctx context.Context, job *Job) (*ScanResult, error) { - // We want to run 1 scan at a time because we kill all providers after a scan. - // If we do >1 scan in parallel it is possible that we kill the provider of the - // scan that is in progress, which will result in errors. We can address this later - // by attaching a provider to a scan and killing only the providers that are not - // not actively used. - s.scanMutex.Lock() - defer s.scanMutex.Unlock() if job == nil { return nil, status.Errorf(codes.InvalidArgument, "missing scan job") } @@ -273,9 +265,6 @@ func createReporter(ctx context.Context, job *Job, upstream *upstream.UpstreamCo } func (s *LocalScanner) distributeJob(job *Job, ctx context.Context, upstream *upstream.UpstreamConfig) (*ScanResult, error) { - // Always shut down the coordinator, to make sure providers are killed - defer providers.Coordinator.Shutdown() - reporter, err := createReporter(ctx, job, upstream) if err != nil { return nil, err @@ -434,18 +423,6 @@ func (s *LocalScanner) distributeJob(job *Job, ctx context.Context, upstream *up return reporter.Reports(), nil } -func batch[T any](list []T, batchSize int) [][]T { - var res [][]T - for i := 0; i < len(list); i += batchSize { - end := i + batchSize - if end > len(list) { - end = len(list) - } - res = append(res, list[i:end]) - } - return res -} - func (s *LocalScanner) upstreamServices(conf *upstream.UpstreamConfig) *policy.Services { if conf == nil || conf.ApiEndpoint == "" || diff --git a/policy/services.go b/policy/services.go index fcecc283..8ec6450b 100644 --- a/policy/services.go +++ b/policy/services.go @@ -11,6 +11,7 @@ import ( "go.mondoo.com/cnquery/v10/explorer" "go.mondoo.com/cnquery/v10/llx" "go.mondoo.com/cnquery/v10/mqlc" + "go.mondoo.com/cnquery/v10/providers-sdk/v1/resources" "go.mondoo.com/ranger-rpc" ) @@ -81,7 +82,7 @@ func NewRemoteServices(addr string, auth []ranger.ClientPlugin, httpClient *http }, nil } -func (l *LocalServices) Schema() llx.Schema { +func (l *LocalServices) Schema() resources.ResourcesSchema { return l.Runtime.Schema() }