func()

in sg/internal/engine/rego_query.go [63:87]


func (engine *RegoEngine) Query(
	ctx context.Context,
	source source.Source,
	opts ...*QueryOptions,
) (result.QueryResults, error) {
	loadedConfigurations, err := loadSource(source, engine.parseArmTemplateDefaults)
	if err != nil {
		return result.QueryResults{}, fmt.Errorf("failed to load source: %w", err)
	}

	var aggregatedQueryResults result.QueryResults
	for _, loadedConfiguration := range loadedConfigurations {
		for _, policyPackage := range engine.policyPackages {
			queryResult, err := engine.queryPackage(ctx, policyPackage, loadedConfiguration)
			if err != nil {
				return result.QueryResults{}, err
			}
			aggregatedQueryResults = aggregatedQueryResults.Merge(queryResult)
		}
	}

	aggregatedQueryResults.Source = source

	return aggregatedQueryResults, nil
}