loader

package
v0.0.0-...-a9b67cd Latest Latest
Warning

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

Go to latest
Published: May 9, 2020 License: MIT Imports: 16 Imported by: 0

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

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)

	WithMetrics(m metrics.Metrics) 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 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

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

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.

Jump to

Keyboard shortcuts

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