go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/explorer/datalake.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package explorer 5 6 import ( 7 "context" 8 9 llx "go.mondoo.com/cnquery/llx" 10 "go.mondoo.com/cnquery/types" 11 ) 12 13 // DataLake provides a shared database access layer 14 type DataLake interface { 15 // GetQuery retrieves a given query 16 GetQuery(ctx context.Context, mrn string) (*Mquery, error) 17 // SetQuery stores a given query 18 // Note: the query must be defined, it cannot be nil 19 SetQuery(ctx context.Context, mrn string, query *Mquery) error 20 21 // SetQueryPack stores a given pack in the data lake 22 SetQueryPack(ctx context.Context, querypack *QueryPack, filters []*Mquery) error 23 // GetQueryPack retrieves and if necessary updates the pack 24 GetQueryPack(ctx context.Context, mrn string) (*QueryPack, error) 25 // GetBundle retrieves and if necessary updates the pack. Used for assets, 26 // which have multiple query packs associated with them. 27 GetBundle(ctx context.Context, mrn string) (*Bundle, error) 28 // DeleteQueryPack removes a given pack 29 // Note: the MRN has to be valid 30 DeleteQueryPack(ctx context.Context, mrn string) error 31 // List all packs for a given owner 32 // Note: Owner MRN is required 33 ListQueryPacks(ctx context.Context, ownerMrn string, name string) ([]*QueryPack, error) 34 // GetQueryPackFilters retrieves the list of asset filters for a pack (fast) 35 GetQueryPackFilters(ctx context.Context, mrn string) ([]*Mquery, error) 36 37 // MutateBundle runs the given mutation on a bundle, typically an asset. 38 // If it cannot find the owner, it will create it. 39 MutateBundle(ctx context.Context, mutation *BundleMutationDelta, createIfMissing bool) (*Bundle, error) 40 // SetProps will override properties for a given entity (asset, space, org) 41 SetProps(ctx context.Context, req *PropsReq) error 42 43 // EnsureAsset makes sure an asset with mrn exists 44 EnsureAsset(ctx context.Context, mrn string) error 45 46 // SetResolvedPack stores a resolved pack 47 SetResolvedPack(mrn string, filtersChecksum string, resolved *ResolvedPack) error 48 // SetAssetResolvedPack stores the resolved pack for a given asset 49 SetAssetResolvedPack(ctx context.Context, assetMrn string, resolved *ResolvedPack, version ResolvedVersion) error 50 // UpdateData sets the list of data value for a given asset and returns a list of updated IDs 51 UpdateData(ctx context.Context, assetMrn string, data map[string]*llx.Result) (map[string]types.Type, error) 52 // GetReport retrieves all scores and data for a given asset 53 GetReport(ctx context.Context, assetMrn string, packMrn string) (*Report, error) 54 }