loader

package
v0.27.1 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2021 License: Apache-2.0 Imports: 17 Imported by: 78

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 added in v0.14.0

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 added in v0.5.9

func CleanPath(path string) string

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

func Dirs added in v0.24.0

func Dirs(paths []string) []string

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

func FilteredPaths added in v0.22.0

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

FilteredPaths 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 added in v0.22.0

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 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 SplitPrefix

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

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

Types

type Errors added in v0.15.0

type Errors []error

Errors is a wrapper for multiple loader errors.

func (Errors) Error added in v0.15.0

func (e Errors) Error() string

type FileLoader added in v0.16.0

type FileLoader interface {
	All(paths []string) (*Result, error)
	Filtered(paths []string, filter Filter) (*Result, error)
	AsBundle(path string) (*bundle.Bundle, error)
	WithMetrics(m metrics.Metrics) FileLoader
	WithBundleVerificationConfig(*bundle.VerificationConfig) FileLoader
	WithSkipBundleVerification(skipVerify bool) FileLoader
}

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

func NewFileLoader added in v0.16.0

func NewFileLoader() FileLoader

NewFileLoader returns a new FileLoader instance.

type Filter added in v0.8.2

type Filter func(abspath string, info os.FileInfo, depth int) bool

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

func GlobExcludeName added in v0.8.2

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 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 added in v0.8.2

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 added in v0.10.0

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

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

func (*Result) ParsedModules added in v0.10.0

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

ParsedModules returns the parsed modules stored on the result.

func (*Result) Store added in v0.10.0

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

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

Jump to

Keyboard shortcuts

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