in sg/internal/engine/builder.go [44:66]
func (qb *QueryerBuilder) Complete() (Queryer, error) {
if qb.err != nil {
return nil, qb.err
}
compiler, compilerKey, err := policy.NewRegoCompiler(qb.packages)
if err != nil {
return nil, fmt.Errorf("failed to create compiler from packages: %w", err)
}
rv := &RegoEngine{
policyPackages: qb.packages,
compiler: compiler,
compilerKey: compilerKey,
// NOTE: we limit the actual query by CPU count as policy evaluation is CPU bounded.
// For input actions like reading policy files / source code, we allow them to run unbounded,
// as the actual limiting is done by this limiter.
limiter: newLimiterFromMaxProcs(),
queryCache: qb.queryCache,
parseArmTemplateDefaults: qb.parseArmTemplateDefaults,
}
return rv, nil
}