package planner

import "github.com/open-policy-agent/opa/internal/planner"

Package planner contains a query planner for Rego queries.

Index

Types

type Planner

type Planner struct {
	// contains filtered or unexported fields
}

Planner implements a query planner for Rego queries.

func New

func New() *Planner

New returns a new Planner object.

func (*Planner) Plan

func (p *Planner) Plan() (*ir.Policy, error)

Plan returns a IR plan for the policy query.

func (*Planner) WithBuiltinDecls

func (p *Planner) WithBuiltinDecls(decls map[string]*ast.Builtin) *Planner

WithBuiltinDecls tells the planner what built-in function may be available inside the execution environment.

func (*Planner) WithModules

func (p *Planner) WithModules(modules []*ast.Module) *Planner

WithModules sets the module set that contains query dependencies.

func (*Planner) WithQueries

func (p *Planner) WithQueries(queries []ast.Body) *Planner

WithQueries sets the query set to generate a plan for.

func (*Planner) WithRewrittenVars

func (p *Planner) WithRewrittenVars(vs map[ast.Var]ast.Var) *Planner

WithRewrittenVars sets a mapping of rewritten query vars on the planner. The plan will use the rewritten variable name but the result set key will be the original variable name.

Source Files

planner.go rules.go varstack.go

Version
v0.21.1
Published
Jul 9, 2020
Platform
js/wasm
Imports
5 packages
Last checked
54 seconds ago

Tools for package owners.