Documentation
¶
Overview ¶
Package regobrick provides high-level functions for applying RegoBrick transformations and adding modules to OPA rego.Rego objects.
Index ¶
- func FilterCapabilities(allowedNames []string, allowedCats []string) *ast.Capabilities
- func Module(filename, src string, imports []string) func(*rego.Rego)
- func Modules(opts ...ModuleOption) func(*rego.Rego)
- func ParseModule(filename, src string, imports []string) (*ast.Module, error)
- func RegisterBuiltin0[R any](name string, fn func(rego.BuiltinContext) (R, error), ...)
- func RegisterBuiltin0_(name string, fn func(rego.BuiltinContext) error, opts ...BuiltinRegisterOption)
- func RegisterBuiltin1[T1 any, R any](name string, fn func(rego.BuiltinContext, T1) (R, error), ...)
- func RegisterBuiltin1_[T1 any](name string, fn func(rego.BuiltinContext, T1) error, ...)
- func RegisterBuiltin2[T1 any, T2 any, R any](name string, fn func(rego.BuiltinContext, T1, T2) (R, error), ...)
- func RegisterBuiltin2_[T1 any, T2 any](name string, fn func(rego.BuiltinContext, T1, T2) error, ...)
- func RegisterBuiltin3[T1 any, T2 any, T3 any, R any](name string, fn func(rego.BuiltinContext, T1, T2, T3) (R, error), ...)
- func RegisterBuiltin3_[T1 any, T2 any, T3 any](name string, fn func(rego.BuiltinContext, T1, T2, T3) error, ...)
- func RegisterBuiltin4[T1 any, T2 any, T3 any, T4 any, R any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4) (R, error), ...)
- func RegisterBuiltin4_[T1 any, T2 any, T3 any, T4 any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4) error, ...)
- func RegisterBuiltin5[T1 any, T2 any, T3 any, T4 any, T5 any, R any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4, T5) (R, error), ...)
- func RegisterBuiltin5_[T1 any, T2 any, T3 any, T4 any, T5 any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4, T5) error, ...)
- type BuiltinRegisterOption
- type ModuleOption
- type RegoDecimal
- type RegoSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FilterCapabilities ¶ added in v0.3.0
func FilterCapabilities(allowedNames []string, allowedCats []string) *ast.Capabilities
FilterCapabilities filters OPA built-in functions based on a list of allowed names and categories, along with built-ins whose infix is in coreInfixes.
- If a built-in's infix is one of the core infixes, it is kept.
- Otherwise, if the built-in name is in allowedNames or any of its categories are in allowedCats, it is kept.
- If a built-in has custom category mappings, those are also checked against allowedCats.
The resulting capabilities object contains only the filtered built-ins.
func Module ¶
Module returns a rego.Rego option that adds a single Rego module from the given filename, source, and optional imports. If you need to handle parse errors directly, parse the module yourself (for example, with regobrick.ParseModule or ast.ParseModule) and then pass the *ast.Module to rego.ParsedModule(...) in your own Rego configuration.
func Modules ¶ added in v0.5.0
func Modules(opts ...ModuleOption) func(*rego.Rego)
Modules returns a rego.Rego option that adds multiple Rego modules in one call, each specified via a ModuleOption.
func ParseModule ¶
ParseModule parses a Rego source file into an AST module, optionally appending additional imports. If the module includes "import data.regobrick.default_false", it applies the default_false transform.
func RegisterBuiltin0 ¶ added in v0.2.0
func RegisterBuiltin0[R any](name string, fn func(rego.BuiltinContext) (R, error), opts ...BuiltinRegisterOption)
RegisterBuiltin0
func RegisterBuiltin0_ ¶ added in v0.2.0
func RegisterBuiltin0_(name string, fn func(rego.BuiltinContext) error, opts ...BuiltinRegisterOption)
RegisterBuiltin0_ has no arguments, returns error => null
func RegisterBuiltin1 ¶ added in v0.2.0
func RegisterBuiltin1[T1 any, R any](name string, fn func(rego.BuiltinContext, T1) (R, error), opts ...BuiltinRegisterOption)
RegisterBuiltin1
func RegisterBuiltin1_ ¶ added in v0.2.0
func RegisterBuiltin1_[T1 any](name string, fn func(rego.BuiltinContext, T1) error, opts ...BuiltinRegisterOption)
RegisterBuiltin1_ has 1 argument, returns error => null
func RegisterBuiltin2 ¶ added in v0.2.0
func RegisterBuiltin2[T1 any, T2 any, R any](name string, fn func(rego.BuiltinContext, T1, T2) (R, error), opts ...BuiltinRegisterOption)
RegisterBuiltin2
func RegisterBuiltin2_ ¶ added in v0.2.0
func RegisterBuiltin2_[T1 any, T2 any](name string, fn func(rego.BuiltinContext, T1, T2) error, opts ...BuiltinRegisterOption)
RegisterBuiltin2_
func RegisterBuiltin3 ¶ added in v0.2.0
func RegisterBuiltin3[T1 any, T2 any, T3 any, R any](name string, fn func(rego.BuiltinContext, T1, T2, T3) (R, error), opts ...BuiltinRegisterOption)
RegisterBuiltin3
func RegisterBuiltin3_ ¶ added in v0.2.0
func RegisterBuiltin3_[T1 any, T2 any, T3 any](name string, fn func(rego.BuiltinContext, T1, T2, T3) error, opts ...BuiltinRegisterOption)
RegisterBuiltin3_
func RegisterBuiltin4 ¶ added in v0.2.0
func RegisterBuiltin4[T1 any, T2 any, T3 any, T4 any, R any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4) (R, error), opts ...BuiltinRegisterOption)
RegisterBuiltin4
func RegisterBuiltin4_ ¶ added in v0.2.0
func RegisterBuiltin4_[T1 any, T2 any, T3 any, T4 any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4) error, opts ...BuiltinRegisterOption)
RegisterBuiltin4_
func RegisterBuiltin5 ¶ added in v0.2.0
func RegisterBuiltin5[T1 any, T2 any, T3 any, T4 any, T5 any, R any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4, T5) (R, error), opts ...BuiltinRegisterOption)
RegisterBuiltin5
func RegisterBuiltin5_ ¶ added in v0.2.0
func RegisterBuiltin5_[T1 any, T2 any, T3 any, T4 any, T5 any](name string, fn func(rego.BuiltinContext, T1, T2, T3, T4, T5) error, opts ...BuiltinRegisterOption)
RegisterBuiltin5_
Types ¶
type BuiltinRegisterOption ¶ added in v0.4.0
type BuiltinRegisterOption func(*builtinRegisterConfig)
func WithCategories ¶ added in v0.4.0
func WithCategories(cats ...string) BuiltinRegisterOption
func WithDefaultDecimal ¶ added in v0.4.0
func WithDefaultDecimal() BuiltinRegisterOption
When set, RegoToGo will convert ast.Number to decimal.Decimal by default.
func WithNondeterministic ¶ added in v0.4.0
func WithNondeterministic() BuiltinRegisterOption
type ModuleOption ¶ added in v0.5.0
type ModuleOption = module.ModuleOption
ModuleOption is an alias for module.ModuleOption, used for specifying Rego module parameters or configuration.
type RegoDecimal ¶ added in v0.6.0
type RegoDecimal = types.RegoDecimal
RegoDecimal is an alias for types.RegoDecimal. It represents a numeric value that serializes to JSON as a numeric literal (e.g., 123.456) rather than a string (e.g., "123.456").
func NewRegoDecimal ¶ added in v0.6.0
func NewRegoDecimal(d decimal.Decimal) RegoDecimal
NewRegoDecimal creates a RegoDecimal from an existing decimal.Decimal value. The resulting RegoDecimal retains the same precision and scale.
func NewRegoDecimalFromInt ¶ added in v0.6.0
func NewRegoDecimalFromInt(i int64) RegoDecimal
NewRegoDecimalFromInt creates a RegoDecimal from an int64. This is a shortcut for decimal.NewFromInt(...) wrapped in a RegoDecimal.
type RegoSet ¶ added in v0.6.0
type RegoSet[T comparable] = types.RegoSet[T]
RegoSet is an alias for types.RegoSet, representing a generic set of comparable elements. It is serialized as a JSON array, removing duplicates on unmarshal.
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
module
Package module provides utilities for parsing and transforming Rego modules, particularly for detecting and applying regobrick features like "default_false".
|
Package module provides utilities for parsing and transforming Rego modules, particularly for detecting and applying regobrick features like "default_false". |
|
types
Package types provides wrappers around shopspring/decimal.
|
Package types provides wrappers around shopspring/decimal. |