Documentation ¶
Overview ¶
Package bundle implements bundle loading.
Index ¶
- Constants
- func Activate(opts *ActivateOpts) error
- func ActivateLegacy(opts *ActivateOpts) error
- func Deactivate(opts *DeactivateOpts) error
- func EraseManifestFromStore(ctx context.Context, store storage.Store, txn storage.Transaction, name string) error
- func LegacyEraseManifestFromStore(ctx context.Context, store storage.Store, txn storage.Transaction) error
- func LegacyReadRevisionFromStore(ctx context.Context, store storage.Store, txn storage.Transaction) (string, error)
- func LegacyWriteManifestToStore(ctx context.Context, store storage.Store, txn storage.Transaction, ...) error
- func ManifestStoragePath(name string) storage.Path
- func ReadBundleNamesFromStore(ctx context.Context, store storage.Store, txn storage.Transaction) ([]string, error)
- func ReadBundleRevisionFromStore(ctx context.Context, store storage.Store, txn storage.Transaction, name string) (string, error)
- func ReadBundleRootsFromStore(ctx context.Context, store storage.Store, txn storage.Transaction, name string) ([]string, error)
- func RootPathsOverlap(pathA string, pathB string) bool
- func Write(w io.Writer, bundle Bundle) error
- func WriteManifestToStore(ctx context.Context, store storage.Store, txn storage.Transaction, name string, ...) error
- type ActivateOpts
- type Bundle
- type DeactivateOpts
- type Descriptor
- type DirectoryLoader
- type Manifest
- type ModuleFile
- type Reader
Constants ¶
const (
RegoExt = ".rego"
)
Common file extensions and file names.
Variables ¶
This section is empty.
Functions ¶
func Activate ¶ added in v0.14.0
func Activate(opts *ActivateOpts) error
Activate the bundle(s) by loading into the given Store. This will load policies, data, and record the manifest in storage. The compiler provided will have had the polices compiled on it.
func ActivateLegacy ¶ added in v0.14.0
func ActivateLegacy(opts *ActivateOpts) error
ActivateLegacy calls Activate for the bundles but will also write their manifest to the older unnamed store location. Deprecated: Use Activate with named bundles instead.
func Deactivate ¶ added in v0.14.0
func Deactivate(opts *DeactivateOpts) error
Deactivate the bundle(s). This will erase associated data, policies, and the manifest entry from the store.
func EraseManifestFromStore ¶ added in v0.13.0
func EraseManifestFromStore(ctx context.Context, store storage.Store, txn storage.Transaction, name string) error
EraseManifestFromStore will remove the manifest from storage. This function is called when the bundle is deactivated.
func LegacyEraseManifestFromStore ¶ added in v0.13.0
func LegacyEraseManifestFromStore(ctx context.Context, store storage.Store, txn storage.Transaction) error
LegacyEraseManifestFromStore will erase the bundle manifest from the older single (unnamed) bundle manifest location. Deprecated: Use WriteManifestToStore and named bundles instead.
func LegacyReadRevisionFromStore ¶ added in v0.13.0
func LegacyReadRevisionFromStore(ctx context.Context, store storage.Store, txn storage.Transaction) (string, error)
LegacyReadRevisionFromStore will read the bundle manifest revision from the older single (unnamed) bundle manifest location. Deprecated: Use ReadBundleRevisionFromStore and named bundles instead.
func LegacyWriteManifestToStore ¶ added in v0.13.0
func LegacyWriteManifestToStore(ctx context.Context, store storage.Store, txn storage.Transaction, manifest Manifest) error
LegacyWriteManifestToStore will write the bundle manifest to the older single (unnamed) bundle manifest location. Deprecated: Use WriteManifestToStore and named bundles instead.
func ManifestStoragePath ¶ added in v0.13.0
ManifestStoragePath is the storage path used for the given named bundle manifest.
func ReadBundleNamesFromStore ¶ added in v0.13.0
func ReadBundleNamesFromStore(ctx context.Context, store storage.Store, txn storage.Transaction) ([]string, error)
ReadBundleNamesFromStore will return a list of bundle names which have had their metadata stored.
func ReadBundleRevisionFromStore ¶ added in v0.13.0
func ReadBundleRevisionFromStore(ctx context.Context, store storage.Store, txn storage.Transaction, name string) (string, error)
ReadBundleRevisionFromStore returns the revision in the specified bundle. If the bundle is not activated, this function will return storage NotFound error.
func ReadBundleRootsFromStore ¶ added in v0.13.0
func ReadBundleRootsFromStore(ctx context.Context, store storage.Store, txn storage.Transaction, name string) ([]string, error)
ReadBundleRootsFromStore returns the roots in the specified bundle. If the bundle is not activated, this function will return storage NotFound error.
func RootPathsOverlap ¶ added in v0.14.0
RootPathsOverlap takes in two bundle root paths and returns true if they overlap.
Types ¶
type ActivateOpts ¶ added in v0.14.0
type ActivateOpts struct { Ctx context.Context Store storage.Store Txn storage.Transaction Compiler *ast.Compiler Metrics metrics.Metrics Bundles map[string]*Bundle // Optional ExtraModules map[string]*ast.Module // Optional // contains filtered or unexported fields }
ActivateOpts defines options for the Activate API call.
type Bundle ¶
type Bundle struct { Manifest Manifest Data map[string]interface{} Modules []ModuleFile }
Bundle represents a loaded bundle. The bundle can contain data and policies.
type DeactivateOpts ¶ added in v0.14.0
type DeactivateOpts struct { Ctx context.Context Store storage.Store Txn storage.Transaction BundleNames map[string]struct{} }
DeactivateOpts defines options for the Deactivate API call
type Descriptor ¶ added in v0.15.1
type Descriptor struct {
// contains filtered or unexported fields
}
Descriptor contains information about a file and can be used to read the file contents.
func (*Descriptor) Close ¶ added in v0.15.1
func (d *Descriptor) Close() error
Close the file, on some Loader implementations this might be a no-op. It should *always* be called regardless of file.
func (*Descriptor) Path ¶ added in v0.15.1
func (d *Descriptor) Path() string
Path returns the path of the file.
type DirectoryLoader ¶ added in v0.15.1
type DirectoryLoader interface { // NextFile must return io.EOF if there is no next value. The returned // descriptor should *always* be closed when no longer needed. NextFile() (*Descriptor, error) }
DirectoryLoader defines an interface which can be used to load files from a directory by iterating over each one in the tree.
func NewDirectoryLoader ¶ added in v0.15.1
func NewDirectoryLoader(root string) DirectoryLoader
NewDirectoryLoader returns a basic DirectoryLoader implementation that will load files from a given root directory path.
func NewTarballLoader ¶ added in v0.15.1
func NewTarballLoader(r io.Reader) DirectoryLoader
NewTarballLoader returns a new DirectoryLoader that reads files out of a gzipped tar archive.
type Manifest ¶
Manifest represents the manifest from a bundle. The manifest may contain metadata such as the bundle revision.
type ModuleFile ¶
ModuleFile represents a single module contained a bundle.
type Reader ¶ added in v0.10.2
type Reader struct {
// contains filtered or unexported fields
}
Reader contains the reader to load the bundle from.
func NewCustomReader ¶ added in v0.14.0
func NewCustomReader(loader DirectoryLoader) *Reader
NewCustomReader returns a new Reader configured to use the specified DirectoryLoader.
func NewReader ¶ added in v0.10.2
NewReader returns a new Reader which is configured for reading tarballs.
func (*Reader) IncludeManifestInData ¶ added in v0.10.2
IncludeManifestInData sets whether the manifest metadata should be included in the bundle's data.
func (*Reader) WithBaseDir ¶ added in v0.16.0
WithBaseDir sets a base directory for file paths of loaded Rego modules. This will *NOT* affect the loaded path of data files.