loader

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 27, 2025 License: Apache-2.0 Imports: 18 Imported by: 6

Documentation

Overview

Package loader contains utilities for loading files into OPA.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AsBundle

func AsBundle(path string) (*bundle.Bundle, error)

AsBundle loads a path as a bundle. If it is a single file it will be treated as a normal tarball bundle. If a directory is supplied it will be loaded as an unzipped bundle tree. Deprecated: Use FileLoader.AsBundle() instead.

func CleanPath

func CleanPath(path string) string

CleanPath returns the normalized version of a path that can be used as an identifier.

func Dirs

func Dirs(paths []string) []string

Dirs resolves filepaths to directories. It will return a list of unique directories.

func FilteredPaths

func FilteredPaths(paths []string, filter Filter) ([]string, error)

FilteredPaths is the same as FilterPathsFS using the current diretory file system

func FilteredPathsFS

func FilteredPathsFS(fsys fs.FS, paths []string, filter Filter) ([]string, error)

FilteredPathsFS return a list of files from the specified paths while applying the given filters. If any filter returns true, the file/directory is excluded.

func GetBundleDirectoryLoader

func GetBundleDirectoryLoader(path string) (bundle.DirectoryLoader, bool, error)

GetBundleDirectoryLoader returns a bundle directory loader which can be used to load files in the directory

func GetBundleDirectoryLoaderFS

func GetBundleDirectoryLoaderFS(fsys fs.FS, path string, filter Filter) (bundle.DirectoryLoader, bool, error)

GetBundleDirectoryLoaderFS returns a bundle directory loader which can be used to load files in the directory.

func GetBundleDirectoryLoaderWithFilter

func GetBundleDirectoryLoaderWithFilter(path string, filter Filter) (bundle.DirectoryLoader, bool, error)

GetBundleDirectoryLoaderWithFilter returns a bundle directory loader which can be used to load files in the directory after applying the given filter.

func Paths

func Paths(path string, recurse bool) (paths []string, err error)

Paths returns a sorted list of files contained at path. If recurse is true and path is a directory, then Paths will walk the directory structure recursively and list files at each level.

func Schemas

func Schemas(schemaPath string) (*ast.SchemaSet, error)

Schemas loads a schema set from the specified file path.

func SplitPrefix

func SplitPrefix(path string) ([]string, string)

SplitPrefix returns a tuple specifying the document prefix and the file path.

Types

type Errors

type Errors []error

Errors is a wrapper for multiple loader errors.

func (Errors) Error

func (e Errors) Error() string

type FileLoader

type FileLoader interface {
	All(paths []string) (*Result, error)
	Filtered(paths []string, filter Filter) (*Result, error)
	AsBundle(path string) (*bundle.Bundle, error)
	WithReader(io.Reader) FileLoader
	WithFS(fs.FS) FileLoader
	WithMetrics(metrics.Metrics) FileLoader
	WithFilter(Filter) FileLoader
	WithBundleVerificationConfig(*bundle.VerificationConfig) FileLoader
	WithSkipBundleVerification(bool) FileLoader
	WithProcessAnnotation(bool) FileLoader
	WithCapabilities(*ast.Capabilities) FileLoader
	// Deprecated: Use SetOptions in the json package instead, where a longer description
	// of why this is deprecated also can be found.
	WithJSONOptions(*astJSON.Options) FileLoader
	WithRegoVersion(ast.RegoVersion) FileLoader
	WithFollowSymlinks(bool) FileLoader
}

FileLoader defines an interface for loading OPA data files and Rego policies.

func NewFileLoader

func NewFileLoader() FileLoader

NewFileLoader returns a new FileLoader instance.

type Filter

type Filter = filter.LoaderFilter

Filter defines the interface for filtering files during loading. If the filter returns true, the file should be excluded from the result.

func GlobExcludeName

func GlobExcludeName(pattern string, minDepth int) Filter

GlobExcludeName excludes files and directories whose names do not match the shell style pattern at minDepth or greater.

type RegoFile

type RegoFile struct {
	Name   string
	Parsed *ast.Module
	Raw    []byte
}

RegoFile represents the result of loading a single Rego source file.

func Rego

func Rego(path string) (*RegoFile, error)

Rego is deprecated. Use RegoWithOpts instead.

func RegoWithOpts

func RegoWithOpts(path string, opts ast.ParserOptions) (*RegoFile, error)

RegoWithOpts returns a RegoFile object loaded from the given path.

type Result

type Result struct {
	Documents map[string]interface{}
	Modules   map[string]*RegoFile
	// contains filtered or unexported fields
}

Result represents the result of successfully loading zero or more files.

func All

func All(paths []string) (*Result, error)

All returns a Result object loaded (recursively) from the specified paths. Deprecated: Use FileLoader.Filtered() instead.

func AllRegos

func AllRegos(paths []string) (*Result, error)

AllRegos returns a Result object loaded (recursively) with all Rego source files from the specified paths.

func Filtered

func Filtered(paths []string, filter Filter) (*Result, error)

Filtered returns a Result object loaded (recursively) from the specified paths while applying the given filters. If any filter returns true, the file/directory is excluded. Deprecated: Use FileLoader.Filtered() instead.

func (*Result) Compiler

func (l *Result) Compiler() (*ast.Compiler, error)

Compiler returns a Compiler object with the compiled modules from this loader result.

func (*Result) ParsedModules

func (l *Result) ParsedModules() map[string]*ast.Module

ParsedModules returns the parsed modules stored on the result.

func (*Result) Store

func (l *Result) Store() (storage.Store, error)

Store returns a Store object with the documents from this loader result.

func (*Result) StoreWithOpts

func (l *Result) StoreWithOpts(opts ...inmem.Opt) (storage.Store, error)

StoreWithOpts returns a Store object with the documents from this loader result, instantiated with the passed options.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL